基于Python语言完成线性表—学生成绩管理系统的编程及实现结果
题目:
编程实现以下功能:
建立学生成绩管理系统,系统信息包括姓名、学号、成绩分数、作业分数、出勤分数等,并可按学号查询相关学生信息。
import pickle as p
class person:
notes={}
def add(self):
name = input('请输入要添加的同学姓名')
if name in person.notes:
print('该同学已经存在')
else:
study_num = (input('请输入该同学的学号'))
AttendanceOne = (input("请输入该同学的第一次出勤分数"))
AttendanceTwo = (input("请输入该同学的第二次出勤分数"))
AttendanceThree = (input("请输入该同学的第三次出勤分数"))
AttendanceFour = (input("请输入该同学的第四次出勤分数"))
AttendanceFive = (input("请输入该同学的第五次出勤分数"))
AttendanceSix = (input("请输入该同学的第六次出勤分数"))
AttendanceSeven = (input("请输入该同学的第七次出勤分数"))
AttendanceEight = (input("请输入该同学的第八次出勤分数"))
HomeworkOne = (input("请输入该同学的第一次作业分数"))
HomeworkTwo = (input("请输入该同学的第二次作业分数"))
HomeworkThree = (input("请输入该同学的第三次作业分数"))
HomeworkFour = (input("请输入该同学的第四次作业分数"))
HomeworkFive = (input("请输入该同学的第五次作业分数"))
HomeworkSix = (input("请输入该同学的第六次作业分数"))
HomeworkSeven = (input("请输入该同学的第七次作业分数"))
HomeworkEight = (input("请输入该同学的第八次作业分数"))
smalladd = (input("请输入平时小计分数"))
last_ = (input("请输入末考成绩"))
the_num = (input("请输入成绩"))
label={'学号':study_num,'第一次出勤分数':AttendanceOne,'第二次出勤分数':AttendanceTwo,'第三次出勤分数':AttendanceThree,'第四次出勤分数':AttendanceFour,'第五次出勤分数':AttendanceFive,'第六次出勤分数':AttendanceSix,'第七次出勤分数':AttendanceSeven,'第八次出勤分数':AttendanceEight,
'第一次作业':HomeworkOne,'第二次作业':HomeworkTwo,'第三次作业':HomeworkThree,'第四次作业':HomeworkFour,'第五次作业':HomeworkFive,'第六次作业':HomeworkSix,'第七次作业':HomeworkSeven,'第八次作业':HomeworkEight,
'小计分数':smalladd,'末考':last_,'成绩':the_num}
person.notes[name]=label
def dele(self):
name = (input('请输入要删除的同学姓名'))
if name in person.notes:
del person.notes[name]
print ("%s" %person.notes.items())
else:
print('该同学 %s 不存在'%name)
def search(self):
name = (input('请输入要搜索的同学姓名'))
if name in person.notes:
print('同学 %s 的学号是 %s'%(name,person.notes[name]['学号']))
else:
print('该同学 %s 不存在'%name)
def modify(self):
name = (input('请输入要编辑的同学姓名'))
if name in person.notes:
study_num = (input('请输入该同学的学号'))
person.notes[name]['学号']=study_num
AttendanceOne = (input(('请输入该同学的第一次出勤分数')))
person.notes[name]['第一次出勤分数'] = AttendanceOne
AttendanceTwo = (input(('请输入该同学的第二次出勤分数')))
person.notes[name]['第二次出勤分数'] = AttendanceTwo
AttendanceThree = (input(('请输入该同学的第三次出勤分数')))
person.notes[name]['第三次出勤分数'] = AttendanceThree
AttendanceFour = (input(('请输入该同学的第四次出勤分数')))
person.notes[name]['第四次出勤分数'] = AttendanceFour
AttendanceFive = (input(('请输入该同学的第五次出勤分数')))
person.notes[name]['第五次出勤分数'] = AttendanceFive
AttendanceSix = (input(('请输入该同学的第六次出勤分数')))
person.notes[name]['第六次出勤分数'] = AttendanceSix
AttendanceSeven = (input(('请输入该同学的第七次出勤分数')))
person.notes[name]['第七次出勤分数'] = AttendanceSeven
AttendanceEight = (input(('请输入该同学的第八次出勤分数')))
person.notes[name]['第八次出勤分数'] = AttendanceEight
smalladd = (input("请输入平时小计分数"))
person.notes[name]['小计分数'] = smalladd
last_ = (input("请输入末考成绩"))
person.notes[name]['末考'] = last_
the_num = (input("请输入成绩"))
person.notes[name]['成绩'] = the_num
else:
print('该同学 %s 不存在,若要编辑请选择添加选项'%name)
def write(self):#不能修改
f = open('xx班级登分册.txt', 'wb+')
p.dump(person.notes,f)
f.close()
def read(self):#不能修改
file = 'xx班级登分册.txt'
try:
f = open(file ,'rb+')
person.notes = p.load(f)
f.close()
except:
f = open(file ,'w')
f.close()
def show(self):
print(person.notes)
def menu():
print('''系统提供以下功能
1:添加
2:删除
3:修改
4:搜索
5:退出
6: 显示全部同学信息''')
people = person()
people.read()
while True:
try:
menu()
choice = int(input('请输入相应数字操作: '))
if choice==1:
people.add()
elif choice ==2:
people.dele()
elif choice ==3:
people.modify()
elif choice ==4:
people.search()
elif choice ==5:
people.write()
break
elif choice==6:
people.show()
else:
print('输入不合法,请输入合法数字')
except ValueError:
print('请输入数字选项')