第二次作业

GIT地址  我的git
GIT用户名 shenyax
学号后五位 062206
博客地址 我的博客
作业链接 作业要求

 

 

 

 

 

 

 

一.环境配置

1.vs环境配置

  vs在去年我学习c#时就已经安装好了,当时没有遇到什么问题。以下是最终环境

 

 2.注册GitHub并克隆项目

  这一步没有遇到任何问题,跟着作业辅导里面一步一步走就好了

3.下载Git

  直接搜索官网,然后在官网下载就好了,跟着安装引导一步一步走就很快的下好了面页如下

4.克隆项目

  

 

二.代码思路

1.需求:

  程序接收一个命令行参数 n,然后随机产生 n 道加减乘除(分别使用符号+-*/来表示)练习题,每个数字在 0100 之间,运算符在 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。

 

posted @ 2019-03-29 00:35  小豆沙  阅读(141)  评论(2编辑  收藏  举报