第二次作业-熟悉使用工具

GIT地址 https://github.com/sunyueqi
GIT用户名 sunyueqi
学号后五位 64306
博客地址 http://www.cnblogs.com/230332663abcd/
作业链接 https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1/homework/2793

一.环境配置问题

问题因为是以前已经下好的,下载完成后,用了一段时间,评估到期不能使用,过了试用期就禁止用了。解决:保留安装包,重新安装,在选择的时候登录用户,要以管理员身份登录,在安装成功后,注册产品中,使用产品密钥解锁,在解压中的文件夹中找到并打开激活码,任意选择序列号,粘贴在产品密钥,点击应用,激活成功后使用。

这是下载的时间,因为以前学习过C#就装过。

二.代码设计思路

读完这道题,我觉得它主要考察的是随机函数的应用。产生n道加减法,n就是要输入的变量。n作为一个变量,先生成n个list,list装的是数字,假如用户输入的是两道题,那么就建两个list,list就存2到3个数字,这样数字准备就完成了。然后根据list,用随机数取四个符号,如果list中有两个参数,就取1个符号;如果有三个参数,就取两个符号。有了list和符号,就可以作运算。从list挨个取,再从符号里取 ,然后计算,打印。在运算的时候,因为题目说避免出现非整数,所以如果取到除号,判断是否整除,如果没有,返回随机数再取。如果是三个数,就要判断抽到除号出现的位置,如果在后面,就要让后面两个数重新取。

图片演示:

 Random rd = new Random();设置随机函数

 

IList<IList<int>> timushu = new List<IList<int>>();存储题目数量
for (int i = 0; i < strN; i++)
                {
                    IList<int> num = new List<int>();//每个题目内的数量
                    int numc = rd.Next(2, 4); //获得题目内的数字个数
                    for (int j = 0; j < numc; j++)
                    {
                        num.Add(rd.Next(1, 101));//获得题目数字
                    }
                    timushu.Add(num);
                }

    根据题目的输入做第一个循环,生成每个题目的数字rd.Next(2,4)从2取到4,不包含4的整数。第二层循环,再次取随机数,表示每个题目中的数字,两个循环,表示整个题目里有几道题,每个题目里有几个数。                            

private string returnSign(int type)
        {
            switch (type)
            {
                case 1:
                    return "+";
                case 2:
                    return "-";
                case 3:
                    return "*";
                case 4:
                    return "÷";
            }
            return "";
        }

定义随机数代表的符号

int sign1 = rd.Next(1, 5); 
                    int sign2 = rd.Next(1, 5);

获得运算符

if (list.Count == 2)
                    {
                       
                        if (sign1 == 4)
                        {
                            while (list[0] % list[1] != 0)
                            {
                                list[0] = rd.Next(1, 101);
                                list[1] = rd.Next(1, 101);
                            }
                        }
                        this.label2.Text += list[0] + " " + returnSign(sign1) + " " + list[1] + " = " + result(list[0], list[1], sign1) + "\n";
                    }

判断当前有几个数,避免出现小数,判断并处理运算符,如果是除号,需要第一个数是第二个数的倍数并小于100,不能整除则重新取数。

switch (sign)
            {
                case 1:
                    return a + b;
                case 2:
                    return a - b;
                case 3:
                    return a * b;
                case 4:
                    return a / b;
            }
            return 0;

进行运算

 if (sign1 == 4)//如果是 除号 需要第一个数是第二个数的倍数并小于100
                        {
                            while (list[0] % list[1] != 0)//不能整除则重新取数
                            {
                                list[0] = rd.Next(1, 101);
                                list[1] = rd.Next(1, 101);
                            }
                            if (sign2 == 4)
                            {
                                while ((list[0] / list[1]) % list[2] != 0)//不能整除则重新取数
                                {
                                    list[2] = rd.Next(1, 100);
                                }
                            }
                        }
                        else if (sign2 == 4)//如果是 除号 需要第一个数是第二个数的倍数并小于100
                        {
                            while (list[1] % list[2] != 0)//不能整除则重新取数
                            {
                                list[1] = rd.Next(1, 100);
                                list[2] = rd.Next(1, 100);
                            }
                        }


                        this.label2.Text += list[0] + " " + returnSign(sign1) + " " + list[1] + " " + returnSign(sign2) + " " + list[2] + " = " + result(list[0], list[1], list[2], sign1, sign2) + "\n";
                    }

