多文件操作点和三角形类

来源:互联网 发布:最新网民数据 编辑:程序博客网 时间:2024/06/07 00:49
/**程序的版权和版本声明部分:*Copyright(c)2013,烟台大学计算机学院学生*All rights reserved.*文件名称:*作者:尚振伟*完成日期:2014年4月1日*版本号:v0.1*对任务及求解方法的描述部分:*输入描述:无*问题描述:*程序输入:*程序输出:*问题分析:*算法设计:*我的程序:*/#include <iostream>#include <cmath>#include "zxc.h"using namespace std;int main(){    CPoint a,b,c;    cout<<"请输入三点坐标:"<<endl;    a.input();    b.input();    c.input();    CTriangle t(a,b,c);    cout<<"三角形的面积为:";    cout<<t.area()<<endl;    cout<<"三角形的周长为:";    cout<<t.perimeter()<<endl;    if(t.isRightTriangle())    {        cout<<"是直角三角形"<<endl;    }    else    {        cout<<"不是直角三角形"<<endl;    }    if(t.isIsoscelesTriangle())    {        cout<<"是等腰三角形"<<endl;    }    else    {        cout<<"不是等腰三角形"<<endl;    }    return 0;}


声明类部分:

#ifndef ZXC_H_INCLUDED#define ZXC_H_INCLUDEDclass CPoint{public:    CPoint(double xx=0,double yy=0);    double Distance(CPoint p) const;    void input();private:    double x;    double 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);//    float perimeter(void);//计算三角形的周长    float area(void);//计算并返回三角形的面积    bool isRightTriangle(); //是否为直角三角形    bool isIsoscelesTriangle(); //是否为等腰三角形private:    CPoint A,B,C; //三顶点};#endif // ZXC_H_INCLUDED


定义函数部分:

#include <iostream>#include <cmath>#include "zxc.h"using namespace std;CPoint::CPoint(double xx,double yy){    x=xx;    y=yy;}double CPoint::Distance(CPoint p) const{    double d,m,n;    m=p.x-x;    n=p.y-y;    d=sqrt(m*m+n*n);    return d;}void CTriangle::setTriangle(CPoint &X,CPoint &Y,CPoint &Z){    A=X;    B=Y;    C=Z;}float CTriangle::perimeter(void){    double a,b,c;    a=A.Distance(B);    b=A.Distance(C);    c=B.Distance(C);    return (a+b+c);}float CTriangle::area(void){    double a,b,c,m,s;    a=A.Distance(B);    b=A.Distance(C);    c=B.Distance(C);    m=(a+b+c)/2;    s=sqrt(m*(m-a)*(m-b)*(m-c));    return s;}bool CTriangle::isRightTriangle(){    bool flag=false;    double a,b,c;    a=A.Distance(B);    b=A.Distance(C);    c=B.Distance(C);    if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)    {        flag=true;    }    else    {        flag=false;    }    return flag;}bool CTriangle::isIsoscelesTriangle(){    bool flag=false;    double a,b,c;    a=A.Distance(B);    b=A.Distance(C);    c=B.Distance(C);    if(a==b||a==c||b==c)    {        flag=true;    }    else    {        flag=false;    }    return flag;}void CPoint::input(){    cin>>x>>y;}


结果展示:

心得体会:好好学,一定能学好的。

0 0
原创粉丝点击