第六周项目3-多文件三角形类

来源:互联网 发布:工程量清单软件 编辑:程序博客网 时间:2024/06/04 20:15
/**程序的版权和版本声明部分:*Copyright(c)2014,烟台大学计算机学院学生*All rights reserved.*文件名称:*作者:田成琳*完成日期:2014  年 4 月 1 日*版本号:v1.0*对任务及求解方法的描述部分:*输入描述:三个点坐标*问题描述:本项目设计一个三角形类,其数据成员不再是三角形三条边的边长,而是三角形的三个顶点。           利用设计的三角形类,输入三角形的三个顶点,求出其面积、周长,并判断其是否为直角三角形和等腰三角形。*程序输出:- -*问题分析:*算法设计:*/#include <iostream>#include"cpoint.h"#include"ctriangle.h" using namespace std; int main(){CPoint a,b,c;CTriangle CT(a,b,c);cout<<"请输入3点坐标:"<<endl;a.input();b.input();c.input();CT.setTriangle(a,b,c);CT.setBianChang();cout<<"三角形周长为:"<<endl;cout<<CT.perimeter()<<endl;cout<<"三角形面积为:"<<endl;cout<<CT.area()<<endl;if(CT.isIsoscelesTriangle())cout<<"是等腰三角形。"<<endl;elsecout<<"不是等腰三角形。"<<endl;if(CT.isRightTriangle())cout<<"是直角三角形。"<<endl;elsecout<<"不是直角三角形。"<<endl;return 0;}#ifndef CPOINT_H#define CPOINT_H#include<iostream>using namespace std;class CPoint{private:  double x;  // 横坐标  double y;  // 纵坐标public:  CPoint(double xx=0,double yy=0):x(xx),y(yy){}  double Distance(CPoint p) const;   // 两点之间的距离(一点是当前点,另一点为参数p)  void input(){cin>>x>>y;}  //以x,y 形式输入坐标点};#endif#include"CPoint.h"#include<cmath>double CPoint::Distance(CPoint p) const{return sqrt(pow(x-p.x,2)+pow(y-p.y,2));}#ifndef CTRANGLE_H#define CTRANGLE_H#include"CPoint.h"class CTriangle{public:  CTriangle(CPoint &X,CPoint &Y,CPoint &Z):A(X),B(Y),C(Z){} //给出三点的构造函数  void setTriangle(CPoint &X,CPoint &Y,CPoint &Z){A=X;B=Y;C=Z;}  void setBianChang();  float perimeter();      //计算三角形的周长  float area();            //计算并返回三角形的面积  bool isRightTriangle();  //是否为直角三角形  bool isIsoscelesTriangle(); //是否为等腰三角形private:  CPoint A,B,C; //三顶点  double a,b,c; //三边长};#endif#include "CTriangle.h"#include"CPoint.h"#include<cmath>void CTriangle::setBianChang(){a=A.Distance(B);b=A.Distance(C);c=B.Distance(C);}float CTriangle::perimeter(){return a+b+c;}float CTriangle::area(){  float s,p;p=(a+b+c)/2;s=sqrt(p*(p-a)*(p-b)*(p-c));return s;}bool CTriangle::isRightTriangle(){if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)return true;else return false;}bool CTriangle::isIsoscelesTriangle(){if(a==b||a==c||b==c)return true;elsereturn false;}

运行结果:

心得体会:~

0 0
原创粉丝点击