返回:贺老师课程教学链接
【项目1 - 三角形类1】下面设计一个三角形类,请给出各成员函数的定义
#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; //三边为私有成员数据 }; int main() { Triangle tri1; //定义三角形类的一个实例(对象) tri1.setABC(4,5,6); //为三边置初值 double x,y,z; tri1.getABC (&x,&y,&z); //将三边的值为x,y,z赋值 cout<<"三条边为:"<<x<<'\t'<<y<<'\t'<<z<<endl; cout<<"三角形的周长为:"<< tri1.perimeter()<<'\t'<<"面积为:"<< tri1.area()<<endl; return 0; } //请在下面定义Triangle类中的各个成员函数
[参考解答]
int main() { Triangle tri1; //定义三角形类的一个实例(对象) double x,y,z; cout<<"请输入三角形的三边:"; cin>>x>>y>>z; tri1.setA(x); tri1.setB(y); tri1.setC(z); //为三边置初值 if(tri1.isTriangle()) { cout<<"三条边为:"<<tri1.getA()<<','<<tri1.getB()<<','<<tri1.getC()<<endl; cout<<"三角形的周长为:"<< tri1.perimeter()<<'\t'<<"面积为:"<< tri1.area()<<endl; } else cout<<"不能构成三角形"<<endl; return 0; }
[参考解答]
利用多文件组织,重新实现项目2。其中,整个项目包括3个文件:
- 主文件: main.cpp,用于定义main()函数
- 头文件: triangle.h,头文件,声明类,定义内置成员函数
- 类定义文件: triangle.cpp,用于定义类Triangle中其他成员函数
[参考解答]
【项目4 - 考了语文数学的学生】
下面提供了类Stu的数据成员定义,和用于测试的main函数,参考如图的运行结果,完成类的定义,并用多文件形式组织程序
#include<iostream> using namespace std; class Stu { private: string name; //学生姓名 float chinese; //语文成绩 float math; //数学成绩 //接下去写 }; int main() { Stu s1,s2; s1.setStudent("Lin daiyu", 98, 96); //对象置初值 s2.setStudent("Jia baoyu", 90, 88); //对象置初值 s1.show();//打印信息 s2.show();//打印信息 s1.setName("xue baochai");//重新置p1对象的名字 s1.show(); cout<<"s1.Name: "<<s1.getName()<<endl;//打印对象的名字 cout<<"s1.average: "<<s1.average()<<endl;//打印对象的成绩 return 0; }
[参考解答]
class Salary { private: double salarys[50]; //多人的工资 int number; //实际人数 };要设计的成员函数有:
- void set_salarys( ):输入职工工资(输入-1标志着工资输入结束),工资保存到salary数组中,实际人数保存到number中;
- void add_salarys(int x):给每个人涨x元工资
- void sort_salarys():对工资排序
- void show_salarys( ):显示工资信息
(2)用salary[50]有限制,实际人数少时,会浪费空间,人数多了,无法完成任务。在main()中先输入职工人数,作为参数传递给输入职工工资的成员函数,然后利用动态分配内存的机制,开辟一个大小正好的连续空间,完成上面的工作。
(3)手工输入工资?!太让人不能忍受了。现给出包含了不足500个职工工资的文件salary.txt(点击打开链接),从文件中读数据,完成上面的工作。
(4)增加一个成员函数,将排序后结果保存到一个文件中。
(5)用多文件的方式组织最后的程序。
[参考解答]