第二次作业

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的时候,因为面对一个全新的东西,使用的时候错

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

posted on 2019-03-29 16:06  Nauthiz  阅读(156)  评论(1编辑  收藏  举报

导航