这是软件工程的第一次作业!但由于我们python还没入门,所以这次的要求是‘语言不限’。

  小学期做过一个关于MFC的‘资金管理系统’,也正好可以有界面,所以就选择了自己很熟悉的MFC来做这个作业!

1.题目简介

  花20分钟写一个能自动生成小学四则运算题目的“软件”,要求:除了整数以外,还要支持真分数的四则运算。将代码上传至coding.net,并将地址发布至自己的博客。

2.题目分析

  软件要求是自动生成小学生四则运算题目!既然这样,我首先想到了,四则运算对吧!

  那四则运算也分为  四则混合运算(即生成加减乘除的一个等式!例如:2*3+6*9,2/3+9 等等之类的)【这种的特点是操作数不确定】   和    普通的已经确定了操作数的四则运算【这种的特点是操作数定,操作数之间的符号(+,-,*,/)可以随机生成】 。

  刚开始一直以为是第一种思路呢,这样在不知道操作数是几个的情况下,要写成这个东西还真是有些困难呐!

  后来仔细阅读了课后的要求发现是第二种思路,顿时放心了许多呢

3.界面展示

  

  我自己写的就一个‘双目运算’,他的下面又包括两个部分:整形四则运算和分数四则运算。

  这个是点整形四则运算之后的截图:

  

  可以看出,它实现的功能有:开始生成,判断正误,核对答案,查看练习结果。【这里需要解释的是,每个白色框框上面改的‘cstring f’,'e int '的含义,这些是对应的‘edit control’框控制的变量的名字和类型,怕自已之后遗忘,所以就用一个‘静态文本框’存下来,显示出来了】

  

  这个是分数部分的截图,和整数部分长的一样,连功能就相同,那有疑问了——为啥要这么费劲,直接整一个框不就行了嘛??!

  针对这个问题的答案有二

    1.如果混合起来的话,那如果小学生想要只做整数的题呢?那样的程序实现不了

    2.这样分开的话,优点还有‘比如以后要增加新的功能了’,我的这个里面还可以加界面,那混合的岂不是就不能用了嘛!所以考虑到以后(虽然有可能以后就换语言写了,单考虑到中不是坏事吧!),用了这种方式。

4.难点分析

    难点啊!刚开始就遇到了不小的问题!

    a)我只会写只有一个框的,怎么样才能实现选择呢??

      怎么说吧,这个问题困扰了我将近三个小时,我上网收资料,去图书馆找有关MFC的书看,但都没有进展!!!一直找不到来着!【信息检索能力就是不行呐】

      后来,后来,真正取得突破性进展的还是因为一份PPT!!

      

      这份PPT不是我做的,确恰恰解决我的疑惑!我就是这点不会啊!看了这份PPT之后,不由得发出感慨‘天无绝人之路’!!

5.具体实现

  这个分为两部分,整数和分数!

  怎么说呢,分数部分要考虑的东西比整数的多!

    整数需要考虑的是:随机生成两个数,随机生成符号,还有各种按钮的共能等等。

    而分数需要考虑的是:首先需要注意的是,分数的加减乘除运算本身就比整数要难,还需要考虑到每次随机生成的分数都是真分数,并且加减乘除的结果还要求是一个最简分数,所以每一次运算后都要化简约分。那么,譬如:结果是‘1/1’。分母是一的情况,也要单独考虑等等。

    但我这里重点说解释一个整数:

    

    使用说明: 1,3框是两个操作数;  2框是要执行的操作;  4框是输入框,需要手动输入答案;

    开始执行时候,先点击‘开始生成’按钮,之后每一次点击都会重新生成数据。      之后,输入自己的结果,可以点击判断正误,或者核对答案!      最后,练习结束之后,可以查看自己的分数【一题一分制】以及正答率(正答率使用百分数表示的)等等

6.代码的链接

  整个程序的可执行文件(.exe):https://coding.net/s/8f34eca0-beec-4686-8caf-9429f45ac45b

  整个项目的链接(.rar):https://coding.net/s/4ebe9f1a-3617-4a94-9f7a-51a6a0b7a566

 我疏忽了,谢谢一位同学的提醒! 原来Coding上的链接直接放上来是访问不到的,必须要把文件设置成要分享的格式才行。上面链接已可以正常运行

软工的其他作业,请参见另一篇博客:http://www.cnblogs.com/inuyasha1314/p/8628692.html

