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

博客开头

GIT地址 https://github.com/jojolin0125
GIT用户名 jojolin0125
学号后五位 24128
博客地址 https://www.cnblogs.com/jiangjiang0125/p/11557404.html
作业链接 https://edu.cnblogs.com/campus/xnsy/GeographicInformationScience/homework/7582

一、博客内容

1.环境配置

自己电脑里安装有vs2015,这次的操作不强调一定要用2017版,所以此次的软件操作环境为vs2015.

在这里插入图片描述

2.克隆项目

  • 注册一个github账号(上周注册博客园,顺便把github注册成功了,这次就直接使用。)
  • 登陆github网页,寻找班级仓库所在地址,将实验内容进行拷贝,将其拷贝到自己的仓库中。
  • 配置Git环境。
  • 新建一个文件夹来保存仓库中的文件,选择Git Bash Here,输入git clone + 仓库的地址 (点击自己仓库上的绿色按钮,复制下面的地址),在保存位置生成了AchaoCalculator文件夹。
    -在这里插入图片描述

在这里插入图片描述

进入AchaoCalculator文件夹,新建一个与自己GitHub用户名相同的文件夹。(本人ID:jojolin0125)
在这里插入图片描述

二.代码设计

1.注意及难点:

  • 项目的运算过程中不允许出现负数
  • 项目采用C#完成
  • 要求为四则运算
  • 需要两至三个运算符
  • 随机数以及随机符号难以实现

2.部分代码展示

由于代码行数太多,所以在此只展示部分代码,完整代码在github仓库里面。

namespace ConsoleApplication1
{
    public class Program
    {
        public static void Main(string[] args)
        {
            int time;
            string s, s2;
            Console.WriteLine("请输入所生成题目数量:");
            time = int.Parse(Console.ReadLine());
            for (int i = 1; i <= time;)
            {
                Random Number = new Random(Guid.NewGuid().GetHashCode());
                int a= Number.Next(0, 100);
                int b = Number.Next(0, 100);
                int d = Number.Next(0, 100);
                int c = Number.Next(0,17);
                int n1 = 0;
                int n2 = 0;
                switch (c)
                {
                   case 0:
                        s = "+";
                        n2 = Calculate(a, b, s);
                        if (n2 > 0)
                        {
                            n1 = Calculate(n2, d, s);
                            if (n1 > 0)
                            {
                                Console.WriteLine(a + "+" + b + "+" + d + "=" + n1);
                                i++;
                            }
                        }
                        break;
                    case 1:
                        s = "-";
                        n2 = Calculate(a, b, s);
                        if (n2 % 2 == 0 && n2 > 0)
                        {
                            n1 = Calculate(n2, d, s);
                            if (n1 % 2 == 0 && n1 > 0)
                            {
                                Console.WriteLine(a + "-" + b + "-" + d + "=" + n1);
                                i++;
                            }
                        }
                        break;
                   case 2:
                        s = "*";
                        n2 = Calculate(a, b, s);
                        if (n2 % 2 == 0 && n2 > 0)
                        {
                            n1 = Calculate(n2, d, s);
                            if (n1 % 2 == 0 &&n1 > 0)
                            {
                                Console.WriteLine(a + "*" + b + "*" + d + "=" + n1);
                                i++;
                            }
                        }
                        break;
                    case 3:
                        if (a % b == 0)
                        {
                            s = "/";
                        n2 = Calculate(a, b, s);
                            if (n2 % 2 == 0 && n2 > 0)
                            {
                                if (n2 % d == 0)
                                {
                                    n1 = Calculate(n2, d, s);
                                    if (n1 % 2 == 0 && n1 > 0)
                                    {
                                        Console.WriteLine(a + "/" + b + "/" + d + "=" + n1);
                                        i++;
                                    }
                                }
                            }
                        }
                        break;

3.结果输出

本次测试随机生成20道题目,经检验,答案均为正确。
在这里插入图片描述

三、测试检验

1.单元测试

1.新建一个测试项目。右键单击解决方案,可以添加一个新建项目,在类型里选择 单元测试,新建了一个名为 CalculatorUnitTest 的单元测试项目。

在这里插入图片描述

在这里插入图片描述

2.测试结果。我采用测试数据1+2进行检验,检验是否答案会等于3.测试资源管理器显示已通过测试,耗时5毫秒。

在这里插入图片描述

2.断点测试

按照实验方法进行断点测试,在 第15行进行断点测试,自动窗口中显示测试过程及结果。其中b=46,d=34,即此次断点测试生成b,d的随机数,并没有向下面代码进行实验。
疑问:
为什么a值没有产生?
在这里插入图片描述

3.回归测试

在进行断点测试之后进行一次回归测试,我将测试数据改为12和24,最终通过测试,答案与36相等,说明代码不存在问题。
在这里插入图片描述

4.效能分析

输入测试数据30000个时,显示以下效能分析图。
在这里插入图片描述

5.提交

GIT PUSH操作

自己的提交过程真的是充满艰辛。
困难:按照基础操作 git add .——git commit -m "achao works"——git push 进行操作,一直出现问题,之前操作还能弹出登陆github界面,后面就一直没有登陆界面了。然后我向室友大佬寻求帮助,终于得以解决。

在这里插入图片描述
在这里插入图片描述

GIT HUB设置标题并提交

由于之前多进行了一次提交,所以目前显示有两条记录。不知道怎样删去多余的记录?

在这里插入图片描述

四、总结

  • 这次的个人作业应该算是进入大学两年多以来最复杂的一次,平心而论,题目要求感觉是比较简单,但其中细节让我难以处理,所以只能多查阅资料(包括别人的博客,CSDN文章,以及C#书籍)。
  • 我的计算代码其实并不完全,它只涉及了2个运算符的计算,比如12+24+12=48.我没有办法实现三个运算符的操作。我在此次代码设计中,采用了一个很笨的方法,我将两个运算符的计算的16种情况全部编写出来,导致代码行数达300+,我知道这种是不太可取的方法,但实在写不出简易的程序。
  • 在此之前还编写了另外一种算法,但仅仅能实现一个运算符的计算,所以放弃而重新构思。
    心得体会:
    要写好一个好点的程序,一定要多阅读,多询问,多实践。同时自己要有一定的思考,为什么会出错,为什么要用这个方法,为什么别人的代码更简便。即使很难,也要不断努力,负重前行。
posted @ 2019-09-20 15:14  jearry  阅读(220)  评论(2编辑  收藏  举报