实现“小学生算术题出题器”
本次作业要求:(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
实现“小学生算术题出题器”相关推荐
- 小学生算数出题器程序设计
本程序设计满足以下功能: 随机生成两个整数x和y,并且满足两数相加不大于100,两数相减不为负数. 随机出10道题,每题10分,程序结束时显示学生得分和等级. 每道题学生只有一次机会输入答案,当学生输 ...
- 结队作业,小学生3年级数学题出题器
结对作业, 学号1:211606308 江东 学号2:211606306 黄柏涛 一.预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际 ...
- 小学生加减法出题神器c语言编程,小孩我要当学霸(小学加减法出题器)
小孩我要当学霸1.1是一款网友分享的小学加减法出题器,它可以自动出题,家长朋友们只需要设定好题目类型和范围就可以了.使用起来还是非常方便的,感兴趣的朋友欢迎前来西西下载! 关于软件 现在很多地区还是没 ...
- 小学算术自动出题c语言,【小学算术随机出题器】小学算术随机出题器电脑版下载 v0.7 吾爱版-趣致软件园...
小学算术随机出题器介绍 小学算术随机出题器是一款十分好用的在线学习软件,专为每一个家长提供了全新的小学生数学出题方式,让家长在家轻松帮助自己的孩子数学成绩.小学算术随机出题器电脑版使用起来十分的简单, ...
- c语言作业小学生测试题,C语言实现小学生随机出题测试计分
C语言实现小学生随机出题测试计分 发布时间:2020-10-12 02:13:39 来源:脚本之家 阅读:103 作者:iCodeBugs 本文实例为大家分享了C语言实现随机出题测试计分的具体代码,供 ...
- php四则运算出题器
php四则运算出题器 要求 1.可以将出题结果导出到EXCEL文件 2.用户可以指定题目的数量 3.用户可指定操作数的数目(至少二个.至多四个),如果指定的操作数超过2个,应该随机出现括号用于改变运算 ...
- C语言自动出十题四则运算,c语言四则运算出题器
<c语言四则运算出题器>由会员分享,可在线阅读,更多相关<c语言四则运算出题器(16页珍藏版)>请在人人文库网上搜索. 1.include#include#includeint ...
- 《构建之法》作业:口算出题器
<构建之法>作业:python写口算出题器 实现功能: 输入一个正整数n,随机生成n道运算符为2或3的整数四则运算(无括号) 题目和结果均为整数 生成两个文件,equation0.txt用 ...
- c语言自动出题器,c语言四则运算出题器
c语言四则运算出题器,绝对的原创,绝对的无错误,绝对用最简单的知识完成难得问题. #include #include #include int a,n,nright=0,nwrong=0,flag5, ...
最新文章
- 华人团队用Transformer做风格迁移,速度快、可试玩,网友却不买账
- 人人都能看懂的EM算法推导
- 远程访问,文件的压缩,ip地址的设置(9,11,12unit)
- 深入浅出Istio:Service mesh快速入门与实践-读书笔记(By GisonWin)
- 使用ajax进行汽车详情表的查询
- 用lambda构建ORM查询语句
- netcdf4excel插件安装完出现问题
- clickhouse常用sql
- Ajax请求Session超时的解决办法:拦截器 + 封装jquery的post方法
- 提高你开发效率的十五个 Visual Studio 使用技巧
- 异步提交表单插件jquery.form.min.js的使用实例
- python 创建工具包_使用Python工具建立网站
- php验证码一直验证错误,织梦输入正确验证码登录却一直显示错误的解决方法
- [分享]Java 线程池的原理与实现
- mysql windos安装包_WINDOWS 安装mysql安装包_MySQL
- 【更新】PDF控件Spire.PDF 3.9.568发布 | 附下载
- 【面试高频】Java设计原则总结
- Window系统下如何生成ssh key以及如何在码云中添加公钥
- 基于部分卷积Pconv的图片修复
- python爬虫:爬取QQ音乐歌曲