本次作业要求:(1)出题器可以随机出四则运算。(2)真分数的运算。以下为程序运行截图:

根据使用说明来输入整数题目的数量,以及分数题目的数量,这里分别以5道题为例。

如果回答正确就会提示“回答正确”,回答错误则会提示“回答错误”。所有题目全部回答完毕将会给出得分情况。

为了便于打印,将所有的算术题存到了文本中。

以上为该程序的内容和使用详情,以下为程序源代码:

Coding链接(https://coding.net/u/Kingsman/p/xiaoxuesuanshu/git/blob/master/%E5%B0%8F%E5%AD%A6%E7%AE%97%E6%9C%AF)

#include <stdio.h>
#include <stdlib.h>
#include <time.h>int add(int);int sub(int);int mult(int);int divi(int);int max(int,int);int gys(int,int);int main()
{FILE *fp;fp=fopen("count.txt","a+");srand((unsigned)(time(NULL)));int i,m,n;int answer,t,right=0,score=0;printf("\t\t\t\t\t欢迎使用小学四则运算出题器\n使用说明:请根据提示输入题目的数量,需要多少道分数题。\n\t  整数除法题目如果存在余数请输入余数。\n\t  真分数计算题的答案先输入分子再输入分母。");printf("\n请输出整数题目数量:\n");scanf("%d",&n);printf("\n请输入分数题目数量:\n");scanf("%d",&t);for(m=0;m<n;m++)                                                   //整数计算
    {i=rand()%4+1;switch(i){case 1:answer=add(1);if(answer==1){right++;score=score+10;printf("回答正确\n");}else printf("回答错误\n");break;case 2:answer=sub(1);if(answer==1){right++;score=score+10;printf("回答正确\n");}else printf("回答错误\n");break;case 3:answer=mult(1);if(answer==1){right++;score=score+10;printf("回答正确\n");}else printf("回答错误\n");break;case 4:answer=divi(1);if(answer==1){right++;score=score+10;printf("回答正确\n");}else printf("回答错误\n");break;}}for(m=0;m<t;m++)                                                     //分数计算
    {i=rand()%4+1;switch(i){case 1:answer=add(2);if(answer==1){right++;score=score+10;printf("回答正确\n");}else printf("回答错误\n");break;case 2:answer=sub(2);if(answer==1){right++;score=score+10;printf("回答正确\n");}else printf("回答错误\n");break;case 3:answer=mult(2);if(answer==1){right++;score=score+10;printf("回答正确\n");}else printf("回答错误\n");break;case 4:answer=divi(2);if(answer==1){right++;score=score+10;printf("回答正确\n");}else printf("回答错误\n");break;}}printf("共有%d道题,答对%d道,总得分:%d\n",n+t,right,score);               //输出
    fclose(fp);return 0;
}
int max(int a,int b)
{if(a>=b)return a;else return b;}                                            //求最大值
int gys(int a,int b)
{if(a%b)return gys(b,a%b);return b;
}                                                //求最大公约数
int add(int q)
{FILE *fp;fp=fopen("count.txt","a+");                                                                                                            //加法if(q==1){srand((unsigned)(time(NULL)));int a=rand()%100+1,b=rand()%100+1;int answer;printf("%d + %d =",a,b);fprintf(fp,"%d + %d =\n",a,b);scanf("%d",&answer);if(a+b==answer)return 1;else return 0;}if(q==2){int e,f,x,y,z,x1,x2,x3,x4,a=rand()%15+1,b=rand()%13+1,c=rand()%13+1,d=rand()%15+1;char ch;srand((unsigned)(time(NULL)));x1=a+b-max(a,b);x2=max(a,b);x3=c+d-max(c,d);x4=max(c,d);x=gys(x1,x2);x1=x1/x;x2=x2/x;x=gys(x3,x4);x3=x3/x;x4=x4/x;printf("%d/%d + %d/%d =",x1,x2,x3,x4);fprintf(fp,"%d/%d + %d/%d =\n",x1,x2,x3,x4);scanf("%d%c%d",&e,&ch,&f);                                                                                                               //e为分子,f为分母y=(x2*x4)/gys(x2,x4);                                                                                                                                   //同分分母 yx=(x1)*y/x2+(x3)*y/x4;                                                                                                                               //同分分子 xz=gys(x,y);if(z==1){if(x==e&&y==f)return 1;else return 0;}else if(x/z==e&&y/z==f)return 1;else return 0;}
}
int sub(int q)
{int p;FILE *fp;fp=fopen("count.txt","a+");if(q==1){srand((unsigned)(time(NULL)));int a=rand()%100+1,b=rand()%100+1;int answer;if(a>b)printf("%d - %d =",a,b);else{p=a;a=b;b=p;printf("%d - %d =",a,b);}fprintf(fp,"%d - %d =\n",a,b);scanf("%d",&answer);if(a-b==answer)return 1;else return 0;}if(q==2){int e,f,x,y,z,x1,x2,x3,x4,a=rand()%15+1,b=rand()%15+1,c=rand()%15+1,d=rand()%15+1;char ch;srand((unsigned)(time(NULL)));x1=a+b-max(a,b);x2=max(a,b);x3=c+d-max(c,d);x4=max(c,d);                                                            x=gys(x1,x2);x1=x1/x;x2=x2/x;x=gys(x3,x4);x3=x3/x;x4=x4/x;x=gys(x2,x4);y=x1*x4/x;z=x3*x2/x;if(y-z<0){x=x1;x1=x3;x3=x;x=x2;x2=x4;x4=x;}printf("%d/%d - %d/%d =",x1,x2,x3,x4);fprintf(fp,"%d/%d - %d/%d =\n",x1,x2,x3,x4);scanf("%d%c%d",&e,&ch,&f);                                    y=(x2*x4)/gys(x2,x4);                                                                                                                              //同分分母 yx=(x1)*y/x2-(x3)*y/x4;                                                                                                                           //同分分子 xz=gys(x,y);if(z==1){if(x==e&&y==f)return 1;else return 0;}else if(x/z==e&&y/z==f)return 1;else return 0;}
}
int mult(int q)
{FILE *fp;fp=fopen("count.txt","a+");if(q==1){srand((unsigned)(time(NULL)));int a=rand()%60+1,b=rand()%60+1;int answer;printf("%d * %d =",a,b);fprintf(fp,"%d * %d =\n",a,b);scanf("%d",&answer);if(a*b==answer)return 1;else return 0;}if(q==2){int e,f,x,y,z,x1,x2,x3,x4,a=rand()%15+1,b=rand()%15+1,c=rand()%15+1,d=rand()%15+1;char ch;srand((unsigned)(time(NULL)));x1=a+b-max(a,b);x2=max(a,b);x3=c+d-max(c,d);x4=max(c,d);                                                   //x1是被乘数分子,x2被乘数分母,x3乘数分子,x4乘数分母x=gys(x1,x2);x1=x1/x;x2=x2/x;x=gys(x3,x4);x3=x3/x;x4=x4/x;printf("%d/%d * %d/%d =",x1,x2,x3,x4);fprintf(fp,"%d/%d * %d/%d =\n",x1,x2,x3,x4);scanf("%d%c%d",&e,&ch,&f);                                      //e为分子,f为分母y=x2*x4;                                                                                                                                                     //同分分母 yx=x1*x3;                                                                                                                                                      //同分分子 xz=gys(x,y);if(z==1){if(x==e&&y==f)return 1;else return 0;}else if(x/z==e&&y/z==f)return 1;else return 0;}
}
int divi(int q){FILE *fp;fp=fopen("count.txt","a+");if(q==1){srand((unsigned)(time(NULL)));int a=rand()%40+1,b=rand()%20+1;int answer,re;printf("%d / %d =",a,b);fprintf(fp,"%d / %d =\n",a,b);if(a%b==0){scanf("%d",&answer);if(a/b==answer)return 1;else return 0;}else{scanf("%d",&answer);printf("余数为:");scanf("%d",&re);if(a/b==answer&&a%b==re)return 1;else return 0;}}if(q==2){int e,f,x,y,z,x1,x2,x3,x4,a=rand()%15+1,b=rand()%15+1,c=rand()%15+1,d=rand()%15+1;char ch;srand((unsigned)(time(NULL)));x1=a+b-max(a,b);x2=max(a,b);x3=c+d-max(c,d);x4=max(c,d);                                              //x1是被乘数分子,x2被乘数分母,x3乘数分子,x4乘数分母x=gys(x1,x2);x1=x1/x;x2=x2/x;x=gys(x3,x4);x3=x3/x;x4=x4/x;printf("(%d/%d) / (%d/%d) =",x1,x2,x3,x4);fprintf(fp,"(%d/%d) / (%d/%d) =\n",x1,x2,x3,x4);scanf("%d%c%d",&e,&ch,&f);                                //e为分子,f为分母y=x2*x3;                                                                                                                                                     //同分分母 yx=x1*x4;                                                                                                                                                      //同分分子 xz=gys(x,y);if(z==1){if(x==e&&y==f)return 1;else return 0;}else if(x/z==e&&y/z==f)return 1;else return 0;}
}

转载于:https://www.cnblogs.com/kingsman/p/5263032.html

实现“小学生算术题出题器”相关推荐

  1. 小学生算数出题器程序设计

    本程序设计满足以下功能: 随机生成两个整数x和y,并且满足两数相加不大于100,两数相减不为负数. 随机出10道题,每题10分,程序结束时显示学生得分和等级. 每道题学生只有一次机会输入答案,当学生输 ...

  2. 结队作业,小学生3年级数学题出题器

    结对作业, 学号1:211606308 江东 学号2:211606306 黄柏涛 一.预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际 ...

  3. 小学生加减法出题神器c语言编程,小孩我要当学霸(小学加减法出题器)

    小孩我要当学霸1.1是一款网友分享的小学加减法出题器,它可以自动出题,家长朋友们只需要设定好题目类型和范围就可以了.使用起来还是非常方便的,感兴趣的朋友欢迎前来西西下载! 关于软件 现在很多地区还是没 ...

  4. 小学算术自动出题c语言,【小学算术随机出题器】小学算术随机出题器电脑版下载 v0.7 吾爱版-趣致软件园...

    小学算术随机出题器介绍 小学算术随机出题器是一款十分好用的在线学习软件,专为每一个家长提供了全新的小学生数学出题方式,让家长在家轻松帮助自己的孩子数学成绩.小学算术随机出题器电脑版使用起来十分的简单, ...

  5. c语言作业小学生测试题,C语言实现小学生随机出题测试计分

    C语言实现小学生随机出题测试计分 发布时间:2020-10-12 02:13:39 来源:脚本之家 阅读:103 作者:iCodeBugs 本文实例为大家分享了C语言实现随机出题测试计分的具体代码,供 ...

  6. php四则运算出题器

    php四则运算出题器 要求 1.可以将出题结果导出到EXCEL文件 2.用户可以指定题目的数量 3.用户可指定操作数的数目(至少二个.至多四个),如果指定的操作数超过2个,应该随机出现括号用于改变运算 ...

  7. C语言自动出十题四则运算,c语言四则运算出题器

    <c语言四则运算出题器>由会员分享,可在线阅读,更多相关<c语言四则运算出题器(16页珍藏版)>请在人人文库网上搜索. 1.include#include#includeint ...

  8. 《构建之法》作业:口算出题器

    <构建之法>作业:python写口算出题器 实现功能: 输入一个正整数n,随机生成n道运算符为2或3的整数四则运算(无括号) 题目和结果均为整数 生成两个文件,equation0.txt用 ...

  9. c语言自动出题器,c语言四则运算出题器

    c语言四则运算出题器,绝对的原创,绝对的无错误,绝对用最简单的知识完成难得问题. #include #include #include int a,n,nright=0,nwrong=0,flag5, ...

最新文章

  1. 华人团队用Transformer做风格迁移,速度快、可试玩,网友却不买账
  2. 人人都能看懂的EM算法推导
  3. 远程访问,文件的压缩,ip地址的设置(9,11,12unit)
  4. 深入浅出Istio:Service mesh快速入门与实践-读书笔记(By GisonWin)
  5. 使用ajax进行汽车详情表的查询
  6. 用lambda构建ORM查询语句
  7. netcdf4excel插件安装完出现问题
  8. clickhouse常用sql
  9. Ajax请求Session超时的解决办法:拦截器 + 封装jquery的post方法
  10. 提高你开发效率的十五个 Visual Studio 使用技巧
  11. 异步提交表单插件jquery.form.min.js的使用实例
  12. python 创建工具包_使用Python工具建立网站
  13. php验证码一直验证错误,织梦输入正确验证码登录却一直显示错误的解决方法
  14. [分享]Java 线程池的原理与实现
  15. mysql windos安装包_WINDOWS 安装mysql安装包_MySQL
  16. 【更新】PDF控件Spire.PDF 3.9.568发布 | 附下载
  17. 【面试高频】Java设计原则总结
  18. Window系统下如何生成ssh key以及如何在码云中添加公钥
  19. 基于部分卷积Pconv的图片修复
  20. python爬虫:爬取QQ音乐歌曲

热门文章

  1. 写几句对公司的新年祝愿
  2. python文件默认打开方式修改_如何将py文件改为默认打开方式?
  3. 0049算法笔记——【随机化算法】蒙特卡罗算法,主元素问题,素数测试问题
  4. 【Python基础】turtle库语法简析!
  5. Paper Reading: GELUs
  6. 西农新版锐捷linux系统客户端联网方法
  7. 前端VsCode使用插件
  8. 百度地图_设置缩放级别
  9. jmeter使用之文件读取
  10. 【CSDN英雄会】大众点评黄俊东:Android开发者经验谈