第三周项目4(修改)-玩时间修改

/*
*程序的版权和版本声明部分:
*Copyright(c)2014,烟台大学计算机学院学生
*All rights reserved.
*文件名称:
*作者:田成琳
*完成日期:2014 年 3月 10 日
*版本号:v1.0
*对任务及求解方法的描述部分:
*输入描述: 时间
*问题描述:打印一个正确的时间
*程序输出:时间
*问题分析:
*算法设计:
*/
#include<iostream>
#include<cstdlib>
using namespace std;
class Time
{
private:
    int hour;
    int minute;
    int second;
public:
    bool istime(int,int,int);
    void settime();
    void showtime();
    void addasecond()
    {
		addseconds(1);
    }
    void addaminute()
    {
        addminutes(1);
    }
    void addahour()
    {
        addhours(1);
    }
    void addseconds(int);
    void addminutes(int);
    void addhours(int);
};
bool Time::istime(int h,int m,int s)
{
    bool flag=true;
    if(h<0||h>24||m<0||m>60||s<0||s>60)
    {
        flag=false;
    }
    return flag;
}
void Time::settime()
{
    char a,b;
    while(1)
    {
        cin>>hour>>a>>minute>>b>>second;
        if(a!=':'||b!=':')
            cout<<"格式错误,请重新输入:"<<endl;
        else if(!istime(hour,minute,second))
            cout<<"时间错误,请重新输入:"<<endl;
        else
            break;
    }
}
void Time::showtime()
{
	if(minute>10)
		cout<<hour<<":"<<minute<<":"<<second<<endl;
    else
		cout<<hour<<":0"<<minute<<":"<<second<<endl;
}
void Time::addseconds(int s)
{
    minute+=s/60;
    while(minute>=60)
		minute-=60;
    hour+=s/3600;
    while(hour>=24)
		hour-=24;
    second+=s%60;
}
void Time::addminutes(int m)
{
    hour+=m/60;
    while(hour>=24)
		hour-=24;
    minute+=m%60;
    while(minute>=60)
		minute-=60;
}
void Time::addhours(int h)
{
    hour+=h%24;
    while(hour>=24)
		hour-=24;
}
int main()
{
    Time T;
    int chose,sec,min,hour;
    cout<<"请输入时间(HH:MM:SS):"<<endl;
    T.settime();
    T.showtime();
    while(1)
    {
        cout<<"请选择以下命令:"<<endl;
        cout<<"1.增加1秒     2.增加1分"<<endl;
        cout<<"3.增加1时     4.增加n秒"<<endl;
        cout<<"5.增加n分     6.增加n时"<<endl;
        cout<<"0.退出"<<endl;
        cin>>chose;
        switch(chose)
        {
        case 0:
            exit(0);
        case 1:
            T.addasecond();
            T.showtime();
            break;
        case 2:
            T.addaminute();
            T.showtime();
            break;
        case 3:
            T.addahour();
            T.showtime();
            break;
        case 4:
            cout<<"请输入增加的秒数:"<<endl;
            cin>>sec;
            T.addseconds(sec);
            T.showtime();
            break;
        case 5:
            cout<<"请输入增加的分数:"<<endl;
            cin>>min;
            T.addminutes(min);
            T.showtime();
            break;
        case 6:
            cout<<"请输入增加的时数:"<<endl;
            cin>>hour;
            T.addhours(hour);
            T.showtime();
            break;
        default:
            cout<<"输入有误,请重新输入:"<<endl;
            cin>>chose;
        }
    }
    return 0;
}

运行结果:

心得体会:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值