几何计算器(类和对象,类的继承)

class graph (object):
    '''
    定义图形类
    '''
    def _init_(self,area=0,perimeter=0):
        '''
        给图形增添属性,并设置初始值
        :param area:面积 
        :param perimeter: 周长
        :return:None 
        '''
        self.area=area
        self.perimeter=perimeter
    def main(self):
        '''
        整体逻辑循环框架
        :return:None 
        '''
        while True:
            circle=Circle()
            sector=Sector()
            square=Square()
            rectangle= Rectangle()
            triangle=Triangle()
            print('------智游几何计算器------')
            print('----------V0.1------------')
            print('请选择几何图形:')
            print('=====================================')
            print('1          圆形')
            print('2          扇形')
            print('3          正方形')
            print('4          矩形')
            print('5          三角形')
            print('--------------------------------------')
            print()
            select=input('请输入图形编号(退出请按q):')
            if select=='q':
                break
            while select<'1' or select>'5':
                select = int(input('输入有误,请重新输入(退出请按q):'))
            if select=='1':
                print('-----------------------------------')
                print('圆形')
                print('-----------------------------------')
                circle.cir_cal()
                print()
            if select=='2':
                print('-----------------------------------')
                print('扇形')
                print('-----------------------------------')
                sector.sector_cal()
                print()
            if select=='3':
                print('-----------------------------------')
                print('正方形')
                print('-----------------------------------')
                square.square_cal()
                print()
            if select=='4':
                print('-----------------------------------')
                print('矩形')
                print('-----------------------------------')
                rectangle.rectangle_cal()
                print()
            if select=='5':
                print('-----------------------------------')
                print('三角形')
                print('-----------------------------------')
                triangle.triangle_cal()
                print()
class Circle(graph):
    '''
    定义圆形类,继承图形类
    '''
    def _init_(self,radius=0):
        '''
        继承后在原来基础上增添半径属性,并设置初始值为0
        :param radius: 半径
        :return:None 
        '''
        self.radius=radius
    def cir_cal(self):
        '''
        圆形运算功能函数
        :return: None
        '''
        self.radius=int(input('请输入半径:'))
        print('------------------------------------')
        perimeter=2*3.14*self.radius
        print('周长:%s'%perimeter)
        area=3.14*self.radius*self.radius
        print('面积:%s'%area)
class Sector(Circle):
    '''
    定义扇形类,继承圆形类对象属性
    '''
    def _init_(self, angle=0):
        '''
        在继承圆形类属性的基础上增添圆心角属性,并设置初始值
        :param angle: 圆心角
        :return: None
        '''
        self.angle=angle
    def sector_cal(self):
        '''
        扇形运算功能函数
        :return:None 
        '''
        self.radius=int(input('请输入半径:'))
        self.angle=int(input('请输入圆心角(单位:度):'))
        area=3.14/360*self.angle**self.radius
        perimeter =self.angle*3.14*self.radius/180+2*self.radius
        print('周长:%s' % perimeter)
        print('面积:%s' % area)
class Square(graph):
    '''
    定义正方形类,继承图形类属性
    '''
    def _init_(self,length=0):
        '''
       在继承图形类属性的基础上增添边长属性,并设置初始值 
        :param length:边长 
        :return:None 
        '''
        self.length=length
    def square_cal(self):
        '''
        正方形运算功能函数
        :return:None 
        '''
        self.length=int(input('请输入边长:'))
        area =self.length*self.length
        perimeter =self.length*4
        print('周长:%s' % perimeter)
        print('面积:%s' % area)
class Rectangle(Square):
    '''
    定义矩形类,继承正方形类属性
    '''
    def _init_(self,high=0):
        self.high=high
    def rectangle_cal(self):
        self.length = int(input('请输入边长:'))
        self.high = int(input('请输入高:'))
        area =self.length*self.high
        perimeter =self.high*2+self.length*2
        print('周长:%s' % perimeter)
        print('面积:%s' % area)
class Triangle(Rectangle):
    def _init_(self,length1=0,length2=0):
        self.length1=length1
        self.length2=length2
    def  triangle_cal(self):
        self.length = int(input('请输入第一条边长:'))
        self.high = int(input('请输入第一条边长上的高:'))
        self.length1 = int(input('请输入第二条边长:'))
        self.length2 = int(input('请输入第三条边长:'))
        area=self.length*self.high
        perimeter =self.length+self.length1+self.length2
        print('周长:%s' % perimeter)
        print('面积:%s' % area)
operation=graph()
operation.main()



















猜你喜欢

转载自blog.csdn.net/qq_42630844/article/details/81080653
今日推荐