第5周项目2对象作为数据成员
来源:互联网 发布:access数据库窗体查询 编辑:程序博客网 时间:2024/05/21 09:08
编号及代码:/**Copyright(c)2015,烟台大学计算机与工程学院*All rights reserved;*文件名称:score.cpp*作者:范星月*完成日期:2015年3月16日*版本号:v1.0**问题描述:本项目设计一个三角形类,其数据成员不再是三条边的边长,而是三角形的三个顶点,利用设计的三角形类,输入三角形的三个顶点,求出其面积,周长,并判断其是否为直角三角形和等腰三角形*问题输入:无*问题输出:如下*/#include <iostream>#include<cmath>using namespace std;class CPoint{private: double x; double y;public: CPoint (double xx=0,double yy=0); double distance1(CPoint p)const ;//两点之间的距离 void input();//以x,y形式输入点坐标 void output();//以(x,y)形式输出点坐标};class CTriangle{public: CTriangle (CPoint&x,CPoint &y,CPoint&z):A(x),B(y),C(z){} void setTriangle(CPoint&x,CPoint &y,CPoint&z); double perimeter(void); double area(void); bool isRightTriangle(); bool isIsoscelesTriangle();private: CPoint A,B,C;};CPoint::CPoint (double xx,double yy){ x=xx; y=yy;}void CPoint::input(){ char ch; while(1) { cin>>x>>ch>>y; if(ch==',')break; else cout<<"请重新输入"<<endl; }}void CPoint::output(){ cout<<"("<<x<<","<<y<<")"<<endl;}double CPoint::distance1(CPoint p)const //两点之间的距离{ double d; d=sqrt((p.x-x)*(p.x-x)+(p.y-y)*(p.y-y)); return d;} void CTriangle::setTriangle(CPoint&x,CPoint &y,CPoint&z) { A=x; B=y; C=z; }double CTriangle::perimeter() { double a=B.distance1(C),b=C.distance1(A),c=A.distance1(B); return (a+b+c); }double CTriangle::area(void) { double a=B.distance1(C),b=C.distance1(A),c=A.distance1(B); double s=(a+b+c)/2; return sqrt(s*(s-a)*(s-b)*(s-c)); } bool CTriangle::isRightTriangle() { double a=B.distance1(C),b=C.distance1(A),c=A.distance1(B); double max=a; if(b>max)max=b; if(c>max)max=c; if(((max==a)&&(abs(a*a-b*b-c*c)<1e-7))||((max==b)&&(abs(b*b-a*a-c*c)<1e-7))||((max==c)&&(abs(c*c-a*a-b*b)<1e-7))) return true; else return false; } bool CTriangle::isIsoscelesTriangle() { double a=B.distance1(C),b=C.distance1(A),c=A.distance1(B); if((abs(a-b)<1e-7)||(abs(b-c)<1e-7)||(abs(a-c)<1e-7)) return true; else return false; }int main(){ CPoint x(0,0),y(1,0),z(0,2); CTriangle Tri1(x,y,z); cout<<"该三角形的周长是:"<<Tri1.perimeter()<<endl; cout<<"该三角形"<<(Tri1.isIsoscelesTriangle()?"是":"不是")<<"等腰三角形"<<endl; cout<<"该三角形"<<(Tri1.isRightTriangle()?"是":"不是")<<"直角三角形"<<endl; return 0;}
学习总结:问题需要两个类
0 0
- 第5周项目2-对象成员作为数据成员
- 第5周项目2-对象成员作为数据成员
- 第5周项目【项目2 - 对象作为数据成员】
- 第5周项目2对象作为数据成员
- 第5周项目2对象作为数据成员
- 2015-第5周项目2-对象作为数据成员
- 第5周项目2-对象作为数据成员
- 第5周项目2-对象作为数据成员
- 第5周项目2对象作为数据成员
- 第5周项目2 对象作为数据成员
- 第5周项目2——对象作为数据成员
- 第06周:项目二:对象作为数据成员
- 第4周项目3-对象作为数据成员
- 第四周项目2——对象作为数据成员
- 第四周项目 2 对象作为数据成员
- 第5周项目3对象作为数据成员(多文件组织)
- C++第6周(春)项目2 对象作为数据成员
- 第4周-项目2-对象作为数据成员-三角形类
- 【GlusterFS学习之一】:GlusterFS分布式文件系统的基本概念及搭建
- mybatis之初体验——helloworld
- 【c语言】验证计算机是大端存储还是小端存储
- C++友元类
- 【GlusterFS学习之三】:GlusterFS的audit operation xlator设计实现方案
- 第5周项目2对象作为数据成员
- Python图形用户界面
- HDU 2510--符号三角形【DFS】
- android振动效果的实现
- IP协议和IP选路
- 项目第一个安卓APP之第一个Activety
- C# 中的 == 和 equals()有什么区别?/java中==和equals和hashCode的理解
- PAT--六度空间 (30)--vector数组表示图
- (others)编写PPPOE数据包