5.8 面向对象程序设计C++课后习题

1.请检查下面的程序,找出其中的错误(先不要上机,在纸面上作人工的检查),并改正。然后上机调试,使之能正常运行。运行时从键盘输入时、分、秒的值,检查是否正确。

# include <iostream>
using namespace std;
class Time
{     void set_time();
       void show_time();
       int hour;
       int minute;
       int sec;};// hour, minute, sec是私有变量,而函数是公有函数应该是public
Time t;
int main(){
        set_time();
        show_time();//应该添加类的对象
        return 0;
       }
int set_time() //函数的类型与声明时的类型不同,且未限定作用域
{        cin>>t.hour;
        cin>>t.minute;
        cin>>t.sec;
       }
int show_time() //函数的类型与声明时的类型不同,且未限定作用域
       {
        cout<<t.hour<<":"<<t.minute<<":"<<t.sec<<endl;
       }

 

修正后:

 

# include <iostream>
using namespace std;
class Time{
             int hour;
             int minute;
             int sec;
             public:
             void set_time();
             void show_time();
       };
Time t;
void Time::set_time(){
        cin>>t.hour;
        cin>>t.minute;
        cin>>t.sec;
       }
void Time::show_time(){
        cout<<t.hour<<":"<<t.minute<<":"<<t.sec<<endl;
       }
int main(){
        t.set_time();
        t.show_time();
        return 0;
       }

 

2.改写例8.1程序,要求:

(1)将数据成员改为私有的;

(2)将输入和输出的功能改为由成员函数实现;

(3)在类体内定义成员函数。

 

8.1代码:

# include <iostream>
using namespace std;
class Time
       {public:
        int hour;
        int minute;
        int sec;
       };

int main()
       {Time t1;
        cin>>t1.hour;
        cin>>t1.minute;
        cin>>t1.sec;
        cout<<t1.hour<<":"<<t1.minute<<":"<<t1.sec<<endl;
        return 0;
       }

 

# include <iostream>
using namespace std;
class Time
       {int hour;
        int minute;
        int sec;
        public:
        void set_hour()
         {cin>>hour;}
        void set_minute()
        {cin>>minute;}
        void set_sec()
        {cin>>sec;}
        void show_time()
        {cout<<hour<<":"<<minute<<":"<<sec<<endl;}
       };

int main()
       {Time t1;
        t1.set_hour();
        t1.set_minute();
        t1.set_sec();
        t1.show_time();
        return 0;
       }

 

 

3.在第2题的基础上进行如下修改:在类体内声明成员函数,而在类外定义成员函数。

# include <iostream>
using namespace std;
class Time
       {int hour;
        int minute;
        int sec;
        public:
        void set_hour();
        void set_minute();
        void set_sec();
        void show_time();
       };


int main()
       {Time t1;
        t1.set_hour();
        t1.set_minute();
        t1.set_sec();
        t1.show_time();
        return 0;
       }


void Time::set_hour()
 {cin>>hour;}

void Time::set_minute()
 {cin>>minute;}

void Time::set_sec()
 {cin>>sec;}

void Time::show_time()
  {cout<<hour<<":"<<minute<<":"<<sec<<endl;}

 

 

 

6.需要求3个长方柱的体积,请编写一个基于对象的程序。数据成员包括length(长)、width(宽)、height(高)。要求用成员函数实现以下功能:

(1)由键盘分别输入3个长方柱的体积;

(2)计算长方柱的体积;

(3)输出3个长方柱的体积。

请编写程序,上机调试并运行。

 

代码:

# include <iostream>
using namespace std;
class Rectangular
       {public:
        float length,width,height;
        void volume()
       {cout<<length*width*height<<endl;}
       };

Rectangular R1,R2,R3;
main()
{cin>>R1.height>>R1.length>>R1.width;
 cin>>R2.height>>R2.length>>R2.width;
 cin>>R3.height>>R3.length>>R3.width;
 R1.volume();
 R2.volume();
 R3.volume();
 return 0;
}

 

posted @ 2021-05-08 11:44  柏木カケル  阅读(490)  评论(0)    收藏  举报