请用python写一个200行的学生管理系统
时间: 2024-01-23 17:04:33 浏览: 30
好的,以下是一个简单的学生管理系统的Python代码。由于篇幅较长,我将代码分为多个模块,每个模块都有注释解释其功能。总代码行数为200行左右。
## 模块1:创建数据库
import sqlite3
# 连接到数据库
conn = sqlite3.connect('students.db')
# 创建游标
cursor = conn.cursor()
# 创建学生信息表
cursor.execute('''
CREATE TABLE IF NOT EXISTS students (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
age INTEGER NOT NULL,
gender TEXT NOT NULL,
score REAL NOT NULL
)
''')
# 关闭游标和数据库连接
cursor.close()
conn.close()
## 模块2:添加学生信息
import sqlite3
def add_student():
# 获取用户输入的学生信息
name = input('请输入学生姓名:')
age = int(input('请输入学生年龄:'))
gender = input('请输入学生性别:')
score = float(input('请输入学生成绩:'))
# 连接到数据库
conn = sqlite3.connect('students.db')
# 创建游标
cursor = conn.cursor()
# 插入学生信息到数据库
cursor.execute('INSERT INTO students (name, age, gender, score) VALUES (?, ?, ?, ?)', (name, age, gender, score))
# 提交修改
conn.commit()
# 提示用户添加成功
print('添加成功!')
# 关闭游标和数据库连接
cursor.close()
conn.close()
## 模块3:查询学生信息
import sqlite3
def query_student():
# 获取用户输入的查询条件
option = input('请输入查询条件(1.姓名 2.年龄 3.性别 4.成绩):')
# 判断查询条件并获取查询值
if option == '1':
value = input('请输入姓名:')
query = 'SELECT * FROM students WHERE name = ?'
elif option == '2':
value = int(input('请输入年龄:'))
query = 'SELECT * FROM students WHERE age = ?'
elif option == '3':
value = input('请输入性别:')
query = 'SELECT * FROM students WHERE gender = ?'
elif option == '4':
value = float(input('请输入成绩:'))
query = 'SELECT * FROM students WHERE score = ?'
else:
print('无效的查询条件!')
return
# 连接到数据库
conn = sqlite3.connect('students.db')
# 创建游标
cursor = conn.cursor()
# 查询学生信息
cursor.execute(query, (value,))
results = cursor.fetchall()
# 输出查询结果
if len(results) == 0:
print('未查询到任何结果!')
else:
for row in results:
print('ID:{},姓名:{},年龄:{},性别:{},成绩:{}'.format(row[0], row[1], row[2], row[3], row[4]))
# 关闭游标和数据库连接
cursor.close()
conn.close()
## 模块4:删除学生信息
import sqlite3
def delete_student():
# 获取用户输入的学生ID
student_id = int(input('请输入要删除的学生ID:'))
# 连接到数据库
conn = sqlite3.connect('students.db')
# 创建游标
cursor = conn.cursor()
# 删除指定ID的学生信息
cursor.execute('DELETE FROM students WHERE id = ?', (student_id,))
# 提交修改
conn.commit()
# 提示用户删除成功
print('删除成功!')
# 关闭游标和数据库连接
cursor.close()
conn.close()
## 模块5:修改学生信息
import sqlite3
def update_student():
# 获取用户输入的学生ID和要修改的属性
student_id = int(input('请输入要修改的学生ID:'))
option = input('请输入要修改的属性(1.姓名 2.年龄 3.性别 4.成绩):')
# 判断要修改的属性并获取修改后的值
if option == '1':
value = input('请输入新的姓名:')
query = 'UPDATE students SET name = ? WHERE id = ?'
elif option == '2':
value = int(input('请输入新的年龄:'))
query = 'UPDATE students SET age = ? WHERE id = ?'
elif option == '3':
value = input('请输入新的性别:')
query = 'UPDATE students SET gender = ? WHERE id = ?'
elif option == '4':
value = float(input('请输入新的成绩:'))
query = 'UPDATE students SET score = ? WHERE id = ?'
else:
print('无效的修改属性!')
return
# 连接到数据库
conn = sqlite3.connect('students.db')
# 创建游标
cursor = conn.cursor()
# 修改指定ID的学生信息
cursor.execute(query, (value, student_id))
# 提交修改
conn.commit()
# 提示用户修改成功
print('修改成功!')
# 关闭游标和数据库连接
cursor.close()
conn.close()
## 模块6:主程序
while True:
# 显示菜单
print('''
学生管理系统
-------------
1.添加学生信息
2.查询学生信息
3.删除学生信息
4.修改学生信息
5.退出程序
''')
# 获取用户选择的操作
choice = input('请选择要进行的操作:')
# 根据用户选择执行相应的操作
if choice == '1':
add_student()
elif choice == '2':
query_student()
elif choice == '3':
delete_student()
elif choice == '4':
update_student()
elif choice == '5':
break
else:
print('无效的操作!')
print('程序已退出!')
这个学生管理系统可以实现添加、查询、删除和修改学生信息等基本功能。代码使用了SQLite作为数据库,并使用Python内置的sqlite3模块来实现与数据库的交互。用户界面使用了命令行界面。这只是一个简单的示例,你可以根据自己的需求来添加更多的功能和改进用户界面。
相关推荐
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)