c语言小学期作业,数据和结果都不会大于100;
密码:666666
输出三次密码错误会导致电脑关机,否则要10s内请输入正确密码方可取消关机指令
进入主菜单输入1-6开启运算,输入0查询或删除历史成绩,其他输入会进入404界面
第一次运算为考试模式,将会计入历史成绩,后面都为练习模式(不计入历史成绩)
在主菜单按6方可正常退出程序,但是不建议按7,因为退出会比较彻底
代码如下:
#include<cstdio>
#include<stdlib.h>
#include<time.h>
#include<cmath>
#include<windows.h>
int main() {
SetConsoleTitle("四则运算");
FILE *fp=fopen("score.txt","a");
if(fp==NULL) {
return 0;
}
int x,cd,end,zl,zb,za,zd,num;
int qq=1,mima;
while(qq<4) { //密码系统
printf("请输入密码:");
scanf("%d",&mima);
if(mima!=666666) {
printf("\033[31m密码输入错误!\033[0m\n");
printf("\033[31m您还可以输入%d次\033[0m\n",3-qq);
}
qq++;
if(mima==666666) {
system("cls") ;
goto cd;
}
}
if(qq==4) {
system("cls") ;
char input[100];
system("shutdown -s -t 10");
flag:
printf("\033[31m警告:10s内请输入正确密码,否则电脑将自动关机\n\033[0m");
scanf("%s",input);
if(strcmp(input,"666666")==0) {
system("shutdown -a");
system("cls") ;
} else {
goto flag;
}
}
cd:
printf("\033[31;44m小学生四则运算游戏\033[0m\n\033[31;44m请输入以下序号测试\033[0m\n\033[36m**************\n**0.历史分数**\n**1.加法运算**\n**2.减法运算**\n**3.乘法运算**\n**4.除法运算**\n**5.综合运算**\n**6.正常退出**\n**7.超级退出**\n**************\n\033[0m\n");
scanf("%d",&x);//主菜单
if(x!=0&&x!=1&&x!=2&&x!=3&&x!=4&&x!=5&&x!=6&&x!=7) {
printf("\033[31mSorry,404 Not Find.\n\033[0m");
system("color ce") ;
}//404报错
if(x==7) {
system("shutdown -s -t 0");
printf("\033[32m感谢您的使用,再见\033[0m");
}
if(x==0) {
printf("\033[31m历\033[0m\033[33m史\033[0m\033[36m成\033[0m\033[33m绩\033[0m:\n");
printf("\n");
FILE *fpRead=fopen("score.txt","r");
//fscanf(fpRead,"%*[^\n]"); 跳过第一行文字
int j=0;
char a[666];
if(fscanf(fpRead,"%d",&a[j])==EOF) {
printf("\033[31m你还没有历史成绩哦,赶快练习吧!\n\033[0m");
}
else {
printf("\033[32m*第1次运算分数为:\033[0m\033[31m%d\033[0m\033[32m分*\033[0m\n",a[j]);
j++;
}
while(fscanf(fpRead,"%d",&a[j])!=EOF) {
printf("\033[32m*第%d次运算分数为:\033[0m\033[31m%d\033[0m\033[32m分*\033[0m\n",j+1,a[j]);
j++;
}
fclose(fpRead);
printf("\n按1返回主菜单,按2清空历史成绩并返回,其他任意键退出本程序...\n");
int p;
scanf("%d",&p);
if(p==1) {
system("cls") ;
goto cd;
}
if(p==2) {
system("cls") ;
FILE *file;
file = fopen("score.txt","w");
goto cd;
}
if(p!=1&&p!=2) {
goto end;
}
}//历史分数
if(x==6) {
end:
printf("\033[32m感谢您的使用,再见\033[0m");
return 0;
}//退出
//加法运算
if(x==1) {
num=1;
system("cls") ;
printf("\033[31m加\033[0m\033[33m法\033[0m\033[36m运\033[0m\033[33m算\033[0m\033[34m开\033[0m\033[35m始\033[0m\n\n");
srand((unsigned int)time(NULL));
int i=1,input,f=0;
while(i<=10) {
int y=rand() % 2+2;
if(y==2) {
int a=rand() % 100+1;
int b=rand() % (100-a)+1;
printf("第%d题:\n%d + %d = ?\n你的答案是\n",i,a,b);
i++;
scanf("%d",&input);
if(input==a+b) {
printf("\033[32m答对啦,你真聪明\n\n\033[0m");
f+=10;
} else {
printf("\033[31m答错了,答案是%d\n\n\033[0m",a+b);
}
}
if(y==3) {
int a=rand() % 100+1;
int b=rand() % (100-a)+1;
int c=rand() % (100-a-b)+1;
if(a+b==100) {
printf("第%d题:\n%d + %d = ?\n你的答案是\n",i,a,b);
i++;
scanf("%d",&input);
if(input==a+b) {
printf("\033[32m答对啦,你真聪明\n\n\033[0m");
f+=10;
} else {
printf("\033[31m答错了,答案是%d\n\n\033[0m",a+b);
}
}
printf("第%d题:\n%d + %d + %d = ?\n你的答案是\n",i,a,b,c);
i++;
scanf("%d",&input);
if(input==a+b+c) {
printf("\033[32m答对啦,你真聪明\n\n\033[0m");
f+=10;
} else {
printf("\033[31m答错了,答案是%d\n\n\033[0m",a+b+c);
}
}
}
printf("恭喜你!答题已完成,你的总成绩是\033[31m%d\033[0m分\n",f);
fprintf(fp,"%d\n",f);
fclose(fp);
if(f>=90) {
printf("\033[32m Perfect!\n\033[0m");
}
if(f<90&&f>=70) {
printf("\033[33m Good!\n\033[0m");
}
if(f<70&&f>=60) {
printf("\033[34m Passing!\n\033[0m");
}
if(f<60) {
printf("\033[31m Failed!\n\033[0m");
}
printf("\n小朋友,是否进入练习模式(不计入历史成绩)?按1进入并返回主菜单,按2退出本程序...\n");
int p;
scanf("%d",&p);
if(p==1) {
system("cls") ;
goto cd;
}
if(p==2) {
goto end;
}
if(p!=1&&p!=2) {
printf("\033[31m警告:无效输入,请关闭该程序重新打开...\033[0m");
}
}
//减法运算
if(x==2) {
system("cls") ;
num=2;
printf("\033[31m减\033[0m\033[33m法\033[0m\033[36m运\033[0m\033[33m算\033[0m\033[34m开\033[0m\033[35m始\033[0m\n\n");
srand((unsigned int)time(NULL));
int i=1,input,f=0;
while(i<=10) {
int y=rand() % 2+2;
if(y==2) {
int a=rand() % 100+1;
int b=rand() % a+1;
printf("第%d题:\n%d - %d = ?\n你的答案是\n",i,a,b);
i++;
scanf("%d",&input);
if(input==a-b) {
printf("\033[32m答对啦,你真聪明\n\n\033[0m");
f+=10;
} else {
printf("\033[31m答错了,答案是%d\n\n\033[0m",a-b);
}
}
if(y==3) {
int a=rand() % 100+1;
int b=rand() % a+1;
int c=rand() % (a-b)+1;
printf("第%d题:\n%d - %d - %d = ?\n你的答案是\n",i,a,b,c);
i++;
scanf("%d",&input);
if(input==a-b-c) {
printf("\033[32m答对啦,你真聪明\n\n\033[0m");
f+=10;
} else {
printf("\033[31m答错了,答案是%d\n\n\033[0m",a-b-c);
}
}
}
printf("恭喜你!答题已完成,你的总成绩是\033[31m%d\033[0m分\n",f);
fprintf(fp,"%d\n",f);
fclose(fp);
if(f>=90) {
printf("\033[32m Perfect!\n\033[0m");
}
if(f<90&&f>=70) {
printf("\033[33m Good!\n\033[0m");
}
if(f<70&&f>=60) {
printf("\033[34m Passing!\n\033[0m");
}
if(f<60) {
printf("\033[31m Failed!\n\033[0m");
}
printf("\n小朋友,是否进入练习模式(不计入历史成绩)?按1进入并返回主菜单,按2退出本程序...\n");
int p;
scanf("%d",&p);
if(p==1) {
system("cls") ;
goto cd;
}
if(p==2) {
goto end;
}
if(p!=1&&p!=2) {
printf("\033[31m警告:无效输入,请关闭该程序重新打开...\033[0m");
}
}
//乘法运算
if(x==3) {
system("cls") ;
num=3;
printf("\033[31m乘\033[0m\033[33m法\033[0m\033[36m运\033[0m\033[33m算\033[0m\033[34m开\033[0m\033[35m始\033[0m\n\n");
srand((unsigned int)time(NULL));
int i=1,input,f=0;
while(i<=10) {
int y=rand() % 2+2;
if(y==2) {
int a=rand() % 25+1;
int b=rand() % (100/a);
printf("第%d题:\n%d x %d = ?\n你的答案是\n",i,a,b);
i++;
scanf("%d",&input);
if(input==a*b) {
printf("\033[32m答对啦,你真聪明\n\n\033[0m");
f+=10;
} else {
printf("\033[31m答错了,答案是%d\n\n\033[0m",a*b);
}
}
if(y==3) {
int a=rand() % 8+1;
int b=rand() % 7+1;
int c=rand() % (100/a/b);
printf("第%d题:\n%d x %d x %d = ?\n你的答案是\n",i,a,b,c);
i++;
scanf("%d",&input);
if(input==a*b*c) {
printf("\033[32m答对啦,你真聪明\n\n\033[0m");
f+=10;
} else {
printf("\033[31m答错了,答案是%d\n\n\033[0m",a*b*c);
}
}
}
printf("恭喜你!答题已完成,你的总成绩是\033[31m%d\033[0m分\n",f);
fprintf(fp,"%d\n",f);
fclose(fp);
if(f>=90) {
printf("\033[32m Perfect!\n\033[0m");
}
if(f<90&&f>=70) {
printf("\033[33m Good!\n\033[0m");
}
if(f<70&&f>=60) {
printf("\033[34m Passing!\n\033[0m");
}
if(f<60) {
printf("\033[31m Failed!\n\033[0m");
}
printf("\n小朋友,是否进入练习模式(不计入历史成绩)?按1进入并返回主菜单,按2退出本程序...\n");
int p;
scanf("%d",&p);
if(p==1) {
system("cls") ;
goto cd;
}
if(p==2) {
goto end;
}
if(p!=1&&p!=2) {
printf("\033[31m警告:无效输入,请关闭该程序重新打开...\033[0m");
}
}
//除法运算
if(x==4) {
system("cls") ;
num=4;
printf("\033[31m除\033[0m\033[33m法\033[0m\033[36m运\033[0m\033[33m算\033[0m\033[34m开\033[0m\033[35m始\033[0m\n\n");
srand((unsigned int)time(NULL));
int i=1,input,f=0;
while(i<=10) {
int y=2;
int aa[666]= {4,6,8,9,10,12,14,15,16,18,20,21,22,24,25,26,27,28,30,32,33,34,35,36,38,40,42,44,45,46,48,49,50,52,54,55,56,58,60,62,64,65,66,68,70,72,74,75,76,77,78,80,81,82,84,85,86,87,88,90,92,94,95,96,98};
int bb[666]= {2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,25,30,31,32,33,34,35,36,37,40};
if(y==2) {
int aaa=rand()%65;
int bbb=rand()%30;
int a=aa[aaa];
int b=bb[bbb];
while(a%b!=0) {
bbb=rand()%30;
b=bb[bbb];
if(a%b==0)break;
}
printf("第%d题:\n%d ÷ %d = ?\n你的答案是\n",i,a,b);
i++;
scanf("%d",&input);
if(input==a/b) {
printf("\033[32m答对啦,你真聪明\n\n\033[0m");
f+=10;
} else {
printf("\033[31m答错了,答案是%d\n\n\033[0m",a/b);
}
}
}
printf("恭喜你!答题已完成,你的总成绩是\033[31m%d\033[0m分\n",f);
fprintf(fp,"%d\n",f);
fclose(fp);
if(f>=90) {
printf("\033[32m Perfect!\n\033[0m");
}
if(f<90&&f>=70) {
printf("\033[33m Good!\n\033[0m");
}
if(f<70&&f>=60) {
printf("\033[34m Passing!\n\033[0m");
}
if(f<60) {
printf("\033[31m Failed!\n\033[0m");
}
printf("\n小朋友,是否进入练习模式(不计入历史成绩)?按1进入并返回主菜单,按2退出本程序...\n");
int p;
scanf("%d",&p);
if(p==1) {
system("cls") ;
goto cd;
}
if(p==2) {
goto end;
}
if(p!=1&&p!=2) {
printf("\033[31m警告:无效输入,请关闭该程序重新打开...\033[0m");
}
}
//综合运算
if(x==5) {
system("cls") ;
num=5;
printf("\033[31m综\033[0m\033[33m合\033[0m\033[36m运\033[0m\033[33m算\033[0m\033[34m开\033[0m\033[35m始\033[0m\n");
srand((unsigned int)time(NULL));
int i=1,input,f=0;
while(i<=10) {
zl:
int y=0;
if(y==0) {
int fu=rand() % 2;
if(fu==0) {
int fu1=rand() % 4;
int fu2=rand() % 4;
while(fu1==fu2) {
fu2=rand() % 4;
if(fu1!=fu2)break;
}
char ja='+',jn='-',cn='x',cu='/',fu11,fu22;
if(fu1==0)fu11=ja;
if(fu1==1)fu11=jn;
if(fu1==2)fu11=cn;
if(fu1==3)fu11=cu;
if(fu2==0)fu22=ja;
if(fu2==1)fu22=jn;
if(fu2==2)fu22=cn;
if(fu2==3)fu22=cu;
int g;
int aa[666]= {4,6,8,9,10,12,14,15,16,18,20,21,22,24,25,26,27,28,30,32,33,34,35,36,38,40,42,44,45,46,48,49,50,52,54,55,56,58,60,62,64,65,66,68,70,72,74,75,76,77,78,80,81,82,84,85,86,87,88,90,92,94,95,96,98};
int bb[666]= {2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,25,30,31,32,33,34,35,36,37,40};
int aaa=rand()%65;
int bbb=rand()%30;
int q=aa[aaa];
int w=bb[bbb];
while(q%w!=0) {
bbb=rand()%30;
w=bb[bbb];
if(q%w==0)break;
}
int a=rand() % 25+1;
int b=rand() % 25+1;
int c=rand() % 25+1;
int r=rand() % 18+2;
while(q%r!=0) {
r=rand() % 18+2;
if(q%r==0)
break;
}
int t=q/r;
if(fu1==0&&fu2==1) {
g=a+b-c;
}
if(fu1==0&&fu2==2) {
g=b*c+a;
}
if(fu1==0&&fu2==3) {
g=a+q/w;
}
if(fu1==1&&fu2==0) {
g=a-b+c;
}
if(fu1==1&&fu2==2) {
g=a-b*c;
}
if(fu1==1&&fu2==3) {
g=a-q/w;
}
if(fu1==2&&fu2==0) {
g=a*b+c;
}
if(fu1==2&&fu2==1) {
g=a*b-c;
}
if(fu1==2&&fu2==3) {
g=q/w;
}
if(fu1==3&&fu2==0) {
g=q/w+c;
}
if(fu1==3&&fu2==1) {
g=q/w-c;
}
if(fu1==3&&fu2==2) {
g=q/w*c;
}
if(g>85||g<0) {
goto zl;
}
int xswl=rand()%4;
if(xswl==0) {
if(fu1!=3&&fu2!=3) {
printf("第%d题:\n%d %c %d %c %d = ?\n你的答案是\n",i,a,fu11,b,fu22,c);
}
if(fu1==3) {
printf("第%d题:\n%d ÷ %d %c %d = ?\n你的答案是\n",i,q,w,fu22,c);
}
if(fu1!=2&&fu2==3) {
printf("第%d题:\n%d %c %d ÷ %d = ?\n你的答案是\n",i,a,fu11,q,w);
}
if(fu1==2&&fu2==3) {
printf("第%d题:\n%d x %d ÷ %d = ?\n你的答案是\n",i,r,t,w);
}
i++;
scanf("%d",&input);
if(input==g) {
printf("\033[32m答对啦,你真聪明\n\n\033[0m");
f+=10;
} else {
printf("\033[31m答错了,答案是%d\n\n\033[0m",g);
}
}
if(xswl!=0) {
int sb=rand()%15+1;
if(fu1!=3&&fu2!=3) {
printf("第%d题:\n%d %c %d %c %d + %d = ?\n你的答案是\n",i,a,fu11,b,fu22,c,sb);
}
if(fu1==3) {
printf("第%d题:\n%d ÷ %d %c %d + %d = ?\n你的答案是\n",i,q,w,fu22,c,sb);
}
if(fu1!=2&&fu2==3) {
printf("第%d题:\n%d %c %d ÷ %d + %d = ?\n你的答案是\n",i,a,fu11,q,w,sb);
}
if(fu1==2&&fu2==3) {
printf("第%d题:\n%d x %d ÷ %d + %d = ?\n你的答案是\n",i,r,t,w,sb);
}
i++;
scanf("%d",&input);
if(input==g+sb) {
printf("\033[32m答对啦,你真聪明\n\n\033[0m");
f+=10;
} else {
printf("\033[31m答错了,答案是%d\n\n\033[0m",g+sb);
}
}
}
if(fu==1) {
zb:
char ja='+',jn='-',cn='x',cu='/',fu11,fu22;
int fu=rand() % 2;
int fu1=rand() % 2;
int fu2=rand() % 2;
if(fu==0) {
if(fu1==0)fu11=ja;
if(fu1==1)fu11=jn;
if(fu2==0)fu22=cn;
if(fu2==1)fu22=cu;//前括号
}
if(fu==1) {
if(fu1==0)fu11=cn;
if(fu1==1)fu11=cu;
if(fu2==0)fu22=ja;
if(fu2==1)fu22=jn;//后括号
}
int g;
int aa[666]= {4,6,8,9,10,12,14,15,16,18,20,21,22,24,25,26,27,28,30,32,33,34,35,36,38,40,42,44,45,46,48,49,50,52,54,55,56,58,60,62,64,65,66,68,70,72,74,75,76,77,78,80,81,82,84,85,86,87,88,90,92,94,95,96,98};
int bb[666]= {2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,25,30,31,32,33,34,35,36,37,40};
int aaa=rand()%65;
int bbb=rand()%30;
int q=aa[aaa];
int w=bb[bbb];
while(q%w!=0) {
bbb=rand()%30;
w=bb[bbb];
if(q%w==0)break;
}
int a=rand() % 18+1;
int b=rand() % 30+1;
int c=rand() % 30+1;
int e=rand()%w;
int r=w-e;
int t=rand()%(100-w)+w;
int o=t-w;
int v=rand()%q;
int n=q-v;
int j=rand()%(100-q)+q;
int k=j-q;
if(fu==0&&fu1==0&&fu2==0) {
g=(a+b)*c;
}
if(fu==0&&fu1==0&&fu2==1) {
g=q/w;//(a+b)/c
}
if(fu==0&&fu1==1&&fu2==0) {
g=(a-b)*c;
}
if(fu==0&&fu1==1&&fu2==1) {
g=q/w;//(a-b)/c
}
if(fu==1&&fu1==0&&fu2==0) {
g=a*(b+c);
}
if(fu==1&&fu1==0&&fu2==1) {
g=a*(b-c);
}
if(fu==1&&fu1==1&&fu2==0) {
g=q/w;
}
if(fu==1&&fu1==1&&fu2==1) {
g=q/w;
}
if(g>100||g<15) {
goto zb;
}
int xswlb=rand()%3;
if(xswlb==0) {
if(fu==0&&fu2==0) {
printf("第%d题:\n(%d %c %d) %c %d= ?\n你的答案是\n",i,a,fu11,b,fu22,c);
}
if(fu==0&&fu2==1&&fu1==0) {
printf("第%d题:\n(%d %c %d) ÷ %d = ?\n你的答案是\n",i,v,fu11,n,w);
}
if(fu==0&&fu2==1&&fu1==1) {
printf("第%d题:\n(%d %c %d) ÷ %d = ?\n你的答案是\n",i,j,fu11,k,w);
}
if(fu==1&&fu1==0) {
printf("第%d题:\n %d %c (%d %c %d) = ?\n你的答案是\n",i,a,fu11,b,fu22,c);
}
if(fu==1&&fu1==1&&fu2==0) {
printf("第%d题:\n%d ÷ (%d %c %d) = ?\n你的答案是\n",i,q,e,fu22,r);
}
if(fu==1&&fu1==1&&fu2==1) {
printf("第%d题:\n%d ÷ (%d %c %d) = ?\n你的答案是\n",i,q,t,fu22,o);
}
i++;
scanf("%d",&input);
if(input==g) {
printf("\033[32m答对啦,你真聪明\n\n\033[0m");
f+=10;
} else {
printf("\033[31m答错了,答案是%d\n\n\033[0m",g);
}
}
if(xswlb!=0) {
int sb=rand()%15+1;
if(fu==0&&fu2==0) {
printf("第%d题:\n(%d %c %d) %c %d -%d = ?\n你的答案是\n",i,a,fu11,b,fu22,c,sb);
}
if(fu==0&&fu2==1&&fu1==0) {
printf("第%d题:\n(%d %c %d) ÷ %d -%d = ?\n你的答案是\n",i,v,fu11,n,w,sb);
}
if(fu==0&&fu2==1&&fu1==1) {
printf("第%d题:\n(%d %c %d) ÷ %d -%d = ?\n你的答案是\n",i,j,fu11,k,w,sb);
}
if(fu==1&&fu1==0) {
printf("第%d题:\n %d %c (%d %c %d) -%d = ?\n你的答案是\n",i,a,fu11,b,fu22,c,sb);
}
if(fu==1&&fu1==1&&fu2==0) {
printf("第%d题:\n%d ÷ (%d %c %d) -%d = ?\n你的答案是\n",i,q,e,fu22,r,sb);
}
if(fu==1&&fu1==1&&fu2==1) {
printf("第%d题:\n%d ÷ (%d %c %d) -%d = ?\n你的答案是\n",i,q,t,fu22,o,sb);
}
i++;
scanf("%d",&input);
if(input==g-sb) {
printf("\033[32m答对啦,你真聪明\n\n\033[0m");
f+=10;
} else {
printf("\033[31m答错了,答案是%d\n\n\033[0m",g-sb);
}
}
}
}
}
printf("恭喜你!答题已完成,你的总成绩是\033[31m%d\033[0m分\n",f);
fprintf(fp,"%d\n",f);
fclose(fp);
if(f>=90) {
printf("\033[32m Perfect!\n\033[0m");
}
if(f<90&&f>=70) {
printf("\033[33m Good!\n\033[0m");
}
if(f<70&&f>=60) {
printf("\033[34m Passing!\n\033[0m");
}
if(f<60) {
printf("\033[31m Failed!\n\033[0m");
}
printf("\n小朋友,是否进入练习模式(不计入历史成绩)?按1进入并返回主菜单,按2退出本程序...\n");
int p;
scanf("%d",&p);
if(p==1) {
system("cls") ;
goto cd;
}
if(p==2) {
goto end;
}
if(p!=1&&p!=2) {
printf("\033[31m警告:无效输入,请关闭该程序重新打开...\033[0m");
}
}
return 0;
}