数据结构与算法实训项目:学生成绩管理系统

基于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('请输入数字选项')

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值