熟悉VS2017 和Github 第二次作业

 

GIT地址https://github.com/Astone1213 
GIT用户名 Astone1213
学号后五位 62114
博客地址 https://www.cnblogs.com/AsLU/
作业链接 https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1/homework/2793

一、准备工作

  1、配置环境,安装VS2017。

    本次作业所需的VS2017,C#内容,早已在之前的课程中安装,并且在本学期,新增了关于Python相关内容。

  2、注册Github

    注册过程,没有遇到什么困难,就是感觉访问有点慢。

   

   3、安装Git

    安装Git过程中,遇到一个很大问题,一开始,下载很多次都在下载到一半的时候失败,后来通过查询相关问题,也没有解决,结果最后换了个网络环境就下载成功了。

    

     

二、代码设计

  1、题目背景   

      阿超家里的孩子上小学一年级了,这个暑假老师给家长们布置了一个作业:家长每天要给孩子出一些合理的,但要有些难度的四则运算题目,并且家长要对孩子的作业打分记录。

   作为程序员的阿超心想,既然每天都需要出题,那何不做一个可以自动生成小学四则运算题目与解决题目的命令行 “软件”呢。他把老师的话翻译一下,就形成了这个软件的需求:

  • 程序接收一个命令行参数 n,然后随机产生 n 道加减乘除(分别使用符号+-*/来表示)练习题,每个数字在 0 和 100 之间,运算符在 2 个 到 3 个之间。
  • 由于阿超的孩子才上一年级,并不知道分数。所以软件所出的练习题在运算过程中不得出现非整数,比如不能出现 3÷5+2=2.6 这样的算式。
  • 练习题生成好后,将生成的 n 道练习题及其对应的正确答案输出到一个文件 subject.txt 中。

   2、代码思路

  • 根据题目,要求随机产生,所以可以用Random生成随机数,并且用Random产生四个随机数,分别传入加减乘除函数,随机产生运算,但其实是一个伪随机。
  • 题目难度,我感觉在于生成除运算的时候,因为条件限制,所以产生的随机数不能用,这个时候就需要把这组数据想办法,用掉或者重新生成一组随机数,但是在进行的过程中会产生异常,最后通过查阅相关知识解决了这个问题。
  • 第二个问题,在于把最后产生的四则运算题目,把问题和答案分开写入两个txt文件中,一开始构思的是使用数组,但是具体实现的时候有困难,最后查教材,发现了用字符串下Split方法分开。

  3、部分核心代码

    进行随机生成运算的函数。

     public string Getcalculate(int num4)
        {
            int z=num4;
            switch (z)
            {
                case 1:
                    ex1=mathjia();
                    break;
                case 2:
                    ex1=mathjian();
                    break;
                case 3:
                    ex1=mathcheng();
                    break;
                case 4:
                    ex1=mathchu();
                    break;               
            }
            return ex1;
     }

  主函数代码

    static void Main(string[] args)
        {
            int a, b,c,z;
            string[] va;
            Console.Write("请输入打印题目提数:");
            int n =Convert.ToInt16(Console.ReadLine());
            Random rad = new Random();
            using (StreamWriter sw2 = new StreamWriter(@"F:\vs\github\AchaoCalculator\Astone123\Answer.txt", true))
            using (StreamWriter sw = new StreamWriter(@"F:\vs\github\AchaoCalculator\Astone123\Exercises.txt", true))
            {
                for (int i = 0; i < n; i++)
                {
                    a = rad.Next(1, 101);
                    b = rad.Next(1, 101);
                    c = rad.Next(1, 101);
                    z = rad.Next(1, 5);
                    Calculation ca = new Calculation(a, b, c);
                    va = ca.Getcalculate(z).Split('!');
                    sw.WriteLine(va[0]);
                    sw2.WriteLine(va[1]);
                }
               
            }
            Console.ReadLine();
        }

    至此,所有代码完成。

三、将代码提交至Github班级仓库

  方法一、使用vs,团队资源管理器提交代码

    选择同步,并换成班级仓库的地址,即可

    

 

    

    (结果因为一些失误,在提交至了自己的仓库)

  方法二、运用Git Bash,即运用git add . 等指令提交。

      

    

     

四、测试过程及效能工具的体验

  1、单元测试

     首先在解决资源管理器中直接新建一个单元测试项目并为其命名,随后为新建的单元测试项目添加引用,随后点开窗口中的测试资源管理器即可开始进行单元测试。

    

  

  测试代码(其中“!”是用于Split,分开前后字符串)

    

    

     

    修改代码后,测试成功。

    

  2、条件断点

    在解决之前提到的关于除函数的异常的时候,就是运用断点的方法找到问题所在,并解决的。

    

     

  3、效能分析

    根据作业要求,对程序进行了效能测试,并且最后生成分析报告

    

    

    

五、感想

   本次作业,涉及到一些没有接触过的地方,例如Github及其相关操作,Git相关指令等等,为了完成本次作业,查阅许多相关文章,博客,以及手册,也请教了了一些同学,和同学做了一些讨论。个人感觉收获颇多。但是这是都是作为一个软件工程师所必备的技能,通过这次作业,确实学会了很多新技能,同时也把自己搁置较久的C#语言重新复习了一次,对它的认识更加深刻。

   而且,在这次作业过程中,意识到作为一个程序员,不仅需要厉害的编程能力,同时需要熟练的英语技能,因为,现在英文是世界上最通用的语言,很多文献和网站都是以英文为主,所以,学会英语相当重要。

   最后,总结一下,y自学能力,真的,真的很重要!!

 

转载于:https://www.cnblogs.com/AsLU/p/10616116.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值