#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
#define colour(a) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a)
char user[1000],password[1000];
int flag=0;
void title()
{
colour(3);
cout<<"********************************"<<endl<<"**";
colour(4);
cout<<" 欢迎来到小学生加减乘除游戏 ";
colour(3);
cout<<"**"<<endl<<"********************************"<<endl;
colour(4);
cout<<" 请选择1(进入游戏)2(退出游戏)"<<endl;
while(1){
int n;
cin>>n;
if(n==1)
break;
else if(n==2)
{
flag=1;
break;
}
else
cout<<"选择错误"<<endl;
}
}
void regist()
{
char a[1000],b[1000];
while(1){
cout<<"请选择1(登录自己账号)2(注册账号)3(退出游戏)"<<endl;
int n;
cin>>n;
if(n==1)
{
cout<<"请输入用户名:";
cin>>a;
cout<<"请输入密码:";
cin>>b;
if(strcmp(a,user)!=0||strcmp(b,password)!=0)
cout<<"输入用户/密码错误!"<<endl<<"请重新输入"<<endl;
else
break;
Sleep(1200);
system("cls");
}
else if(n==2)
{
cout<<"请输入注册用户名:";
cin>>user;
cout<<"请输入注册密码:";
cin>>password;
cout<<"注册成功!"<<endl;
Sleep(1200);
system("cls");
}
else if(n==3)
{
flag=1;
break;
}
else
cout<<"选择错误!"<<endl;
}
}
void game()
{
while(1){
int k;
cout<<"输入1退出游戏,输入其他代表继续游戏"<<endl;
cin>>k;
if(k==1) break;
int n,ans=0;
colour(5);
cout<<"请选择你要挑战的题数:";
cin>>n;
system("cls");
cout<<endl<<"游戏马上开始"<<endl;
Sleep(1200);
while(n--){
char equation[100];
int f1,f2,f3,f4,f5;
double result,youresult;
f1=rand()%4,f2=rand()%4,f3=rand()%10,f4=rand()%10,f5=rand()%10;
equation[1]=f3+48,equation[3]=f4+48,equation[5]=f5+48;
if(f1==0)
equation[2]='+';
else if(f1==1)
equation[2]='-';
else if(f1==2)
equation[2]='*';
else
equation[2]='/';
if(f2==0)
equation[4]='+';
else if(f2==1)
equation[4]='-';
else if(f2==2)
equation[4]='*';
else
equation[4]='/';
if(equation[2]=='/'&&equation[3]==48) equation[3]++;
if(equation[4]=='/'&&equation[5]==48) equation[5]++;
if((equation[2]=='+'||equation[2]=='-')&&(equation[4]=='*'||equation[4]=='/'))
{
double k1;
if(equation[4]=='*')
{
k1=(double)(equation[3]-48)*(equation[5]-48);
if(equation[2]=='+')
result=(equation[1]-48)+k1;
else
result=(equation[1]-48)-k1;
}
else
{
k1=(double)(equation[3]-48)/(equation[5]-48);
if(equation[2]=='+')
result=(equation[1]-48)+k1;
else
result=(equation[1]-48)-k1;
}
}
else if((equation[2]=='*'||equation[2]=='/')&&(equation[4]=='+'||equation[4]=='-'))
{
double k1;
if(equation[2]=='*')
{
k1=(double)(equation[1]-48)*(equation[3]-48);
if(equation[4]=='+')
result=(equation[5]-48)+k1;
else
result=k1-(equation[5]-48);
}
else
{
k1=(double)(equation[1]-48)/(equation[3]-48);
if(equation[4]=='+')
result=(equation[5]-48)+k1;
else
result=k1-(equation[5]-48);
}
}
else if((equation[2]=='+'||equation[2]=='-')&&(equation[4]=='+'||equation[4]=='-'))
{
double k1;
if(equation[2]=='+')
k1=(equation[1]-48)+(equation[3]-48);
else
k1=(equation[1]-48)-(equation[3]-48);
if(equation[4]=='+')
result=k1+(equation[5]-48);
else
result=k1-(equation[5]-48);
}
else if((equation[2]=='*'||equation[2]=='/')&&(equation[4]=='*'||equation[4]=='/'))
{
double k1;
if(equation[2]=='*')
k1=(double)(equation[1]-48)*(equation[3]-48);
else
k1=(double)(equation[1]-48)/(equation[3]-48);
if(equation[4]=='*')
result=k1*(equation[5]-48);
else
result=k1/(equation[5]-48);
}
int p=(int)result*100;
result=(double)p/100;
for(int i=1;i<=5;i++){
cout<<equation[i]<<" ";
}
cout<<" = ?"<<endl;
cout<<"请输入你的答案,结果最多保留两位小数:";
cin>>youresult;
if(youresult==result)
cout<<"正确"<<endl,ans++;
else
{
cout<<"答案错误!"<<endl;
cout<<"正确答案是:"<<result<<endl;
}
Sleep(1000);
system("cls");
}
cout<<"你最后答对题目数:"<<ans<<endl;
}
}
int main()
{
srand((unsigned int)time(NULL));
title();
if(flag) return 0;
system("cls");
regist();
if(flag) return 0;
system("cls");
game();
return 0;
}
刚学c,代码不成熟请见谅。