定义学生类Student,其中包括学号、姓名、年龄、性别属性和基本信息输出方法print()。利用列表与字典等数据结构实现对学生信息的存储及增、删、改、查等操作。定义本科生类BStudent和研究生类YStudent类分别继承Student类,自行定义各自类的独有属性,并重写父类中的数据处理方

定义学生类Student,其中包括学号、姓名、年龄、性别属性和基本信息输出方法print()。利用列表与字典等数据结构实现对学生信息的存储及增、删、改、查等操作。
- 写回答
- 好问题 1 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 认真与热爱. 2022-10-24 12:33关注
只实现了简单功能,要求应该是都有,凑合能用,哪不合适再说
# 定义学生类 class Student(): # 基本属性信息 def __init__(self, sno, sname, age, sex): self.sno = sno self.sname = sname self.age = age self.sex = sex # 基本信息输出的方法 def printdata(self): print(f"我是一名学生,名字是{self.sname},{self.sex},{self.age}岁,学号-{self.sno}") class BStudent(Student): # 本科生,添加私有属性高考分数score def __init__(self, sno, sname, age, sex, score): super().__init__(sno, sname, age, sex) self.score = score # 重写基本信息输出方法 def printdata(self): print(f"我是一名本科生,高考成绩{self.score},名字是{self.sname},{self.sex},{self.age}岁,学号-{self.sno}") class YStudent(Student): # 研究生,添加私有属性论文发表数目times def __init__(self, sno, sname, age, sex, times): super().__init__(sno, sname, age, sex) self.times = times # 重写基本信息输出方法 def printdata(self): print(f"我是一名研究生,已发表{self.times}篇论文,名字是{self.sname},{self.sex},{self.age}岁,学号-{self.sno}") # 主函数 if __name__ == "__main__": # 志愿者记录结果 persons = [] while(True): print("--"*20) x = input("\t1:添加志愿者\t2:删除志愿者\n\t3.查看志愿者信息\t4.退出筛选\n") if x=="1": style = input("选择添加的志愿者类型:1:普通学生\t2:本科生\t3.研究生\n") if style=="1": date = input("请输入学生 学号 姓名 年龄 性别(空格隔开):").split(" ") person = Student(*date) elif style=="2": date = input("请输入本科生 学号 姓名 年龄 性别 高考分数(空格隔开):").split(" ") person = BStudent(*date) elif style == "3": date = input("请输入研究生 学号 姓名 年龄 性别 论文数目(空格隔开):").split(" ") person = YStudent(*date) persons.append(person) elif x=="2": name = input("删除的学生名称:") persons = [person for person in persons if person.sname!=name] elif x=="3": # 当前志愿者 print("当前入选的志愿者姓名") for person in persons: print(person.sname, end=" ") print() name = input("请输入需要自我介绍的学生志愿者:") for person in persons: if person.sname==name: person.printdata() elif x=="4": print("筛选结束!") break
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用