首页 > 其他分享 >5.8

5.8

时间:2024-06-14 21:13:05浏览次数:9  
标签:__ name 5.8 gender self date age

今天学习python实验,本次的实验为python中的实体类 ,随着实验的进行,让我发现它的实体类和c c++ java的实体类大同小异,只需要记住相关写法,着重记一点区别,就能很快适应python实体类的书写。

复制代码
# 定义人员类People
class People:
    def __init__(self, name, gender, age):
        self.name = name
        self.gender = gender
        self.age = age

    def __str__(self):
        return f"姓名:{self.name},性别:{self.gender},年龄:{self.age}"


# 基于People实现学生类Student
class Student(People):
    def __init__(self, name, gender, age, student_id, enrollment_date, entrance_score):
        super().__init__(name, gender, age)
        self.student_id = student_id
        self.enrollment_date = enrollment_date
        self.entrance_score = entrance_score

    def __str__(self):
        return f"{super().__str__()},学号:{self.student_id},入学日期:{self.enrollment_date},入学成绩:{self.entrance_score}"


# 基于People实现教师类Teacher
class Teacher(People):
    def __init__(self, name, gender, age, position, department, work_start_date):
        super().__init__(name, gender, age)
        self.position = position
        self.department = department
        self.work_start_date = work_start_date

    def __str__(self):
        return f"{super().__str__()},职位:{self.position},部门:{self.department},入职日期:{self.work_start_date}"


# 基于Student实现研究生类Graduate
class Graduate(Student):
    def __init__(self, name, gender, age, student_id, enrollment_date, entrance_score, reacher_direction, supervisor):
        super().__init__(name, gender, age, student_id, enrollment_date, entrance_score)
        self.reacher_direction = reacher_direction
        self.supervisor = supervisor

    def __str__(self):
        return f"{super().__str__()},研究方向:{self.reacher_direction},指导老师:{self.supervisor}"


# 修改在职研究生类GradOnWork,体现既是学生也是教师的特点
class GradOnWork(Graduate):
    def __init__(self, name, gender, age, student_id, enrollment_date, entrance_score, reacher_direction, supervisor,
                 teacher_position="兼职讲师", teacher_department="兼职部门", teacher_work_start_date="工作时间"):
        super().__init__(name, gender, age, student_id, enrollment_date, entrance_score, reacher_direction, supervisor)
        self.teacher = Teacher(name, gender, age, teacher_position, teacher_department, teacher_work_start_date)

    def __str__(self):
        return f"{super().__str__()}\n,教师信息:{self.teacher}"


# 测试代码
student1 = Student("张三", "男", 20, "20223735", "2022-9-21", 555)
teacher1 = Teacher("李四", "男", 30, "讲师", "信息科学与技术", "2022-9-21")
graduate1 = Graduate("王五", "男", 25, "20223736", "2022-9-21", 555, "人工智能", "李四")
grad_on_work1 = GradOnWork("赵六", "男", 28, "20223737", "2022-9-21", 555, "人工智能", "李四", "兼职讲师",
                           "马克思主义学院", "2023-09-01")
print("学生信息 ")
print(student1)
print("\n教师信息 ")
print(teacher1)
print("\n研究生信息 ")
print(graduate1)
print("\n在职研究生信息 ")
print(grad_on_work1)
复制代码

 

【题目描述】定义一个人员类People,其属性有:姓名、性别、年龄;基于People实现学生类Student,添加属性:学号、入学时间和入学成绩;基于People实现教师类Teacher,添加属性:职务、部门、工作时间;基于Student实现究生类Graduate,添加属性:研究方向和导师,分别定义其中的构造函数和输出函数。程序中定义各种类的对象,并完成测试。 基于以上类利用接口实现在职研究生类 GradOnWork。

程序中定义各种类的对象,并完成测试。
【练习要求】请给出源代码程序和运行测试结果,源代码程序要求添加必要的注释。

标签:__,name,5.8,gender,self,date,age
From: https://www.cnblogs.com/gjsgjs/p/18248640

