实验六 面向对象的程序设计

1. 设计一个圆类 , 包括圆心位置、半径、颜色等属性。编写构造方法 , 计算周长和面积。
from math import *
class Yuan:
    def __init__(self,yuanxin,banjing,yanse):
        self.yuanxin = yuanxin
        self.banjing = banjing
        self.yanse = yanse
    def zhouchang(self):
        c=2*pi*self.banjing
        return c
    def mianji(self):
        s=2*pi*self.banjing**2
        return s
a = int(input('请输入圆心的横坐标值:'))
b = int(input('请输入圆心的纵坐标值:'))
c=int(input('请输入半径值:'))
d = input('请输入圆颜色:')
z=Yuan((a,b),c,d)
print('圆心位置、半径、颜色分别为:','(',a,',',b,')',c,d)
print('周长为:',z.zhouchang())
print('面积为:',z.mianji())
import math
class Circle:
    def __init__(self, r, l, color):
        self.r = r
        self.l = l
        self.color = color
    def c(self):
        t = math.pi*2*self.r
        s = math.pi*(self.r**2)
        return t, s
a = int(input('半径r:'))
b = input('位置l:')
d = input('颜色color:')
m = Circle(a, b, d)
e = list(m.c())
print(str.format('zhouchang=a{}',e[0]))
print(str.format('mianji={}',e[1]))
import math
import turtle#制图
class Circle():
    def __init__(self, r, colour):
        self.r = r
        self.colour = colour
    def circlelength(self):
        length = math.pi * self.r * 2
        return length
    def circlearea(self):
        area = math.pi * self.r ** 2
        return area
    def drawcircle(self):
        turtle.color(self.colour)
        turtle.circle(self.r)
        turtle.done
if __name__ == "__main__":
    a=int(input('请输入半径值:'))
    b=input('请输入颜色:')
    circle = Circle(a,b)
    length = circle.circlelength()
    area = circle.circlearea()
    print('圆周长为:{}'.format(length))
    print('圆面积为:{}'.format(area))
    print('该图形如图:')
    circle.drawcircle()

方法三答案:

 

2. 设计一个描述自由落体运动的类 , 要求能获得任意时刻的速度及位移, 并进行测试。已知重力加速度为 9.8m/s
class Ziyouluoti:
    def __init__(self,t):
        self.t = t
    def sudu(self):
        v=9.8*self.t
        return v
    def weiyi(self):
        x=0.5*9.8*self.t**2
        return x
a=int(input('请输入要获得速度以及位移的时刻:'))
ziyouluoti=Ziyouluoti(a)
print('速度为:',ziyouluoti.sudu())
print('位移为:',ziyouluoti.weiyi())
3. 为二次方程式 ax 2 +bx+c=0 设计一个名为 Equation 的类 , 这个类包括:
代表 3 个系数的成员变量 a b c;
一个参数为 a b c 的构造方法 ;
一个名为 getDiscriminant1 的方法返回判别式的值 ;
一个名为 getRoot1 getRoo2t 的方法返回等式的两个根 , 如果判别式为负, 这些方法返回 0
from math import *
class Equation:
    def __init__(self,a,b,c):
        self.a=a
        self.b=b
        self.c=c
    def getDiscriminant1(self):
        m=self.b**2-4*a*c
        return m
    def getRoot1(self):
        if  self.getDiscriminant1()==0:
            x=-self.b/2*self.a
            return x
        elif self.getDiscriminant1() >0:
            x1 = (-self.b + sqrt(self.getDiscriminant1())) / 2 * self.a
            x2 = (-self.b - sqrt(self.getDiscriminant1()))/ 2 * self.a
            return x1, x2
    def getRoo2t(self):
        if self.getDiscriminant1() <0:
            return 0
a=int(input('请输入方程a值:'))
b=int(input('请输入方程b值:'))
c=int(input('请输入方程c值:'))
equation=Equation(a,b,c)
print('方程的根为',equation.getRoot1(),equation.getRoo2t())
from math import *
class Equation:
    def __init__(self,a,b,c):
        self.a=a
        self.b=b
        self.c=c
    def getDiscriminant1(self):
        m=self.b**2-4*a*c
        return m
    def getRoot1(self):
        if  self.getDiscriminant1()==0:
            x1=-self.b/2*self.a
            return x1
        elif self.getDiscriminant1() >0:
            x1 = (-self.b + sqrt(self.getDiscriminant1())) / 2 * self.a
            return x1
        elif self.getDiscriminant1() <0:
            return 0
    def getRoo2t(self):
        if self.getDiscriminant1() == 0:
            x1 = -self.b / 2 * self.a
            return x1
        elif self.getDiscriminant1() > 0:
            x2= (-self.b - sqrt(self.getDiscriminant1())) / 2 * self.a
            return x2
        elif self.getDiscriminant1() < 0:
            return 0
a=int(input('请输入方程a值:'))
b=int(input('请输入方程b值:'))
c=int(input('请输入方程c值:'))
equation=Equation(a,b,c)
print('方程的根为',equation.getRoot1(),equation.getRoo2t())
4. 设计一个二维向量类,实现向量的加法、减法及向量与标量的乘法和除法运算,其中要求输入是元组。
class Erweixiangliang:
    def __init__(self,x1,y1,x2,y2):
        self.x1=x1
        self.y1=y1
        self.x2=x2
        self.y2=y2
    def jia(self):
        m=self.x1+self.x2
        n=self.y1+self.y2
        return m,n
    def jian(self):
        m=self.x1-self.x2
        n=self.y1-self.y2
        return m,n
    def cheng(self):
        m=self.x1*self.y2-self.x2*self.y1
        return m
    def chu(self):
        return '无除法计算'
a=float(input('请输入向量横坐标1:'))
b=float(input('请输入向量纵坐标1:'))
c=float(input('请输入向量横坐标2:'))
d=float(input('请输入向量纵坐标2:'))
erweixiangliang=Erweixiangliang(a,b,c,d)
print('实现向量的加法、减法及向量与标量的乘法和除法运算结果为:',erweixiangliang.jia(),erweixiangliang.jian(),erweixiangliang.cheng(),erweixiangliang.chu())
class Erweixiangliang:
    def __init__(self, a, b):
        self.a = a
        self.b = b

    def jia(self):
        m = self.a[0] + self.b[0]
        n = self.a[1] + self.b[1]
        return m, n

    def jian(self):
        m = self.a[0] - self.b[0]
        n = self.b[1] - self.b[1]
        return m, n

    def cheng(self):
        m = self.a[0] * self.b[1] - self.a[1] * self.b[0]
        return m

    def chu(self):
        return '无除法计算'
a=eval(input('请输入向量1:'))#Python元组索引递归:“不能通过类型为float的非int类乘法序列”
b=eval(input('请输入向量2:'))#它需要用户输入的字符串,并把它变成单个字符的元组。
erweixiangliang=Erweixiangliang(a,b)
print('实现向量的加法、减法及向量与标量的乘法和除法运算结果为:',erweixiangliang.jia(),erweixiangliang.jian(),erweixiangliang.cheng(),erweixiangliang.chu())

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值