MyException - 我的异常网
当前位置:我的异常网» J2SE » 三角形求周长和面积完整的解决方案,该怎么处理

三角形求周长和面积完整的解决方案,该怎么处理(3)

www.MyException.Cn  网友分享于:2013-03-31  浏览:39次


System.out.println(triangle.countArea());
}
}

------解决方案--------------------
求面积用海轮公式:
已知三角形三边长为a,b,c.
周长的一半p = (a+b+c)/2
三角形面积=sqrt(p*(p-a)*(p-b)*(p-c))
------解决方案--------------------
学习了!
------解决方案--------------------
探讨
求面积用海轮公式:
已知三角形三边长为a,b,c.
周长的一半p = (a+b+c)/2
三角形面积=sqrt(p*(p-a)*(p-b)*(p-c))

------解决方案--------------------
4.是不是我的这个类根本的思路就不对?

不能说不对,不过这个类看上去的确很“死板”。
风格属于典型的结构化编程产物。
功能不够灵活。

你可以想象你的桌面上现在有一个“智能”的三角形“对象”的“实例”。
你可以改变它的某些属性,包括但不限于三条边的长度,三个角的角度,周长属性,面积属性。
每当你改变其中的某个属性,桌面上的三角形就会自动调整。

海伦公式也好,正余弦定理也罢,编写一个auto_update过程,再只要GET/SET上述属性调用即可。
------解决方案--------------------
貌似构造函数中有3个都是参数个数和类型完全相同……
------解决方案--------------------
用海伦公式求面积最简单。
------解决方案--------------------
这样全是全,可能用在教学三角形上挺好。实际用不必这样,根据实际应用可以更简单,如求面积海伦公式足以。
------解决方案--------------------
其实针对楼主的这个问题,可以简单化。

比如归纳为已知三个边的长度,可以唯一确定一个三角形(三角形全等定理)。所以你唯一需要判断的就是这三个边能否确定一个三角形。可根据两边之和大于第三边;两边之后小于第三边来确定。

然后剩下的就是海伦定理求面积,已经三边相加求周长。


所以不用搞得那么复杂,管它什么等腰还是等边。
------解决方案--------------------
float没有问题,边和角都是实数集合。
你的计算处理都在构造函数里完成了,还设置set方法有什么用?
我觉得楼主可以对整体设计改一下,用一个abstract类做父类,其余的五个做子类继承。还有最好把计算处理的代码从构造函数里分离出来另做一个函数。
------解决方案--------------------
我觉得,如果你这个三角形是经常变的话,那么它的成员不需要那么多;
正如你写的构造函数一样,可以只要三边,或者两边及夹角就好了(有了些条件,三角形就唯一确定了)。
这样的话,需要做的就是(以三边为例):
1. 写构造的时候要把不是以三边为参数的构造函数把三边计算出来
2. 写出getter时,不是取三边的话,都要用运算,如取周长就返回a+b+c
3. 写setter的时候,如是允许set角度,也是要把变化的边计算出来设回去

...
------解决方案--------------------
1、构造函数应该要能够检查不可能的条件,并抛出异常。这个前面已经有人说了
2、成员的数量,一般只要保存3条边的长度就可以确定三角形的属性了,不需要保存角度信息。在数据量的应用中,可以用时间来换取空间。lz可以权衡取舍
3、如果是我来做这个class,我会做成只有getter,没有setter,三角形的属性,只能读,不能改,这样可以简化类的定义。可以参考字符串类的做法来实现属性的变化:obj=obj.modify(),函数复杂根据变化的内容,重新构造一个对象并返回,而不是直接在原对象上修改
------解决方案--------------------
谢谢楼主啊,这个刚好是我们今天的作业
------解决方案--------------------
虽然目前对我没用,但是我还是收藏下
------解决方案--------------------
求面积用海轮公式: 
已知三角形三边长为a,b,c. 
周长的一半p = (a+b+c)/2 
三角形面积=sqrt(p*(p-a)*(p-b)*(p-c)) 
 

这个方法更实用一点,当然前提是这个是三角形,要是连三角形都不是那么(a+b>=c||a-b<=c)
------解决方案--------------------
探讨
4.是不是我的这个类根本的思路就不对?

不能说不对,不过这个类看上去的确很“死板”。
风格属于典型的结构化编程产物。
功能不够灵活。

你可以想象你的桌面上现在有一个“智能”的三角形“对象”的“实例”。
你可以改变它的某些属性,包括但不限于三条边的长度,三个角的角度,周长属性,面积属性。
每当你改变其中的某个属性,桌面上的三角形就会自动调整。

海伦公式也好,正余弦定理也罢,编写一个auto_…

------解决方案--------------------
好 谢谢楼主分享
------解决方案--------------------
1)缺少等腰三角形的构造方法;
2)其中2和4可以合并成一个方法,在方法内部判断这个角度的值;
3)3中应该加入判断三条边是否可以构成三角形;

------解决方案--------------------

文章评论

中美印日四国程序员比较
中美印日四国程序员比较
我是如何打败拖延症的
我是如何打败拖延症的
10个调试和排错的小建议
10个调试和排错的小建议
为什么程序员都是夜猫子
为什么程序员都是夜猫子
鲜为人知的编程真相
鲜为人知的编程真相
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
 程序员的样子
程序员的样子
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
程序员应该关注的一些事儿
程序员应该关注的一些事儿
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
Java程序员必看电影
Java程序员必看电影
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
漫画:程序员的工作
漫画:程序员的工作
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
我的丈夫是个程序员
我的丈夫是个程序员
老程序员的下场
老程序员的下场
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
程序员的鄙视链
程序员的鄙视链
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
程序员必看的十大电影
程序员必看的十大电影
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
每天工作4小时的程序员
每天工作4小时的程序员
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
程序员都该阅读的书
程序员都该阅读的书
编程语言是女人
编程语言是女人
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
旅行,写作,编程
旅行,写作,编程
那些争议最大的编程观点
那些争议最大的编程观点
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
总结2014中国互联网十大段子
总结2014中国互联网十大段子
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有