问题及代码:
/*
*Copyright (c) 2016,烟台大学计算机学院
*All rights reserved.
*文件名称:zwj.cpp
*作 者:张伟晶
*完成日期:2016年3月27日
*版 本 号:v1.0
*
*问题描述:原类为一个时间类,输入合法的时间后就会输出,在原类的基础上,在类内增加下列成员函数:add_seconds,add_minutes,add_hours
*输入描述:合法的时间
*程序输出:时,分,秒都增加n之后输出,注意考虑秒数,分钟数大于60的情况和小时数大于24的情况。
*/
#include<iostream>
using namespace std;
class time
{
public:
void set_time();
void add_seconds(int s);
void add_minutes(int m);
void add_hours(int h);
void show_time();
private:
bool is_time(int ,int ,int);
int hour;
int minute;
int sec;
};
void time::add_seconds(int s)
{
sec+=s;
if(sec>=60)
{
minute++;
sec=sec-60;
}
}
void time::add_minutes(int m)
{
minute+=m;
{
if(minute>=60)
{
hour++;
minute=minute-60;
}
}
}
void time::add_hours(int h)
{
hour+=h;
if(hour>=24)
{
hour=hour-24;
}
}
void time::set_time()
{
char c1,c2;
cout<<"请输入时间(格式hh:mm:ss)";
while(1)
{
cin>>hour>>c1>>minute>>c2>>sec;
if(c1!=':'||c2!=':')
cout<<"格式不正确重输"<<endl;
else if(!is_time(hour,minute,sec))
cout<<"时间非法,请重新输入"<<endl;
else
break;
}
}void time::show_time()
{
cout<<hour<<":"<<minute<<":"<<sec<<endl;
}
bool time::is_time(int h,int m,int s)
{
if(h<0||h>24||m>60||m<0||s<0||s>60)
return false;
return true;
}
int main()
{
int h,m,s;
time t1;
t1.set_time();
t1.show_time();
cout<<"please input add_h,m,s:";
cin>>h>>m>>s;
t1.add_hours(h);
t1.add_minutes(m);
t1.add_seconds(s);
t1.show_time();
return 0;
}
运行结果:
知识点总结:
成员函数
学习心得:
不熟练,继续练习;