#include<iostream>
#include<cstdlib>
#include<windows.h>
#include<time.h> 
#include<stdio.h>
#include<stdlib.h>
using namespace std;
string n,l,p;
int m;
int num;
string s[12] = {
	"kedaoi",
	"GESP",
	"iostream",
	"bits/stdc++.h",
	"return",
	"BUG",
	"desmos",
	"using",
	"namespace",
	"std",
	"Hello keda!",
	"Bye luogu!"
};
string oj[5] = {
	"I'm from the China.",
	"How old are you?",
	"Keda is my god!",
	"Do you have any friends?",
	"What's your favorite stalk?"
};
string o[12] = {
	"你好",
	"兴安岭",
	"可达",
	"中华人民共和国",
	"小日子" ,
	"笔记本电脑",
	"台式电脑",
	"单板计算机",
	"绿色计算机",
	"智能芯片",
	"量子芯片",
	"珠穆朗玛峰" 
};
string k[12] = {
	"123",
	"456",
	"54198",
	"1145141919810",
	"000001",
	"1235678",
	"1001100100011",
	"987654321",
	"1789827364",
	"541876234",
	"9827348",
	"1a23465f" 
};
void kso(string s,int n){//逐字输出函数,s是逐字输出文段,n是输出间隔 
	for(int i = 0;i<s.size();i++){
		cout << s[i];
		Sleep(n);
	}
}
void ppp(int n,int m){
	for(int i = 1;i<=n;i++){
		cout << "\n";
	}
	for(int i = 1;i<=m;i++){
		cout << "\t"; 
	}
}
int main(){
	system("title 打字练习机");
	system("color 1C");
	system("CLS");
	ppp(10,5);
	kso("是否跳过教程A、是 B、否\n",20);
	ppp(1,5);
	cin >> n;
	if(n=="B" || n=="b"){
		system("CLS");
		ppp(10,0);
		kso("很简单,就是打字练习。开局输入选项按回车或空格就行了。打字环节照着它上面给的示例来打字。如果连续5次打字失败,就会提醒你好好打。",20);
		Sleep(6000);
	}
	system("CLS");
	ppp(10,5);
	kso("欢迎来到打字练习机1.4版",20);
	Sleep(1500);
	ppp(1,4);
	kso("请问您要做什么?a、打字练习 b、退出 c、查看更新日志",30);
	ppp(1,5);
	cin >> n;
	if(n=="A" || n=="a"){//开始打字 
		system("CLS");
		ppp(10,5); 
		kso("进行什么打字?a、英文 b、中文 c、数字",15);
		ppp(1,5);
		cin >> n;
		if(n=="a" || n=="A"){
			system("CLS");
			ppp(10,5);
			kso("进行什么样式打字?a、词汇 b、句子",15);
			ppp(1,5);
			cin >>n;
			if(n=="a" || n=="A"){//英文单词打字 
				double start=clock();
				for(int i = 0;i<=11;i++){
					system("CLS"); 
					ppp(10,7);
					kso(s[i],10);
					ppp(1,7);
					getline(cin,l);
					if(l==s[i]){
						num=0;
						continue;
					}
					else{
						if(num==5){
							system("CLS");
							ppp(10,7);
							kso("好好打,不打就退出",15);
							Sleep(2000);
							i--;
							num=0;
							system("CLS");
							continue;
						}else{
							i--;
							num++;
							continue;	
						}					
					}
				}
				double end=clock()/1000;
				system("CLS");
				ppp(10,5);
				kso("您一共耗时了",20);
				cout << end;
				kso("秒",20);
				Sleep(2000);
				ppp(1,5);
				kso("平均每个单词耗时",20);
				printf("%.1lf",end*1.0/12);
				kso("秒",20);
				Sleep(4000);
				system("CLS");
				ppp(10,5);
				if(end*1.0/12<=4) kso("大佬,不愧是大佬!",20);
				else if(end*1.0/12>=4 & end*1.0/12<=10) kso("还有进步空间哦",20);
				else kso("记得多练练哦",20); 	
				Sleep(2000);
			}else if(n=="B" || n=="b"){//英文句子打字 
				double start=clock();
				for(int i = 0;i<=4;i++){
					system("CLS"); 
					ppp(10,7);
					kso(oj[i],10);
					ppp(1,7);
					getline(cin,l);
					if(l==oj[i]){
						num=0;
						continue;
					}
					else{
						if(num==5){
							system("CLS");
							ppp(10,7);
							kso("好好打,不打就退出",15);
							Sleep(2000);
							i--;
							num=0;
							system("CLS");
							continue;
						}else{
							i--;
							num++;
							continue;	
						}					
					}
				}
				double end=clock()/1000;
				system("CLS");
				ppp(10,5);
				kso("您一共耗时了",20);
				cout << end;
				kso("秒",20);
				Sleep(2000);
				ppp(1,5);
				kso("平均每个句子耗时",20);
				printf("%.1lf",end*1.0/5);
				kso("秒",20);
				Sleep(4000); 
				system("CLS");
				ppp(10,5);
				if(end*1.0/5<=8) kso("大佬,不愧是大佬!",20);
				else if(end*1.0/5>=8 & end*1.0/5<=15) kso("还有进步空间哦",20);
				else kso("记得多练练哦",20); 	
				Sleep(2000);	
			} 
		}else if(n=="b" || n=="B"){//词汇打字 
			double start=clock();
			for(int i = 0;i<=11;i++){
				system("CLS"); 
				ppp(10,7);
				kso(o[i],10);
				ppp(1,7);
				getline(cin,l);
				if(l==o[i]){
					num=0;
					continue;
				}
				else{
					if(num==5){
						system("CLS");
						ppp(10,7);
						kso("好好打,不打就退出",15);
						Sleep(2000);
						i--;
						num=0;
						system("CLS");
						continue;
					}else{
						i--;
						num++;
						continue;	
					}
				}
			}
			double end=clock()/1000;
			system("CLS");
			ppp(10,5);
			kso("您一共耗时了",20);
			cout << end;
			kso("秒",20);
			Sleep(2000);
			ppp(1,5);
			kso("平均每个词汇耗时",20);
			printf("%.1lf",end*1.0/12);
			kso("秒",20);
			Sleep(4000); 
			system("CLS");
			ppp(10,5);
			if(end*1.0/12<=4) kso("大佬,不愧是大佬!",20);
			else if(end*1.0/12>=4 & end*1.0/12<=10) kso("还有进步空间哦",20);
			else kso("记得多练练哦",20); 	
			Sleep(2000);	
		}else if(n=="c" || n=="C"){//数字打字 
			double start=clock();
			for(int i = 0;i<=11;i++){
				system("CLS"); 
				ppp(10,7);
				kso(k[i],10);
				ppp(1,7);
				getline(cin,l);
				if(l==k[i]){
					num=0;
					continue;
				}
				else{
					if(num==5){
						system("CLS");
						ppp(10,7);
						kso("好好打,不打就退出",15);
						Sleep(2000);
						i--;
						num=0;
						system("CLS");
						continue;
					}else{
						i--;
						num++;
						continue;	
					}
				}
			}
			double end=clock()/1000;
			system("CLS");
			ppp(10,5);
			kso("您一共耗时了",20);
			cout << end;
			kso("秒",20);
			Sleep(2000);
			ppp(1,5);
			kso("平均每组数耗时",20);
			printf("%.1lf",end*1.0/12);
			kso("秒",20);
			Sleep(4000); 	
			system("CLS");
			ppp(10,5);
			if(end*1.0/12<=2.5) kso("大佬,不愧是大佬!",20);
			else if(end*1.0/12>=2.5 & end*1.0/12<=5) kso("还有进步空间哦",20);
			else kso("记得多练练哦",20);
			Sleep(2000); 		
		}
		system("CLS");
		ppp(10,5);//彩蛋环节 
		system("color 3D");
		kso("是否查看彩蛋?A、是 B、否",20);
		ppp(1,5);
		cin >> n;
		if(n=="A" || n=="a"){
		system("CLS");
		ppp(10,5);
		kso("参与本作品的有:lhz2111(hydro账号)",20);
		Sleep(4000);
		system("CLS");
		ppp(10,5);
		kso("本人keda账号:李昊泽1",20);
		Sleep(4000);
		system("CLS");
		ppp(10,5);
		kso("作品制作不易,整整379行",20);
		Sleep(4000);
		system("CLS");
		ppp(10,5);
		kso("求大佬一个支持呗",20);
		Sleep(4000);
		system("CLS");
		ppp(10,5);
		kso("奥,对了。我建了一个hydro域,加域的话用这个网址:",20); 
		ppp(1,5);
		kso("https://hydro.ac/d/rwqjqj/domain/join?code=rwq21o。我们欢迎您的到来",20);
		Sleep(8000);
		system("CLS");	
		ppp(10,5);
		kso("圆周率前100位:3.141592653589793238462643383279502384197169399375105",20);
		ppp(1,5);
		kso("820974944592307816406286208998628034875342117068",20);
		Sleep(4000);
		system("CLS");	
		ppp(10,7);
		kso("感谢游玩!",20); 
		Sleep(2000);
		}else{
			system("CLS");
			ppp(10,5);
			kso("欢迎下次光临",20);
			Sleep(4000);
		}
	}else if(n=="b" || n=="B"){//开局B选项 
		system("CLS");
		ppp(10,5);
		kso("欢迎下次光临",20);
		Sleep(4000);
	}else if(n=="c" || n=="C"){//开局C选项
		system("color 5A");
		system("CLS");
		ppp(10,5);
		kso("2024年1月22日首个版本发布103行(1.0版)",20);
		ppp(1,5);
		Sleep(2000);
		kso("2024年1月23日更新中文打字(1.1版)",20); 
		Sleep(2000);
		ppp(1,5);
		kso("2024年1月23日更新打字时间和打字速度180行(1.2版)",20); 
		Sleep(2000);
		ppp(1,5);
		kso("2024年1月23日更新数字打字248行(1.3版)",20); 
		Sleep(2000);
		ppp(1,5);
		kso("2024年1月24日更新教程,改进了彩蛋 271行(1.3.5版)",20); 
		Sleep(2000);
		ppp(1,5);
		kso("2024年1月24日更新英文句子打字 334行(1.3.7版)",20); 
		Sleep(2000);
		ppp(1,5);
		kso("2024年1月25日更新打字评测 360行(1.3.9版)",20); 
		Sleep(2000);
		ppp(1,4);
		kso("2024年1月25日更新数字打字和中文打字的打字样例 379行(1.4版)",20); 
		Sleep(2000);
		ppp(2,5);
		kso("更新日志查看完毕,请重新开始。",20);
		Sleep(2000);
	}
}

道理都懂,复制到DEVC++上玩