1、定义并实现一个矩形类Rectangle,其私有实例成员为矩形的左下角与右上角两个点的坐标,能设置左下角和右上角两个点的位置,能根据左下角与右上角两个点的坐标计算矩形的长、宽、周长和面积,另外根据需要适当添加其他成员方法和特殊方法(如构造方法)。实现并测试这个类。
class Rectangle:
def __init__(self,New_zxx,New_zxy,New_ysx,New_ysy):
self.zxx=New_zxx
self.zxy=New_zxy
self.ysx=New_ysx
self.ysy=New_ysy
self.length = self.ysx - self.zxx
self.width = self.ysy - self.zxy
def perimeter(self):
print('周长:{}'.format(2*(self.length+self.width)))
def area(self):
print('面积为:{}'.format(self.length*self.width))
a = Rectangle(0,0,1,2)
print(a.length)
print(a.width)
a.perimeter()
a.area()
2、创建SchoolMem类,该类中包含三个数据成员:姓名、性别、年龄;创建Student类,继承自SchoolMem类,添加额外三个数据成员:班级、学号和数量统计;创建Teacher类,继承自SchoolMem类,添加额外三个数据成员:学院、工号和数量统计。要求给每个类适当添加属性、成员方法和特殊方法(如构造方法),实现学生和教师信息的输入输出。实现并测试这个类。(建议在父类和子类中使用同名函数以实现多态,如在SchoolMem类、Student类和Teacher类中分别实现printInfo方法输出对象的信息。)
class SchoolMem:
def __init__(self,name,sex,age):
self.name=name
self.sex = sex
self.age = age
def Alter(self):
self.name = input('姓名')
self.sex = input('性别')
self.age = input('年龄')
def PrintInfo(self):
print(self.name)
print(self.sex)
print(self.age)
class Student(SchoolMem):
total = 0
def __init__(self,name,sex,age,cno,sno):
super().__init__(name,sex,age)
self.cno = cno
self.sno = sno
Student.total+=1
def Alter(self):
self.cno = input('输入学生所属班级:')
self.sno = input('输入学生学号:')
def PrintInfo(self):
super(Student, self).PrintInfo()
print(self.cno)
print(self.sno)
class Teacher(SchoolMem):
total = 0
def __init__(self,name,sex,age,cono,j