张教授: 李同学,我们学校需要一个系统来管理研究生的信息,你觉得能不能用Python实现?
李同学: 当然可以,张老师。我们可以先从需求分析开始,比如学生信息录入、成绩查询等基本功能。
张教授: 那么第一步是不是要设计数据库呢?你有没有什么好的建议?
李同学: 是的,我建议使用SQLite作为我们的数据库,因为它轻量级且易于部署。首先创建一个名为'graduates.db'的文件,并定义表结构。
import sqlite3
conn = sqlite3.connect('graduates.db')
cursor = conn.cursor()
cursor.execute('''CREATE TABLE IF NOT EXISTS students (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
major TEXT NOT NULL,
grade REAL);''')
conn.commit()
conn.close()
张教授: 很好,接下来是如何让用户输入这些信息呢?
李同学: 我们可以编写一个简单的命令行界面程序来接收用户输入并存储到数据库中。
def add_student():
name = input("请输入学生的姓名:")
major = input("请输入专业:")
grade = float(input("请输入成绩:"))
conn = sqlite3.connect('graduates.db')
cursor = conn.cursor()
cursor.execute("INSERT INTO students (name, major, grade) VALUES (?, ?, ?)",
(name, major, grade))
conn.commit()
conn.close()
张教授: 这样的话,当有新的学生加入时,就可以方便地更新数据了。那么对于已有数据的查询怎么办呢?
李同学: 查询操作也很简单,只需要执行SQL查询语句即可。例如,查询所有学生的平均成绩。
def query_average():
conn = sqlite3.connect('graduates.db')
cursor = conn.cursor()
cursor.execute("SELECT AVG(grade) FROM students")
avg_grade = cursor.fetchone()[0]
print(f"当前学生的平均成绩为:{avg_grade}")
conn.close()
张教授: 太棒了!这样我们就有了一个初步的研究生管理系统雏形。你觉得还需要添加哪些额外的功能吗?
李同学: 可以考虑增加修改和删除记录的功能,以及更复杂的搜索条件如按专业或年级筛选。
张教授: 好主意,那就按照这个方向继续完善吧。感谢你的努力,李同学。