永发信息网

求高手解决C++编程题

答案:2  悬赏:10  手机版
解决时间 2021-04-24 06:49

  设计一个“点”类,含坐标值(x,y),即成员x、y。
  程序运行时由用户输入三个点,判断三点是否能构成一个三角形的三个顶点。如果不能构成则给予相应提示后退出;如果能构成再进一步判断是等边、等腰还是普通三角形,最后求其三角形的周长及面积并输出结果。
要求:
  用C++类实现,分别设计类:点类Point、主程序类Program(含主函数)。

紧急求助!希望大家帮忙,谢谢!

最佳答案

首先,不大明白你的"主程序类Program(含主函数)"是什么意思.. 不好意思..没领会.所以就只是定义了Point类.


其次,三角形的类型由于题目要求等边、等腰和普通三角形. 所以只判断等边,等腰.如果不是等边也不是等腰就归类到普通.


下面的程序通过测试. 代码如下:


#include <iostream>
#include<cmath>
using namespace std;


class Point
{
public:
Point(){x=0;y=0;}
Point(double a,double b){x=a;y=b;}
void set(){cout<<"输入坐标点:";cin>>x>>y;}



friend bool test(Point a,Point b,Point c);

friend void side(Point a,Point b,Point c,double s[]);
private:
double x,y;
};



bool test(Point a,Point b,Point c)
{
if((a.y-b.y)/(a.x-b.x)!=(b.y-c.y)/(b.x-c.x))
return true;
else
return false;
}



void side(Point a,Point b,Point c,double s[])
{
double p;
p=pow(a.x-b.x,2)+pow(a.y-b.y,2);
s[0]=sqrt(p);
p=pow(a.x-c.x,2)+pow(a.y-c.y,2);
s[1]=sqrt(p);
p=pow(b.x-c.x,2)+pow(b.y-c.y,2);
s[2]=sqrt(p);
}




void area(double s[])
{
if(s[0]==s[1]&&s[1]==s[2])
cout<<"等边三角形!"<<endl;

else if(s[0]==s[1]||s[0]==s[2]||s[1]==s[2])
cout<<"等腰三角形!"<<endl;

else
cout<<"普通三角形!"<<endl;


cout<<"三条边="<<s[0]<<"\t"<<s[1]<<"\t"<<s[2]<<endl;
double p=(s[0]+s[1]+s[2]);
cout<<"三角形周长="<<p<<endl;
p/=2;
double s_area=sqrt(p*(p-s[0])*(p-s[1])*(p-s[2]));
cout<<"面积="<<s_area<<endl;
}



int main()
{
Point a,b,c;
double s[3],*p=s;
a.set();
b.set();
c.set();


if(test(a,b,c)) //判断是否能够构成三角形.
{
side(a,b,c,s);
area(s);
}
else cout<<"无法构成三角形!"<<endl;
}


全部回答

哈哈 你这个是 老是 留的 题吧 我以前也写过的

这个其实很简单 你应该自己试着写写 解决不了的 再 问

你首先 得 弄明白 怎么 才能组成三角形 也就是 判断的 条件

相信 类 怎么写应该不用我说了 吧 在一个 就是

判断是 什么样的 三角形了

这个 只要 知道了 各个三角形的 特点 那么 也不难

其实 难得 不是 程序 是 思想

只要有思想了 就都能用程序表达 出来

相信自己 写写实再有不会的 地方法 再 问

32092823 我的 qq 我是个 学 编程的 学生 有什么 不会的 欢迎交流啊

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
好友邀请我开通牧场,为什么开通不了?
20-30女性朋友寂寞了怎么办
最近会来重庆开音乐会的有哪些?
田七花可以炖骨头汤吗
共裕宾馆怎么去啊,有知道地址的么
为什么人长大了就不喜欢看动画片?
马鞍山到九华山自驾一日游
缝针后没有拆完线怎么办
魔兽登陆问题
当喜欢和爱同在的时候,能分的开吗?
我的电脑换了个系统,为什么之前的我的文档里
河南周口天气怎样?
怎么哄男朋友,男朋友吃醋了,怎么哄?
我的电脑是VISTA的,昨天不小心把开始右面那
革兰阳性带荚膜的双球菌致病菌是什么
推荐资讯
游戏人生的荣誉点怎么样才能得到呢?
车内音响喇叭只有一边响是什么原
城建集团施工宣传标语,帮忙写个对公司开业二
如何破解别人的苹果手机id密码?自己捡的
佳木斯市区多大面积,佳木斯市花盆批发在哪有
终极三国是终极一家的后续吗?
上海财经大学出版社出版的《会计基础》第九章
我的空间看不到好友的说说,其他都可以
我的群怎么班级创始人怎么不是我呀?那我还有
pr cs4安装后提示"此产品的许可证已过期",怎
冒险岛40级夜行者攻击103-431正常么。。。
怎么才能不伤害自己心爱的人
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?