-
Bio
$$\Huge{\cnums \reals \text{\AA} \Z \gamma \omicron\mu\tau\hbar} $$打字速度测试:
#include <bits/stdc++.h> #include <windows.h> #include <conio.h> #include <pthread.h> using namespace std; HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE); const int WORDNUM = 8869; string choose="abcdefghijklmnopqrstuvwxyz _+=!#%^&*()'\":;/?,.<>1234567890\n\\ABCDEFGHIJKLMNOPQRSTUVWXYZ~"; string library[100]={"#include <iostream>\nusing namespace std;\nint main()\n{\n int a,b;\n cin>>a>>b;\n cout<<a+b;\n return 0;\n}\n"}; string name_of_library[100]={"1. A+B Problem\n"}; const int LIBRARY_NUM=1; int ed=0,correct,mode_let; double now_time; string mode,type_s,emp; void* input_output(void*); void start(); void type(); void say(string s) { int len=s.size(); for(int i=0;i<len;i++) { cout<<s[i]; Sleep(5); } } void ctn() { say("请按任意键继续...\n"); _getch(); } void help() { system("cls"); say("基本规则:打出屏幕上显示的字符串,自动判对错,实时显示正确率与速度\n"); say("关于新建文本:输入文本,然后开始练习\n"); say("输入文本请以Ctrl+Z结束,换行并不会识别为结束\n"); say("忠告:有任何打字错误都会阻止你完成练习\n"); say("忠告:暂不支持中文\n"); say("tips: 按Esc退出当前程序,主页除外\n"); ctn(); start(); } void print(string s) { for(int i=0;i<s.size();i++) { if(s[i]!=13) cout<<s[i]; else cout<<endl; } } string read_clipboard(string s) { HWND hWnd = NULL; OpenClipboard(hWnd); if ( IsClipboardFormatAvailable(CF_TEXT) ) { HANDLE h = GetClipboardData(CF_TEXT); s+=(char*)GlobalLock(h); GlobalUnlock(h); } CloseClipboard(); return s; } void create() { char c; mode=emp; while(c!=26) { system("cls"); cout<<"输入你的文本:\n"; print(mode); c=_getch(); if(c==22) { mode=read_clipboard(mode); } else if(c>=32||c==13&&c<128) mode+=c; else if(c==8) { if(mode.size()) mode.erase(mode.size()-1,1); } else if(c==9) { mode+=" "; } else if(c==27) start(); } type(); } void* count(void* args) { now_time=0; while(!ed) { Sleep(100); now_time+=0.1; } } void type() { ed=0; pthread_t count_id,start_id; pthread_create(&count_id,NULL,count,NULL); pthread_create(&start_id,NULL,input_output,NULL); pthread_exit(NULL); } void print_check(string s) { for(int i=0;i<s.size();i++) { if(!(s[i]==mode[i]||(s[i]==13&&mode[i]==10))) { SetConsoleTextAttribute(handle,12); correct=0; } else SetConsoleTextAttribute(handle,15); if(s[i]==13) cout<<endl; else cout<<s[i]; } if(correct==-1) correct=1; } void print_mode(string s) { for(int i=0;i<s.size();i++) { if(i==mode_let) SetConsoleTextAttribute(handle,160); else SetConsoleTextAttribute(handle,15); if(s[i]==13) cout<<endl; else cout<<s[i]; } } int check_correct(string s) { for(int i=0;i<s.size();i++) if(!(s[i]==mode[i]||(s[i]==13&&mode[i]==10))) return 0; return 1; } int same(string a,string b) { if(a.size()!=b.size()) return 0; for(int i=0;i<a.size();i++) if(!(a[i]==b[i]||(a[i]==10&&b[i]==13))) return 0; return 1; } void* input_output(void *args) { int p=0; mode_let=0; system("cls"); type_s=emp; correct=0; while(!same(mode,type_s)) { system("cls"); print_mode(mode); cout<<endl<<endl; correct=-1; print_check(type_s); cout<<endl; SetConsoleTextAttribute(handle,15); if(now_time>0) printf("当前打字速度:%lf字/min",type_s.size()/now_time*60); else printf("当前打字速度:%lf字/min",type_s.size()*60); if(correct) cout<<"无"; else cout<<"有"; cout<<"打字错误"; int c=_getch(); if(c!=8&&(c>=32||c==13)&&c<128&&c!=27) { type_s+=c; if(check_correct(type_s)) mode_let++; } else if(c==8) { if(check_correct(type_s)) mode_let--; type_s.erase(type_s.size()-1,1); } else if(c==9) { c=' '; type_s+=c; if(c==mode[mode_let]) mode_let++; type_s+=c; if(c==mode[mode_let]) mode_let++; type_s+=c; if(c==mode[mode_let]) mode_let++; type_s+=c; if(c==mode[mode_let]) mode_let++; } else if(c==27) start(); } ed=1; system("cls"); say("恭喜你完成测试,你的平均打字速度为"); if(now_time>0) printf("%lf字/min",type_s.size()/now_time*60); else printf("%lf字/min",type_s.size()*60); cout<<endl; ctn(); start(); } void rand_type() { mode=emp; int r=rand()%choose.size(); int rr=rand()%200+1; for(int i=1;i<=rr;i++) { mode+=choose[r]; r=rand()%choose.size(); } type(); } void use_library() { void *args; system("cls"); say("请选择一个库文本:\n"); for(int i=1;i<=LIBRARY_NUM;i++) say(name_of_library[i-1]); char c; while((c<'1'&&c!=27)||c-'0'>LIBRARY_NUM) c=_getch(); if(c!=27) mode=library[c-'0'-1],type(); else start(); } void start() { system("cls"); SetConsoleTextAttribute(handle,15); say("打字速度测试\n"); say("Made by: Crazyouth\n"); say("1.新建打字文本\n"); say("2.使用随机文本\n"); say("3.使用库存文本\n"); say("4.如何使用?\n"); char c='0'; while(c<'1'||c>'4') c=_getch(); if(c=='1') create(); else if(c=='2') rand_type(); else if(c=='3') use_library(); else if(c=='4') help(); } int main() { //SetConsoleTextAttribute(handle,12);//红字 //SetConsoleTextAttribute(handle,15);//白字 srand(time(0)); start(); }
-
Recent Activities
- 省选训练1 IOI
- 高一期末考 IOI
- 20241203集训 IOI(Strict)
- 20241126集训 IOI
- 1125集训 IOI
- 20241119集训 IOI(Strict)
- NOIP 模拟赛(十一) OI
- 20241112集训 IOI(Strict)
- 20241029集训 IOI(Strict)
- CSP难度的题目 IOI
- 初中练习 IOI
- NOIP模拟赛 OI
- CSP-S 2024 信心赛 IOI(Strict)
- NOIP模拟赛 OI
- Soft-O(1) 类数据结构的应用(入门) IOI
- NOI真题(~2000) Assignment
- 10.6 提高组模拟赛 OI
- 10.4 提高组模拟赛 OI
- 国庆提高组30题(1~3号) IOI
- 10.8 提高组后两题训练 OI
- 10.5 练习 IOI
- 10.7 国庆普及组训练 IOI
- 保送生第15周 杂题选讲 Assignment
- 保送生第14周 反演 Assignment
- 保送生第13周 二次离线莫队 Assignment
- 保送生第12周 FFT 多项式 Assignment
- 保送生第11周 期望与min max容斥 Assignment
- 保送生第10周 莫比乌斯反演 积性函数前缀和 Assignment
- ad-hoc 选讲——liangzexian1 ACM/ICPC
- 20240924集训 IOI(Strict)
- 保送生第九周 Kruskal重构树 Assignment
- 保送生第八周 NOI2020题目 Assignment
- 保送生第七周 启发式合并 Assignment
- 保送生第六周 wqs二分 Assignment
- 20240910集训 IOI(Strict)
- 保送生第四周 点分治 Assignment
- 保送生第三周 CDQ分治 Assignment
- 保送生第二周 高维前缀和 FWT Assignment
- 保送生第一周 矩阵快速幂 Assignment
- 训练 IOI
- NOIP 模拟赛(八)system test OI
- NOIP 模拟赛(八)pretest IOI
- NOIP 训练赛(七)HARD OI
- NOIP 训练赛 (IOI赛制) IOI
- NOIP 2024 模拟赛(五)hard OI
- [订正] 多校2024第5场 Assignment
- NOIP2024 模拟赛(四)hard OI
- NOIP 2024 模拟赛(三) OI
- NOIP2024 模拟赛(二) OI
- NOIP2024 模拟赛(一) OI
- [订正]多校2024第3场 第4场 Assignment
- [订正]多校2024第1场 第2场 Assignment
- 暑期康复训练一 IOI
- 暑假集训第二阶段 ACM/ICPC
- 暑期康复训练二 IOI
- 暑假集训第一阶段 IOI
- 2023-2024第二学期初二信息竞赛组期末考 IOI
- 2023-2024下信息提高组选修课期末考 IOI
- 20240611集训 IOI
- 20240604集训 IOI
- 20240528集训 IOI
- 2024水题过家家 IOI
- 2023-2023下学期初二竞赛组期中考 OI
- 20240507集训_ IOI
- 20240409集训 IOI
- 20240319集训 IOI
- 20240312集训 IOI
- 20240305集训 IOI
- 20240121CFdiv3.1881 ACM/ICPC
- 20240120字符串专题模板 IOI
- 20240119反悔贪心选讲 IOI
- 20240118期望的线性选讲 ACM/ICPC
- 20240116杂题选讲 IOI
- 寒假集训1 Assignment
- 20240102集训 IOI
- 2023上学期初二竞赛组期末考 OI
- 2023-2024第一学期选修课期末考 OI
- 20231212集训 IOI
- 初二竞赛组作业——主席树 Assignment
- 20231114集训 OI
- 初二竞赛组作业——线段树合并 Assignment
- 20231107集训 OI
- 动态规划选讲(一) IOI
- 2023上学期初二竞赛组期中考 OI
- 信心赛 IOI
- 赛前十题 IOI
- CSP模拟 IOI
- 20231018比赛 OI
- 20231017集训 OI
- CSP-J 前两题真题汇总 Ledo
- 20231010集训 OI
- 虚假的比赛 IOI
- 国庆集训S组模拟赛2 OI
- 国庆集训S组模拟赛1 OI
- 国庆集训模拟赛(普及) OI
- HFI 图灵社 国庆欢乐赛 div1 OI
- 初二信息竞赛组——斜率优化 Assignment
- 9月19日周二晚上集训赛 IOI
- 初二竞赛组作业——DP复习 Assignment
- S组初赛模拟题 OI
- 9月8日居家练习 IOI
- 提高A组-题目分享 Assignment
- 单调队列优化DP Assignment
- 信息选修课(普及/提高)期末考 IOI
- 平衡树 Assignment
- 水题过家家 IOI
- 状压DP堂练 Assignment
- 20230511练习 Assignment
- DP堂练20230424 Assignment
- 初一竞赛组DP堂上复习题 Assignment
- 初一竞赛组状压DP堂上练习 Assignment
- 初一竞赛组排序+DP堂上练习 Assignment
- 初一竞赛组换根DP堂上练习 Assignment
- 初中信息竞赛组AC自动机 Assignment
- 初中竞赛组树形DP1 Assignment
- 信息选修课第二周练习 Assignment
- 编程题可看成绩 IOI
- 22年秋季 初一竞赛组期末考 OI
- 22年秋季 初一上期末考 OI
- 初一竞赛组数位DP Assignment
- NOIP模拟赛1 OI
- 初一竞赛组区间DP Assignment
- 初中选修课期中考 IOI
- 上学期竞赛组期中考试(初一) IOI
- 初一上学期期中考试机试(1班2班) IOI
- 初一上学期期中考试笔试(1班2班) OI
- 初一竞赛班背包DP作业 Assignment
- 初一竞赛班动态规划作业2 Assignment
- 周四提高比赛3 IOI
- 初一3班9月26日课堂作业 Assignment
- 初一竞赛班作业 Assignment