第二次作业 熟悉工具
格式描述:
GIT地址 | GIT地址 |
GIT用户名 | zjc-123 |
作业目录:
Part 1.环境的配置 | 跳转 |
Part 2.克隆项目 | 跳转 |
Part 1.环境的配置
- 安装GIT
- vs的安装,之前就在使用vs了,就不再详细安装了。曾经在安装时经常安装失败,导致要删除所有的与vs相关的文件,就很烦。
Part 2.克隆项目
- 在成功登录github账号后,在阿超仓库将阿超的四则运算拷贝到自己的同名中仓库中,如下图所示;这里登录的是账号:zjc-123。
- 克隆项目到本地文件夹,点击
COlne or download
,将框中的链接地址复制
在git命令行中输入命令:git clone https://github.com/zjc-123/Calculator.git
完成后在目录下可以看到与目录同名的文件夹 - 在该目录下创建与git账号名为名的文件夹用于存放项目。
Part 3.代码过程
1、作业简介
阿超家里的孩子上小学一年级了,这个暑假老师给家长们布置了一个作业:家长每天要给孩子出一些合理的,但要有些难度的四则运算题目,并且家长要对孩子的作业打分记录。作为程序员的阿超心想,既然每天都需要出题,那何不做一个可以自动生成小学四则运算题目与解决题目的命令行 “软件”呢。他把老师的话翻译一下,就形成了这个软件的需求:
- 程序接收一个命令行参数
n
,然后随机产生 n 道加减乘除(分别使用符号+-*/
来表示)练习题,每个数字在0
和100
之间,运算符在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
2、代码设计
最开始实现了算式的打印在文件中。
public static void Calculator(int n)
{
Random r = new Random();
for (int j = 0; j < n; j++)
{
int c = r.Next(2, 4);
int[] num = new int[10];
string[] x = new string[2*c+1];
for (int i = 0; i <= 2 * c; i++)
{
if (i % 2 == 0)
num[i] = r.Next(1, 101);
else
num[i]=s[r.Next(0,4)];
}
for (int i = 0; i <= 2 * c; i++)
{
using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\Users\Administrator\Desktop\test.txt", true))
{
if (i % 2 == 0)
{
x[i] = num[i].ToString();
Console.Write(num[i]);
file.Write(num[i]);
}
else if (num[i] == 0)
{
x[i] = "+";
Console.Write("+");
file.Write("+");
}
else if (num[i] == 1)
{
x[i] = "-";
Console.Write("-");
file.Write("-");
}
else if (num[i] == 2)
{
x[i] = "*";
Console.Write("*");
file.Write("*");
}
else
{
x[i] = "/";
Console.Write("/");
file.Write("/");
}
if(i==2*c)
file.WriteLine("=");
}
}
Console.WriteLine("=");
}
}
3、运行结果
虽然实现了打印题目,但还没有实现算式的运算和满足相应的条件,期间在网上看了很多博客和csdn,借鉴了别人的计算模块的代码,终于解决了这两个问题。下面是最终的结果截图,代码在github账号上。
Part 4.github提交代码
首先在自己建立c#项目的地方右键选择Git Bash here
,并输入下图命令git add .
git status
。
在进行检查之后,输入git push
之后会弹出一个登录界面,输入自己的账号和密码,如果是第一次登陆,需要添加密钥,具体的过程见博客第一次使用Git上传本地项目到github上——孙氏楼
这样就代表项目已经上传成功
Part 5.代码的单元测试、断点及效能分析
单元测试
在解决方案上单击右键,添加新建项目。。
![1784878-20190920170358273-1873562688.png](https://i-blog.csdnimg.cn/blog_migrate/1b73f375086b53dee5bd3fbd92c934f9.png)
![1784878-20190920170516982-1602571572.png](https://i-blog.csdnimg.cn/blog_migrate/bb3d53426ae598f2bc1576cf882ed23b.png)
完成之后,添加要测试的代码,下面是我简单测试的一点代码。
断点
当代码不能正常运行时,可以通过调试定位错误。常用的程序调试操作包括设置断点、开始、中断和停止程序的执行、单步执行程序以及使程序运行到指定的位置。右键单击要设置断点的代码行,在弹出的快捷菜单中选择“断点”→“插入断点”命令;插入断点后,就会在设置断点的行旁边的灰色空白处出现一个红色圆点
单击开始调试,可以通过菜单栏上的选项进行单步执行和逐过程执行。
回归测试
在上方菜单栏处点击分析->性能和诊断->性能导向,运行程序等待结果。
![1784878-20190920174519897-1263212549.png](https://i-blog.csdnimg.cn/blog_migrate/00723f69604c5f9f8748036091c1289d.png)
![1784878-20190920174544623-741453828.png](https://i-blog.csdnimg.cn/blog_migrate/c1a616d320c1f058f8d593164716d637.png)
![1784878-20190920174606183-1407238182.png](https://i-blog.csdnimg.cn/blog_migrate/ec7cf0c2a23f821405029aa2c9d50365.png)
Part 6.总结感悟
这次的作业量很多但却不难,就是需要仔细就可以做好,虽然在配置git输入命令用了很长时间,它们之间的关系也让我花了很多时间;由于我自身太浮躁,我不想去慢慢看老师给的资料,导致后来上传代码时浪费了很多精力。学习就应该静下来,慢慢消化知识点,像我这样太浮躁只会导致后来很多不该出现的问题出现,逐渐消磨了信心,到最后不想去学习。这次的实验让我视野更加开阔,软件不仅仅是代码,还有很多的工具,要自己去实践。