个人项目3:一个能生成小学二年级四则运算题目的“软件”版本3
要求:
1.实现在线答题。
2.答题结束后可以判断对错。
3.将错题的结果保存起来。
思路:
刚拿到这个项目时,我的想法就是把编程过程分为两个阶段,第一个阶段是完成能自动判断错误的编程,第二个阶段是能将错题存入到一个txt文件中,其中第一阶段耗费的时间较长,比第二阶段多用了半个小时。
编写这个程序基本上是基于第一次二柱子代码之上的,加入两个功能即可。
为了让软件能够判断对错,我想到了用IF语句,d=a-b让计算机算出正确答案d, if(m==d)然后判断用户输入的值m和d是否相等来达到目的,如果相等就输出“回答正确”,否则就输出“回答错误”。
在做输出txt任务时,没有学过这个方法,我百度到了下面这个代码:
main()
{
FILE*fpt;
fpt=fopen(“wendengming.txt”.w);
fprint(fpt,”%d/n”,m);
fclose(fpt);
}
所以我的任务就是对这部分代码改装并加以利用。fprintf(fpt,"%d+%d=\n",a,b);先改一下fprintf,让它变成我想要在txt存入公式的格式,下一步就是如何将这部分代码和switch语句结合起来(也就是怎么去插入这部分代码)。我尝试过多种插入方式,一度我还以为这部分有问题,起初我将FILE*fpt;fpt=fopen(“wendengming.txt”.w);fprint(fpt,”%d/n”,m);fclose(fpt);插入到每个计算事件判断事件的下面,每次运行结果在txt只能保存一个公式,然后我又尝试了几种方法,也是如此。我想我可能需要了解一下这部分代码的含义,我百度了一下:1.定义一个file 2.打开file 3.将内容写入file 4.关闭file。瞬间豁然开朗,原来这段代码要分开使用,FILE*fpt;fpt=fopen(“wendengming.txt”.w);放在整个程序的前面,四个计算部分放四个printf,fclose放在for循环结构的下面。
代码如下:
#include<stdio.h> #include<Windows.h> #include<time.h> #include <fstream> using namespace std;void main() {int a,b,c,d,e,m,i;printf("请输入出题数:");scanf("%d",&e);srand(unsigned( time(NULL)));FILE*fpt;fpt=fopen("D:/错题集.txt","w");for(i = 0; i < e; i++){a = rand() % 100;b = rand() % 100;c = rand() % 4;switch (c){case 0:printf("%d + %d =\n",a,b);d=a+b;scanf("%d",&m);if(m==d)printf("回答正确\n");else{printf("回答错误\n");printf("正确答案:%d\n",d);fprintf(fpt,"%d+%d=\n",a,b);}break;case 1:printf("%d * %d =\n",a,b);d=a*b;scanf("%d",&m);if(m==d)printf("回答正确\n");else{printf("回答错误\n");printf("正确答案:%d\n",d);fprintf(fpt,"%d * %d=\n",a,b);}break;case 2:if (a < b){d = a;a = b;b = d;}printf("%d - %d =\n", a, b);d=a-b;scanf("%d",&m);if(m==d)printf("回答正确\n");else{printf("回答错误\n");printf("正确答案:%d\n",d);fprintf(fpt,"%d - %d=\n",a,b);}break;case 3:while (b == 0){b = rand() % 100;}printf("%d / %d =\n",a,b);d=a/b;scanf("%d",&m);if(m==d)printf("回答正确\n");else{printf("回答错误\n");printf("正确答案:%d\n",d);fprintf(fpt,"%d / %d=\n",a,b);}break;}}fclose(fpt);system("pause"); }
运行截图如下:
总结:
完成这个软件确实有一种收获感。编程过程中遇到了不少困难还好都成功解决了,在第一阶段编写时,出题数量出现了错误,每次出两道,甚至好几道题,起初我认为程序逻辑出现了问题,改变了一下还是不行,最后才发现是第二个scanf语句中少了%,真的没想到少了百分号还能运行。这告诉我编程一定要认真,还要去理解语句的意思,这能节约不少时间。
还有一部分有优化的潜力,就是txt位置路径比较固定,我设置的路径在D盘第一层,如果能随软件的移动灵活改变路径就更好了。
设计手稿:
转载于:https://www.cnblogs.com/xuzhengdong/p/9915954.html
个人项目3:一个能生成小学二年级四则运算题目的“软件”版本3相关推荐
- 二年级计算机课,小学二年级信息技术课程教案三篇
[导语]做一份好的教案,可以让老师在教学中游刃有余,显现出足够强大的自信.而且对于教案不仅仅是学校考核的标准之一,一个优秀的教师,他会在教案中加入自己独到的见解,可能你的见解是最先进的一种方式说不准呢 ...
- 二年级上册计算题_小学二年级数学上册应用题与思维训练集锦500题
篇幅有限,下载电子版查看 一.想一想,填一填: 1.5+5+5+5+5+5+5=( )×( ) 4+4+4+3=( )×( )+( ) 2+2+2+2-1=( )×( ...
- 小学二年级上学期计算机教案,小学二年级上学期信息技术教案范文【三篇】
[导语]在实际教学活动中,教案起着十分重要的作用.编写教案有利于教师弄通教材内容,准确把握教材的重点与难点,进而选择科学.恰当的教学方法,有利于教师科学.合理地支配课堂时间,更好地组织教学活动,提高教 ...
- 小学二年级操行评语1
小学二年级操行评语1 2010年07月03日 孩子,美术老师说你色彩感特强,每次上交的图画画面美观,推荐你去参加校现场作画比赛,还得了学校二等奖呢:舞蹈老师说你舞姿优美,毫无怨言,在市艺术节汇报演出中 ...
- 二年级期末计算机基础试题答案,小学二年级语文期末考试卷
[导语]语文是语言和文化的综合科.语言和文章.语言知识和文化知识的简约式统称等都离不开它.它是听.说.读.写.译.编等语言文字能力和知识,文化知识的统称.也可以说,语文是口头和书面的语言和言语的合称, ...
- 小学二年级计算机课游戏,小学二年级适合玩的课堂游戏
小学二年级的同学适合玩什么类型的课堂游戏?适当的游戏可以促进孩子的身心健康,都说孩子的教育是游戏跟课堂的结合才更有效.下面是由学习啦小编整理的小学二年级适合玩的课堂游戏,希望对您有用. 小学二年级适合 ...
- 小学二年级计算机课游戏,[小学二年级适合玩的课堂游戏] 适合小学生的课堂游戏...
小学二年级的同学适合玩什么类型的课堂游戏?适当的游戏可以促进孩子的身心健康,都说孩子的教育是游戏跟课堂的结合才更有效.下面是由小编整理的小学二年级适合玩的课堂游戏,希望对您有用. 小学二年级适合玩的课 ...
- 小学二年级计算机组成选择题,小学二年级数学第二学期期末试卷
第1篇:小学二年级数学第二学期期末试卷 第二学期期末考试二年级下册数学 一.我会填.(22分) 1.下面的图形通过平移重合的有( 和 ),通过旋转互相重合的有( 和 ). 2.把12个梨平均份给( ) ...
- 小学信息技术用计算机作文,小学二年级信息技术学年总结
相关热词搜索:信息技术 学年 小学二年级 小学二年级班主任总结 小学二年级工作总结 小学二年级家长会总结 篇一:小学信息技术二年级上 1 2 3 4 5 篇二:小学二年级上册信息技术教学 小学二年级上 ...
最新文章
- mac os下valgrind的安装
- Cissp-【第1章 安全和风险管理】-2021-1-7(99页-162页)
- Android——APK 在32bit/64bit平台 动态库问题
- Redis 小白指南(二)- 聊聊五大类型:字符串、散列、列表、集合和有序集合...
- CAN总线数据帧/标准帧/扩展帧/远程帧/错误帧的组成格式对比
- 【STL学习】优先级队列Priority Queue详解与C++编程实现
- 用深度强化学习玩atari游戏_(一)深度强化学习·入门从游戏开始
- YIi2 對接 支付寶Alipay支付接口
- POJ2104 K-TH NUMBER 传说中的主席树
- NPAPI插件:不要使用malloc,使用NPN_MemAlloc
- python123汉诺塔实践_python汉诺塔问题
- GUI图形用户接口编写QQ登录界面
- 微信接口开发,config提示OK,但分享不成功
- 尚硅谷JDBC学习笔记
- Sql Server中进行查询操作时提示“对象名无效”
- 俄罗斯方块的简单实现
- 个人小作品之迷你音乐播放器(移动端)
- 无涯教程 - Latex 字体(Fonts)
- 每个程序员都应该知道的福利
- nn.KLDivLoss