个人第2次作业:熟悉使用工具
项目 | 内容 |
---|---|
GIT地址 | sunmying的GIT地址 |
GIT用户名 | sunmying |
学号后五位 | 24201 |
博客地址 | 我的博客 |
作业链接 | 个人第2次作业:熟悉使用工具 |
Part 0. 背景
阿超家里的孩子上小学一年级了,这个暑假老师给家长们布置了一个作业:家长每天要给孩子出一些合理的,但要有些难度的四则运算题目,并且家长要对孩子的作业打分记录。
作为程序员的阿超心想,既然每天都需要出题,那何不做一个可以自动生成小学四则运算题目与解决题目的命令行 “软件”呢。他把老师的话翻译一下,就形成了这个软件的需求:
程序接收一个命令行参数 n,然后随机产生 n 道加减乘除(分别使用符号+-*/来表示)练习题,每个数字在 0 和 100 之间,运算符在 2 个 到 3 个之间。
由于阿超的孩子才上一年级,并不知道分数。所以软件所出的练习题在运算过程中不得出现非整数,比如不能出现 3÷5+2=2.6 这样的算式。
练习题生成好后,将生成的 n 道练习题及其对应的正确答案输出到一个文件 中。
Part 1. 配置环境
Visual Studio 2015的安装与配置
Part 2. 克隆项目
1、登录Github。
2、成功登录后,输入阿超仓库的网址https://github.com/Cherish599/AchaoCalculator,点击右上角的Fork ,将阿超的四则运算库拷贝到自己的同名仓库中。
3、拷贝成功后,可以看到自己已经拥有了一个同名仓库,如图:
4、在自己的电脑上安装 Git 软件,在自己拷贝项目的主页的绿色按钮处可以找到一个可克隆的项目地址,如图:
5、在 我的电脑 中找到D盘下的软件工程目录(D:\软件工程),打开 Git 命令行软件,如图:
6、在完成上述操作后,可在当前目录下看到一个与仓库同名的文件夹AchaoCalculator ,这就是克隆到本地的项目。进入项目文件夹,新建一个文件夹,重命名为我的 Github 账号名(sunmying)。
7、以 Github 账号命名的文件夹作为项目目录,打开 VS2015,点击左上角的 文件 -> 新建 -> 项目 ,如下图所示,选择 Visual C# 中的 控制台应用程序 。注意更改位置 参数到刚刚新建的文件夹所在的路径,解决方案的名称为AchaoCalculator。
8、代码设计
(1)代码设计思路:
Step1:利用formula()函数生成一个随机序列的等式,其中运算符的个数也同样是随机的(2-3个)
Step2:将formula()返回的等式传入Solve()函数中进行求解,返回等式+计算结果(如:3*4+5=17),若计算结果为小数或等式包含÷0操作则重新生成
Step3:调用calculator()函数生成指定数量的等式,并通过Fwrite()函数写入到本地文件中
部分代码见下图:
●生成等式的函数——利用formula()函数生成一个随机序列的等式
●求解生成等式的函数——将formula()返回的等式传入Solve()函数中进行求解
●打印文件的函数——通过Fwrite()函数写入到本地文件中
(2)运行结果
(3)记事本显示结果
Part 3. 单元测试
1、要想在 VS2015 里对 C# 项目进行单元测试,首先要新建一个测试项目。右键单击解决方案,可以添加一个新建项目,在类型里选择 单元测试,我们这里新建了一个名为 CalculatorUnitTest 的单元测试项目。
2、在项目创建成功后,为单元测试项目 CalculatorUnitTest 增加对原项目的引用,以实现调用原项目函数接口的功能。
3、在完成单元测试的项目配置后,下面我们就可以开始写单元测试代码了。
(1)下面对该项目中的Solve()函数进行测试,具体测试代码如下:
(2)单元测试问题:
●没有将测试中运算符间的空格去掉,与运行结果格式不一致,导致一直出现错误信息
●对函数的测试,没有满足所有出现的情况,只是简单的测试
●代码的规范性对单元测试的影响很大
Part 4. 基本操作
1、断点:鼠标点击窗体左边缘,形成一个红色的一点即可
2、单步运行:点击调试图标或按F5就能开始对程序的调试,调试过程中会用到一个调试框,通过逐语句图标使程序一句一句运行,达到调试的效果。观察变量的值是否满足程序设计的要求,找到出现问题的原因。
在调试过程中可以添加监视变量,时时监测变量值的变化。
3、条件运行:右键单击红色的断点符号,即可弹出条件选项。在这里我们可以输入 Condition,设定为只有某些前置变量的值满足条件时我们才会触发断点,帮助我们高效率测试。
Part 5. 效能工具介绍
为了测试并改进程序生成四则运算算式的效率,我们需要使用效能分析工具。效能分析工具并不能帮助我们直接改进算法的效率,但它可以帮我们分析找到代码中执行效率最差,也就是所谓 效能瓶颈 的部分。这之后我们就可以把精力花费在改进瓶颈上,从而高效快速地提升程序性能。
Visual Studio 内置了非常棒的效能工具,学名叫做 性能探查器 。点击 IDE 顶部菜单栏中的 分析 ,即可看到 性能探查器 。
我们这里关注在程序的执行效率方面,所以我们选择测试 CPU 使用率 即可。
开始效能分析,即使程序没有执行完成,效能分析也是可以强行结束的。让程序跑几十秒之后,就可以结束。点击效能分析工具界面左上角的 停止收集 即可停止收集数据。
完整的效能分析报告,如图:
在一份完整的效能分析报告中点击上图中的 创建详细的报告...,创建完成后会自动打开一个后缀为 .vspx 的文件,如下图所示:
点进AchaoCalculator.Program.formula 看看,可以看到非常清晰的每行代码占用 CPU 的时间比例,如下图左侧所示。然后我们就可以着手改进代码的效率,比如结合场景用更高效的数据结构,优化一些没有用的代码等等。
Part 6. 提交代码
1、.配置自己的个人邮箱与 Commit 时的用户名。
2、使用git add .和git comit -m""命令将改动推送到本地git库中。
3、使用git status命令来检查,出现 nothing to commit 即说明已经可以 push 了。使用 push 命令后,会弹出一个窗口要求登录 Github,此时输入 Github 的 用户名或邮箱 与 密码 即可成功 push。
4、在完成 push 后,向源仓库发起 Pull Request。打开你Fork 后的项目主页点击按钮 New pull request,成功提交代码。
Part7.感想
…φ(๑˃∀˂๑)♪ 学习是我的全部(っ•̀ω•́)っ✎⁾⁾ 我爱学习,唔唔唔~~~~~~终于把这次作业做完了 ,虽然煎熬,但是还是有很多收获的,第一次进行这么全面的去完成一个小项目,学会了Github的使用,对代码进行单元测试,回归测试,效能分析,对程序的仔细调试等等有了初步了解。