期末代码Python
以下是 学生信息管理系统 的简化版代码示例(控制台版本,使用文件存储数据),包含核心功能:
1. 定义学生类
class Student:
def __init__(self, sid, name, score):
self.sid = sid # 学号
self.name = name # 姓名
self.score = score# 成绩
def to_dict(self):
"""转为字典格式,方便存储"""
return {"sid": self.sid, "name": self.name, "score": self.score}
2. 数据存储模块(文件操作)
import json
DATA_FILE = "students.txt"
def save_students(students):
"""将学生列表保存到文件"""
with open(DATA_FILE, "w", encoding="utf-8") as f:
json.dump([s.to_dict() for s in students], f)
def load_students():
"""从文件加载学生列表"""
try:
with open(DATA_FILE, "r", encoding="utf-8") as f:
data = json.load(f)
return [Student(**item) for item in data]
except FileNotFoundError:
return []
3. 核心功能函数
# 初始化学生列表(从文件加载)
students = load_students()
def add_student():
"""添加学生"""
sid = input("请输入学号:")
name = input("请输入姓名:")
score = float(input("请输入成绩:"))
students.append(Student(sid, name, score))
save_students(students)
print("添加成功!")
def query_student():
"""查询学生(按学号)"""
sid = input("请输入要查询的学号:")
for s in students:
if s.sid == sid:
print(f"学号:{s.sid},姓名:{s.name},成绩:{s.score}")
return
print("未找到该学生!")
def update_student():
"""修改学生成绩"""
sid = input("请输入要修改的学号:")
for s in students:
if s.sid == sid:
new_score = float(input("请输入新成绩:"))
s.score = new_score
save_students(students)
print("修改成功!")
return
print("未找到该学生!")
def delete_student():
"""删除学生"""
sid = input("请输入要删除的学号:")
global students
students = [s for s in students if s.sid != sid]
save_students(students)
print("删除成功!")
def show_all_students():
"""显示所有学生"""
if not students:
print("暂无学生信息!")
return
print("学号\t姓名\t成绩")
for s in students:
print(f"{s.sid}\t{s.name}\t{s.score}")
4. 菜单交互
def main_menu():
print("\n===== 学生信息管理系统 =====")
print("1. 添加学生")
print("2. 查询学生")
print("3. 修改成绩")
print("4. 删除学生")
print("5. 显示所有学生")
print("0. 退出系统")
choice = input("请选择操作(0-5):")
return choice
if __name__ == "__main__":
while True:
choice = main_menu()
if choice == "1":
add_student()
elif choice == "2":
query_student()
elif choice == "3":
update_student()
elif choice == "4":
delete_student()
elif choice == "5":
show_all_students()
elif choice == "0":
print("退出系统,感谢使用!")
break
else:
print("输入有误,请重新选择!")
使用说明:
1. 运行代码后,根据菜单提示输入数字选择功能。
2. 数据会自动保存到同目录的 students.txt 文件中,下次运行时自动加载。
3. 可扩展功能:
- 添加成绩统计(平均分、最高分)
- 支持多条件查询(如按姓名模糊查询)
- 改用 SQLite 数据库存储(需引入 sqlite3 模块)
需要其他案例的代码或功能扩展,可随时告诉我!