个人第2次作业:熟悉使用Git工具
GIT地址 | https://github.com/dxg1999 |
---|---|
GIT用户名 | dxg1999 |
学号后五位 | 62317 |
个人博客 | 我的博客 |
作业链接 | 作业内容 |
项目作业的整个过程
作业背景
阿超家里的孩子上小学一年级了,这个暑假老师给家长们布置了一个作业:家长每天要给孩子出一些合理的,但要有些难度的四则运算题目,并且家长要对孩子的作业打分记录。作为程序员的阿超心想,既然每天都需要出题,那何不做一个可以自动生成小学四则运算题目与解决题目的命令行 “软件”呢。他把老师的话翻译一下,就形成了这个软件的需求:
程序接收一个命令行参数 n,然后随机产生 n 道加减乘除(分别使用符号+-/来表示)练习题,每个数字在 0 和 100 之间,运算符在 2 个 到 3 个之间。
由于阿超的孩子才上一年级,并不知道分数。所以软件所出的练习题在运算过程中不得出现非整数,比如不能出现 3÷5+2=2.6 这样的算式。
练习题生成好后,将生成的 n 道练习题及其对应的正确答案输出到一个文件 subject.txt 中。
当程序接收的参数为4时,以下为一个输出文件示例。
13+17-1=29
1115-5=160
3+10+4-16=1
15÷5+3-2=4
Part 1.项目环境配置过程
1.1先下载vs
1.2然后再勾选上C#所需的组件
GIT安装教程击这儿
1.3安装GIT
1.4回到电脑桌面,鼠标右击如果看到有两个git单词则安装成功
1.5遇到的问题
1.在安装C#组件时,最开始不知道咋查找安装,我又不想把以前安装好的vs删除,在重新安装的界面下勾选,因为重新安装要下载很久;最后,我在搜索栏下搜索组件安装才找到C#组件,也成功安装了。
2.初次使用Git,注册账号在验证邮箱哪里花了一点时间,不懂它那个意思,导致它发了好几个验证码;还有在安装时,不懂该勾选什么,不该勾选什么,还好有度娘(嘻嘻嘻)。
Part 2.克隆项目
2.1按照作业要求,在这个库拷贝下来
2.2拷贝完成
2.3Git初始化及仓库创建和操作
仓库复制创建,成功后,原先那个文件夹就多出一个Calculator
2.4进入项目文件夹,新建一个文件夹,重命名为你的 Github 账号名
2.5遇到的问题
git的指令不太熟悉,在网上查找了一下解决掉了
Part 3.代码设计思路
3.1在VS中新建项目,地址就填刚刚那个文件夹的
3.2关键信息提取
不能出现负数
不能出现小数
项目采用C#完成
数字在0~100之内
运算符号在2~3个内
3.3先用Random函数生成随机数字和运算符号
private void CreateEquation(int problem_cnt)
{
this.problem_cnt = problem_cnt;
for (int i = 0; i < this.problem_cnt; ++i)
{
int number = random.Next(0, 100);//生成随机运算数字,且取值范围为[0,100]
int Symbol = random.Next(2, 4);//随机生成运算符个数,且个数范围为[2,4)
CreateNum(Oparetion_Symbol); //调用生成问题函数
}
3.4再将生成运算符数量个数,且每个数在(1,100)之间,生成算式
public static string Create()
{
string formula = null;
var seed = Guid.NewGuid().GetHashCode();//C#中默认以时间作为随机数种子,那么随机生成的运算式子很多都是相同的(伪随机)
Random random = new Random(seed);
int number = random.Next(0, 100);
int Symbol = random.Next(2, 4);
formula = number.ToString();
for (int i = 0; i <Symbol; i++)
{
number = random.Next(0, 101);//生成随机运算数字,且取值范围为[0,100]
int operation = random.Next(0, 4);//随机产生运算符
formula = formula + Operation_Symbol[operation] + number.ToString();
}
return formula;
}
3.5排除小数和负数,计算结果并返回值
public static string CalculateResult(string formula)
double result_1 = 0; //临时计算结果
if (formula.num.Count == 1) //若计算完毕返回结果
{
formula.result = formula.num[0];
return sb;
}
else if (formula.symbol.Exists(x => x == 2) || formula.symbol.Exists(x => x == 3)) //若运算中有*或/运算优先计算掉
{
for (int i = 0; i < formula.symbol.Count; i++)
{
if (formula.symbol[i] == 2 ||formula.symbol[i] == 3) //找到第一个为*或/的运算符
{
result_1 = Calculate(formula.symbol[i], formula.num[i], formula.num[i + 1]); //将这个运算符计算掉
//将计算结果保存并生成一个新的四则运算
formula.num[i] = result_1;
formula.num.RemoveAt(i+1);
formula.symbol.RemoveAt(i);
return result;
}
}
}
else
{
result_1 = Calculate(formula.symbol[0],formula.num[0],formula.num[1]);
//将计算结果保存并生成一个新的四则运算
formula.num[0] = result_1;
formula.num.RemoveAt(1);
formula.symbol.RemoveAt(0);
return CalculateResult(formula);
}
return result;
}
3.6将结果保存在subject.txt中
StreamWriter writer = new StreamWriter(@"F:\练习\Calculator\subject.txt");
3.7运行结果
遇到的问题
1.随机数的生成以及调用
2.符号优先级不能处理
3.不能处理连续几个数相除
Part 4.单元测试
4.1创建单元测试
4.2查看结果
4.3回归测试
回归测试是指开发修改了旧代码后,测试重新进行测试以确认开发本次修改没有引入新的错误或导致其他代码产生错误。
将修改的和原来的分别运行,查看结果,从而优化程序。
4.4遇到的问题
1.最开始创建单元测试时,不能执行,说只有公开类才支持创建,后来将类改成公开的换成public就行了
2.我最开始在.Net core控制台上写的代码,导致没有右键直接生成创建单元测试的选项,必须自己从项目创建那里重新创建一个测试项目,才能对其测试;后来我改到在.Net premwork控制台上写,单击右键就有直接创建单元测试这个选项了
Part 5.提交代码
5.1打开git,先初始化本地仓库
5.2再执行add 和commit命令
5.3使用git status查看状态
接着用git push登录git
5.4当出现这一步时,说明你没配置ssh密钥,要自己配置(不知道可以看下面的参考文献)
5.5push成功
5.6然后回到你的git上,去上
感悟
Git中不能允许直接Ctrl+v进行粘贴,只能通过右键然后paste进行粘贴.这次作业做下来很累,花了很多时间,因为有很多新东西要配置,但也因此学到了很多新的知识,很开心;首先配置ssh密钥哪里,不知道怎么回事我按照大佬给的步骤一直配不出来,后来直接回车不知怎么地就配好了,终于在自己的C盘里找到了那个id_rsa.pua文件;通过这次作业,感到自己还有很多不足,还有就是Vs的功能太牛皮了;原本是想用栈实现四则运算的,但难度较大且过于繁琐,便采用了 Data Table 提供的现成方法(网上查找到的),自己以后还要多加努力啊。
参考文献
第一次使用Git上传本地项目到github上
C#中生成随机数的几种方法
c#实现简单四则运算
————————————————
让你的指尖跳跃出一行行代码精灵,希望对你有所帮助。
本文博主:翻斗街扛把子胡图图本文版权归作者和博客园共有,欢迎转载,转载请附上原文出处链接及本声明。