这是两个数的,三个数同上,判断符号以及进行相关运算。

三.使用Git克隆及提交代码

首先是在Git上注册了自己的账号,在官方网站上下载了Git Bash。找到阿超的计算机,点击fork,拷贝到自己的账号下。在我自己的e盘上,右键点击Git Bash。出现一个黑色的对话框,在框里输入了git clone后面去网站阿超的计算机那里复制download的网址,粘贴在Git Bash里。成功后在自己的盘上出现了阿超的计算机这个文件夹,就是成功了,因为这一步指导网站上有动图,我做的比较顺利,没有问题。图片演示:

 

(注册账号,登录进去)需要的地址(在推荐官网下载成功)

(打开git界面)

(需要的网址)

 

 

(输入克隆地址,出现文档)

在提交代码上因为是自己写的代码然后上传,我就有点对不上指导上说的步骤。我用VS写好了代码保存起来,然后按照指导上所说,第一次配置了个人的邮箱和姓名。问题:地址的转换问题,文件存放的地址和我上传时的地址不一致,导致上传多次没有结果;其次就是要提交到账号没有办法 解决:通过查资料和问同学,我知道应该在先cd磁盘的位置和文件的名称,确定地址一致,再clone要上传的地址,然后再cd代码的文件名,add .再commit,同时要注意-m自己要备注的东西,然后再push,注意每一步要master才可以进行下一步。要把自己的代码先上传到自己的git账号上,再Push到统一的作业库里,这一步我看的时候有遗漏。

图片演示:(先确定地址)(将要交的文件拷贝到文件夹)

(再次输入文件夹的位置,出现master,进行下一步)

(用git add添加文件)

(git commit后面要跟名字)

(上传)

 

 (上传成功后,在自己账号上出现编写的代码)(点击上传到班级仓库)

四.单元测试和回归测试

我首先是点开了我写好的项目,然后在选择的时候遇到了问题就是新建项目的时候,在倒数第二个有一个建立测试代码,点开也可以进去,但是后面引用的时候就没有了,我在这里找了一会。解决:后面重新过了流程,一定是在左边的菜单栏出现的测试,点击测试,再新建测试代码,再引用。但是属性的调试我还是没有找到。测试代码在没有写的时候还是可以先空运行,它可以出现一个测试的结果。最后再将测试代码填入放进界面,再运行就可以。

 (选择测试)(引用里选择要测试的项目)

(进行测试)(写入测试代码)

首先是在不同的区域设置断点,然后点击项目为调试项目,进行调试。点击红色按钮,输入条件j==0,可以看到测试结果,这个我没有遇到大的问题都可以解决。

图片演示:(插入断点)

 

(运行调试过程)

(插入条件断点)

五.感受

首先我觉得是对代码的需求增加了,这种可以自动出题的程序是我的第一次尝试,考虑的方面有很多,因为是随机数,所以它的结果不符合提议的情况就很多,就需要在写之前就把程序可能出现的情况都考虑到。其次,就是这次新学的和新接触的git的应用,它可以通过程序控制,把本地的代码上传到网站上去,但因为没有注意它对路径的统一,导致我浪费了很多时间在提交代码上,所以要开始就搞清楚它的要求。我认为最重要的三步是cd一个路径,add.还有commmit后面要写内容,一般是可以成功的。还有提交的位置很关键,最后一步要申请将自己的代码推进班级的库里,这样别人才可以看到你的代码。学习了这块,也清楚了可以通过git来学习其他好的代码,只要可以下载知道路径,就可以放在自己的电脑上。最后的单元测验,分点测试,都可以有效的检查自己的代码,而且可以检查出有些看不出来的问题,回归测试注意的是在每一次更改代码后,要经过单元测试检查一下,确保其他地方没有发生错误。

 

posted @ 2019-03-24 16:42  baby孙  阅读(423)  评论(1编辑  收藏  举报