学生管理系统要有以下功能1.学生信息输入: 一次性完成学号、姓名、性别和语文、数学、英语成绩的信息输入,计算出平均成绩,写入数据表。 2.学生信息修改: 根据学号找到某学生修改其某门课程的成绩,重新计算平均成绩,写入数据表。 3.学生成绩查询: (1)根据学号找到某学生,显示其所有信息。(2)显示输出成绩表中的所有信息。 4.成绩综合统计: 按课程的计算总平均成绩,按学生计算总平均成绩,按男、女计算总平均成绩。显示输出结果。 5.学生信息删除: 根据学号找到某学生,删除其所有信息。 6.退出管理系统
时间: 2024-03-24 14:41:42 浏览: 139
非常感谢您的问题。下面是一个学生管理系统的实现,包括您所列举的所有功能,您可以参考一下。
```python
import sqlite3
def create_table():
conn = sqlite3.connect('student.db')
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS students
(id INTEGER PRIMARY KEY,
name TEXT,
gender TEXT,
chinese REAL,
math REAL,
english REAL,
average REAL)''')
conn.commit()
conn.close()
def add_student():
id = input('请输入学生学号:')
name = input('请输入学生姓名:')
gender = input('请输入学生性别:')
chinese = float(input('请输入学生的大学语文成绩:'))
math = float(input('请输入学生的高等数学成绩:'))
english = float(input('请输入学生的大学英语成绩:'))
average = (chinese + math + english) / 3
conn = sqlite3.connect('student.db')
c = conn.cursor()
c.execute("INSERT INTO students (id, name, gender, chinese, math, english, average) VALUES (?, ?, ?, ?, ?, ?, ?)",
(id, name, gender, chinese, math, english, average))
conn.commit()
conn.close()
print('添加成功!')
def update_student():
id = input('请输入学生学号:')
subject = input('请输入要修改的科目(chinese、math或english):')
score = float(input('请输入修改后的成绩:'))
conn = sqlite3.connect('student.db')
c = conn.cursor()
c.execute(f"UPDATE students SET {subject} = ? WHERE id = ?", (score, id))
c.execute("SELECT chinese, math, english FROM students WHERE id = ?", (id,))
row = c.fetchone()
average = sum(row) / 3
c.execute("UPDATE students SET average = ? WHERE id = ?", (average, id))
conn.commit()
conn.close()
print('修改成功!')
def search_student():
id = input('请输入要查询的学生学号(输入0查看所有学生):')
conn = sqlite3.connect('student.db')
c = conn.cursor()
if id == '0':
c.execute("SELECT * FROM students")
rows = c.fetchall()
print('学号\t姓名\t性别\t大学语文\t高等数学\t大学英语\t平均分')
for row in rows:
print(f'{row[0]}\t{row[1]}\t{row[2]}\t{row[3]}\t{row[4]}\t{row[5]}\t{row[6]}')
else:
c.execute("SELECT * FROM students WHERE id = ?", (id,))
row = c.fetchone()
if row:
print('学号\t姓名\t性别\t大学语文\t高等数学\t大学英语\t平均分')
print(f'{row[0]}\t{row[1]}\t{row[2]}\t{row[3]}\t{row[4]}\t{row[5]}\t{row[6]}')
else:
print('未找到该学生!')
conn.close()
def statistics():
conn = sqlite3.connect('student.db')
c = conn.cursor()
c.execute("SELECT AVG(chinese), AVG(math), AVG(english), AVG(average) FROM students")
row = c.fetchone()
print('科目\t平均成绩')
print(f'大学语文\t{row[0]}')
print(f'高等数学\t{row[1]}')
print(f'大学英语\t{row[2]}')
print(f'总平均成绩\t{row[3]}')
c.execute("SELECT AVG(average) FROM students WHERE gender = '男'")
row = c.fetchone()
print(f'男生平均成绩\t{row[0]}')
c.execute("SELECT AVG(average) FROM students WHERE gender = '女'")
row = c.fetchone()
print(f'女生平均成绩\t{row[0]}')
conn.close()
def delete_student():
id = input('请输入要删除的学生学号:')
conn = sqlite3.connect('student.db')
c = conn.cursor()
c.execute("DELETE FROM students WHERE id = ?", (id,))
conn.commit()
conn.close()
print('删除成功!')
def main():
create_table()
while True:
print('请选择功能:')
print('1. 添加学生')
print('2. 修改学生信息')
print('3. 查询学生信息')
print('4. 成绩综合统计')
print('5. 删除学生信息')
print('6. 退出程序')
choice = input('请输入选项:')
if choice == '1':
add_student()
elif choice == '2':
update_student()
elif choice == '3':
search_student()
elif choice == '4':
statistics()
elif choice == '5':
delete_student()
elif choice == '6':
break
else:
print('无效选项,请重新输入!')
if __name__ == '__main__':
main()
```
在这个系统中,我们创建了一个名为 `students` 的表来存储学生信息,包括学号、姓名、性别、大学语文成绩、高等数学成绩、大学英语成绩和平均分。我们定义了以下几个函数来实现不同的功能:
- `create_table()`:创建数据库和表格
- `add_student()`:添加学生信息
- `update_student()`:修改学生信息
- `search_student()`:查询学生信息
- `statistics()`:成绩综合统计
- `delete_student()`:删除学生信息
- `main()`:主函数,提供用户菜单选择不同的功能
您可以根据自己的需求对这个系统进行修改和扩展。
阅读全文