第二次作业
GIT地址 | 我的git |
GIT用户名 | shenyax |
学号后五位 | 062206 |
博客地址 | 我的博客 |
作业链接 | 作业要求 |
一.环境配置
1.vs环境配置
vs在去年我学习c#时就已经安装好了,当时没有遇到什么问题。以下是最终环境
2.注册GitHub并克隆项目
这一步没有遇到任何问题,跟着作业辅导里面一步一步走就好了
3.下载Git
直接搜索官网,然后在官网下载就好了,跟着安装引导一步一步走就很快的下好了面页如下
4.克隆项目
二.代码思路
1.需求:
程序接收一个命令行参数 n,然后随机产生 n
道加减乘除(分别使用符号+-*/
来表示)练习题,每个数字在 0
和 100
之间,运算符在 2
个 到 3
个之间。由于阿超的孩子才上一年级,并不知道分数。所以软件所出的练习题在运算过程中不得出现非整数,比如不能出现 3÷5+2=2.6
这样的算式。练习题生成好后,将生成的 n
道练习题及其对应的正确答案输出到一个文件 subject.txt
中。当程序接收的参数为4时,以下为一个输出文件示例。
2.思路
(1)首先,生成练习题要随机生成,因此这里要用随机数生成函数。并且,运算符也可以用随机生成数来确定,根据要求,可以单独写一个随机数生成函数来控制。
(2)n道运算题,可以用循环来控制,一次循环生成一道题。
(3)不能出现非整数,测试除号两边的数,若有分号就不合格。
(4)计算出结果,并输出到文件。
以下是主要代码:
产生随机数,所有需要产生随机数的地方调用此函数即可
/*设置随机数*/ static public int GetNumber(int x, int y) { //[x,y]为随机数范围 byte[] buf = Guid.NewGuid().ToByteArray(); int i = BitConverter.ToInt32(buf, 0); Random rand = new Random(i); int getnumber = rand.Next(x, y); return getnumber; }
产生四则运算的数字和符号
int number = GetNumber(i, j);//操作符个数 int number_all = number + number+1;//算式总长度 char [] Equation = new char[number];//存储生成的四则运算式 int [] Equation_1 = new int[number + 1];//存储符合要求的四则运算 int count = 0; while (count == 0) { for(int long_1 = 0 ; long_1 < number ; long_1++)//存储操作符和数字 { Equation_1[long_1] = GetNumber(x,y); int panduan = GetNumber(0, 3); switch (panduan) { case 0: Equation[long_1] = '+'; break; case 1: Equation[long_1] = '1'; break; case 2: Equation[long_1] = '*'; break; case 3: Equation[long_1] = '/'; break; } } Equation_1[number] = GetNumber(0,10); count++; }
合成运算式并计算
string last = ""; int i = 0; for(i = 0; i < number; i++) { last += Equation_1[i].ToString(); last += Equation[i]; } last += Equation_1[number].ToString(); var loge = new DataTable().Compute(last, null); last += '='; last += loge; File.AppendAllText(@".\ss.txt", last +"\r\n"); return 1;
三.提交代码
由于我写完就直接提交了,忘记了截图,所以这里就口述一下过程。
1.克隆完成后,在clonede文件里新建一个和账号同名的文件夹,并将完成的项目放入
2.右键打开git Bash,然后分别用git add . git comit -m'' 和git push 完成上传代码。
四.测试
对程序进行单元测试,这里用的是右键对函数创建单元测试,刚开始是编写了一个测试函数,其余测试函数并未编写。结果显示不通过:
,随后发现将Assert.Fail()注释后,就可以通过了,查阅资料,该函数为断言失败。
在测试函数中。可以编写适当代码用来对比项目中代码与实际结果的值,最开始我不太清楚怎么编写,后来查阅资料了解可以实例化类,从而调用类中的函数来测试。详细可以参考https://www.bbsmax.com/A/QV5Zejo2Jy/?tdsourcetag=s_pcqq_aiomsg,讲的很清楚 。
断点测试可以很方便的看出程序到底哪里出错了,也能比较有效率的排查出一些循环逻辑问题,对于断点测试。
回归测试能检查出代码的效能退化,因此每改动一次代码时都应该进行一次回归测试。
效能分析:跟随指导做了程序的效能分析:
查看了报告图。能很直观的看到程序的效率。也可以点击创建详细报告来查看,那样更加直观方便。方便改进代码。
五.感想
最大的感想就是英语挺重要的,git和github的使用下载,我真的两眼抹黑,虽然很顺利,但是做一步查一词真的很难受。其次,了解了单元测试和回归测试,能够比较方便的测试代码,找出不足,更加的完善代码。效能测试也让我更加了解自己的代码,知道应该改进哪里,有了方向。git和GitHub的使用方便了我们的交流,和代码保存,学到了挺多的东西。但是对git的操作很不熟悉,特别感谢同班同学制作的步骤知道,不然那在上传代码哪里我肯定会卡很久。下来的时间,应该多花点时间了解和使用一下git。