熟练使用Github
---恢复内容开始---
1.开头
| GIT地址 | https://github.com/Untrara |
| GIT用户名 | Untrara |
| 学号后五位 | 31124 |
| 博客地址 | https://i.cnblogs.com/posts |
| 作业链接 | https://www.cnblogs.com/harry240/p/11515697.html |
2.作业
(1)因为自己在很早之前就安装过VS2019,我就直接截我VS2019的图来证明我的环境配置完成了吧。

我的GitHub首页

GIt我也之前就安装了,这个地方不再演示安装过程,展示一下黑色窗体



从远程仓库拷贝到本地(我这是第二次拷贝的截图,第一次拷贝忘了截图,第二次拷贝显示文件已经在本地)





(2)代码设计思路
首先声明一个包含四则运算符号的数组

产生一个随机数2或者3,来确保选择的符号个数,是2或者3
接下来分成两个分支,一个符号是2个的时候,一个符号是三个的时候
符号是2的时候,随机从符号数组选取两个符号,存入LIst<String>中,再随机产生三个[1,100]的数
接下来把三个随机数与两个符号用Concat函数拼接成一个四则运算式。形如:2+3-5

得到这个四则运算的字符串之后,用dataTable.Compute对拼接好的四则运算式进行运算(公式本身会先算乘除,再算加减)

这个时候程序初步就完成了,但是由于这个时候没有条件限制,导致输出会有小数和负数,此时需要对结果进行判定
如果结果为负,或者是小数,则舍弃当前的式子,重新开始一轮循环,知道式子的结果不为负,不为小数为止

此时还有最后一个需要注意的地方,就是虽然结果不会出现小数,但是形如:10/20*20的式子在运算中会出现小数。这个时候我的判别条件是这样的,如果符号为负的时候,符号前的数必须大于符号后的数,如果不大于,则同样舍弃当前式子,继续下一轮循环。(以上都是符号为两个,随机数为三个的情况。符号为三个,随机数为四个的情况同理)
总体代码:
using System;
using System.Collections.Generic;
using System.Data;
using System.IO; namespace Calculator
{
class Program
{
static void Main(string[] args)
{
StreamWriter sw = new StreamWriter(@"F:\QQPCmgr\Desktop\Calculator\Untrara\Output.txt");
int NumOfSymbol;
DataTable dataTable = new DataTable();
Console.WriteLine("输入一个整数确定四则运算个数,请输入:");
int count = Convert.ToInt32(Console.ReadLine());
String[] symbol = { "+", "-", "*", "/" };
Random r = new Random(); Console.SetOut(sw);
for (int j = ; j <= count; j++)
{ int num = r.Next(, );
if (num > )
{
NumOfSymbol = ;
int tmp = ;
List<string> list1 = new List<string>();
while (true)
{ int NumOfArr = r.Next(,);
string result = symbol[NumOfArr];
list1.Add(result);
tmp++; if (tmp == NumOfSymbol)
{
string a = Convert.ToString(r.Next(, ));
string b = Convert.ToString(r.Next(, ));
string c = Convert.ToString(r.Next(, )); string formula = String.Concat(a, list1[], b, list1[], c);
object test = dataTable.Compute(formula,"");
decimal final = Convert.ToDecimal(test);
int finalNum = Convert.ToInt32(final);
if (final == finalNum && final > )
{
if (list1[].Equals("/") || list1[].Equals("/"))
{
if (Convert.ToInt32(a) < Convert.ToInt32(b) && Convert.ToInt32(b) < Convert.ToInt32(c))
{
tmp = ;
list1.Clear();
}
}
else {
Console.WriteLine(a + list1[] + b + list1[] + c + "=" + final); break;
} }
else {
tmp=;
list1.Clear();
} }
}
}
else
{
NumOfSymbol = ;
int tmp = ;
List<string> list2 = new List<string>();
while (true)
{
int NumOfArr = r.Next(,);
string result = symbol[NumOfArr];
list2.Add(result);
tmp++;
if (tmp == NumOfSymbol)
{
string a = Convert.ToString(r.Next(, ));
string b = Convert.ToString(r.Next(, ));
string c = Convert.ToString(r.Next(, ));
string d = Convert.ToString(r.Next(, ));
string formula = String.Concat(a, list2[], b, list2[], c, list2[], d);
object test = dataTable.Compute(formula, "");
decimal final = Convert.ToDecimal(test);
int finalNum = Convert.ToInt32(final); if (final == finalNum && final > )
{
if (list2[].Equals("/")|| list2[].Equals("/")|| list2[].Equals("/"))
{
if (Convert.ToInt32(a) < Convert.ToInt32(b) || Convert.ToInt32(b) < Convert.ToInt32(c) || Convert.ToInt32(c) < Convert.ToInt32(d))
{
tmp = ;
list2.Clear();
}
}
else
{
Console.WriteLine(a + list2[] + b + list2[] + c + list2[] + d + "=" + final);
break;
} }
else
{
tmp = ;
list2.Clear();
}
}
}
}
}
sw.Flush();
sw.Close();
}
}
}
(3).用git提交代码


提交后结果

四、对项目进行单元测试和回归测试的过程
vs2019测试创建
单元测试:




回归测试,多次输入数字,发现结果均正确:


效能分析,cpu与内存可视图