相关文章

  • 5.8
    与小组成员讨论如何完成作业的主页面的xml页面代码行量:129行学习所花时间:0.5h  <?xmlversion="1.0"encoding="utf-8"?><androidx.drawerlayout.widget.DrawerLayoutxmlns:tools="http://schemas.android.com/tools"xmlns:android="http://sche......
  • 2024.5.8(周三)总结
    【题目描述】蒙特·卡罗方法是一种通过概率来得到问题近似解的方法,在很多领域都有重要的应用,其中就包括圆周率近似值的计问题。假设有一块边长为2的正方形木板,上面画一个单位圆,然后随意往木板上扔飞镖,落点坐标(x,y)必然在木板上(更多的时候是落在单位圆内),如果扔的次数足够多,那么落......
  • 5.8
    目前市面上有一些智能手环拥有可开放的API供个人开发者使用,例如:Fitbit:Fitbit提供了API和开发者平台,允许开发者访问Fitbit设备的数据,并构建自己的应用程序或整合其他平台。Garmin:GarminConnectAPI允许开发者访问Garmin设备的数据,包括健身数据、睡眠数据等,并构建自己的应用......
  • 5.8-随堂练习-小组练习3
    请列出关于创新感受最深的几点启发答案:【第九组】1.以用户为中心:真正的创新应该是解决用户的需求和问题,因此要深入了解用户,观察他们的行为和反馈,以此为基础进行创新。2.勇于尝试:创新需要勇气和冒险精神,愿意尝试新的想法和方法,接受失败,并从失败中吸取教训,不断改进。3.跨界合......
  • 5.8-随堂练习1
    1992年,姜万勐看到MPEG芯片Epiphany–用MPEG1把图像和声音同时存储在一张小光盘上VCD(VideoCompactDisc)。1993年9月万燕第一批1000台VCD机下线。几乎都被国内外家电公司买去解剖做样机万燕VCD100%市场份额1995年各路仿制的VCD机大举进军市场,竞争激烈。1996年全国......
  • 5.8-随堂练习2
    银弹:为了避免项目的成员为了一些问题争执不休,公司发明了银弹(SilverBullet)这一工具。简而言之,就是每个角色的代表(Dev/Test/PM)在项目过程中可以使用有限次的“停止争论,按我说的办”的武器–——银弹。银弹一出,大家就要听话。当然,银弹用一个少一个,下次有争论的时候,别人就更有机会使......
  • 5.8-随堂练习-案例分析
    案例分析:通过两个学生项目的例子,推断出这些团队的血型:1、STG游戏的跳票(为了完美,推迟了7天,但是7天之后也没有发布……)我怀着无比沉痛的心情宣布,我们的游戏因尚未达到预期的可玩性,为了不丢人现眼,延迟发布i天(i<=7)。我们在起初的计划中,以发布后一周的下载量作为项目衡量的标准。虽......
  • 5.8-随堂练习-个人练习
    学习和使用多个平台上的测试工具请使用两种以上平台上的测试工具,并介绍如何在本小组项目中具体使用。答案:在充电桩系统项目中,可以使用多种平台上的测试工具来确保系统的质量和稳定性。以下是两种常用平台上的测试工具及其在项目中的具体应用:​1.Web应用平台:(1)测试工具:Seleniu......
  • 5.8-随堂练习
    团队共同完成——谈谈本小组项目的测试1、你希望不同的人物角色(有些团队有3个人物角色)如何使用你的软件?他们的需求和目标是什么,您的功能是如何协同工作来解决他们的需求的?2、本小组项目的测试矩阵是什么?是在什么平台、什么语言、什么类型的机器、什么类型浏览器等上测试您的软......
  • 5.8-随堂练习-小组练习2
    结合本小组项目写下能想到的所有SWOT答案:【第九组】在充电桩电控系统项目中,可以想到以下所有的SMOT(Strengths,Weaknesses,Opportunities,Threats):Strengths(强项):功能丰富:系统具有多种功能,包括充电桩管理、用户充电、支付功能等。易用性:界面设计简洁清晰,操作流程直观,......