/*三角形面积公式 海仑定律:已知a,b,c,半周长p=(a+b+c)/2; S=p*(p-a)*(p-b)*(p-c) * * 程序的版权和版本声明部分 * Copyright (c)2013, 烟台大学计算机学院学生 * All rightsreserved. * 文件名称:2013-3-22.3.cpp * 作 者:王筱菀 * 完成日期:2013年3月22日 * 版本号: v1.0 * 输入描述:无 * 问题描述: 设计求三角形面积和周长的”类“ 程序输出: 三角形的周长和面积 */ #include <iostream> #include <cmath> using namespace std; class Triangle { public: void setABC(double x,double y,double z ); void getABC(double *x,double *y,double *z); double perimeter(void ); double area(void); private: double a,b,c; bool is_triangle(double ,double ,double); }; void Triangle::setABC(double x,double y,double z) { cout<<"请输入三条边:"<<endl; while(1){ cin>>a>>b>>c; if(!is_triangle( a, b, c)){ cout<<"您输入的三条边不能够成三角形,请重新输入:"<<endl; cout<<" "<<endl; }else break; } } void Triangle::getABC(double *x,double *y,double *z) { *x=a; *y=b; *z=c; }; bool Triangle::is_triangle(double a,double b,double c) { if(a<0||b<0||c<0||a+b<c||b+c<a||a+c<b) return false; return true;; } double Triangle::perimeter(void) { double l; l=a+b+c; return l; } double Triangle:: area(void) { double p,s; p=(a+b+c)/2; s=p*(p-a)*(p-b)*(p-c); return s; } int main() { Triangle t1; t1.setABC(3,4,5); double x,y,z; t1.getABC(&x,&y,&z); cout<<" "<<endl; cout<<x<<'\t'<<y<<'\t'<<z<<endl; cout<<" "<<endl; cout<<"三角形的周长为:"<<t1.perimeter()<<endl; cout<<" "<<endl; cout<<"三角形的面积"<<t1.area()<<endl; return 0; }