(1) 博客开头:
|
GIT地址 |
|
|
GIT用户名 |
kotofight |
|
学号后五位 |
62510 |
|
博客地址 |
|
|
作业链接 |
(2) 博客内容:
1、环境配置
参考作业指导链接part 1.配置环境内容,用百度网盘下载安装包,安装成功后进行简单的配置就可以使用了。



2、代码设计
题目要求:
阿超家里的孩子上小学一年级了,这个暑假老师给家长们布置了一个作业:家长每天要给孩子出一些合理的,但要有些难度的四则运算题目,并且家长要对孩子的作业打分记录。
作为程序员的阿超心想,既然每天都需要出题,那何不做一个可以自动生成小学四则运算题目与解决题目的命令行 “软件”呢。他把老师的话翻译一下,就形成了这个软件的需求:
- 程序接收一个命令行参数 n,然后随机产生
n道加减乘除(分别使用符号+-*/来表示)练习题,每个数字在0和100之间,运算符在2个 到3个之间。 - 由于阿超的孩子才上一年级,并不知道分数。所以软件所出的练习题在运算过程中不得出现非整数,比如不能出现
3÷5+2=2.6这样的算式。 - 练习题生成好后,将生成的
n道练习题及其对应的正确答案输出到一个文件subject.txt中。
思路:这个题的话,输入就是老师家长们想要的题目的数量n,输出就是n道随机算术题。在这个n道随机算术题中,题目的长度(运算符的个数)是随机的,那么设置一个随机数num来控制,当num取0时,输出一道三个数参与的四则运算,当num取1时,输出一道4个数参与的四则运算。数字也是随机的,用num1——num4来决定,运算符也是随机的,用数组和随机数nums、numm、numn控制。

这个时候会出现负数或者小数以及分母为零的情况,这也是最让人头疼的。想了很多办法去判断,也没有成功,就先用了一个简单的判断来初步实现它。

输出结果:

写入文件结果:

代码:
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.IO;
public class Calculator
{
public static void Main(string[] args)
{
int n = int.Parse(Console.ReadLine());
char[] s = new char[] { '+', '-', '*', '/' };
char[] w = new char[] { '+', '-', '*', '/' };
char[] p = new char[] { '+', '-', '*', '/' };
string Res = "";
int iSeed = 10;
Random ro = new Random(10);
long tick = DateTime.Now.Ticks;
Random ran = new Random((int)(tick & 0xffffffffL) | (int)(tick >> 32));
Random nums = new Random();
Random num = new Random();
for (int i = 0; i < n; i++)
{
int Num = num.Next(0,2);
int Num1 = ro.Next(0, 100);
int Num2 = ro.Next(0, 100);
int Num3 = ro.Next(0, 100);
int Num4 = ro.Next(0, 100);
int Nums = nums.Next(0, 4);
int Numm = nums.Next(0, 4);
int Numn = nums.Next(0, 4);
if (Nums ==3&&Num1%Num2!=0)
{
if (Num2 == 0)
{
if (Num1 == 0)
{
Num2 = Num3;
}
else
{
Num2 = Num1;
}
}
Num1 = Num1 - (Num1 % Num2);
}
if (Numm == 3 && Num2 % Num3 != 0)
{
if (Num3 == 0)
{
if (Num2 == 0)
{
Num3 = Num4;
}
else
{
Num3 = Num2;
}
}
Num2 = Num2 - (Num2 % Num3);
}
if (Numn == 3 && Num3 % Num4 != 0)
{
if (Num4 == 0)
{
if (Num3 == 0)
{
Num4 = 1;
}
else
{
Num4 = Num3;
}
}
Num3 = Num3 - (Num3 % Num4);
}
if (Num == 0)
{
Console.WriteLine(Num1.ToString() + s[Nums].ToString() + Num2.ToString() + w[Numm].ToString() + Num3.ToString() + "=");
Res = Res + Num1.ToString() + s[Nums].ToString() + Num2.ToString() + w[Numm].ToString() + Num3.ToString() + "=" + " ";
}
else
{
Console.WriteLine(Num1.ToString() + s[Nums].ToString() + Num2.ToString() + w[Numm].ToString() + Num3.ToString() + p[Numn].ToString() + Num4.ToString() + "=");
Res = Res + Num1.ToString() + s[Nums].ToString() + Num2.ToString() + w[Numm].ToString() + Num3.ToString() + p[Numn].ToString() + Num4.ToString() + "=" + " ";
}
}
Console.ReadLine();
System.IO.File.WriteAllText("E:/dreamworld/dreamworld/kotofight/Calculator/Calculator/subject.txt", Res);
}
}
3、记录你使用github克隆项目以及提交代码的整个过程




4.测试
(1)单元测试


(2)性能分析


5、心得体会
太头大了!c#就大一暑假学过一点点,做这次作业的感觉就是全部忘完了,必须一边打开菜鸟教程一边问同学才能写得下去代码。还有就是单元测试我还是没有搞懂我的代码该怎么测试,下来还需要重新写一下代码,还有就是语言和工具长时间不用也会手生,太难了。这次的学习让我有很多收获吧,就像暑假一样,在短时间内接触很多知识,然后促使自己学习和进步吧。这次的最大的收获就是对于github也有了了解。还有就是自己的代码能力急需加强,看了别人的代码感觉自己so vegetable。