同济大学Python程序设计基础 实验八:面向对象程序设计基础

同济大学Python程序设计基础

实验八

第一题

设计一个楼房类(Building),包含楼的长、宽、层数及每平米单价属性,并具有求楼房的面积及总价等功能。最后编写利用该类的主程序。

代码片.

class Building:
    def __init__(self,a,b,c,d):
        self.length=a
        self.width=b
        self.floor=c
        self.price=d
    def area(self):
        return self.length*self.width*self.floor
    def sumPrice(self):
        return self.area()*self.price
    
length=float(input("请输入房子宽度(米):"))
width=float(input("请输入房子长度(米):"))
floor=int(input("请输入房子层数:"))
price=float(input("请输入房子单位面积价格(元):"))
b=Building(length,width,floor,price)
print("该房子面积为:",b.area(),"平方米")
print("该房子总价为:",b.sumPrice(),"元")

第二题

定义一个identifier类,具有一个属性id,存放身份证号,以及如下函数:
(1) getyear函数用于从身份证号码中提取出生年份;
(2) Disp方法用于输出身份证号码。
编写利用该类的主程序。

代码片.

 class identifier:
    def __init__(self,a):
        self.id=a
    def getyear(self):
        return self.id[6:10]
    def Disp(self):
        print(self.id)

s=input("请输入身份证号:")
while len(s)!=18:
    print("身份证号格式有误")
    s=input("请重新输入身份证号:")
identity=identifier(s)
print("此人出生年份为:",end="")
print(identity.getyear())
print("此人身份证号为:",end="")
identity.Disp()

第三题

设计一个矩形类(Rect),具有长、宽属性,类还具有求解并显示矩形的周长和面积的功能以及求两个矩形面积和的功能。
提示:假定有两个矩形r1和r2,求两矩形面积之和的方法是Sum,则调用方法为:
r1.Sum(r2)
r2.Sum(r1)

代码片.

 class Rect:
    def __init__(self,a,b):
        self.__len=a
        self.__wid=b
    def perimeter(self):
        return (self.__len+self.__wid)*2
    def area(self):
        return self.__len*self.__wid
    def Sum(self,c):
        return self.area()+c.area()

(a1,b1)=eval(input("请输入第一个矩形的长和宽分别为:"))
(a2,b2)=eval(input("请输入第二个矩形的长和宽分别为:"))
r1=Rect(a1,b1)
r2=Rect(a2,b2)
print("第一个矩形周长为:",r1.perimeter())
print("第一个矩形面积为:",r1.area())
print("两个矩形面积和为:",r1.Sum(r2))

第四题

设计一个Person类,具有如下的成员:
(1)属性:Name和 Age,表示一个人姓名和年龄;
(2)方法:Disp,输出各数据成员
最后编写一个使用该类的测试程序。

代码片.


class Person:
    def __init__(self,a,b):
        self.Name=a
        self.Age=b
    def Disp(self):
        print("此人姓名为:",end="")
        print(self.Name)
        print("此人年龄为:",end="")
        print(self.Age,"岁")
        
a=input("请输入一个人的姓名:")
b=int(input("请输入这个人的年龄:"))
p=Person(a,b)
p.Disp()

第五题

从题4派生类Teacher,并添加下列成员:
(1)属性:No和Ta,分别表示教师的工号和教龄;
(2)方法:NewDisp,输出所有成员的值。
最后编写利用该类的主程序。

代码片.

 class Person:
    def __init__(self,a,b):
        self.Name=a
        self.Age=b
    def Disp(self):
        print("此人姓名为:",end="")
        print(self.Name)
        print("此人年龄为:",end="")
        print(self.Age,"岁")
        
class Teacher(Person):
    def __init__(self,a,b,c,d):
        Person.__init__(self,a,b)
        self.No=c
        self.Ta=d
    def NewDisp(self):
        Person.Disp(self)
        print("此人工号为:",end="")
        print(self.No)
        print("此人教龄为:",end="")
        print(self.Ta,"年")

a=input("请输入一个人的姓名:")
b=int(input("请输入这个人的年龄:"))
c=input("请输入这个人的工号:")
d=int(input("请输入这个人的教龄:"))
t=Teacher(a,b,c,d)
t.NewDisp()

你可能感兴趣的:(python,python,程序设计,类,封装)