用python做一个学生成绩管理系统,可以实现数据录入,修改,删除,查询和统计功能,数据的存储用sqlite数据库
时间: 2024-06-08 14:05:38 浏览: 198
好的,下面我来为您提供一个简单的实现思路。
首先,我们需要用 Python 安装 sqlite3 模块,这个模块可以让我们通过 Python 操作 sqlite 数据库。可以通过以下命令安装:
```python
pip install pysqlite3
```
接下来,我们可以创建一个名为 `student.db` 的数据库,其中包含一个名为 `students` 的表,表的结构如下:
```sql
CREATE TABLE students (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
math REAL,
english REAL,
computer REAL
);
```
这个表包含了学生的 ID、姓名、数学成绩、英语成绩和计算机成绩。
接下来,我们可以编写 Python 代码来实现数据的录入、修改、删除、查询和统计功能。具体的实现细节如下:
1. 数据录入
```python
import sqlite3
def add_student(conn, name, math, english, computer):
cursor = conn.cursor()
cursor.execute("INSERT INTO students(name, math, english, computer) VALUES (?, ?, ?, ?)", (name, math, english, computer))
conn.commit()
```
这里,我们定义了一个 `add_student` 函数,用于向数据库中插入新的学生数据。函数接受一个数据库连接对象 `conn`,以及学生的姓名、数学成绩、英语成绩和计算机成绩。函数内部使用 `cursor` 对象执行 SQL 语句,将数据插入到数据库中。
2. 数据修改
```python
import sqlite3
def update_student(conn, id, name, math, english, computer):
cursor = conn.cursor()
cursor.execute("UPDATE students SET name=?, math=?, english=?, computer=? WHERE id=?", (name, math, english, computer, id))
conn.commit()
```
这里,我们定义了一个 `update_student` 函数,用于更新数据库中的学生数据。函数接受一个数据库连接对象 `conn`,以及学生的 ID、姓名、数学成绩、英语成绩和计算机成绩。函数内部使用 `cursor` 对象执行 SQL 语句,更新对应 ID 的学生数据。
3. 数据删除
```python
import sqlite3
def delete_student(conn, id):
cursor = conn.cursor()
cursor.execute("DELETE FROM students WHERE id=?", (id,))
conn.commit()
```
这里,我们定义了一个 `delete_student` 函数,用于从数据库中删除一条学生数据。函数接受一个数据库连接对象 `conn`,以及学生的 ID。函数内部使用 `cursor` 对象执行 SQL 语句,删除对应 ID 的学生数据。
4. 数据查询
```python
import sqlite3
def get_students(conn):
cursor = conn.cursor()
cursor.execute("SELECT * FROM students")
rows = cursor.fetchall()
return rows
```
这里,我们定义了一个 `get_students` 函数,用于从数据库中查询所有学生数据。函数接受一个数据库连接对象 `conn`。函数内部使用 `cursor` 对象执行 SQL 语句,查询所有学生数据,并返回查询结果。
5. 数据统计
```python
import sqlite3
def get_statistics(conn):
cursor = conn.cursor()
cursor.execute("SELECT AVG(math), AVG(english), AVG(computer) FROM students")
row = cursor.fetchone()
return row
```
这里,我们定义了一个 `get_statistics` 函数,用于从数据库中统计学生的平均成绩。函数接受一个数据库连接对象 `conn`。函数内部使用 `cursor` 对象执行 SQL 语句,查询所有学生的数学、英语和计算机平均成绩,并返回查询结果。
最后,我们可以编写一个简单的命令行界面,让用户可以方便地使用学生成绩管理系统。
```python
import sqlite3
def main():
conn = sqlite3.connect("student.db")
while True:
print("1. 添加学生")
print("2. 修改学生")
print("3. 删除学生")
print("4. 查询学生")
print("5. 统计成绩")
print("0. 退出程序")
choice = input("请输入选项:")
if choice == "1":
name = input("请输入学生姓名:")
math = float(input("请输入数学成绩:"))
english = float(input("请输入英语成绩:"))
computer = float(input("请输入计算机成绩:"))
add_student(conn, name, math, english, computer)
print("添加成功!")
elif choice == "2":
id = input("请输入学生 ID:")
name = input("请输入学生姓名:")
math = float(input("请输入数学成绩:"))
english = float(input("请输入英语成绩:"))
computer = float(input("请输入计算机成绩:"))
update_student(conn, id, name, math, english, computer)
print("修改成功!")
elif choice == "3":
id = input("请输入学生 ID:")
delete_student(conn, id)
print("删除成功!")
elif choice == "4":
rows = get_students(conn)
for row in rows:
print(row)
elif choice == "5":
row = get_statistics(conn)
print("数学平均成绩:", row[0])
print("英语平均成绩:", row[1])
print("计算机平均成绩:", row[2])
elif choice == "0":
break
conn.close()
print("程序已退出。")
if __name__ == "__main__":
main()
```
这个程序会不断显示菜单,等待用户输入选项。根据用户的选择,程序会调用前面编写的相应函数,执行相应的操作。
希望这个简单的实现思路能够对您有所帮助!
阅读全文