如何查询商标是否已经被注册,seo培训教程,做流程图网站,南通网站排名方法目录
一、类的定义和方法
二、图书管理系统 一、类的定义和方法 定义一个学生类#xff08;Student#xff09;#xff0c;包括学号(id)、姓名(name)、出生日期(birthday)和分数(score)4个属性#xff0c;其中出生日期是私有属性#xff0c;不能被外界直接访问。该类应具…目录
一、类的定义和方法
二、图书管理系统 一、类的定义和方法 定义一个学生类Student包括学号(id)、姓名(name)、出生日期(birthday)和分数(score)4个属性其中出生日期是私有属性不能被外界直接访问。该类应具有返回学生学号、姓名、年龄和分数的方法可以考虑定义一个__str__方法当然也可以是其他名称的方法还应该具有使用小于号对两个学生的分数比较大小的方法以及使用等于号判断两个同学是否出生在同一天的方法建议考虑定义__lt__和__eq__实现运算符重载。请编写该类并对其进行测试程序测试的结果如下图所示 class Student:def __init__(self, sno, name, birthday, score):self.no snoself.name nameself.__birthday birthday # 私有属性self.score scoredef __str__(self):return \n学号: self.no \n姓名: self.name \n生日: self.__birthday \n成绩: str(self.score)def __lt__(self, other):if self.score other.score:return Trueelse:return Falsedef __eq__(self, other):if self.__birthday other.__birthday:return Trueelse:return Falsestud1 Student(1001, 李刚, 1999-06-19, 89)
print(stud1)
stud2 Student(1002, 王强, 2001-03-5, 79)
print(stud2)
stud3 Student(1002, 张勇, 2001-03-5, 93)
print(stud3)def compare_score(s1, s2):if s1 s2:print(s1.name, 的成绩低于, s2.name, sep)else:print(s1.name, 的成绩不低于, s2.name, sep)def compare_birthday(s1, s2):if s1 s2:print(s1.name, 与, s2.name, 是同一天出生, sep)else:print(s1.name, 与, s2.name, 不是同一天出生, sep)print()
compare_score(stud1, stud2)
compare_birthday(stud1, stud2)
compare_score(stud2, stud3)
compare_birthday(stud2, stud3) 这段代码定义了一个名为 Student 的类表示学生对象。该类具有以下属性和方法
属性
no学号name姓名__birthday生日私有属性score成绩
方法
__init__(self, sno, name, birthday, score)构造函数用于初始化学生对象的属性。__str__(self)返回一个包含学生信息的字符串包括学号、姓名、生日和成绩。__lt__(self, other)比较运算符重载方法用于比较两个学生对象的成绩大小。__eq__(self, other)比较运算符重载方法用于比较两个学生对象的生日是否相等。 然后代码创建了三个学生对象stud1、stud2和stud3并使用构造函数进行初始化。随后调用print函数打印每个学生对象的信息。 接着代码定义了两个函数
compare_score(s1, s2)比较两个学生对象的成绩并输出结果。compare_birthday(s1, s2)比较两个学生对象的生日并输出结果。 最后调用这两个函数来比较学生对象之间的成绩和生日关系然后输出相应的结果。
运行结果 二、图书管理系统 在图书管理系统中读者类Reader是一个父类该类包括读者编号(rid)、姓名(name)、所在部门(dept)3个公有的实例属性以及读者人数(counts)1个私有的类属性。读者的编号(rid)要求能够根据的创建的读者数而自动编号。读者类应具有输出读者公开属性的__str__方法还应具有创建和注销读者、以及返回读者人数的方法。 教师读者类TeaReader是读者类Reader的一个子类它除了继承父类的公有属性外还具有教师读者最大借阅数(max_borrow)和教师读者数(tNums)2个公有的类属性。要求设置教师读者最大借阅数(max_borrow)的初值为20而教师读者的编号(rid)均以字母t开头并且会根据的创建的教师读者数而自动编号。 学生读者类TeaReader是读者类Reader的一个子类它除了继承父类的公有属性外还具有学生读者最大借阅数(max_borrow) 和学生读者数(sNums)2个公有的类属性。要求设置学生读者最大借阅数(max_borrow)的初值为10而学生读者的编号(rid)均以字母s开头并且会根据的创建的学生读者数而自动编号。 请根据下图的运行结果设计满足上述要求的三个类。 class Reader:__counts0 #私有类变量def __init__(self, name, dept):Reader.__counts1self.ridstr(Reader.__counts)self.namenameself.deptdeptprint(你是第{}位读者.format(Reader.__counts))def __str__(self):return 读者的信息---编号:self.rid,姓名:self.name,所在部门:self.deptdef logout(self):if Reader.__counts0:Reader.__counts-1classmethoddef reader_count(cls):return cls.__countsclass TeaReader(Reader):tNum0max_borrow20def __init__(self,name,dept):super().__init__(name,dept)TeaReader.tNum1self.ridtstr(TeaReader.tNum)print(self)def __str__(self):return super().__str__()def logout(self):super().logout()if TeaReader.tNum0:TeaReader.tNum-1print(注销教师读者self.rid)classmethoddef get_max_borrow(cls):return cls.max_borrowclass StuReader(Reader):sNum0max_borrow10def __init__(self,name,dept):super().__init__(name,dept)StuReader.sNum1self.ridsstr(StuReader.sNum)print(self)def __str__(self):return super().__str__()def logout(self):super().logout()if StuReader.sNum0:StuReader.sNum-1print(注销学生读者self.rid)classmethoddef get_max_borrow(cls):return cls.max_borrowt1TeaReader(张辉,中文)
t2TeaReader(李想,英语)
s1StuReader(张三,机械)
s2StuReader(赵六,海洋)
print(教师读者最大借阅数{}.format(TeaReader.get_max_borrow()))
print(学生读者最大借阅数{}.format(StuReader.get_max_borrow()))
print(当前读者总人数{}.format(Reader.reader_count()))
s2.logout()
print(当前教师读者总人数{}.format(TeaReader.tNum))
print(当前学生读者总人数{}.format(StuReader.sNum))
print(当前读者总人数{}.format(Reader.reader_count())) 这段代码定义了三个类Reader读者、TeaReader教师读者和 StuReader学生读者。通过这些类可以管理不同类型的读者并跟踪他们的数量以及最大借阅数。
在代码中使用了类变量、实例变量、类方法和实例方法来实现不同功能。主要有以下几点
Reader 类包含一个私有类变量 __counts 用于统计读者的数量通过 __init__ 方法初始化读者的信息并提供 logout 方法注销读者以及 reader_count 类方法获取读者总人数。TeaReader 和 StuReader 类继承自 Reader 类分别表示教师读者和学生读者重写了部分方法以适应特定需求比如修改读者编号规则、增加最大借阅数等。在主程序中创建了几个教师读者和学生读者对象演示了不同方法的调用和读者信息的管理。
运行结果