简单时钟的实现
新手基础,没有很多的功能
判断用户是否修改时间
修改时分秒还是仅修改其中一项
设置完后,始终开始运行,并显示时间
#include"iostream"
#include<ctime>
#include <windows.h>
using namespace std;
class Time
{
private:
int h, m, s;//时,分,秒
public:
Time(int hour = 0, int minute = 0, int second = 0)
{
h= (hour >= 0 && hour <= 23) ? hour : 0;
m= (minute >= 0 && minute <= 59) ? minute : 0;
s= (second >= 0 && second <= 59) ? second : 0;
cout<< "clock:" << endl;
}
void SetTime(int h, int m, int s);
void SetTime();
void tick();
void ShowTime()const
{
cout<< "now time is" << h << ":" << m << ":" << s << endl;
}
};
void Time::SetTime(int h, int m, int s)
{
this->h = h; this->m = m; this->s = s;
}
void Time::SetTime()
{
char flag;
int time;
getchar();
flag= getchar();
cin>> time;
if (flag == 'h' && (time> 0 && time < 24))
h= time;
else if (flag == 'm' && (time> 0 && time < 60))
m= time;
else if (flag == 's' && (time> 0 && time < 60))
s= time;
else
cout<< "fail to set time"<<endl;
}
void Time::tick()
{
s++;
cout<< "now time is" << h << ":" << m << ":" << s << endl;
}
void main()
{
int hour, minute,second;
Time Clock(1,2);
bool flag;//判断用户是否需要修改时间
cout<< "do you want to set time? 1/0" << endl;
cin>> flag;
if (flag)
{
cout<< "Overall setting time? 1/0" << endl;//修改时分秒或仅修改其中一项
cin>> flag;
if (flag)
{
cin>> hour >> minute >> second;
Clock.SetTime(hour,minute, second);
Clock.ShowTime();
}
else
{
Clock.SetTime();
Clock.ShowTime();
}
Sleep(5000);//5s后开始计时,可以去掉
}
while (1)
{
system("cls");
int now = clock();
while (clock()-now<1000);
Clock.tick();
}
}
初学,见谅。
如有错误,欢迎指正。