中易网

刚开始学c++,有道题目请教高人

答案:2  悬赏:40  
解决时间 2021-04-18 16:40
把定义直角坐标系上的一个点的类作为基类,派生出一个描述一条直线的类(两点坐标确定一直线再派生出三角类(三点坐标确定一个三角形)。要求成员函数能求出两点间的距离、三角形的周长和面积。设计一个测试程序,并构成一个 完整的程序。
最佳答案
这个,个人作为从点到直线应该是包含的关系吧,虽然用多重继承也能从继承的角度来实现你要求的,不过这总给我感觉怪怪的。程序就不贴了~~~反正觉得程序很怪
如果楼主需要包含关系的代码的话,我再写好了~~~
全部回答
写好了,没错误 #include <iostream>#include <cmath>using namespace std; class shape{public: virtual ~shape(){} virtual double area()=0;}; class circle:public shape{public: circle(double a,double b,double c):x(a),y(b),r(c){} double area(){return 3.14*r*r;}private: double x,y,r; }; class rect:public shape{public: rect(double a,double b,double c,double d):x(a),y(b),m(c),n(d){} double area(){return abs(x-m)*abs(y-n);}private: double x,y,m,n; }; class triangle:public shape{public: triangle(double a,double b,double c,double d,double e,double f):x(a),y(b),m(c),n(d),p(e),q(f){} double area();private: double x,y,m,n,p,q; }; double triangle::area(){ double a,b,c; a=sqrt((x-m)*(x-m)+(y-n)*(y-n)); b=sqrt((x-p)*(x-p)+(y-q)*(y-q)); c=sqrt((p-m)*(p-m)+(q-n)*(q-n)); p=(a+b+c)/2; return sqrt(p*(p-a)*(p-b)*(p-c));} int main(){ double a,b,c,d,e,f; char s; shape *p; while(cin>>s) { if(s=='c'){ cin>>a>>b>>c; p=new circle(a,b,c); cout<<p->area()<<endl; } else if(s=='t'){ cin>>a>>b>>c>>d>>e>>f; p=new triangle(a,b,c,d,e,f); cout<<p->area()<<endl; } else if(s=='r'){ cin>>a>>b>>c>>d; p=new rect(a,b,c,d); cout<<p->area()<<endl; } }}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
地下城与勇士鬼泣转剑魂任务到哪接
男人多少岁才是事业发展的最佳时期?
我要格式化空间怎么做啊 就是跟没开同的时候
qq英雄岛下载完 安装的叫什么?
小村庄发生了什么变化?原因是?
即墨日本快递,哪家快且便宜?
网事网茶网咖地址在哪,我要去那里办事
手机QQ怎么登不上去了?
我一个网站是SQL的数据库,空间不支持SQL,怎
三周岁六个月宝宝视力值是多少
成都哪里有好一点的婴幼儿游泳馆啊。有的话多
顺辉瓷砖好吗 顺辉瓷砖优势介绍
一岁半宝宝大便有点发白怎么回事
家装墙面做金色的缝好看吗
开个鲜花店需要具备些什么
推荐资讯
爱学习的孩子能带来哪些改变
转基因大米对人有什么危害
在哪里买幼儿园教材?
麻屋子、红帐子、里面坐个白胖子!是什么?
爱回忆的人,脚步总比别人慢一些。什么意思
男朋友不给我打电话发短信
交通事故伤残鉴定十级超过多长时间法院不受理
热感冒吃什么药来地快?
电脑在线视频卡顿,怎么回事?
求数码相机电池充电的正确方法
液化气灶和天然气灶有什么不同吗
北京恩派公司总代理地址在哪,我要去那里办事
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?