定义学生类Student,其中包括学号、姓名、年龄、性别属性和基本信息输出方法print()。利用列表与字典等数据结构实现对学生信息的存储及增、删、改、查等操作。定义本科生类BStudent和研究生类YStudent类分别继承Student类,自行定义各自类的独有属性,并重写父类中的数据处理方
只实现了简单功能,要求应该是都有,凑合能用,哪不合适再说
# 定义学生类
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