• 第二次作业


    GIT地址 https://github.com/qq546419996
    GIT用户名 qq546419996
    学号后五位 62212
    博客地址 https://www.cnblogs.com/Nauthiz/
    作业链接  第二次-熟练使用工具

     

     

     

     

     

    Part 0. 背景

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

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

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

      13+17-1=29
      11*15-5=160
      3+10+4-16=1
      15÷5+3-2=4

    这次阿超选择使用他最拿手的 C++ 语言来完成这样的需求,工欲善其事必先利其器,第一步就需要先安装一个好用的 IDE ,在这里我们推荐使用 Visual Studio 2017

    Part 1. 配置环境

    因为上学期的面向对象程序设计(c#)课程中已安装vs2017,环境配置已完成,此处省略。

    Part 2. 克隆项目

    注册账号和克隆项目时遇到的最大问题是全是英文。

    Part 3.代码设计

     一开始设计的思路是用随机数一二三四来对运算符+-x / 进行选择,用随机数零到一确定是否有第四个数字参与运算,并且

    将答案用文本文档的形式打印出来。

    实际写出来的代码只能使用于这种情况,而且代码量重复累余。用这个方法来完成作业实在是因为自己编写代码能力太弱,而且

    因为个人能力和时间因素,是否有第四个数的计算也没有写出来。

     1 public static void Main(string[] args)
     2         {
     3             var seed = Guid.NewGuid().GetHashCode();
     4             Console.Write("请输入要生成的题数:");
     5             int n = int.Parse(Console.ReadLine());
     6             Random rd = new Random(seed);//避免随机数相同
     7             for (int i = 1; i <= n; i++)
     8             {
     9                 int Nodi= 3;//参与计算的数字个数
    10                 int[] num = new int[Nodi];
    11                 for (int j = 0; j < Nodi; j++)
    12                 {
    13                     num[j] = rd.Next(0, 101);
    14                 }
    15                 int Maths = rd.Next(1, 5);//用随机数一到四来确定运算符
    16                 int sum = calf(Maths, num);
    17                 int symbol = rd.Next(1, 5);
    18                 cals(symbol, Maths, num, sum);
    19             }
    20             Console.ReadKey();
    21         }
    public static int calf(int M, int[] num)//前两个数的运算
    public static int cals(int S, int M, int[] num, int sum)//第三个数字参与运算

    在运行的过程中出现了随机数全部相同的问题,在查询资料之后解决了这个问题(资料来源:https://www.cnblogs.com/programsky/p/5408697.html

    运行效果:

    Part 4.单元测试

    右键创建单元测试

     

    Part 5.断点测试

    Part 6.效能分析

     

    Part 7.上传代码

    Part 8.总结

    这次的作业磕磕绊绊的也算是勉强完成了,再一次感受到了代码是程序员的立身之本这个事实,构思然后完成代码的过程废了很多心思,在写完之后看到别人的优秀代码

    羡慕之余更坚定了自己要努力补上代码功课的决心。同时认识了一些自己之前没用过的vs功能和git这个东西。在使用git的时候,因为面对一个全新的东西,使用的时候错

    误不断发生,考询问同学和百度查询才完成了任务,自己离成为一个程序员的距离还很远。

  • 相关阅读:
    w3cscholl的在线代码编辑工具2
    w3cscholl的在线代码编辑工具
    关于 stl的内存分配的深浅拷贝
    色彩模式与色彩空间
    mediacoder固定质量CRF
    集合加泛型的类型转换
    JQuery事件绑定bind、live、on、trigger
    JS构造函数中有return
    SSA与ASS字幕
    同步、异步、阻塞、非阻塞区别与联系
  • 原文地址:https://www.cnblogs.com/Nauthiz/p/10618100.html
Copyright © 2020-2023  润新知