个人第2次作业:熟悉使用工具

第2次作业:熟悉使用工具

GIT地址 https://github.com/1311072374
GIT用户名 1311072374
学号后五位 24226
博客地址 https://www.cnblogs.com/luojunjie/
作业链接 https://edu.cnblogs.com/campus/xnsy/GeographicInformationScience/homework/7582

1.环境配置过程

1.从官网点击下载链接下载vs2017引导安装程序。

2.下载完成后会自动弹出安装界面,点击勾选 “使用c++的桌面开发”,更改vs2019的储存位置。
在这里插入图片描述

3.安装完成后将开发设置设置为 visual c#,注册 Microsoft 账户,在vs2017中登录账户。

出现的问题:
1.在下载的时候发现用学校内网下载速度很慢,后来换成移动流量后速度就变快了。
2.由于安装的时候没看要求,结果将开发设置调成了c++。后来查了下百度,发现需要在导出导入设置中选择重置所有设置,将vs2017还原,于是我又重新将开发设置调为c#。

2.代码思路

代码要求

  • 编写一个c#的四则运算程序。
  • 程序接收一个命令行参数 n,然后随机产生 n 道加减乘除(分别使用符号+-*/来表示)练习题,每个数字在 0 和 100 之间,运算符在 2 个 到 3 个之间。
  • 在运算过程中不得出现非整数。
  • 将生成的 n 道练习题及其对应的正确答案输出到一个记事本中。

代码思路

  • 通过 Radom 来生成随机数。定义一个char数组 Operator 来存储运算符,再通过随机数来确定运算符类型和个数,用thead来避免random伪随机机制。
 public static string Suijiyunsuan()//产生随机运算式
        {
            Random random = new Random();
            string result = null;

            int number = random.Next(0, 101);//产生随机数
            int opnumber = random.Next(2, 4);//产生随机运算符个数
            char[] Operator = { '+', '-', '*', '/' };
            result += number;

            for (int i = 1; i <= opnumber; i++)
            {
                Thread.Sleep(300);
                number = random.Next(0, 101);//产生随机数
                int op = random.Next(0, 4);//产生随机运算符
                result = result + Operator[op] + number;
            }
            return result;
        }
  • 然后我再通过传递生成的结果,生成一个 datatable 表,通过computecontains 来判断上一步的结果是否有小数。
 public static string Panduan(string fml)//判断结果是否有小数或负数
        {
            DataTable data = new DataTable();//生成data表
            object a = null;
            a = data.Compute(fml, "");

            while (a.ToString().Contains(".") || a.ToString().Contains("/0"))
            {
                fml = Suijiyunsuan();
                a = data.Compute(fml, "");
            }

            return fml + "=" + a.ToString();
        }
  • 最后我再通过 steamwriter 将结果写入 .tet中。
  public static int Write(string fml)//将结果写到记事本中
        {

            try
            {
                string fileName = @"C:\Users\asus\Desktop\git\AchaoCalculator\1311072374\四则运算.txt";
                StreamWriter sw = new StreamWriter(fileName,true);
                sw.WriteLine(fml);
                sw.Flush();
                sw.Close();
                Console.WriteLine("随机成功!!!");
                return 1;
            }
            catch
            {
                Console.WriteLine("随机失败!!!");
                return 0;
            }

        }
  • 单元测试我是用 Assert.IsNotNull 来判断是否产生了随机式结果。
    public class ProgramTests
    {
        [TestMethod()]
        public void SuijiyunsuanTest()
        {
            string a=Program.Suijiyunsuan();
            Assert.IsNotNull(a);//判断是否产生了随机式结果
        }
    }

遇到的问题:
1.刚开始我不知道怎么随机数和随机运算符,上网查了下发现可以通过random来进行随机。
2.在写完代码后我发现生成的运算式总是有重复的,我问过同学后也没解决问题,然后再上网查了发现random是伪随机。


3.克隆项目

1.登录Github账户。
2.输入阿超仓库的网址,网址链接为 https://github.com/Cherish599/AchaoCalculator 。点击 Fork 按钮,将阿超的的四则运算拷贝到自己的仓库中。
在这里插入图片描述
3.安装GitHub,安装完成后在自己命名的git目录中打开 Git Bash,在里面输入我的仓库网址 git clone https://github.com/1311072374/AchaoCalculator.git
在这里插入图片描述
4. 进入项目文件夹,新建一个文件夹,重命名为我的 Github 账号名1311072374。
在我的GitHub项目文件夹里打开vs2017,在新建的文件夹路径下新建项目。
在这里插入图片描述
5.使用 git add,git commit -m "Message"配置好了我的个人邮箱与 Commit 时的用户名。

出现的问题:
1.在克隆仓库时我没有看到作业的要求,结果克隆成了Java的地址,弄了好久也没成功,最后问了同学才发现是仓库地址弄错了。
2.在配置个人邮箱和用户名时一直配置不成功,最后也是请教同学完成了个人配置。

4.提交代码

1.先在 git bash里添加 **git add **与 git commit 命令,修改本地的仓库。
在这里插入图片描述
2.使用 git push 命令,在 Github 上也跟踪到最新的改变。
3.完成 push 后,在源仓库(即阿超的仓库)发起 Pull Request。点击按钮 New pull request ,点击 Create pull request 发起请求后,完成代码上传。
在这里插入图片描述

5.单元测试和回归测试

单元测试
1.新建一个测试项目,右键单击解决方案,在类型里选择单元测试。
在这里插入图片描述2.然后自己设置了代码(判断是否生成随机数结果)进行单元测试,结果是单元测试通过。
在这里插入图片描述
回归测试
单元测试不仅仅用来保证当前代码的正确性,更重要的是用来保证代码修复、改进或重构之后的正确性。也就是说,在每次修改完 Bug 之后,我们其实都需要运行一遍来看看是不是满足之前所有的单元测试样例。所以,在每次因为现有的 failed test 而修复原有代码后,最好都全部运行一遍单元测试,保证以前 passed test 仍然是可以通过的。


6.效能工具

1.打开 分析 中的性能探测器,勾选测试 CPU 使用率。
在这里插入图片描述
2.点击开始效能分析,我随机了10个运算式。
在这里插入图片描述3.生成效能报告。
在这里插入图片描述
4.创建详细报告。
在这里插入图片描述
5.优化代码。
在这里插入图片描述


7.总结

这次作业我学会了很多东西。学会了如何在 GitHub 上进行克隆操作,代码复制和提交操作。在编写代码的时候我还学会了简单四则运算的代码编写,单元测试,断点,回归测试,效能工具等内容。这次作业我忘了c#的很多基础语法,我觉得这是因为我很久都没熟悉c#导致忘了很多基础。在这次作业中我遇到了很多问题,这些问题我有些是通过网络查询,有些是在同学的帮助下解决的。我也明白了在遇到困难时不能自己一个人在那死想,可以借助外界的力量来解决问题。

posted @ 2019-09-18 17:36  IE吃饭  阅读(205)  评论(2编辑  收藏  举报