新手基础,没有很多的功能 判断用户是否修改时间 修改时分秒还是仅修改其中一项 设置完后,始终开始运行,并显示时间
#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(); } }初学,见谅。 如有错误,欢迎指正。