求大佬帮做Python题啊QAQ 感谢

m0_48754609 2020-06-21 04:31:01
1、在学生类中增加一个学生综合学业成绩的属性,属性名为GPA。GPA的取值范围为0.0~5.0,要求在输入这个属性时需进行检查GPA属性的合法性; 2、修改class StudentList的__update和update两个函数,当用户输入学号时检查这个学生是否存在,当该生存在时,先显示该生的信息,然后才继续输入修改该生的信息; 3、增加保存学生信息到文件命令save,和从文件加载学生信息的命令load。保存学生信息的文件名为StudentInfo.txt; 原代码如下: lass Student: def __init__(self,No,Name,Gender,Age): self.No=No self.Name=Name self.Gender=Gender self.Age=Age def show(self): print("%-16s %-16s %-8s %-4d" %(self.No,self.Name,self.Gender,self.Age)) class StudentList: def __init__(self): self.students=[] def show(self): print("%-16s %-16s %-8s %-4s"%("No","Name","Gender","Age")) for s in self.students: s.show() def __insert(self,s): i=0 while (i<len(self.students) and s.No>self.students[i].No): i=i+1 if (i<len(self.students) and s.No==self.students[i].No): print(s.No+"已经存在") return False self.students.insert(i,s) print("添加成功") return True def __update(self,s): flag=False for i in range(len(self.students)): if (s.No==self.students[i].No): self.students[i].Name=s.Name self.students[i].Gender=s.Gender self.students[i].Age=s.Age print("修改成功") flag=True break if (not flag): print("没有这个学生") return flag def __delete(self,No): flag=False for i in range(len(self.students)): if (self.students[i].No == No): del self.students[i] print("删除成功") flag=True break if (not flag): print("没有这个学生") return flag def delete(self): No=input("No=") if(No!=""): self.__delete(No) def insert(self): No=input("No=") Name=input("Name=") while True: Gender=input("Gender=") if(Gender=="男" or Gender=="女"): break else: print ("Gender is not vaild") Age=input("Age=") if(Age==""): Age=0 else: Age=int(Age) if No!="" and Name!="": self.__insert(Student(No,Name,Gender,Age)) else: print("学号、姓名不能为空") def update(self): No=input("No=") Name=input("Name=") while True: Gender=input("Gender=") if(Gender=="男" or Gender=="女"): break else: print("Gender is not valid") Age=input("Age=") if(Age==""): Age=0 else: Age=int(Age) if No!="" and Name!="": self.__update(Student(No,Name,Gender,Age)) else: print("学号、姓名不能为空") def process(self): while True: s = input(">") if (s == "show"): self.show() elif (s =="insert"): self.insert() elif (s =="update"): self.update() elif (s == "delete"): self.delete() elif (s == "exit"): break else: print("show: show students") print("insert: insert a new student") print("update: insert a new student") print("delete: delete a student") print("exit: exit") st=StudentList() st.process()
...全文
51 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