仲冬寒月 2022-10-24 19:19 采纳率: 71.4%
浏览 240
已结题

定义学生类Student,其中包括学号、姓名、年龄、性别属性和基本信息输出方法print()。利用列表与字典等数据结构实现对学生信息的存储及增、删、改、查等操作。

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

  • 写回答

2条回答 默认 最新

  • 认真与热爱. 2022-10-24 20: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
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月1日
  • 已采纳回答 10月24日
  • 创建了问题 10月24日

悬赏问题

  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)