c++面向对象程序设计(第二版)第二章相关习题的解答
题目:改写本章例2.1程序,要求: (1).将数据成员改为私有的 (2).将输入和输出的功能改为由成员函数实现 (3).在类体内定义成员函数
演示代码如下:
#include<iostream> using namespace std; class Time { private: int hour; int minute; int sec; public: void set_time(void) { cout<<"请输入小时:"<<endl; cin>>hour; cout<<"请输入分钟:"<<endl; cin>>minute; cout<<"请输入秒:"<<endl; cin>>sec; } void show_time(void) { cout<<"最后时间为:"<<hour<<":"<<minute<<":"<<sec<<endl; } }; int main() { Time T; T.set_time(); T.show_time(); return 0; }题目:在第一题的基础上进行如下修改:在类体内声明函数,而在类体外定义成员函数.
演示代码如下:
#include<iostream> using namespace std; class Time { private: int hour; int minute; int sec; public: void set_time(void); void show_time(void); }; void Time::set_time(void) { cout<<"请输入小时:"<<endl; cin>>hour; cout<<"请输入分钟:"<<endl; cin>>minute; cout<<"请输入秒:"<<endl; cin>>sec; } void Time::show_time(void) { cout<<"最后时间为:"<<hour<<":"<<minute<<":"<<sec<<endl; } int main() { Time T; T.set_time(); T.show_time(); return 0; }题目:在本章第2.3.3节中分别给出了包含类定义的头文件student.h,包含成员函数定义的源文件student.cpp以及包含主函数的源文件main.cpp.请完善改程序,在类中增加一个对数据成员赋初值的成员函数set_value.
演示代码如下:
Student.h头文件代码: #include<iostream> #include<string> using namespace std; class Student { public: void set_value(); void display(); private: int num; string name; char sex; }; Student.cpp源文件代码: #include<iostream> #include<string> #include"student.h" using namespace std; void Student::set_value() { cout<<"please your num:"<<endl; cin>>num; cout<<"please your name:"<<endl; cin>>name; cout<<"please your sex:"<<endl; cin>>sex; } void Student::display() { cout<<"num:"<<num<<endl; cout<<"name:"<<name<<endl; cout<<"sex:"<<sex<<endl; } Main.cpp源文件代码: #include<iostream> #include<string> #include"student.h" int main() { Student S; S.set_value(); S.display(); return 0; }题目:将本章的例2.4改写为一个多文件的程序: (1).将类定义放在头文件arraymax.h中. (2).将成员函数定义放在源文件arraymax.cpp中. (3).主函数放在源文件file1.cpp中
演示代码如下:
Arraymax.h头文件代码: #include<iostream> using namespace std; class Array_max { public: void set_value(); void max_value(); void show_value(); private: int array[10]; int max; }; Arraymax.cpp源文件代码: #include<iostream> #include"arraymax.h" using namespace std; void Array_max::set_value() { int i; cout<<"请输入10个数:"<<endl; for(i=0;i<10;i++) cin>>array[i]; } void Array_max::max_value() { int i; max=array[0]; for(i=1;i<10;i++) if(array[i]>max) max=array[i]; } void Array_max::show_value() { cout<<"max="<<max; } File1.cpp源文件代码: #include<iostream> #include"arraymax.h" using namespace std; int main() { Array_max arrmax; arrmax.set_value(); arrmax.max_value(); arrmax.show_value(); return 0; }题目:需要求三个长方柱的体积,请编写一个基于对象的程序.数据成员包括length,width,height.要求用成员函数实现以下功能: (1).由键盘分别输入3个长方柱的长,宽,高; (2).计算长方体的体积; (3).输出3个长方体的体积; 请编写程序,上机调试并运行.
演示代码如下:
#include<iostream> using namespace std; class volume { public: void input(); void show_volume(); void show1_volume(); private: int length; int width; int high; int Volume; }; int main() { volume v[3]; int i=0; for(i=0;i<3;i++) { v[i].input(); v[i].show_volume(); v[i].show1_volume(); } system("pause"); return 0; } void volume::input() { cout<<"please input length:"<<endl; cin>>length; cout<<"please input width:"<<endl; cin>>width; cout<<"please input high:"<<endl; cin>>high; } void volume::show_volume() { Volume=length*width*high; } void volume::show1_volume() { cout<<"volume="<<Volume<<endl<<endl; }