几何计算器(类的继承,模块,函数的调用)

本文介绍如何使用Python编程实现一个几何计算器,通过类的继承构建几何形状类,并利用模块和函数调用来进行面积和周长的计算。内容涵盖基础几何图形如矩形、圆形和三角形的计算方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#计算圆形,扇形,正方形,长方形,三角形的面积和周长


#模块一:定义图形类
class Shape():
    def __init__(self):
        self.name=''
        self.perimeter=0.0
        self.area=0.0
    def show_name(self):
        pass
    def colleage_data(self):
        pass
    def operation(self):
        pass
    def operating_results(self):
        print('周长:{:.2f}'.format(self.perimeter))
        print('面积:{:.2f}'.format(self.area))
    def main(self):
        self.show_name()
        Shape.print_line()

        self.colleage_data()
        Shape.print_line()

        self.operation()
        self.operating_results()
        Shape.print_line()
    @staticmethod
    def print_line():
        print('-'*40)
    @staticmethod
    def print_double_line():
        print('='*40)


#模块二:定义圆形类,继承图形类部分属性
from shape import Shape
import math

class Circle(Shape):

    def __init__(self):
        super (Circle,self).__init__()
        self.name='圆形'
        self.r=0
    def colleage_data(self):
        self.r=int(input('请输入半径:'))
    def operation(self):
        self.perimeter=math.pi*2*self.r
        self.area=math.pi*self.r*self.r
if __name__ == '__main__':
    circle=Circle()
    circle.main()


#模块三:定义扇形类,继承圆形类部分属性

from circle import Circle
class Sector(Circle):
    def __init__(self):
        super(Sector,self).__init__()
        self.name='扇形'
        self.angle=0
    def colleage_data(self):
        super(Sector, self).colleage_data()
        self.angle=int(input('请输入圆心角:'))
    def operation(self):
        super(Sector, self).operation()
        self.perimeter=self.perimeter*self.angle/360+2*self.r
        self.area= self.area*self.angle/360
if __name__ == '__main__':
    s=Sector()
    s.main()

#模块四:定义正方形类,继承图形类部分属性
from shape import Shape
class Square(Shape):
    def __init__(self):
        super(Square,self).__init__()
        self.name='正方形'
        self.side=0
    def colleage_data(self):
        self.side=float(input('请输入边长:'))
    def operation(self):
        self.perimeter=self.side*4
        self.area=self.side*self.side
if __name__ == '__main__':
    s = Square()
    s.main()


#模块五:定义长方形类,继承正方形类部分属性
from square import Square
class Rectangle(Square):
    def __init__(self):
        super(Rectangle,self).__init__()
        self.name='长方形'
        self.high=0

    def colleage_data(self):
        super(Rectangle,self).colleage_data()
        self.high=float(input('请输入高:'))
    def operation(self):
        self.perimeter=(self.side+self.high)*2
        self.area=self.side*self.high
if __name__ == '__main__':
    r=Rectangle()
    r.main()

#模块六:定义三角形类,继承长方形部分属性
from rectangle import Rectangle
class Triangle(Rectangle):
    def __init__(self):
        super(Triangle,self).__init__()
        self.name='三角形'
        self.length1=0
        self.length2=0
    def colleage_data(self):
        super(Triangle,self).colleage_data()
        self.length1=float(input('请输入第二条边长:'))
        self.length2= float(input('请输入第三条边长:'))
    def operation(self):
        self.perimeter=self.side+self.length1+self.length2
        self.area=self.side*self.high
if __name__ == '__main__':
    t=Triangle()
    t.main()


模块七:调用以上模块,定义应用程序类,编写应用程序逻辑框架
from circle import Circle
from sector import Sector
from square import Square
from rectangle import Rectangle
from triangle import Triangle
from shape import Shape
class App(object):
    def __init__(self):
        self.list=[Circle(),Sector(),Square(),Rectangle(),Triangle()]
        self.version='V0.1'
    Shape.print_double_line()
    def show_shape(self):
        for x,shape in enumerate(self.list):
            print('{:<10}{}'.format(x+1,shape.name))
    Shape.print_line()
    def calc(self):
        while True:
            self.show_shape()
            idx=input('请输入图形序号(输入q退出):')
            if idx == 'q':
                print('欢迎下次使用')
                break
            while int(idx)<1 or int(idx)>5:
                idx = input('输入有误,请重新输入图形序号:')
            w=self.list[int(idx)-1]
            w.main()
    def main(self):
        print('*****几何计算器*****')
        print('{}'.format(self.version))
        self.calc()
if __name__ == '__main__':
    a=App()
    a.main()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值