创建简单学生一卡通系统python+sqlite3
时间: 2024-10-25 14:12:00 浏览: 23
创建一个简单的学生一卡通系统,我们可以使用Python语言结合SQLite3数据库管理系统。以下是一个简化的步骤和代码示例:
1. **环境准备**:
- 安装必要的库:首先需要安装`sqlite3`库(Python自带),如果需要更高级的交互界面可以考虑`click`或`prompt_toolkit`。
2. **设计数据库**:
- 使用SQLite3创建一个名为`students.db`的数据库文件,并创建一个名为`cards`的表,包含字段如`id`, `name`, `student_id`, `balance`等。
```python
import sqlite3
def create_table():
conn = sqlite3.connect('students.db')
c = conn.cursor()
c.execute('''CREATE TABLE cards
(id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
student_id INTEGER NOT NULL UNIQUE,
balance REAL)''')
conn.commit()
conn.close()
```
3. **添加学生信息**:
- 提供函数让用户输入学生的姓名和学号,然后存入数据库。
```python
def add_student():
conn = sqlite3.connect('students.db')
c = conn.cursor()
name = input("请输入学生姓名:")
student_id = input("请输入学生学号:")
c.execute("INSERT INTO cards (name, student_id) VALUES (?, ?)", (name, student_id))
conn.commit()
conn.close()
```
4. **查询和修改余额**:
- 可以提供函数让学生查看和更新他们的账户余额。
```python
def check_balance(student_id):
conn = sqlite3.connect('students.db')
c = conn.cursor()
c.execute("SELECT balance FROM cards WHERE student_id=?", (student_id,))
balance = c.fetchone()[0]
print(f"当前余额:{balance}")
new_balance = float(input("请输入新余额:"))
if new_balance >= 0:
c.execute("UPDATE cards SET balance=? WHERE student_id=?", (new_balance, student_id))
conn.commit()
conn.close()
```
5. **主循环**:
- 设置一个命令行界面,通过用户输入选择功能(例如添加学生、检查余额、退出等)。
```python
if __name__ == "__main__":
create_table()
while True:
action = input("请选择操作:1.添加学生,2.查看余额,3.退出\n")
if action == '1':
add_student()
elif action == '2':
student_id = input("请输入学号:")
check_balance(student_id)
elif action == '3':
break
else:
print("无效的操作,请重新选择。")
```
这只是一个基本的框架,实际应用可能还需要处理异常、错误提示和更多的用户交互。
阅读全文