import csv
# 初始化学生成绩管理系统
students = {}
# 学生信息录入功能
def luru():
student_id = input("请输入学生学号: ")
if student_id in students:
print("该学号已存在,请选择更新学生信息或重新输入学号。")
return # 如果学号已存在,则退出函数
name = input("请输入学生姓名: ")
chengji = {}
subject = input("请输入要录入的科目名称(输入q结束录入): ")
while subject.lower() != 'q':
score = float(input("请输入{}的成绩: ".format(subject)))
chengji[subject] = score # 将科目和成绩存储到字典中
subject = input("请继续输入下一个科目名称(输入q结束录入): ")
students[student_id] = {'name': name, 'chengji': chengji} # 将学生信息添加到字典中
print("学生信息录入成功!")
# 成绩查询功能
def chaxun():
fangshi = input("请选择查询方式(学号输入1/姓名输入2): ")
if fangshi.lower() == '1':
student_id = input("请输入要查询的学生学号: ")
if student_id in students:
student_info = students[student_id]
print("学生信息:")
print("学号:", student_id)
print("姓名:", student_info['name'])
print("成绩:")
for subject, score in student_info['chengji'].items():
print(f"{subject}: {score}")
else:
print("未找到指定学生信息!")
elif fangshi.lower() == '2':
name = input("请输入要查询的学生姓名: ")
for student_id, info in students.items():
if info['name'] == name:
print("学生信息:")
print("学号:", student_id)
print("姓名:", info['name'])
print("成绩:")
for subject, score in info['chengji'].items():
print(f"{subject}: {score}")
break
else:
print("未找到指定学生信息!")
else:
print("无效的查询方式,请重新输入!")
# 成绩修改功能
def xiugai():
student_id = input("请输入要修改成绩的学生学号: ")
if student_id not in students:
print("未找到指定学生信息!")
return
subject = input("请输入要修改的科目名称: ")
if subject not in students[student_id]['chengji']:
print("未找到指定科目的成绩!")
return
new_score = float(input("请输入新的成绩: "))
students[student_id]['chengji'][subject] = new_score
print("成绩修改成功!")
# 成绩统计功能
def tongji():
total_chengji = []
for student_id, info in students.items():
total = sum(info['chengji'].values())
total_chengji.append(total)
print(f"学生{info['name']}的总分是: {total}")
if total_chengji:
average = sum(total_chengji) / len(total_chengji)
highest = max(total_chengji)
lowest = min(total_chengji)
print(f"所有学生的平均分是: {average:.2f}")
print(f"最高分是: {highest}")
print(f"最低分是: {lowest}")
else:
print("没有学生信息可供统计!")
# 成绩输出到CSV文件功能
def shuchu_csv():
with open('student_chengji.csv', 'w', newline='', encoding='utf-8') as csvfile:
fieldnames = ['学号', '姓名'] + list(students[list(students.keys())[0]]['chengji'].keys())
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
for student_id, info in students.items():
row = {'学号': student_id, '姓名': info['name']}
row.update(info['chengji'])
writer.writerow(row)
print("成绩已导出到CSV文件!")
# 主程序循环
while True:
print("n学生成绩管理系统")
print("1. 录入学生信息")
print("2. 查询学生成绩")
print("3. 修改学生成绩")
print("4. 统计学生成绩")
print("5. 导出成绩到CSV")
print("6. 退出系统")
choice = input("请选择要执行的操作: ")
if choice == '1':
luru()
elif choice == '2':
chaxun()
elif choice == '3':
xiugai()
elif choice == '4':
tongji()
elif choice == '5':
shuchu_csv()
elif choice == '6':
print("退出学生成绩管理系统。")
break
else:
print("无效的选择,请重新输入!")
评论
还能输入140字
用户评论
经过核实,本空间由于存在敏感词或非法违规信息或不安全代码或被其他用户举报,
已被管理员(或客服)锁定。
本空间现无法正常访问,也无法进行任何操作。
如需解锁请联系当地教育技术部门,由当地教育技术部门联系锁定人处理。
当前机构空间已被管理员(或客服)封锁。
目前机构空间无法正常访问,也无法进行任何操作。
如需重新开放,请联系当地教育技术部门,由当地教育技术部门联系管理员(或客服)处理。