jcx106的计时器v2.0(自取)
2026-07-30 12:39:51
发布于:浙江
- 程序完全由我独自编写,用了 AI 检查 bug,但是没有使用 AI 生成代码。另:gc函数是现学现编的。
- 因为家里的 Windows 11 电脑(也有可能是 Dev-C++ 6.3)输出中文会变成乱码,为了把提示词翻译成英文,我也是拿出了自己的毕生所学。如有语法或拼写错误,请指正。
- 代码仅支持 Windows 系统,没有用 Windows 的请自行使用其它工具。
- 版本更新:相对于 1.0 版将 Sleep 延时结束计时改成了按任意键结束。
代码:
#include<bits/stdc++.h>
#include<windows.h>
#include<conio.h>
#define int long long
using namespace std;
int md,hh,mm,ss;
double gc(){
LARGE_INTEGER f,n;
QueryPerformanceFrequency(&f);
QueryPerformanceCounter(&n);
return (double)n.QuadPart/f.QuadPart*1000.0;
}
void OvO(int fps){
int a=gc(),b;
int v=1000/fps,d=1,n=10;
while(!_kbhit()){
b=gc();
double l=(b-a)/1000.0;
printf("%.3lf",l);
Sleep(v);
if(l>=n)
d++,n*=10;
for(int i=1;i<=d;i++)
putchar('\b');
printf("\b\b\b\b");
}
int c=_getch();
while(!_kbhit);
c=_getch();
return;
}
void QwQ(int os,int fps){
os--;
int a=gc(),b,ch;
int v=1000/fps;
while(1){
b=gc();
double l=(b-a)/1000.0;
int ls=os-floor(l);
if(ls<0) break;
printf("%02lld:%02lld:%02lld",ls/3600,ls%3600/60,ls%60);
Sleep(v);
if(_kbhit()){
int c=_getch();
goto ll;
}
printf("\b\b\b\b\b\b\b\b");
}
printf("Bingo! ");
while(!_kbhit()) continue;
ch=_getch();
ll:
return;
}
signed main(){
while(true){
system("cls");
printf("Please select mode:\n1. Stopwatch\n2. Countdown\n3. Exit\n");
scanf("%lld",&md);
goto cn;
er:
printf("Invalid input, please select mode again:\n1. Stopwatch\n2. Countdown\n3. Exit\n");
scanf("%lld",&md);
goto cn;
cn:
system("cls");
if(md<1 || md>3)
goto er;
else if(md==1)
OvO(60);
else if(md==2){
printf("Please enter countdown time(hh:mm:ss):\n");
scanf("%lld:%lld:%lld",&hh,&mm,&ss);
system("cls");
QwQ(hh*3600+mm*60+ss,60);
}
else
return 0;
}
}
全部评论 9
- 置顶
为了🥫,👍🏻+💬!
2026-07-19 来自 浙江
1 问一下作者这俩玩意是干什么的,吓我一雷霆
QueryPerformanceFrequency(&f); QueryPerformanceCounter(&n);2026-08-07 来自 天津
1计时
2026-08-07 来自 浙江
0我也说了是现学现编的
2026-08-07 来自 浙江
0要不然我也记不住这么长的函数名)
2026-08-07 来自 浙江
0
输出中文可以在cmd/powershell输出 "chcp 65001"(不带双引号) 吧,没用过dev, 不知道
2026-07-31 来自 江西
1好像也用过dev-c++,但是很久之前就不用了,也不知道怎么用()
2026-07-31 来自 江西
0可以在编译时运行更多指令的
2026-08-04 来自 浙江
0试过了,可以
2026-08-04 来自 浙江
0
6
2026-07-30 来自 上海
16
2026-07-27 来自 山西
1d'd'dddd
2026-07-26 来自 浙江
1不错
2026-07-19 来自 浙江
1这个代码有点问题
如果我在首页打出不合规的答案的话他会频闪
麻烦原作者测试一下2026-07-30 来自 浙江
0这个应该也挺壮观的
在模式2里
2026-07-30 来自 浙江
0对了,针对我第一个问题是我在模式选择界面打了个"exit"
2026-07-30 来自 浙江
0因为这里默认是输入合法,没有做错误处理
2026-07-30 来自 浙江
0
d
2026-07-19 来自 浙江
0d
2026-07-19 来自 浙江
0d
2026-07-19 来自 浙江
0d
2026-07-19 来自 浙江
0






































有帮助,赞一个