一个项目多文件组织

项目头文件:

#ifndef DSF_H_INCLUDED
#define DSF_H_INCLUDED

#include <iostream>
#include <cmath>
#include <stdlib.h>
#include "dsf.h"

using namespace std;

int M=1;                //累计input被 调用的次数决定提示语输出一次

class CPoint
{
private:
	double x;		//横坐标
	double y;       //纵坐标
public :
	CPoint(double xx=0,double yy=0);
	double Distance(CPoint p) const;        //求两点之间的距离
	void intput();                          //输入点的坐标
};

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;									 //三顶点
};

CPoint::CPoint(double xx,double yy)             //类外初始化
{
    x=xx;y=yy;
}

double CPoint::Distance(CPoint p) const         //连个点的距离
{
    return sqrt((p.x-x)*(p.x-x)+(p.y-y)*(p.y-y));
}

void CPoint::intput()               //输入语句
{
    char a;
    if(M==1)
    {
      cout<<"请您输入三个点的坐标用来构成三角形形式为 2,3"<<endl;
    }
    cin>>x>>a>>y;
    if(a!=',')
    {
        cout<<"您输入的格式有误!请重新输入:"<<endl;
        intput();
    }

}

void CTriangle::setTriangle(CPoint &X,CPoint &Y,CPoint &Z)
{
  A=X;                              //类初始化
  B=Y;
  C=Z;
}

float CTriangle::perimeter(void)
{
  double a=B.Distance(C),b=C.Distance(A),c=A.Distance(B);  //求出每边的距离
  return (a + b + c);

}

float CTriangle::area(void)     //返回面积
{

  double  a=B.Distance(C),b=C.Distance(A),c=A.Distance(B),p=(a+b+c)/2.0;
    return sqrt(p*(p-a)*(p-b)*(p-c));
}

bool CTriangle::isRightTriangle()					    //是否为直角三角形
{
    double  a=B.Distance(C),b=C.Distance(A),c=A.Distance(B);
    if((a*a==b*b+c*c)||(b*b==a*a+c*c)||(c*c==a*a+b*b))
    {
       return true;
    }else{
        return false;
    }
}
bool CTriangle::isIsoscelesTriangle()           //是否为等腰三角形
{
   double  a=B.Distance(C),b=C.Distance(A),c=A.Distance(B);
   if(a==b||b==c||a==c)
   {
       return true;
    }else{
        return false;
    }
}

#endif // DSF_H_INCLUDED


 

项目主文件:

/*
* 程序的版权和版本声明部分
* Copyright (c)2012, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称: object.cpp
* 作者:王飞
* 完成日期: 2013年4月 6日
* 版本号: v1.0
* 输入描述:无
* 问题描述:设计求三角形周长和面积的类。
* 程序输出:三角形的周长和面积
*/


#include <iostream>
#include <cmath>
#include <stdlib.h>
#include "dsf.h"

using namespace std;

int main()
{
    CPoint X,Y,Z;
    X.intput(),M++;
    Y.intput(),M++;
    Z.intput(),M++;
    CTriangle T(X,Y,Z);         //定义三角形类的一个实例(对象)
    cout<<"这个三角形的周长为:"<<T.perimeter()<<",面积为:"<<T.area()<<endl;
    cout<<"这个三角形"<<(T.isRightTriangle()?"是":"不是")<<"直角三角形"<<endl;
    cout<<"这个三角形"<<(T.isIsoscelesTriangle()?"是":"不是")<<"等腰三角形"<<endl;
    return 0;

}


心得体会:

多文件组织,确实让任务变得简单化!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值