您的位置:首页 > 编程语言 > C语言/C++

C++程序设计实验报告(三十二)---第三周任务二

2012-03-04 22:19 323 查看
第三周报告2-1::

实验目的:找出程序错误,并改正。

实验内容:运行时正确输入时分秒。

* 程序头部注释开始

* 程序的版权和版本声明部分

* Copyright (c) 2012烟台大学计算机学院学生

* All rights reserved.

* 文件名称: array.cpp 

* 作 者: 刘镇 

* 完成日期: 2012 年 3 月 4 日

* 版 本 号: 1.029

* 对任务及求解方法的描述部分

* 输入描述:时、分、秒

* 问题描述:将程序通读一遍,找出语法错误,理解程序的目的,根据理解改正并运行。

* 程序输出:时、分、秒

* 程序头部的注释结束

原程序:

#include <iostream>

using namespace std;

class Time
{
void set_time(void) ;
void show_time(void);
int hour;
int minute;
int sec;
};                                   //谨慎地将数据成员声明为公有,必要时只为本类内使用的成员函数作为私有类型

Time t;                              //从语法角度,也无任何问题。但是任何时候,使用全局变量(对象)
/*坏点!改造程序时将t的定义放入main()函数中,作局部变量(对象)使用。
本题只在于创建一个时间对象并显示,这样做是合适的*/

int main()
{
set_time();                        //因为set_time()在后面并未被定义为成员函数;
//另外,若真不将set_time()作为成员函数对待的话,先调用、后定义也不妥。

show_time();

return 0;
}

int set_time(void)
{
cin >> t.hour;
cin >> t.minute;
cin >> t.sec;
}

int show_time(void)
{
cout << t.hour << ":"<< t.minute << ":" << t.sec << endl;
}


 

 

 

 

 

修改后:

 

#include<iostream>

using namespace std;

class Time
{
public: // 此处加上公共数据的限定,原先未说明,默认是私有的数据。
void set_time(void);
void show_time(void);

private: // 加上私有数据限定,表明仅能通过公共数据中成员函数调用。
int hour;
int minute;
int sec;
};

Time t;

int main()
{
t.set_time(); //访问对象中成员的一般形式:对象名.成员名

t.show_time(); //同上改动

return 0;
}

void Time::set_time(void) //返回值类型在类的声明时已经确定是空类型void,此处将int该做void.
{
cin >> hour; //既然是成员函数就可以调用私有数据,且不必用访问对象成员的形式

cin >> minute; //同上改动

cin >> sec; //同上改动
}

void Time::show_time(void)
{
cout << hour << ":" << minute << ":" << sec << endl; //同上改动
}
运行结果:





经验积累:

1、还是考验对class的熟练,和读程序的能力。

2、struct中是默认为公共数据,class默认为私有数据,类外的引用公共成员函数类型。

上级感言:

对于类来说,如果你比较熟结构体,那么class就水到渠成,真的不难。只不过是某些方面有点不同。读错误的提示也是对程序的理解深化哟。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  任务 c++ class struct c