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

第三周报告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就水到渠成,真的不难。只不过是某些方面有点不同。读错误的提示也是对程序的理解深化哟。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值