简介:
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;
}