在好例子网,分享、交流、成长!
您当前所在位置:首页C/C++ 开发实例常规C/C++编程 → 小学生数学口算题卡.cpp

小学生数学口算题卡.cpp

常规C/C++编程

下载此实例
  • 开发语言:C/C++
  • 实例大小:7.21KB
  • 下载次数:10
  • 浏览次数:327
  • 发布时间:2020-12-02
  • 实例类别:常规C/C++编程
  • 发 布 人:tyzzrx
  • 文件格式:.cpp
  • 所需积分:2
 相关标签: 口算题卡 小学 数学

实例介绍

【实例简介】随机生成口算题,可选出题模式如加减或乘除、比较大小,可限定出题范围如20以内加减法,答题完毕后自动判题。

【实例截图】

from clipboard

【核心代码】

#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;
}
}
}

实例下载地址

小学生数学口算题卡.cpp

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警