第六周实验指导--任务四--设计一个三角形类,能够输入三角形的三个顶点,求出其面积、周长。
2012-03-26 17:58
429 查看
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:设计一个三角形类,能够输入三角形的三个顶点,求出其面积、周长,并判断其是否为直角三角形和等腰三角形。
* 作 者: 雷恒鑫
* 完成日期: 2012 年 03 月 26 日
* 版 本 号: V1.0
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述:
* 程序输出:
* 程序头部的注释结束
*/
运行结果:
经验积累:
1.我学会了如何进行对象的常引用。
以下是改进的程序:
运行结果:
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:设计一个三角形类,能够输入三角形的三个顶点,求出其面积、周长,并判断其是否为直角三角形和等腰三角形。
* 作 者: 雷恒鑫
* 完成日期: 2012 年 03 月 26 日
* 版 本 号: V1.0
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述:
* 程序输出:
* 程序头部的注释结束
*/
#include<iostream> #include<cmath> using namespace std; class CPoint { private: double x; // 横坐标 double y; // 纵坐标 public: CPoint(double xx=0,double yy=0); float getx(); float gety(); }; class CTriangle { public: CTriangle(CPoint &X,CPoint &Y,CPoint &Z,int i=0):A(X),B(Y),C(Z),i(i){} //给出三点的构造函数 void setTriangle(CPoint &X,CPoint &Y,CPoint &Z); float perimeter(void);//计算三角形的周长 float area(void);//计算并返回三角形的面积 void isRightTriangle(); //是否为直角三角形 void isIsoscelesTriangle(); //是否为等腰三角形 void Distance(CPoint &p,CPoint &q) ; // 两点之间的距离(一点是当前点,另一点为参数p) float CTriangle::Distance1(CPoint &p,CPoint &q); private: CPoint A,B,C; //三顶点 float bian[3]; int i; }; void main() { CPoint c1(0,0),c2(0,1),c3(1,0); CTriangle m(c1,c2,c3); m.setTriangle(c1,c2,c3); m.Distance(c1,c2); m.Distance(c1,c3); m.Distance(c2,c3); cout<<"三角形的周长为:"<<m.perimeter()<<endl;//计算三角形的周长 cout<<"三角形的面积为:"<<m.area()<<endl;//计算并返回三角形的面积 m.isRightTriangle(); //是否为直角三角形 m.isIsoscelesTriangle(); //是否为等腰三角形 system("PAUSE"); } float CPoint::getx() { return x; } float CPoint::gety() { return y; } CPoint::CPoint(double xx,double yy) { x=xx; y=yy; } void CTriangle::Distance(CPoint &p,CPoint &q) { bian[i]=sqrt((p.getx()-q.getx())*(p.getx()-q.getx())+(p.gety()-q.gety())*(p.gety()-q.gety())); ++i; } float CTriangle::Distance1(CPoint &p,CPoint &q) { bian[i]=(p.getx()-q.getx())*(p.getx()-q.getx())+(p.gety()-q.gety())*(p.gety()-q.gety()); ++i; return bian[i-1]; } float CTriangle::perimeter(void)//计算三角形的周长 { float s=0; --i; s=s+bian[i]+bian[i-1]+bian[i-2]; return s; } float CTriangle::area(void) //计算并返回三角形的面积 { float s,m; int i=0; m=(bian[i]+bian[i+1]+bian[i+2])/2; s=sqrt(m*(m-bian[i])*(m-bian[i+1])*(m-bian[i+2])); return s; } void CTriangle::isRightTriangle() //是否为直角三角形 { i=0; float m,n,c; m=Distance1(A,B); n=Distance1(A,C); c=Distance1(B,C); // m=bian[i]; // n=bian[i+1]; // c=bian[i+2]; if((m+n)==c||(m+c)==n||(c+n)==m) { cout<<"此三角形为直角三角形"<<endl; } else { cout<<"此三角形不是直角三角形"<<endl; } } void CTriangle::isIsoscelesTriangle() //是否为等腰三角形 { float m,n,c; i=0; m=bian[i]; n=bian[i+1]; c=bian[i+2]; if(m==n||m==c||n==c) { cout<<"此三角形为等腰三角形"<<endl; } else { cout<<"此三角形不是等腰三角形"<<endl; } } void CTriangle::setTriangle(CPoint &X,CPoint &Y,CPoint &Z) { A=X; B=Y; C=Z; }
运行结果:
经验积累:
1.我学会了如何进行对象的常引用。
以下是改进的程序:
#include<iostream> #include<cmath> using namespace std; class CPoint { private: double x; // 横坐标 double y; // 纵坐标 public: CPoint(double xx=0,double yy=0); double getx(); double gety(); }; class CTriangle { public: CTriangle(CPoint &X,CPoint &Y,CPoint &Z,int i=0):A(X),B(Y),C(Z),i(i){} //给出三点的构造函数 void setTriangle(CPoint &X,CPoint &Y,CPoint &Z); float perimeter(void);//计算三角形的周长 float area(void);//计算并返回三角形的面积 void isRightTriangle(); //是否为直角三角形 void isIsoscelesTriangle(); //是否为等腰三角形 void Distance(CPoint &p,CPoint &q) ; // 两点之间的距离(一点是当前点,另一点为参数p) float CTriangle::Distance1(CPoint &p,CPoint &q); private: CPoint A,B,C; //三顶点 float bian[3]; int i; }; void main() { CPoint c1(1,1),c2(4,1),c3(1,5); cout<<"您为三角形的三个顶点赋的初值的初值为:"; cout<<"("<<c1.getx<<","<<c1.gety<<")"; cout<<"("<<c2.getx<<","<<c2.gety<<")"; cout<<"("<<c3.getx<<","<<c3.gety<<")"<<endl; CTriangle m(c1,c2,c3); m.setTriangle(c1,c2,c3); m.Distance(c1,c2); m.Distance(c1,c3); m.Distance(c2,c3); cout<<"三角形的周长为:"<<m.perimeter()<<endl;//计算三角形的周长 cout<<"三角形的面积为:"<<m.area()<<endl;//计算并返回三角形的面积 m.isRightTriangle(); //是否为直角三角形 m.isIsoscelesTriangle(); //是否为等腰三角形 system("PAUSE"); } double CPoint::getx() { return x; } double CPoint::gety() { return y; } CPoint::CPoint(double xx,double yy) { x=xx; y=yy; } void CTriangle::Distance(CPoint &p,CPoint &q) { bian[i]=sqrt((p.getx()-q.getx())*(p.getx()-q.getx())+(p.gety()-q.gety())*(p.gety()-q.gety())); ++i; } float CTriangle::Distance1(CPoint &p,CPoint &q) { bian[i]=(p.getx()-q.getx())*(p.getx()-q.getx())+(p.gety()-q.gety())*(p.gety()-q.gety()); ++i; return bian[i-1]; } float CTriangle::perimeter(void)//计算三角形的周长 { float s=0; --i; s=s+bian[i]+bian[i-1]+bian[i-2]; return s; } float CTriangle::area(void) //计算并返回三角形的面积 { float s,m; int i=0; m=(bian[i]+bian[i+1]+bian[i+2])/2; s=sqrt(m*(m-bian[i])*(m-bian[i+1])*(m-bian[i+2])); return s; } void CTriangle::isRightTriangle() //是否为直角三角形 { i=0; float m,n,c; m=Distance1(A,B); n=Distance1(A,C); c=Distance1(B,C); // m=bian[i]; // n=bian[i+1]; // c=bian[i+2]; if((m+n)==c||(m+c)==n||(c+n)==m) { cout<<"此三角形为直角三角形"<<endl; } else { cout<<"此三角形不是直角三角形"<<endl; } } void CTriangle::isIsoscelesTriangle() //是否为等腰三角形 { float m,n,c; i=0; m=bian[i]; n=bian[i+1]; c=bian[i+2]; if(m==n||m==c||n==c) { cout<<"此三角形为等腰三角形"<<endl; } else { cout<<"此三角形不是等腰三角形"<<endl; } } void CTriangle::setTriangle(CPoint &X,CPoint &Y,CPoint &Z) { A=X; B=Y; C=Z; }
运行结果:
相关文章推荐
- 第六周实验指导--任务五--设计一个三角形类,能够输入三角形的三个顶点,求出其面积、周长。
- 第六周实验报告 任务4 设计一个三角形类 输入三角形的三个顶点 求面积周长
- 《C++第六周实验报告4-1》---设计一个三角形类,能够输入三角形的三个顶点,求出其面积、周长,并判断其是否为直角三角形和等腰三角形。
- C++第六周任务4设计一个三角形类,能够输入三角形的三个顶点,求出其面积、周长,并判断其是否为直角三角形和等腰三角形。
- 第六周任务四设计一个三角形类,能够输入三角形的三个顶点,求出其面积、周长,并判断其是否为直角三角形和等腰三角形。
- 设计一个三角形类,能够输入三角形的三个顶点,求出其面积、周长,并判断其是否为直角三角形和等腰三角形
- 设计一个三角形类,能够输入三角形的三个顶点,求出其面积、周长,并判断其是否为直角三角形和等腰三角形。
- 第六周任务四。用三角形的三个顶点 求出其面积 周长
- 第六周实验指导--任务3--设计平面坐标点类,计算两点之间距离
- 一个窗口,用户输入三个数,你判断能否构成三角形以及面积
- JAVA--第五周实验--任务1--封装一类三角形对象Triangle,并实现一些求周长求面积的功能。
- C#--第10周实验--任务2--设计一个窗体--文本框只能输入0至9这十种数字,且长度最多8个
- 第十三周实验--任务4--设计一个抽象类CSolid,含有两个求表面积及体积的纯虚函数。
- 输入三个坐标,判断能否构成三角形,如果能,输出其周长和面积。
- 利用5个标签,4个文本框,2个按钮,自己设计布局实现输入三边求三角形面积。界面如下所示。三角形类的编写可以使用实验4中已经写过的三角形类,当点击“判断三边”时,若能构成三角形,在标签5上显示“可以构成三角形!”,如不能构成三角形,在标签5上显示“不能构成三
- 一个抽象类Shape 里边有两个抽象方法 计算面积 和 周长; Shape由三角形和圆形继承,利用多态的特性设计完成不同子类的功能
- 第十二周实验指导--任务三--设计一个在下面一段类的定义中,自行车类的虚基类为车辆类,机动车类的虚基类也为车辆类,摩托车类的基类为自行车类和机动车类,类之间均为公有继承
- 一个简单的C++程序:输入三角形3边,求其周长
- 十三周任务四:设计一个抽象类CSolid,含有两个求表面积及体积的纯虚函数
- 第13周任务4(设计一个抽象类CSolid,含有两个求表面积及体积的纯虚函数。设计个派生类CCube、CBall、CCylinder,分别表示正方体、球体及圆柱体)