要求:

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相关推荐

  1. 二年级计算机课,小学二年级信息技术课程教案三篇

    [导语]做一份好的教案,可以让老师在教学中游刃有余,显现出足够强大的自信.而且对于教案不仅仅是学校考核的标准之一,一个优秀的教师,他会在教案中加入自己独到的见解,可能你的见解是最先进的一种方式说不准呢 ...

  2. 二年级上册计算题_小学二年级数学上册应用题与思维训练集锦500题

    篇幅有限,下载电子版查看 一.想一想,填一填: 1.5+5+5+5+5+5+5=(  )×(   ) 4+4+4+3=(    )×(    )+(    ) 2+2+2+2-1=(    )×(   ...

  3. 小学二年级上学期计算机教案,小学二年级上学期信息技术教案范文【三篇】

    [导语]在实际教学活动中,教案起着十分重要的作用.编写教案有利于教师弄通教材内容,准确把握教材的重点与难点,进而选择科学.恰当的教学方法,有利于教师科学.合理地支配课堂时间,更好地组织教学活动,提高教 ...

  4. 小学二年级操行评语1

    小学二年级操行评语1 2010年07月03日 孩子,美术老师说你色彩感特强,每次上交的图画画面美观,推荐你去参加校现场作画比赛,还得了学校二等奖呢:舞蹈老师说你舞姿优美,毫无怨言,在市艺术节汇报演出中 ...

  5. 二年级期末计算机基础试题答案,小学二年级语文期末考试卷

    [导语]语文是语言和文化的综合科.语言和文章.语言知识和文化知识的简约式统称等都离不开它.它是听.说.读.写.译.编等语言文字能力和知识,文化知识的统称.也可以说,语文是口头和书面的语言和言语的合称, ...

  6. 小学二年级计算机课游戏,小学二年级适合玩的课堂游戏

    小学二年级的同学适合玩什么类型的课堂游戏?适当的游戏可以促进孩子的身心健康,都说孩子的教育是游戏跟课堂的结合才更有效.下面是由学习啦小编整理的小学二年级适合玩的课堂游戏,希望对您有用. 小学二年级适合 ...

  7. 小学二年级计算机课游戏,[小学二年级适合玩的课堂游戏] 适合小学生的课堂游戏...

    小学二年级的同学适合玩什么类型的课堂游戏?适当的游戏可以促进孩子的身心健康,都说孩子的教育是游戏跟课堂的结合才更有效.下面是由小编整理的小学二年级适合玩的课堂游戏,希望对您有用. 小学二年级适合玩的课 ...

  8. 小学二年级计算机组成选择题,小学二年级数学第二学期期末试卷

    第1篇:小学二年级数学第二学期期末试卷 第二学期期末考试二年级下册数学 一.我会填.(22分) 1.下面的图形通过平移重合的有( 和 ),通过旋转互相重合的有( 和 ). 2.把12个梨平均份给( ) ...

  9. 小学信息技术用计算机作文,小学二年级信息技术学年总结

    相关热词搜索:信息技术 学年 小学二年级 小学二年级班主任总结 小学二年级工作总结 小学二年级家长会总结 篇一:小学信息技术二年级上 1 2 3 4 5 篇二:小学二年级上册信息技术教学 小学二年级上 ...

最新文章

  1. mac os下valgrind的安装
  2. Cissp-【第1章 安全和风险管理】-2021-1-7(99页-162页)
  3. Android——APK 在32bit/64bit平台 动态库问题
  4. Redis 小白指南(二)- 聊聊五大类型:字符串、散列、列表、集合和有序集合...
  5. CAN总线数据帧/标准帧/扩展帧/远程帧/错误帧的组成格式对比
  6. 【STL学习】优先级队列Priority Queue详解与C++编程实现
  7. 用深度强化学习玩atari游戏_(一)深度强化学习·入门从游戏开始
  8. YIi2 對接 支付寶Alipay支付接口
  9. POJ2104 K-TH NUMBER 传说中的主席树
  10. NPAPI插件:不要使用malloc,使用NPN_MemAlloc
  11. python123汉诺塔实践_python汉诺塔问题
  12. GUI图形用户接口编写QQ登录界面
  13. 微信接口开发,config提示OK,但分享不成功
  14. 尚硅谷JDBC学习笔记
  15. Sql Server中进行查询操作时提示“对象名无效”
  16. 俄罗斯方块的简单实现
  17. 个人小作品之迷你音乐播放器(移动端)
  18. 无涯教程 - Latex 字体(Fonts)
  19. 每个程序员都应该知道的福利
  20. nn.KLDivLoss

热门文章

  1. shiro使用WebService进行验证的实现
  2. Linux 6.4 partprobe出现warning问题
  3. CentOS 非图形界面用户如何上网
  4. IE浏览器下常见的CSS兼容问题
  5. NetFPGA平台介绍
  6. 别以为真懂Openstack: 虚拟机创建的50个步骤和100个知识点(1)
  7. Spring----AOP的术语
  8. 撰写oracle-sql-hint的注意事项
  9. OAuth1.0a的使用例(RFC5849 1.2节的中文翻译)
  10. 电磁波传播相位是否会变化_电磁波相位关系释疑