c++ 模拟时钟

2020-05-04 社会 79阅读
按你的说法改了第一个
#include
#include
#include
using namespace std;
struct clock
{
int hour;
int minute;
int second;
int day;
int month;
int year;
}clock1;
// 设置初始时间
void setTime( int h, int m, int s,int d,int mo,int y)
{

clock1.year = ( y >= 2009 && y < 3009 ) ? y : 2009;
clock1.month = ( mo >= 1 && mo < 13 ) ? mo : 1;
clock1.day = ( d >= 0 && d < 31 ) ? d : 1;
clock1.hour = ( h >= 0 && h < 24 ) ? h : 0;
clock1.minute = ( m >= 0 && m < 60 ) ? m : 0;
clock1.second = ( s >= 0 && s < 60 ) ? s : 0;
}
//时间更新
void Update()
{
clock1.second++;
if (clock1.second == 60)
{
clock1.second = 0;
clock1.minute++;
}
if (clock1.minute == 60)
{
clock1.minute = 0;
clock1.hour++;
}
if (clock1.hour == 24)
{
clock1.hour = 0;
clock1.day++;
}
if (clock1.day == 31)
{
clock1.day = 1;
clock1.month++;
}
if (clock1.month == 13)
{
clock1.month = 1;
clock1.year++;
}
}
//时间显示
void Display()
{
cout< <<( clock1.day < 10 ? "0" : "" ) << clock1.day<<" "
<< ( clock1.hour < 10 ? "0" : "" ) << clock1.hour << ":"
<< ( clock1.minute < 10 ? "0" : "" ) << clock1.minute << ":"
<< ( clock1.second < 10 ? "0" : "") << clock1.second << "\r";
}
//模拟延迟1秒
void Delay(int seconds)
{
clock_t start = clock();
clock_t lay = (clock_t)seconds * CLOCKS_PER_SEC;
while ((clock()-start) < lay)
;
}
int main()
{
clock1.hour = clock1.minute = clock1.second = 0;
// 设置初始时间
setTime(10, 31, 5,10,6,2009);
char n=100;
while(n)
{
Update(); // 时钟更新
Display(); // 时间显示
Delay(1); // 模拟延时1秒
cin>>n; if(n<=256&&n>=0) n=0;
}
return 0;
}
你说的那个press any key to continue难以实现,如果出现这个提示时程序前面内容已经停止运行了,也就是说时间不会变化了,这个程序里面,时间出现后你自己按任何键然后回车就可以推出程序了。我很辛苦的,给分吧!!!
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com