利用 Python 嘗試采用面向對象的設計方法計算圖形面積及周長


 

利用 Python 嘗試采用面向對象的設計方法。
(1)設計一個基類 Shape:
包含兩個成員函數:
def cal_area(): 計算並返回該圖形的面積,保留兩位小數;
def cal_perimeter(): 計算並返回該圖形的周長,保留兩位小數。
def display(): 三行字符串,分別顯示名稱、面積、周長,數值四舍五入保留兩
位小數,如下:
名稱是 rect
面積是 6
周長是 10
包含三個變量:
name:表示名稱,字符串類型;
area:表示面積,數字;
perimeter:表示周長,數字。
(2)設計三個派生類: Rectangle、 Triangle、 Circle;派生類分別實現基類中的兩個成
員函數。
Rectangle:構造函數參數(n, a, b), n 為名稱,其他均為浮點數,兩位小數, a、 b 分
別代表長和寬。
Triangle:構造函數參數(n, a, b, c), n 為名稱,其他均為浮點數,兩位小數,代表三
邊的長度。
Circle:構造函數參數(n, a), n 為名稱, a 為浮點數,兩位小數,代表圓的半徑,圓
周率取 3.14 進行計算。

#!/usr/bin/python # -*- coding: UTF-8 -*- #題目8:計算圖形面積及周長 import math class Shape: def __init__(self,name,area,perimeter): self.name = name self.area = area self.perimeter = perimeter def cal_area(self): pass def cal_perimeter(self): pass def display(self): print('名稱:',self.name) print('面積:',self.area) print('周長:',self.perimeter) class Rectangle(Shape): def __init__(self,n,a,b): self.n = n self.a=a self.b=b def cal_area(self): area = round (self.a * self.b, 2) def cal_perimeter(self,): perimeter=round(2*(self.a+self.b),2) class Triangle(Shape): def __init__(self,n,a,b,c): self.n=n self.a=a self.b=b self.c=c def cal_area(self): p=(self.a+self.b+self.c)/2 area=round(math.sqrt(p*(p-self.a)*(p-self.b)*(p-self.c)),2) return area def cal_perimeter(self): perimeter=self.a+self.b+self.c return perimeter class Circle(Shape): def __init__(self,n,a): self.n = n self.a=a def cal_perimeter(self): perimeter=round(2*3.14*self.a,2) return perimeter def cal_area(self): area=round(3.14*self.a**2,2) return area

可直接聯系客服QQ交代需求:953586085

歡迎光臨程序代寫小店https://item.taobao.com/item.htm?spm=a230r.1.14.59.255028c3ALNkZ0&id=586797758241&ns=1&abbucket=15#detail

歡迎點擊鏈接加入群聊【程序代寫-接單群】共同致富:https://jq.qq.com/?_wv=1027&k=5WxihsL 

群號:733065427

 if __name__ == '__main__': cir=Circle('cir',3) result=Shape(cir.n,cir.cal_area(),cir.cal_perimeter()) result.display() ret=Rectangle('ret',4,5) result=Shape(ret.n,ret.cal_area(),ret.cal_perimeter()) result.display() tri=Triangle('tri',2,4,5) result=Shape(tri.n,tri.cal_area(),tri.cal_perimeter()) result.display() 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM