Python综合训练:用Py写个简单的教务系统
·
挑战要求:
采用面向对象的编程思想,完成教务管理系统的开发。教务管理系统可以管理在校学生的成绩信息,通过控制台菜单与用户交互,具体的功能如下。
1.添加学生成绩:根据输入的学生姓名、语文成绩、数学成绩、英语成绩,记录在系统中
1.1输入学生姓名、语文成绩、数学成绩、英语成绩
1.2检查学生姓名是否已存在,如果学生不存在,再添加(存在则,不添加)
1.3验证成绩范围(0-100分)
1.4 创建学生对象并添加到系统
2.修改学生成绩:根据输入的学生姓名,修改对应的学生成绩
2.1 输入要修改的学生姓名
2.2根据姓名查找该学生,显示该生当前成绩信息
2.3 输入新的语文、数学、英语成绩
2.4更新学生成绩数据
3.删除学生成绩:根据输入的学生姓名,删除对应的学生成绩
4.查询指定学生成绩:根据输入的学生姓名,查找对应的学生成绩,并输出
4.1输出格式为:"姓名:张三|语文:85|数学:90|英语:88 |总分:263"5.展示全部学生成绩:展示出系统中所有学生的成绩
✨提示:每个学生的数据可以用列表来保存
准备好了吗?码农们?
Aswer:
class Student:
#初始化
def __init__(self, name, chinise,math,english):
self.name = name
self. chinise=int(chinise)
self.math=int(math)
self.english=int(english)
#定义输出形式
def __str__(self):
return f"姓名:{self.name}|语文:{self.chinise}|数学:{self.math}|英语: {self.english} |总分:{self.chinise+self.math+self.english} "
#更新数据
def Update_score(self,chinise=None,math=None,english=None):
if chinise is not None:
self.chinise=chinise
if math is not None:
self.math=math
if english is not None:
self.english=english
return self
class Edumanagement():
#新建列表用于存储学生信息
def __init__(self):
self.newnum = []
#添加
def add_score(self):
name=input('请输入名字 : ')
chinise = int(input('请输入语文成绩 : '))
math = int(input('请输入数学成绩 : '))
english = int(input('请输入英语成绩 : '))
# 检查学生姓名是否已存在,如果学生不存在,再添加(存在则,不添加)
for i in self.newnum:
if i.name == name:
print('已经存储过该同学的信息!')
#该同学已经存在函数什么也不返回
return
# 验证成绩范围(0-100分)
if 0<=chinise<=100 and 0<=math<=100 and 0<=english<=100:
#创建学生对象并添加到系统
stu=Student(name,chinise,math,english)
self.newnum.append(stu)
print('添加成功!')
else:
print('输入成绩必须在1—100之间!')
#修改
def change_score(self):
name=input('输入您想修改的学生名字 :')
for i in self.newnum:
if i.name == name:
print(i)
chinise = input('请输入新的语文成绩(直接回车不修改): ')
math = input('请输入新的数学成绩(直接回车不修改): ')
english = input('请输入新的英语成绩(直接回车不修改): ')
new_chinise=int(chinise) if chinise else None
new_math=int(math) if math else None
new_english=int(english) if english else None
i.Update_score(new_chinise,new_math,new_english)
print(f'修改成功!{i}')
else:
print('教务系统没有该学生!')
return
#删除
def delete_score(self):
name=input('输入您想删除的学生名字 : ')
#使用 py内置函数 enumerate 可以获取 索引和值
for i, student in enumerate(self.newnum):
if student.name == name:
del self.newnum[i]
print('删除成功!')
return
print('教务系统没有该学生!')
# 查询
def find_score(self):
name=input('输入您想查找的学生名字 ')
for i in self.newnum:
if i.name == name:
print(i)
return
print('教务系统没有该学生!')
#展示所有信息
def show_total(self):
print('************全部成绩*****************')
print(f'一共有{len(self.newnum)}个学生。')
if len(self.newnum)==0:\
print('教务系统中没有学生信息!')
for i in self.newnum:
print(i)
return
def show_menu(self):
print("\n" + "=" * 50)
print("教务管理系统")
print("=" * 50)
print("1. 添加学生成绩")
print("2. 修改学生成绩")
print("3. 删除学生成绩")
print("4. 查询指定学生成绩")
print("5. 展示全部学生成绩")
print("0. 退出系统")
print("=" * 50)
#测试
if __name__=="__main__":
sys=Edumanagement()
while True:
sys.show_menu()
choose=input('请输入(0-5): ')
if choose=='0':
print('您已成功退出系统!')
break
elif choose=='1':
sys.add_score()
elif choose=='2':
sys.change_score()
elif choose=='3':
sys.delete_score()
elif choose=='4':
sys.find_score()
elif choose=='5':
sys.show_total()
else:
print('输入错误!')
input('\n按下回车。再次输入')
希望我的博文能够对你有帮助!🎊
更多推荐


所有评论(0)