タスク: Python 関数の知識に基づいて学生管理システムを完成させ、最適化します。
具体的な要件
1. 次のサイクルのメイン プロセス コードに基づいて、完全な関数定義と呼び出しコードを補足して、学生管理システムの完全な最適化を実現します; 2. システム内の操作オプション 1、2、3、4、および
6第 4 章では、システム機能要件は包括的なアプリケーションで一貫しています;
3. システム機能の操作オプション 5 機能はさらに最適化する必要があります。ユーザーが「5」を入力すると、コンソールはユーザーに次のことを許可します。特定の生徒の成績をカウントするか、全生徒
の成績をカウントするかを選択 特定の生徒の成績をカウントする場合は、カウントする生徒の生徒番号を入力 保存されている生徒情報すべてに生徒情報が含まれている場合は、計算学生の3科目の成績合計と平均点を取得して出力し、それ以外の場合は「○○学生情報が保存されませんでした」と出力します。
全学生の成績を集計する場合は、コースを区別してコースごとに全学生の平均成績を出力します。
# encoding utf=8
# 定义一个函数,显示可以使用的功能列表给用户
def show_menu():
print("-" * 30)
print("欢迎使用学生管理系统=======================")
print(" 1.添加学生的信息")
print(" 2.删除学生的信息")
print(" 3.修改学生的信息")
print(" 4.查询学生的信息")
print(" 5.学生成绩统计")
print(" 6.退出系统")
print('-' * 30)
# 定义一个列表,用来存储多个学生的信息
students = []
# 学号已存在
def idExist(stuId):
# 验证学号是否唯一
i = 0
leap = 0
for temp in students:
if temp['id'] == stuId:
leap = 1
break
else:
i = i + 1
if leap == 1:
return True
# 学号不存在
def noId(delId):
i = 0
leap = 0
for temp in students:
if temp['id'] == delId:
leap = 1
break
else:
i = i + 1
if leap == 0:
return True
# 添加学生的功能函数
def add_info():
# 实现添加学生的功能
print("您选择了添加学生信息功能")
stuId = input("请输入学生学号(学号不可重复):")
if (idExist(stuId)):
print("输入学生学号重复,添加失败!")
start()
name = input("请输入学生姓名:")
sex = input("请输入学生性别:")
chinese = int(input("请输入学生语文成绩:"))
math = int(input("请输入学生数学成绩:"))
english = int(input("请输入学生英语成绩:"))
# 定义一个字典,存放单个学生信息
stuInfo = {
}
stuInfo['name'] = name
stuInfo['id'] = stuId
stuInfo['sex'] = sex
stuInfo['chinese'] = chinese
stuInfo['math'] = math
stuInfo['english'] = english
# 单个学生信息放入列表
students.append(stuInfo)
print("添加成功!")
# 删除学生的功能函数
def del_info():
print("您选择了删除学生功能")
delId = input("请输入要删除的学生学号:")
# i记录要删除的下标,leap为标志位,如果找到leap=1,否则为0
i = 0
leap = 0
for temp in students:
if temp['id'] == delId:
leap = 1
break
else:
i = i + 1
if leap == 0:
print("没有此学生学号,删除失败!")
else:
del students[i]
print("删除成功!")
# 修改学生信息的功能函数
def update_info():
print("您选择了修改学生信息功能")
alterId = input("请输入你要修改学生的学号:")
# 检测是否有此学号,然后进行修改信息
# i = 0
leap = 0
for temp in students:
if temp['id'] == alterId:
leap = 1
break
# else:
# i = i + 1
if leap == 1:
while True:
alterNum = int(input(" 1.修改学号\n 2.修改姓名 \n 3.修改性别 \n 4.修改语文成绩 \n 5.修改数学成绩 \n 6.修改英语成绩 \n7.退出修改\n"))
if alterNum == 1:
newId = input("输入更改后的学号:")
# 修改后的学号要验证是否唯一
if (idExist(newId)):
print("输入学号不可重复,修改失败!")
else:
temp['id'] = newId
print("学号修改成功")
elif alterNum == 2:
newName = input("输入更改后的姓名:")
temp['name'] = newName
print("姓名修改成功")
elif alterNum == 3:
newAge = input("输入更改后的性别:")
temp['sex'] = newAge
print("性别修改成功")
elif alterNum == 4:
chinese = input("输入更改后的语文:")
temp['chinese'] = chinese
print("语文修改成功")
elif alterNum == 5:
math = input("输入更改后的数学:")
temp['math'] = math
print("数学修改成功")
elif alterNum == 6:
english = input("输入更改后的英语:")
temp['english'] = english
print("英语修改成功")
elif alterNum == 7:
break
else:
print("输入错误请重新输入")
else:
print("没有此学号,修改失败!")
# 查询学生
def check_info():
print("您选择了查询学生信息功能")
searchID = input("请输入你要查询学生的学号:")
# 验证是否有此学号
i = 0
leap = 0
for temp in students:
if temp['id'] == searchID:
leap = 1
break
else:
i = i + 1
if leap == 0:
print("没有此学生学号,查询失败!")
else:
print("找到此学生,信息如下:")
print("学号:%s\n姓名:%s\n性别:%s\n语文成绩:%s\n数学成绩:%s\n英语成绩:%s\n" % (
temp['id'], temp['name'], temp['sex'], temp['chinese'], temp['math'], temp['english']))
# 统计学生信息
def static_score():
print("您选择了学生成绩统计")
print("1:全部学生成绩统计")
print("2:个人成绩统计")
option = int(input("请输入您需要的功能"))
if option == 1:
i = 0
cn = 0
ma = 0
en = 0
temp1 = 0
for temp1 in students:
if len(students) != 0:
cn += temp1["chinese"]
ma += temp1["math"]
en += temp1["english"]
i += 1
else:
print("无学生信息!请返回添加学生信息!")
start()
print("语文总成绩:%.2f,平均成绩:%.2f" % (cn, cn / i))
print("数学总成绩:%.2f,平均成绩:%.2f" % (ma, ma / i))
print("英语总成绩:%.2f,平均成绩:%.2f" % (en, en / i))
elif option == 2:
searchID = input("请输入你要统计成绩学生的学号:")
i = 0
leap = 0
for temp in students:
if temp['id'] == searchID:
leap = 1
break
else:
i = i + 1
if leap == 0:
print("没有此学生学号,查询失败!")
else:
print("找到此学生,信息如下:")
sum = float(temp['chinese']) + float(temp['math']) + float(temp['english'])
avg = float(sum / 3)
print("总成绩:%.2f" % sum)
print("平均成绩:%.2f" % avg)
else:
print("输入错误!")
start()
def start():
while True:
# 1. 显示学生管理系统的功能菜单
show_menu()
key = int(input("请选择功能(序号):"))
if key == 1:
add_info()
elif key == 2:
del_info()
elif key == 3:
update_info()
elif key == 4:
check_info()
elif key == 5:
static_score()
elif key == 6:
print("欢迎使用本系统,谢谢")
break
else:
print("您输入有误,请重新输入")
# 在培华机房开启系统
start()