实验五

#1.实验任务1:银行账户类的定义和测试
'''
银行账户
数据:持卡人姓名、账号、当前余额
操作:提款、取款、打印账户信息
'''

class Account:
'''一个模拟银行账户的简单类'''
def __init__(self,name,account_number,initial_account): #构造新账户
self._name=name
self._card_no = account_number
self._balance = initial_account

def deposit(self,amount): #存款
self._balance +=amount

def withdraw(self,amount): #取款
self._balance -=amount

def info(self): #打印账户信息
print(f'{self._name},{self._card_no},{self._balance}')

def get_balance(self): #返回账户余额
return self._balance


#测试类
a1 = Account('Bob','5002311','20000')
a2 = Account('Joe','5006692','20000')

a1.deposit(5000)
a2.withdraw(4000)

a2.withdraw(10000)
a2.withdraw(5000)

a1.info()
a2.info()



#2.实验任务2:自定义模块,导入模块
'''
银行账户
数据:持卡人姓名、账号、当前余额
操作:提款、取款、打印账户信息
'''


class Account:
'''一个模拟银行账户的简单类'''

def __init__(self, name, account_number, initial_account): # 构造新账户
self._name = name
self._card_no = account_number
self._balance = initial_account

def deposit(self, amount): # 存款
self._balance += amount

def withdraw(self, amount): # 取款
self._balance -= amount

def info(self): # 打印账户信息
print(f'{self._name},{self._card_no},{self._balance}')

def get_balance(self): # 返回账户余额
return self._balance

#测试类
def main():
a1 = Account('Bob', '5002311', '20000')
a2 = Account('Joe', '5006692', '20000')

a1.deposit(5000)
a2.withdraw(4000)

a2.withdraw(10000)
a2.withdraw(5000)

a1.info()
a2.info()

if __name__ == '__main__': #如果模块名是'__main__'就执行
print('模块信息:',__doc__)
print('Account类信息:',Account.__doc__)
main()


#task2_1.py
import account #导入模块

u1 =account.Account('Tom','5004516','10000') #通过“模块.类名”使用模块account.py中的类Account
u2 = account.Account('Jerry','5003217','10000')

u1.deposit(5000)
u2.info()

#task2_2.py
from account import Account #从模块account中导入类Account


u1 = Account('Tom','5004516','10000')
u2 = Account('Jerry','5003217','10000')

u1.deposit(5000)
u1.info()

u2.withdraw(5000)
u2.info()

#3.实验任务3:类的继承
'''
这是一个图形类模块
包括:
基类:Shape
子类:Rect,Circle
'''

class Shape:
'''形状基类'''
def init(self):
print('形状基类')


class Rect(Shape):
'''
矩形类,继承自Shape
数据(属性):矩形左上角点的坐标、宽、高
操作(方法):打印矩形信息,计算面积、周长
'''
def __init__(self,x,y,width,length):#构造矩形对象
self._x=x
self._y=y
self._width=width
self._length=length

def init(self):
print(f'矩形左上角点的坐标:({self._x},{self._y})')
print(f'矩形宽:{self._width}')
print(f'矩形长:{self._length}')

def area(self):
return self._width * self._length

def perimeter(self):
return (self._width + self._length)*2

class Circle(Shape):
'''
圆形类,继承自Shape
数据(属性):圆心坐标、半径
操作(方法):打印圆信息,计算面积、周长
'''
def __init__(self,x,y,radius):
self._x=x
self._y=y
self._r=radius

def info(self):
print(f'圆心:({self._x},{self._y})')
print(f'半径:{self._r}')

def area(self):
return 3.14*self._r*self._r

def perimeter(self):
return 2*3.14*self._r

#测试类
def main():
r1 = Rect(1,1,5,9)
r1.info()
print(f'矩形面积:',r1.area())
print(f'矩形周长:',r1.perimeter())

c1 = Circle(2,3,10)
c1.info()
print(f'圆面积:{c1.area():.2f}')
print(f'圆周长:{c1.perimeter():.2f}')



if __name__ == '__main__':
main()


#task3.py
from shape import Rect as rect,Circle as circle # 从模块shape中导入Rect类和
# Circle类,并分别取了别名

r1 = rect(3, 3, 5, 2)
r1.info()
print(f'矩形面积: ' , r1.area() )
print(f'矩形周长: ' , r1.perimeter() )

c1 = circle(5, 5, 1)
c1.info()
print(f'园面积: {c1.area():.2f}')
print(f'园周长: {c1.perimeter():.2f}')
posted @ 2021-06-01 13:43  尤培宇  阅读(89)  评论(3)    收藏  举报