zoukankan      html  css  js  c++  java
  • 使用MFC做一个简单的‘能自动生成小学生四则运算的软件’

      这是软件工程的第一次作业!但由于我们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

    inuyasha
  • 相关阅读:
    Windows下NodeJS环境搭建
    大前端是什么?
    TeamCity+Rancher+Docker实现.Net Core项目DevOps(目前成本最小的DevOps实践)
    2019春运抢票终极攻略,让你躺着也能抢到票回家!
    ASP.NET CORE 2.0 发布到IIS,IIS如何设置环境变量来区分生产环境和测试环境
    使用第三方容器服务,自动化部署.Net Core
    记React+.NetCore API实现动态列导出
    6.前端基于react,后端基于.net core2.0的开发之路(6) 服务端渲染(SSR)
    5.前端基于react,后端基于.net core2.0的开发之路(5) 配置node层,session设置、获取,请求拦截
    4.前端基于react,后端基于.net core2.0的开发之路(4) 前端打包,编译,路由,模型,服务
  • 原文地址:https://www.cnblogs.com/inuyasha1314/p/8621085.html
Copyright © 2011-2022 走看看