第二次作业
| GIT地址 | https://github.com/trcccc |
| GIT用户名 | trcccc |
| 学号后五位 | 54416 |
| 博客地址 | https://www.cnblogs.com/trcdbk/ |
| 作业链接 | https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1/homework/2793 |
Part 1. 配置环境
由于在c#课上已经配置了环境,所以在这里不再写详细过程。

Part 2. 代码设计
代码背景:
- 程序接收一个命令行参数 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
解决方法
1.此次作业需要了解生成随机数的代码,Random.Next(x,y)_用它可以生成x到y的随机数。

(注:本来之前用的面向对象的方法,专门见了生成随机数的类,但调用方法后发现有些小问题,故干脆用面向过程的方法了)
2.由于有两种情况,2个运算符或者3个运算符,所以我用了switch语句,来分为两种情况,分别解决。


3.在写出算式后,琢磨了很久字符串如何求解,后来在百度上搜到了Compute方法,于是很轻松的求除了解,但后来发现虽然结果不会为小数,但是过程中会出现小数,在两个运算符的计算式中可以通过删掉两个运算符都为除号的情况来解决,但三个运算符这种方法只能减少出现这种情况的概率。

4.存入文件,用streamwriter存入

Part3:单元测试
根据作业的教程创建单元测试,跟着步骤



开始时测试失败

百度方法后得知需要将assert注释掉即可 “编写单元测试时,我们总是会做出一些假设,比如我们期望一个函数在接受预期的输入后就返回预期的输出,断言就是用于在代码中捕捉这些假设。一般来说,单元测试中都会有断言的存在,没有断言存在的单元测试其实是“假大空”的,没有任何对程序输入输出的假设约束。”

断点测试是在可能出错的地方断点,以便于找到出错的地方。
Part4:效能测试




Part5:github 上传数据
首先需要在 https://github.com/join 注册一个github账号,然后打开链接点击右上角的 Fork ,将阿超的四则运算库拷贝到自己的同名仓库中,如下图所示:

然后点击右下角克隆

安装好后

将阿超的四则运算库拷贝到自己的同名仓库中

将自己的代码上传至GitHub


之后可以在自己的账号中看到上传记录。
总结
本次作业的难点基本就是设计代码以及文件的储存,其他都是按照步骤来熟悉这个流程,在此次作业中,我了解了单元测试以及断点的基本操作还有其作用,还熟悉了GitHub的使用方法,之后会更熟练的使用GitHub,并将其用于学习过程中。
浙公网安备 33010602011771号