基本信息
源码名称:小学生数学口算题卡.cpp
源码大小:7.21KB
文件格式:.cpp
开发语言:C/C++
更新时间:2020-12-02
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
随机生成口算题,可选出题模式如加减或乘除、比较大小,可限定出题范围如20以内加减法,答题完毕后自动判题。
随机生成口算题,可选出题模式如加减或乘除、比较大小,可限定出题范围如20以内加减法,答题完毕后自动判题。
#include<stdio.h> #include <stdlib.h> #include <string.h> char str[10]; int Answer[50]; int i,j,l,x,y,t; int range; int choice; int p,q; int num,count; int UserInput[50]; char a; int check(const char *str){ l=strlen(str); for(i=0; i<l;i ){ if(str[i]>='0'&&str[i]<='9') continue; else { return 0; break; } } }//判断用户输入的字符串是否为纯数字 int main(){ printf("------------------------------------------\n"); printf(">>>>>>>>>欢迎使用小学数学口算题卡<<<<<<<<<\n"); while(1){ printf("------------------------------------------\n"); printf(" 题目模式: \n"); printf(" 1.加法运算( ) \n"); printf(" 2.减法运算(-) \n"); printf(" 3.乘法运算(×) \n"); printf(" 4.除法运算(÷) \n"); printf(" 5.比较大小(>,<,=) \n"); printf(" 6.退出程序 \n"); printf("__________________________________________\n\n"); printf(">>>>>>>>>>>>>>请选择题目模式:(输入 1~6 的数字来选择相应模 式)\n"); while(1){ int flag=1; memset(str,0,sizeof(str)); scanf("%s",&str); flag=check(str);//判断输入是否为纯数字 if(!flag) printf("请输入 1~6 的数字!\n"); else{ choice=atoi(str); if(choice>0&&choice<=6){ break; } else printf("请输入 1~6 的数字!\n"); } }//判断用户输入是否合法 if(choice==6){ printf("<<<<<系统已退出,欢迎再次使用!>>>>>\n"); break; } else{ while(1){ printf(">>>>>>>>>>>>>>请输入出题范围(如输入数字 n 则给出 n 以内计算题):\n"); int flag=1; memset(str,0,sizeof(str)); scanf("%s",&str); flag=check(str);//判断输入是否为纯数字 if(!flag) printf("请输入一个正整数!\n"); else{ range=atoi(str);//将字符串转换为整形 if(range>0){//判断用户输入的是否是正整数 break; } else printf("请输入一个正整数!\n"); } } switch(choice) { case 1://加法 printf("\n"); p=1; num=1; count=50; for(i=1;i<=10;i ) { for(j=1;j<=5;j ) { x = rand() % range 1; y = rand() % range 1; printf("<%2d> %2d %2d= ",num,x,y); Answer[p]=x y; p ; num ; } printf("\n"); } printf("请依次输入每道题的答案:\n"); for(i=1;i<=50;i ){ printf("<%d> ",i); memset(str,0,sizeof(str)); scanf("%s",&str); t=atoi(str); UserInput[i]=t; } for(i=1;i<=50;i ){ if(Answer[i]!=UserInput[i]){ count-=1; printf("第%d 题的答案错误,正确答案 是:%d\n",i,Answer[i]); } } printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n"); printf("回答正确的题目数为:%d\n",count); break; case 2://减法 printf("\n"); p=1; num=1; count=50; for(i=1;i<=10;i ) { for(j=1;j<=5;j ) { x = rand() % range 1; y = rand() % range 1; if(x>y){ printf("<%2d> %2d-%2d= ",num,x,y); Answer[p]=x-y; } else{ printf("<%2d> %2d-%2d= ",num,y,x); Answer[p]=y-x; } p ; num ; } printf("\n"); } printf("请依次输入每道题的答案:\n"); for(i=1;i<=50;i ){ printf("<%d> ",i); memset(str,0,sizeof(str)); scanf("%s",&str); t=atoi(str); UserInput[i]=t; } for(i=1;i<=50;i ){ if(Answer[i]!=UserInput[i]){ count-=1; printf("第%d 题的答案错误,正确答案 是:%d\n",i,Answer[i]); } } printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n"); printf("回答正确的题目数为:%d\n",count); break; case 3://乘法 printf("\n"); p=1; num=1; count=50; for(i=1;i<=10;i ) { for(j=1;j<=5;j ) { x = rand() % range 1; y = rand() % range 1; printf("<%2d> %2d×%2d= ",num,x,y); Answer[p]=x*y; p ; num ; } printf("\n"); } printf("请依次输入每道题的答案:\n"); for(i=1;i<=50;i ){ printf("<%d> ",i); memset(str,0,sizeof(str)); scanf("%s",&str); t=atoi(str); UserInput[i]=t; } for(i=1;i<=50;i ){ if(Answer[i]!=UserInput[i]){ count-=1; printf("第%d 题的答案错误,正确答案 是:%d\n",i,Answer[i]); } } printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n"); printf("回答正确的题目数为:%d\n",count); break; case 4://除法 p=1; num=1; count=50; printf("友情提示:仅保留整数部分,不用考虑四舍五入。 \n\n"); for(i=1;i<=10;i ) { for(j=1;j<=5;j ) { x = rand() % range 1; y = rand() % range 1; if(x>y){ printf("<%2d> %2d÷%2d= ",num,x,y); Answer[p]=x/y; } else{ printf("<%2d> %2d÷%2d= ",num,y,x); Answer[p]=y/x; } p ; num ; } printf("\n"); } printf("请依次输入每道题的答案:\n"); for(i=1;i<=50;i ){ printf("<%d> ",i); memset(str,0,sizeof(str)); scanf("%s",&str); t=atoi(str); UserInput[i]=t; } for(i=1;i<=50;i ){ if(Answer[i]!=UserInput[i]){ count-=1; printf("第%d 题的答案错误,正确答案 是:%d\n",i,Answer[i]); } } printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n"); printf("回答正确的题目数为:%d\n",count); break; case 5://比较大小 printf("\n"); q=1; num=1; count=50; for(i=1;i<=10;i ) { for(j=1;j<=5;j ) { x = rand() % range 1; y = rand() % range 1; printf("<%2d> %2d○%-2d ",num,x,y); if(x>y) Answer[q]=1; else if(x<y) Answer[q]=2; else Answer[q]=0; q ; num ; } printf("\n"); } printf("请依次输入每道题的答案:\n"); printf("若大于(>)则输入 1,小于(<)则输入 2,等于(=)则输入 0。\n"); for(i=1;i<=50;i ){ printf("<%d> ",i); memset(str,0,sizeof(str)); scanf("%s",&str); t=atoi(str); UserInput[i]=t; } for(i=1;i<=50;i ){ if(Answer[i]!=UserInput[i]&&Answer[i]==1){ count-=1; printf("第%d 题的答案错误,正确答案是:大于\n",i); } else if(Answer[i]!=UserInput[i]&&Answer[i]==2){ count-=1; printf("第%d 题的答案错误,正确答案是:小于\n",i); } else if(Answer[i]!=UserInput[i]&&Answer[i]==0){ count-=1; printf("第%d 题的答案错误,正确答案是:等于\n",i); } } printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n"); printf("回答正确的题目数为:%d\n",count); break; } } printf("-----------------------------------------------\n"); printf("是否继续答题?(是则输入任意字符,否则输入 n 以退出)\n"); scanf("%s",&a); if(a=='n'||a=='N'){ printf(">>>>>>>>>>>>>>>>>欢迎下次使用!<<<<<<<<<<<<<<<<<\n"); break; } } }