第四周 项目二 三角形类
来源:互联网 发布:js match 正则 编辑:程序博客网 时间:2024/05/20 12:23
/*三角形面积公式 海仑定律:已知a,b,c,半周长p=(a+B+c)/2; S(面积)=sqrt(p*(p-a)*(p-b)*(p-c)) */ * * 程序的版权和版本声明部分 * Copyright (c)2013, 烟台大学计算机学院学生 * All rightsreserved. * 文件名称: object.cpp * 作 者: 袁静 * 完成日期:2013年3月21日 * 版本号: v1.0 * 输入描述:无 * 问题描述: 设计求三角形面积和周长的”类“ 程序输出: 三角形的周长和面积 #include <iostream>#include <cmath>using namespace std;class Triangle{public: void setA(double x ) {a=x;} void setB(double y) {b=y;} void setC(double z) {c=z;} void getA(double *A) {*A=a;} void getB(double *B) {*B=b;} void getC(double *C) {*C=c;} double perimeter(void ); double area(void); bool is_triangle();private: double a,b,c; };bool Triangle::is_triangle() { if(a>0&&b>0&&c>0&&a+b>c&&b+c>a&&a+c>b ) return true; return false; } 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=sqrt(p*(p-a)*(p-b)*(p-c)); return s; }int main(){ Triangle t1; double x,y,z,A,B,C; cout<<"请输入三边的值"<<endl; cin>>x>>y>>z; t1.setA(x); t1.setB(y); t1.setC(z); if(t1.is_triangle()){ //此时默认为为输入的x,y,z能够成三角形 cout<<"三条边为:"<<endl; t1.getA(&A); t1.getB(&B); t1.getC(&C); cout<<" "<<endl; cout<<A<<'\t'<<B<<'\t'<<C<<endl; cout<<" "<<endl; cout<<"三角形的周长为:"<<t1.perimeter()<<endl; cout<<" "<<endl; cout<<"三角形的面积"<<t1.area()<<endl; } else cout<<"不能够成三角形,请从新输入"<<endl; return 0; }原型:class Triangle{private: bool triangle();}int main(){if(ti.is_triangle()) ...............return 0;} 出现提示:rror C2248: 'is_triangle' : cannot access private member declared in class 'Triangle' 错因:is——triangle为私有成员,在类外不能调用 改: 只需bool is_triangle()定位公有数据函数即可