五.感想
虽然通过这次的作业收获很多,首先是自己花了一天的时间编写了一个四则运算的程序,在这个过程之中,我是自己编写这个程序,我看到有些人使用了堆栈或者二叉树等数据结构来实现,总的来说还是自己对这些基本的数据结构了解不够深刻,所以想使用的时候总感觉有心无力,以后有空的话,这个程序的实现可以使用二叉树来试一试。在编程的过程中,很多时候以为变量的作用域而出错,经常在修改不同的变量,想来通过这次,发现自己虽然一直在往前学习,但是却基础不牢,实在是不应该,在今后的学习中要更加注意。接下来是使用git和GitHub的使用,这些工具虽然我在之前也安装使用过,如果操作得当,是真的很方便,但是这些工具都需要在日常的使用中一次又一次的使用,才能保证熟练的使用。通过单元测试和回归测试等等,以这次机会了解到了一个类的运行时间,比起之前,更加直观的看到自己写的代码是否高效,在以后的学习工作中,多使用,才能保证自己代码的高效。
---恢复内容结束---
熟练使用Github的更多相关文章
- 助教培训第四次作业——熟练掌握GitHub及Git的使用方法
助教培训第四次作业——熟练掌握GitHub及Git的使用方法 1.Git 命令的理解和使用 常用的Git命令可以查看官方文档,官方文档的网址:https://git-scm.com/docs .虽然是 ...
- 熟练掌握GitHub及Git的使用方法
一.Git 命令的理解和使用 Git是一个快速,可扩展的分布式版本控制系统,具有异常丰富的命令集,可提供高级操作和对内部的完全访问. 分布式:Git版本控制系统是一个分布式的系统,是用来保存工程源代码 ...
- 助教培训总结——熟练掌握GitHub及Git的使用方法
一.Git 命令的理解和使用 1.使用git前需要建立一个本地仓库,用Git GUI Here的话就可以直接选择Create New Repository.Git Bash Here输入 命令git ...
- Github使(zhuang)用(bi)指南
本文针对未能熟练使用GitHub的人员,旨在为其指明通往新世界的小路. 一些闲话可以无视 在这个开源的时代,可能你听说过GitHub,知道大概是个什么.但是,你要是不能熟练的玩起来,怎么和大神取经,怎 ...
- 论github客户端的使用与团队协作
首先:如果你觉得小编写的一般般,那你就默念小编是渣渣,我相信你就会好起来的 -------------------------------------------------------------- ...
- gitHub入门指导
Github可以托管各种git库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性.为一个项目贡 ...
- 向Github提交代码时遇到的一些问题
今天分享一下我的一些小经验,那就是向github提交我们的代码.之前一直是直接使用的浏览器完成的代码的下载任务,没有使用过客户端,为了让自己在工作之前熟练使用GitHub,所以就有了下面的这篇博文了. ...
- GitHub概述
1 引言 GitHub是为开发者提供Git仓库的托管服务,是一个让开发者与同事.同学及相同兴趣爱好者共享代码的完美场所. GitHub公司总部位于美国旧金山,拥有一只似章鱼又似猫的吉祥物. GitHu ...
- 学习web前端怎样入门?初学者赶紧看过来!
web前端怎么样才能入门,首先我们要从什么是初级web前端工程师说起: 按照我的想法,我把前端工程师分为了入门.初级.中级.高级这四个级别, 入门级别指的是了解什么是前端(前端到底是什么其实很多人还是 ...
随机推荐
- JavaScript有趣的知识点
JavaScript中总有一些有趣的小知识,而且又是很容易犯错的.我把我遇到的慢慢罗列一下,方便大家避坑 typeof(null)返回的结果是 object " "变成布尔类型为t ...
- js中错误处理机制
1.基本知识 1. 错误对象 Error,SyntaxError,RangeError, ReferenceError,TypeError,URIError 上面的都是构造函数: new 命令可以生成 ...
- read,write,lseek
转自 http://blog.csdn.net/todd911/article/details/11237627 1.read 调用read函数从文件去读数据,函数定义如下: #include < ...
- 整理的 linux常用发行版 openstack images 下载地址
常见的Linux发行版本官方都提供了用于云环境(如OpenStack)的Image的下载. 发行版 下载地址 fedora 30 http://mirrors.ustc.edu.cn/fedora/r ...
- http接口测试工具 REST Client
以下几个工具为常用rest测试工具 1.Postman, 可以下载客户端或者安装浏览器插件 2.Insomnia,window客户端 3.Apizza,在线极客专属的api协作管理工具 ...
- 2019.6.28 校内测试 T3 【音乐会】道路千万条
大眼一看最下面的题意解释的话,发现这和洛谷P1310表达式的值挺像的,大概都是给定一些运算符号,让最后的表达式为true的概率,为false的概率啥的QwQ~: 然后这个题嘛?就是在所有的运算符中提溜 ...
- jsp显示当前系统时间
第一种方式: <% java.text.SimpleDateFormat simpleDateFormat = new java.text.SimpleDateFormat( "yyy ...
- POJ 3616 Milking Time ——(记忆化搜索)
第一眼看是线段交集问题,感觉不会= =.然后发现n是1000,那好像可以n^2建图再做.一想到这里,突然醒悟,直接记忆化搜索就好了啊..太蠢了.. 代码如下: #include <stdio.h ...
- 使用linux中,最让人无语的是软件源
使用linux的最大的障碍是软件源的配置和系统的安装,这两个搞定了,坚持使用下去都不是问题,如果实在不行,还可以win10下的linux子系统可以作为基本的使用.下面记录两个软件源: Found 2 ...
- 【Golang】基于录制,自动生成go test接口自动化用例
背景 之前写过一篇博客,介绍怎么用Python通过解析抓包数据,完成自动化用例的编写.最近这段时间在使用go test,所以就在想能不能也使用代码来生成自动化用例,快速提升测试用例覆盖率.说干就干. ...
