第五周项目3 用文件组织多个类的程序
来源:互联网 发布:日本网络电视直播apk 编辑:程序博客网 时间:2024/06/18 06:13
/**Copyright (c)2015,烟台大学计算机与控制工程学院*All rights reserved.*文件名称:score.cpp*作 者:惠睿*完成日期:2015年4月8日*版 本 号:v1.0**问题描述:设计一个三角形类,数据成员为三角形的三个顶点,求出其面积,周长,并判断其是否为直角三角形,和等腰三角形。*程序输入:输入三角形的三个顶点。*程序输出:输出三角形的面积,周长,是否为等腰三角形和直角三角形。*/#include <iostream>#include "CPoint.h"using namespace std;int main(){ double Area,Perimeter; CPoint p1,p2,p3; p1.input(); p2.input(); p3.input(); CTriangle c(p1,p2,p3); Perimeter=c.perimeter(); cout<<"三角形的周长为:"<<Perimeter<<endl; Area=c.area(); cout<<"三角形的面积为:"<<Area<<endl; if(c.isRightTriangle()) cout<<"该三角形是直角三角形!"<<endl; else cout<<"该三角形不是直角三角形!"<<endl; if(c.isIsoscelesTriangle()) cout<<"该三角形是等腰三角形!"<<endl; else cout<<"该三角形不是等腰三角形!"<<endl; return 0;}#ifndef CPOINT_H_INCLUDED#define CPOINT_H_INCLUDEDclass CPoint{private: double x; double y;public: CPoint(double xx=0,double yy=0); double distance(CPoint p) const; void input();};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;};#endif // CPOINT_H_INCLUDED#include <iostream>#include <cmath>#include "CPoint.h"using namespace std;CPoint::CPoint(double xx,double yy){ x=xx; y=yy;}double CPoint::distance(CPoint p) const{ double dx,dy,d; dx=p.x-x; dy=p.y-y; d=sqrt(dx*dx+dy*dy); return d;}void CPoint::input(){ char a; cout<<"请输入三角形的三个顶点格式(x,y):"; cin>>x>>a>>y; if(a!=',') cout<<"格式错误,请重新输入!"<<endl;}#include "CPoint.h"#include <cmath>void CTriangle::setTriangle(CPoint &X,CPoint &Y,CPoint &Z){ A=X; B=Y; C=Z;}double CTriangle::perimeter(void){ double a=B.distance(C),b=A.distance(C),c=A.distance(B); return a+b+c;}double CTriangle::area(void){ double a=B.distance(C),b=A.distance(C),c=A.distance(B),s=(a+b+c)/2; return sqrt(s*(s-a)*(s-b)*(s-c));}bool CTriangle::isRightTriangle(){ double a=B.distance(C),b=A.distance(C),c=A.distance(B); bool RightTriangle=false; if((a*a+c*c==b*b) || (b*b+c*c==a*a) || (a*a+b*b==c*c)) RightTriangle=true; else ; return RightTriangle;}bool CTriangle::isIsoscelesTriangle(){ double a=B.distance(C),b=A.distance(C),c=A.distance(B); if(a==b || a==c || b==c) return true; else return false;}
运行结果:
0 0
- 第五周 【项目3-用多文件组织多个类的程序】
- 第五周项目3-用多文件组织多个类的程序
- 第五周 项目3-用多文件组织多个类的程序
- 第五周项目3 用文件组织多个类的程序
- 第五周 项目3-用多文件组织多个类的程序
- 第五周项目3-用多文件组织多个类的程序
- 第五周项目3:用多文件组织多个类的程序
- 第五周项目3 用多文件组织多个类的程序
- 第五周项目3-多文件组织多个类的程序
- 第五周项目3 勇夺文件组织多个类的程序
- 第五周项目三:-用多文件组织多个类的程序
- 第五周 项目三--用多文件组织多个类的程序
- 第五周项目:用多文件组织多个类的程序
- 第五周项目三 用多文件组织多个类的程序
- 第五周项目三 用多文件组织多个类的程序
- 第五周 项目三 用多文件组织多个类的程序
- 第五周项目3-用多文件组织多个类的项目
- 第五周上机实践项目3——用多文件组织多个类的程序
- 第五周 阅读程序(3)
- 第五周阅读程序三
- Windows7下安装Ubuntu双系统
- 互联网人才真的抢疯了,大家先冷静一下?
- 第5周项目1-体验常成员函数
- 第五周项目3 用文件组织多个类的程序
- 大一第二学期第5周【程序阅读(5)】
- 消息队列之JMS和AMQP对比
- 用多文件组织多个类的程序-三角形类
- AndroidStudio使用技巧--关联源码
- 金融tag对照表
- 【POJ 2406】 Strings
- 大一第二学期第5周【程序阅读(6)】
- SUSE linux 配置 Xmanager登录方法