C语言实现秒表
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
源代码如下(作者:中南大学通信工程1602肖涛,qq:2391527690)#include<stdio.h>
#include<conio.h>//_kbhit
#include<windows.h>
#include<stdlib.h>
struct t
{
intho,mi,se;
}ti;
struct t carry(struct t sj)
{ sj.se++;
if(sj.se==60)
{
sj.se=0;
sj.mi++;
}
if(sj.mi==60)
{
sj.mi=0;
sj.ho++;
}
if(sj.ho==24)
sj.ho=0;
return(sj);
}
void showtime(struct t sj)
{
system("cls");
printf("\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t");
printf("秒表显示器:");
if(sj.se<10&&sj.ho<10&&sj.mi<10)//控制计时时时间显示格式printf("0%d:0%d:0%d\n",sj.ho,sj.mi,sj.se);
if(sj.se>=10&&sj.ho<10&&sj.mi<10)
printf("0%d:0%d:%d\n",sj.ho,sj.mi,sj.se);
if(sj.se<10&&sj.mi>=10&&sj.se<10)
printf("0%d:%d:0%d\n",sj.ho,sj.mi,sj.se);
if(sj.se<10&&sj.mi<10&&sj.ho>=10)
printf("0%d:0%d:%d\n",sj.ho,sj.mi,sj.se);
if(sj.se>=10&&sj.mi>=10&&sj.ho<10)
printf("0%d:%d:%d\n",sj.ho,sj.mi,sj.se);
if(sj.se>=10&&sj.mi<10&&sj.ho>=10)
printf("%d:0%d:%d\n",sj.ho,sj.mi,sj.se);
if(sj.se<10&&sj.mi>=10&&sj.ho>=10)
printf("%d:%d:0%d\n",sj.ho,sj.mi,sj.se);
if(sj.ho>=10&&sj.mi>=10&&sj.se>=10)
printf("%d:%d:%d\n",sj.ho,sj.mi,sj.se);
}
void main ()
{
char m,n;
ti.ho=ti.mi=ti.se=0;
printf("\t*************************************************\n");
printf("\t\t 欢迎使用秒表功能\n");
printf("\t\t操作提示:第一次按回车开始计时!\n");
printf("\t\t按z暂停,第二次按回车结束秒表程序\n");
while(1)
{
m=getch();
if(m!='\r')//读入一个输入,如果是回车,跳出while printf("\t\t输入错误,仅能输入回车!\n");
else
break;
}
printf("\t\t已经开始计时,但你可以输入'z'来暂停计时\n");
while(1)
{
if(_kbhit())//判断是否键入字符
{
m=getch();
if(m=='\r')
break;
if(m!='\r'&&m!='z')
printf("\n输入错误,仅支持回车或'z'\n");
if(m=='z')
{
system("cls");
printf("当前时间:");
if(ti.se<10&&ti.mi<10&&ti.ho<10)
printf("0%d:0%d:0%d\n",ti.ho,ti.mi,ti.se);
if(ti.se>=10&&ti.ho<10&&ti.mi<10)//控制暂停时时间显示格式printf("0%d:0%d:%d\n",ti.ho,ti.mi,ti.se);
if(ti.se<10&&ti.mi>=10&&ti.se<10)
printf("0%d:%d:0%d\n",ti.ho,ti.mi,ti.se);
if(ti.se<10&&ti.mi<10&&ti.ho>=10)
printf("0%d:0%d:%d\n",ti.ho,ti.mi,ti.se);
if(ti.se>=10&&ti.mi>=10&&ti.ho<10)
printf("0%d:%d:%d\n",ti.ho,ti.mi,ti.se);
if(ti.se>=10&&ti.mi<10&&ti.ho>=10)
printf("%d:0%d:%d\n",ti.ho,ti.mi,ti.se);
if(ti.se<10&&ti.mi>=10&&ti.ho>=10)
printf("%d:%d:0%d\n",ti.ho,ti.mi,ti.se);
if(ti.ho>=10&&ti.mi>=10&&ti.se>=10)
printf("%d:%d:%d\n",ti.ho,ti.mi,ti.se);
printf("\n按任意键继续\n");
while(1)
{
Sleep(500);
if(_kbhit())//如果有输入会连续判断两个kbhit(),并把输入赋给ch,所以找个替罪羔羊n
{
n=getch();
break;
}
}
}
}
Sleep(1000);
ti=carry(ti);
showtime(ti);
}
system("cls"); }。