📄 6081820502_lab6_9.c
字号:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
struct clock
{
int hour;
int minute;
int second;
};
typedef struct clock CLOCK; /*记录时间的结构体*/
int hour,minute,second; /*把时间设置为全局变量*/
void Update(CLOCK *t);
void Display(CLOCK *t) ;
void Delay(void);
int main()
{
CLOCK time = {0,0,0};
int replay;
int ret;
int i;
printf("\n\n\n\n\n\n\n 欢迎使用模拟数字式时钟系统\n");
printf("\n\n 请注意:时钟默认当前时间为0点0分0秒\n");
printf("\n\n 如果你需要调整当前时间请按屏幕提示进行调整!\n");
getch();
do
{
fflush(stdin);
system("cls");
printf("\n\n\n\n\n\n\n 1.调整时间\n");
printf("\n\n 2.进入时钟模式\n");
printf("\n\n 0.退出系统\n");
printf("\n\n\n 请输入命令前的数字进行相关操作\n");
scanf("%d",&replay);
if (replay != 0&&replay != 1&&replay != 2)
{
system("cls");
printf("\n\n\n\n\n\n\n\n\n\n\n\n 对不起,您的输入有误,请重试!\n");
getch();
}
}
while (replay != 0&&replay != 1&&replay != 2); /*错误处理*/
if (replay == 2)
{
for (i=0;i<100000;i++)
{
Update(&time);
Display(&time);
Delay();
}
}
else if (replay == 1)
{
system("cls");
printf("\n\n请分别输入当前时间的时、分、秒!\n");
do /*修改初始时间*/
{
fflush(stdin);
printf("\n\n 时??\n");
ret = scanf("%d",&hour);
if (ret == 0)
{
printf("你所输入的个数不是个数字,请看清楚哦!\n");
}
else if (hour < 0||hour > 23)
{
printf("时间的时应该是大于0小于24的整数,麻烦再输一遍吧\n");
}
}
while (ret == 0||hour < 0||hour > 23); /*对非法字符和不合理数据的处理*/
do
{
fflush(stdin);
printf("\n\n 分??\n");
ret = scanf("%d",&minute);
if (ret == 0)
{
printf("你所输入的个数不是个数字,请看清楚哦!\n");
}
else if (minute < 0||minute > 59)
{
printf("时间的分应该是大于0小于60的整数,麻烦再输一遍吧\n");
}
}
while (ret == 0||minute < 0||minute > 59); /*对非法字符和不合理数据的处理*/
do
{
fflush(stdin);
printf("\n\n 秒??\n");
ret = scanf("%d",&second);
if (ret == 0)
{
printf("你所输入的个数不是个数字,请看清楚哦!\n");
}
else if (second < 0||second > 59)
{
printf("时间的秒应该是大于0小于60的整数,麻烦再输一遍吧\n");
}
}
while (ret == 0||second < 0||second > 59); /*对非法字符和不合理数据的处理*/
for (i=0;i<100000;i++)
{
Update(&time);
Display(&time);
Delay();
}
}
return 0;
}
/*
函数功能:时、分、秒的更新
函数参数:时间
函数返回值:无
*/
void Update(CLOCK *t)
{
second++;
if (second == 60) /*若second值为60,表示已过1分钟,则minute值加1*/
{
second = 0;
minute++;
}
if (minute == 60) /*若minute值为60,表示已过1小时,则hour值加1*/
{
minute = 0;
hour++;
}
if (hour == 24) /*若hour值为24,表示已过1天,则hour重新从0开始计时*/
{
hour = 0;
}
}
/*
函数功能:时、分、秒时间的显示
函数参数:时间
函数返回值:无
*/
void Display(CLOCK *t) /*利用刷屏来控制时间显示的位置*/
{
system("cls");
printf("\n\n\n\n\n 时间就是金钱!请珍惜时间:\n\n\n\n\n\n");
printf(" $$$$$$$$$$$$$$$$$$$$$\n\n");
printf(" ¥ %2d:%2d ¥ %2d ¥\n\n",hour,minute,second);
printf(" $$$$$$$$$$$$$$$$$$$$$\n");
}
/*
函数功能:模拟延迟1秒的时间
函数参数:无
函数返回值:无
*/
void Delay(void)
{
long t;
for (t = 0;t < 270000000;t++)
{
/*循环空白语句来延时*/
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -