第五周上机实践项目3——用多文件组织多个类的程序
2015-04-05 14:02
615 查看
问题及代码
main.cpp
cpointtriangle.h
fun.cpp
main.cpp
/* * Copyright (c) 2015, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作 者:辛彬 * 完成日期:2015 年 4 月 5 日 * 版 本 号:v1.0 * * 问题描述:设计一个三角形类(多文件)。 * 输入描述:平面坐标。 * 程序输出:面积、周长,并判断其是否为直角三角形和等腰三角形。 */ #include <iostream> #include "cpointtriangle.h" using namespace std; int main() { CPoint a1,a2,a3; cout<<"输入第一个点:"; a1.input(); cout<<"输入第二个点:"; a2.input(); cout<<"输入第三个点:"; a3.input(); CTriangle a; a.setTriangle(a1,a2,a3); cout<<"三角形的周长为:"<<a.perimeter()<<endl; cout<<"面积为:"<<a.area()<<endl; if(a.isRightTriangle()) cout<<"此三角形为直角三角形"<<endl; if(a.isIsoscelesTriangle()) cout<<"此三角形为等腰三角形"; return 0; }
cpointtriangle.h
#ifndef CPOINTTRIANGLE_H_INCLUDED #define CPOINTTRIANGLE_H_INCLUDED class CPoint { private: double x; // 横坐标 double y; // 纵坐标 public: double Distance1(CPoint p) const; //两点之间的距离(一点是当前点——想到this了吗?,另一点为p) double Distance0() const; // 到原点(0,0)的距离 void input(); //以x,y 形式输入坐标点 void output(); //以(x,y) 形式输出坐标点 }; class CTriangle { public: void setTriangle(CPoint &X,CPoint &Y,CPoint &Z);// float perimeter(void);//计算三角形的周长 float area(void);//计算并返回三角形的面积 bool isRightTriangle(); //是否为直角三角形 bool isIsoscelesTriangle(); //是否为等腰三角形 private: CPoint A,B,C; //三顶点 double a,b,c; }; #endif // CPOINTTRIANGLE_H_INCLUDED
fun.cpp
#include <iostream> #include <cmath> #include "cpointtriangle.h" double CPoint::Distance1(CPoint p) const { double dx=x-p.x,dy=y-p.y; return sqrt(dx*dx+dy*dy); } double CPoint::Distance0() const { return sqrt(x*x+y*y); } void CPoint::input() { char e; double xx,yy; std::cin>>e>>xx>>e>>yy>>e; x=xx; y=yy; } void CTriangle::setTriangle(CPoint &X,CPoint &Y,CPoint &Z) { A=X; B=Y; C=Z; } float CTriangle::perimeter() { double a,b,c; a=A.Distance1(B); b=B.Distance1(C); c=C.Distance1(A); return a+b+c; } float CTriangle::area() { double a,b,c; a=A.Distance1(B); b=B.Distance1(C); c=C.Distance1(A); double p=(a+b+c)/2; return sqrt(p*(p-a)*(p-b)*(p-c)); } bool CTriangle::isRightTriangle() { double t; if(a>b) { t=b; b=a; a=t; } if(b>c) { t=c; c=b; b=t; } if(a*a+b*b==c*c) return true; else return false; } bool CTriangle::isIsoscelesTriangle() { if(a==b||a==c||b==c) return true; else return false; }
相关文章推荐
- 第五周上机实践项目3-用多文件组织多个类的程序
- 第五周 课后实践:项目四——用多文件组织多个类的程序
- 第四周上机实践项目——程序的多文件组织
- 数据结构上机实践第二周项目2- 程序的多文件组织
- 第六周上机实践项目——用多文件组织多个类的程序
- 第11周上机实践项目3——程序的多文件组织
- 第七周上机实践项目3:文件组织多个程序类
- 第七周上机实践项目——项目3-用多文件组织多个类的程序
- 第三周上机实践项目3——程序的多文件组织
- 第五周上机项目3 用多文件组织多个类的程序
- 第五周 课后实践:项目三——用多文件组织多个类的程序
- 第五周项目三 用多文件组织多个类的程序(项目二)
- 第五周项目3-多文件组织多个类的程序
- 第五周项目3 用文件组织多个类的程序
- 第五周项目3-用多文件组织多个类的程序
- 15第五周项目三——用多文件组织多个类的程序
- 第五周项目三 程序的多文件组织
- 第五周项目3-用多文件组织多个类的程序
- 第五周【项目3-程序的多文件组织】
- 2015年第五周项目三:用多文件组织多个类的程序