第二次作业

背景

阿超家里的孩子上小学一年级了,这个暑假老师给家长们布置了一个作业:家长每天要给孩子出一些合理的,但要有些难度的四则运算题目,并且家长要对孩子的作业打分记录。

作为程序员的阿超心想,既然每天都需要出题,那何不做一个可以自动生成小学四则运算题目与解决题目的命令行 “软件”呢。他把老师的话翻译一下,就形成了这个软件的需求:

  • 程序接收一个命令行参数 n,然后随机产生 n 道加减乘除(分别使用符号+-*/来表示)练习题,每个数字在 0 和 100 之间,运算符在 2 个 到 3 个之间。
  • 由于阿超的孩子才上一年级,并不知道分数。所以软件所出的练习题在运算过程中不得出现非整数,比如不能出现 3÷5+2=2.6 这样的算式。
  • 练习题生成好后,将生成的 n 道练习题及其对应的正确答案输出到一个文件 subject.txt 中。
  • 当程序接收的参数为4时,以下为一个输出文件示例。

    13+17-1=29
    11*15-5=160
    3+10+4-16=1
    15÷5+3-2=4

这次阿超选择使用他最拿手的 C++ 语言来完成这样的需求,工欲善其事必先利其器,第一步就需要先安装一个好用的 IDE ,在这里我们推荐使用 Visual Studio 2017

 配置环境

因为上过c#专业课,vs2017环境已经配置,此处省略。

克隆项目

代码设计

从控制台读取一个数字n,表示生成n个算式,调用Pro1开始生成算式

 

Pro1的构造函数,调用表示开始执行代码命令生成算式

建立一个结构体,用于储存算式,x,y,z表示运算数字,a,b表示运算符号,sm表示运算结果

 

 这两个函数用于计算算式的值,Com用于单次计算,Sum用于计算算式最后答案

 

 

 Judge函数用于判断生成的算式是否合法,是则返回true否则返回false

 

 

随机生成算式,并调用Judge函数判断算式是否合法,不合法继续执行生成新算式,合法返回一个Node值表示该算式

 

 

该函数用于输出运算符号,因为我对运算符号有int值1,2,3,4表示,输出时因转化成对应运算符号

 

 

构造函数调用的函数,用于接收n,并开始执行生成n个算式,生成算式后输出打印到txt文件中

 

 

运行结果

 

单元测试

 

 

 断点测试

 

 

效能分析

 

 

提交代码

 总结

 通过这次作业学到了一些关于github工具的用法,同时也发现了自己把c#很多知识点都给忘记了,还好通过这次作业重新复习了一遍,并且提升了我的c#代码实现能力,在我编写代码的时候因为我用的是1,2,3,4来代替加减乘除,我在写判定算式是否合法的函数的时候写了一句if(k.a==‘4’),就是因为这一句让我dbug花费了两天的时间,最后还以一个函数一个函数的慢慢调试在发现了错误,在找到错误之前我根本没有想过会在这里出问题,这个错误让我深刻的认识到编程时必须细心,在程序出bug的找不出问题时候应该考虑自己是否犯了简单的错误。总之,这次作业对我而言收益良多。

转载于:https://www.cnblogs.com/luopl/p/10617631.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值