题目——————
代码——————
# 程序设计:
# 一.编写一个三角形类(注意三边之间的关系)。
# 1.包含计算三角形的面积方法
# s=根号下:p(p-a)(p-b)(p-c) 其中p=1/2(a+b+c)
#
# 2.判断三角形的类型(直角a*a+b*b=c*c,等边a=b=c,等腰a=b||b=c||a=c)方法
# 请设计合理的三角形类并对该类进行测试。
import math
class sjx:
def __init__(self,a,b,c):
self.__a=a
self.__b=b
self.__c=c
def __pdsjx(self):
"""判断三条边是否构成三角形(任意两边之和大于第三条边)"""
pd=False #判断三角形默认为不构成 False
if self.__a+self.__b>self.__c and self.__a+self.__c>self.__b and self.__c+self.__b>self.__a :
pd=True
return pd
def __sjxnx(self):
"""三角形成立,判断什么类型三角形"""
a=self.__a
b=self.__b
c=self.__c
sjxgc=''
if self.__pdsjx()==True :
if (a*a==c*c+b*b) or (b*b==a*a+c*c) or (c*c==a*a+b*b) :
sjxgc="直角"
elif (a*a>b*b+c*c) or (b*b>a*a+c*c) or (c*c>a*a+b*b) :
sjxgc="钝角"
elif a==b and b==c :
sjxgc="等边"
elif a==b or b==c or a==c :
sjxgc="等腰"
else:
sjxgc="锐角"
return sjxgc
def __mj(self):
"""计算三角形面积"""
p=(self.__a+self.__b+self.__c)/2
s=math.sqrt(p*(p-self.__a)*(p-self.__b)*(p-self.__c))
return s #返回面积
def show(self):
if self.__pdsjx()==True :
print("这三条边能构成一个%s三角形,面积为:%f"%(self.__sjxnx(),self.__mj()))
else:
print("不好意思%.0f、%.0f、%.0f这三条边不能构成三角形"%(self.__a,self.__b,self.__c))
while True :
print("-----------三角形计算器--------------")
a = float(input("请输入第一条边:"))
b = float(input("请输入第二条边:"))
c = float(input("请输入第三条边:"))
s1=sjx(a,b,c)
s1.show()
tc=input("是否继续三角型计算器(y退出/任意字符继续):")
if tc=='y' :
print("感谢使用三角形计算器小黄【python版】")
break
运行结果————————