第二次作业-熟悉使用工具
一.项目目标
- 项目的运算过程中不允许出现负数
- 项目采用C#完成
二.环境配置
2.1完成对作业所需的环境的配置。



2.2代码设计具体思路
- 计算数和运算符的存储:将计算数分子分母分别存入一个二维数组中,运算符存入字符数组。
- 在主函数实现大致过程:用户参数及相关内容输入,调用生成题目及答案函数,并调用查重函数,生成相应r,n的题目和答案并使用数据流存入txt文件中。
- 在计算过程中负号运算时,若有负数生成,则题目重新生成
- 真分数除了将分子大于分母的约分成a'b/c的形式之外,还要注意约分。 a/b :若a>b,则输出形式为 a/b‘ a%b/b
- 运算符不超过三个,即计算式不超过4个,第一个和最后一个不为0,中间两个数字由随机数(0,1)决定有无,运算符则由计算数的数量决定。
- 查重方面,选择了难易换取时间,简单的将每道计算式中的计算数相加,若与之前生成的题目相加数相同,则舍去,重新生成。
2.3设计实现过程
- 在类Program中main函数:获得相关内容输入,调用calculation.GetProblem,该函数中包含了生成计算式及计算结果的主要步骤包括辅助查重功能,用StreamWrite数据流将相应r,n的题目和答案分别存入txt文件中。
- 通过GetCommon函数来获取两个数字的最大公因数,并分子分母同时除于最大公因数进行约分。
- Get Number 和GetSymbol 来随机获取计算数和运算符。
-
计算结果,建立二叉树结构,将计算式按照优先级的由低到高的顺序从树的根开始建立,计算时,按照后缀表达式获取运算符的前后两个数进行运算。
part3遇到的:“手动设置一下测试项目的附加依赖项”,我认为是c#与c++的设置方式不同没有找到如何设置。
三.克隆项目。
- 在 https://github.com/join 这个网址处申请注册一个 Github 账号。
- 将阿超的四则运算库拷贝到自己的同名仓库中。



在part2中我遇到的第一个问题就是第八点解决方案的编辑以及如何将git中的Java转为c#,因为对后续影响不大所以我就继续了。
接下来我用‘$ git config --global user.name "John Doe"以及$ git config --global user.email johndoe@example.com’配置自己的个人邮箱与 Commit 时的用户名,然后输入‘git add,git commit -m "Message"’(不太理解这一步的作用,也许之后会体现出来吧)
四.对自己的项目进行单元测试和相关调试。
4.1.新建一个测试项目并引用之前的


4.2代码说明(部分主要代码)
(1).主函数Program.Main中,查重和将题目和答案分别写入txt文件

(2).生成题目和结果


(3).后序遍历二叉树,若为运算符则取出存入list集合中,若为计算数则存入另一个集合中,遇到运算符,则取出最末端的两个数据进行计算,结果重新插回。


4.3单元测试
右键单击函数名可以快速创建单元测试,单元测试中由函数自动生成的代码李会出现Assert.Fail();需要删除否则无法通过。

断点的使用心得:断点是源代码中自动进入中断模式的一个标记,它们可以配置为:
1.在遇到断点时,立即进入中断模式;
2.在遇到断点时,如果布尔表达式的值为true,就进入中断模式;
3.遇到某断点一定的次数后,进入中断模式;
4.在遇到断点时,如果自从上次遇到断点以来变量的值发生了变化,就进入中断模式;
在对断点的使用后我了解到当有一个程序出错了,大致猜出可能在某处会出错,就在那里下一个断点。调试程序,执行到那里,程序会停下来,这时就可以检查各种变量的值,然后按步调试运行,观察程序的流向及各个变量的变化,便于快速排错。
五.阅读 Part5.回归测试和Part6.效能工具介绍,了解扩展功能。

浙公网安备 33010602011771号