使用MFC做一个简单的‘能自动生成小学生四则运算的软件’的更多相关文章

  1. 一个简单的加减乘除自动生成小程序升级版(JAVA)

    import java.util.Scanner; public class Suan { public static void main(String[] args) { int []b;//设置数 ...

  2. js/html/css做一个简单的图片自动(auto)轮播效果//带注释

    FF(firefox)/chrom/ie稳定暂无bug...注意:请自己建立一个images文件,放入几张900*238的图片(注意图片格式和名字与程序中一致). 1. [图片] 1.JPG 2. [ ...

  3. 一个简单的加减乘除自动生成小程序(JAVA)

    在学习软件工程的时候,遇到一个这样的问题,一个程序员的儿子上小学二年级,老师让家长每天出30道加减题目给学生做,由于家长是个程序员,所以呢,他就自己写了个程序实现,我们可爱的老师于是也叫我们写了一个类 ...

  4. 使用React并做一个简单的to-do-list

    1. 前言 说到React,我从一年之前就开始试着了解并且看了相关的入门教程,而且还买过一本<React:引领未来的用户界面开发框架 >拜读.React的轻量组件化的思想及其virtual ...

  5. 【 D3.js 入门系列 --- 3 】 做一个简单的图表!

    前面说了几节,都是对文字进行处理,这一节中将用 D3.js 做一个简单的柱形图. 做柱形图有很多种方法,比如用 HTML 的 div 标签,或用 svg . 推荐用 SVG 来做各种图形.SVG 意为 ...

  6. Jmeter初步使用二--使用jmeter做一个简单的性能测试

    经过上一次的初步使用,我们懂得了Jmeter的安装与初步使用的方法.现在,我们使用Jmeter做一个简单的性能测试.该次测试,提交的参数不做参数化处理,Jmeter各元件使用将在介绍在下一博文开始介绍 ...

  7. 用MFC完成一个简单的猜数字游戏: 输入的四位数中,位置和数字都正确为A,数字相同而位置不同的为B。

    最近学习了MFC一些比较基础的知识,所以打算通过做一个简单的数字游戏来理解MFC的流程并进一步熟悉其操作. 在这里,我做了一个猜数字的小游戏.第一步当然是设计主界面,先给大家展示一下游戏界面: 主界面 ...

  8. 【 D3.js 入门系列 — 3 】 做一个简单的图表!

    图1. 柱形图 1. 柱形图 前几章的例子,都是对文字进行处理.本章中将用 D3 做一个简单的柱形图.制作柱形图有很多种方法,比如用 HTML 的 <div> 标签,或在 SVG 上绘制 ...

  9. Windows Phone开发(21):做一个简单的绘图板

    原文:Windows Phone开发(21):做一个简单的绘图板 其实我们今天要说的就是一个控件--InkPresenter,这个控件并不是十分强大,没办法和WPF中的InkCanvas相比,估计在实 ...

随机推荐

  1. Flex 经验笔记二

    向 Module 传递数据:好像只能传递些像 整型,字符型等简单类型的数据,也能传递像 json 这样的 Object 对象,但如果 Object 对象是从层的,其子级数据,好像也读取不到. func ...

  2. json转化数组

    //json格式数据 $data = '[{ "F_ModuleId": "1", "F_ParentId": "0", ...

  3. 第11月第23天 markedTextRange 崩溃

    1. 在对textView.textField限制文字长度时,如果不做特殊处理,当联想文字加上已输入文字超出设定长度时,iOS 7.0系统会崩溃(ios 8.0以上系统做了处理,不会崩溃). http ...

  4. E. Andrew and Taxi(二分+拓扑判环)

    题目链接:http://codeforces.com/contest/1100/problem/E 题目大意:给你n和m,n代表有n个城市,m代表有m条边,然后m行输入三个数,起点,终点,花费.,每一 ...

  5. 【CTF WEB】命令执行

    命令执行 找到题目中的KEY KEY为八位随机字符数字,例如key:1234qwer.提交1234qwer 即可. 漏洞代码 <?php system("ping -c 2 " ...

  6. MySQL5.6快速安装【转】

    下载MySQL5.6 访问MySQL官网 点击Downloads,然后选择Archives 选择MySQL Community Server 选择合适版本和平台 选择下载预先编译好的二进制安装包 将下 ...

  7. 001_软件waf

    一.优秀的软件waf开源软件 <1>openwaf介绍  http://www.oschina.net/p/openwaf http://git.oschina.net/miracleqi ...

  8. 009_【OS X和iOS系统学习笔记】 OS X架构

    1.OS X是整个操作系统的集体名称,而Darwin是其中的一个组件. 2.Darwin是操作系统的类UNIX核心,本身由内核.XNU和运行时组成. 3.uname指令:可以得到有关架构的详细信息以及 ...

  9. 一个无锁消息队列引发的血案(三)——地:q3.h 与 RingBuffer

    目录 (一)起因 (二)混合自旋锁 (三)q3.h 与 RingBuffer (四)RingQueue(上) 自旋锁 (五)RingQueue(中) 休眠的艺术 (六)RingQueue(中) 休眠的 ...

  10. css部分复习整理

    CSS代码语法 css 样式由选择符和声明组成,而声明又由属性和值组成,如下图所示: 选择符:又称选择器,指明网页中要应用样式规则的元素,如本例中是网页中所有的段(p)的文字将变成蓝色,而其他的元素( ...