个人第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#实现简单四则运算
————————————————
让你的指尖跳跃出一行行代码精灵,希望对你有所帮助。
本文博主:翻斗街扛把子胡图图本文版权归作者和博客园共有,欢迎转载,转载请附上原文出处链接及本声明。
个人第2次作业:熟悉使用Git工具的更多相关文章
- 代码管理工具:使用github和git工具管理自己的代码
一.git工具和账户创建 1.1 安装 Git 是 Linus Torvalds 最近实现的源代码管理软件."Git 是一个快速.可扩展的分布式版本控制系统,它具有极为丰富的命令集,对内部系 ...
- 使用Windows下的git工具往github上传代码 踩坑记录
使用Windows下的git工具往github上传代码 踩坑记录 背景 由于以前接触的项目都是通过svn进行版本控制,现在公司项目使用git,加上自己平时有一个练手小项目,趁着周末试着把项目上传到自己 ...
- EXCEL,熟悉又不熟悉的项目管理工具
EXCEL,熟悉又不熟悉的项目管理工具 如何利用excel做轻量级的项目管理 教你用Excel进行项目管理
- 【转】第 02 天:在 Windows 平台必裝的三套 Git 工具
原文网址:https://github.com/doggy8088/Learn-Git-in-30-days/blob/master/docs/02%20%E5%9C%A8%20Windows%20% ...
- windows中使用Git工具连接GitHub(配置篇)
Git在源码管理领域目前占很大的比重了,而且开源的项目很多都转到GitHub上面了.例如:jQuery, reddit, Sparkle, curl, Ruby on Rails, node.js, ...
- Git详解之六 Git工具(转)
Git 工具 现在,你已经学习了管理或者维护 Git 仓库,实现代码控制所需的大多数日常命令和工作流程.你已经完成了跟踪和提交文件的基本任务,并且发挥了暂存区和轻量级的特性分支及合并的威力. 接下来你 ...
- 为异常处理做准备,熟悉一下WinDbg工具
为异常处理做准备,熟悉一下WinDbg工具 马上开始异常处理第二讲,但是在讲解之前,还有熟悉一下我们的WinDbg工具,当然你如果熟悉这个工具,那么就可以不用看了. 一丶熟悉WinDbg界面 刚开始打 ...
- Git详解之六:Git工具
Git 工具 现在,你已经学习了管理或者维护 Git 仓库,实现代码控制所需的大多数日常命令和工作流程.你已经完成了跟踪和提交文件的基本任务,并且发挥了暂存区和轻量级的特性分支及合并的威力.(伯乐在线 ...
- 使用git工具将项目上传到github
注册github账号 https://github.com/ 安装git工具: https://git-for-windows.github.io/ 上面的准备工作完成后,现在开始操作. 一.进入gi ...
随机推荐
- C++ 模板类示例 template class
声明和实现在一个文件中: template<class T> class book { public: book(); ~book(); private: }; template<c ...
- 【正则】day01
正则表达式一.概述 验证 网络爬虫. 概念: 具有语法格式的字符串. 函数 PCRE 1.perl语言正则语法兼容.(java c) 2.速度快,效率高. P ...
- Codeforces Round #573 (Div. 2) Tokitsukaze and Mahjong 水题
B. Tokitsukaze and Mahjong time limit per test1 second memory limit per test256 megabytes Tokitsukaz ...
- JavaScript查找两个数组的相同元素和相差元素
let intersection = a.filter(v => b.includes(v)) 返回交集数组 let difference = a.concat(b).filter(v => ...
- R语言填充空缺值
在R语言中, imputeMissings包的特点是,如果空值是数值型,则使用median代替,如果使用的是character类型,则使用mode值代替. imputeMissing中,需要的包是im ...
- 用Java开发的【智能语音开发板MEGA ESP32AI】
有点激动 ~ ~ ~ 新鲜出炉,用视频看看效果哦 我们新研发出世的语音开发板MEGA ESP32AI,来看看吧,有点腻害哦!!!先演示下功能语音控制开关等.播报天气 戳下面链接看视频哦? MEGA E ...
- 在Visual Studio 中使用 <AutoGenerateBindingRedirects> 来解决引用的程序集版本冲突问题
问题: https://stackoverflow.com/questions/42836248/using-autogeneratebindingredirects-in-visual-studio ...
- Spring源码系列 — Bean生命周期
前言 上篇文章中介绍了Spring容器的扩展点,这个是在Bean的创建过程之前执行的逻辑.承接扩展点之后,就是Spring容器的另一个核心:Bean的生命周期过程.这个生命周期过程大致经历了一下的几个 ...
- virtualbox的安装与使用、安装镜像创建虚拟机
1.官网:https://www.virtualbox.org/ 然后呢,点击下载: 开始安装virtualbox: 双击安装.详细安装过程见:https://baijiahao.baidu.com/ ...
- ELK学习笔记之Elasticsearch和Kibana数据导出实战
0x00 问题引出 以下两个导出问题来自Elastic中文社区. 问题1.kibana怎么导出查询数据?问题2:elasticsearch数据导出就像数据库数据导出一样,elasticsearch可以 ...