《构建之法》——第二次博客作业
GIT地址 | myGit |
---|---|
GIT用户名 | GrapeWell |
学号后五位 | 62333 |
博客地址 | 我的博客 |
作业链接 | 作业地址 |
1.环境配置以及安装
1) vs2017的安装过程
- 点开vs2017社区版的安装程序
- 点击继续后,出现如下的下载界面
- 提取完成后,会有个安装过程,然后会出现如下界面,根据个人需要,选择需要安装的工作负载(记得选择安装路径,不要一股脑的全装c盘,c盘消化不了)。
- 经过漫长的下载与安装后,会提示你进行重启。
你以为安装过程就这么顺利吗,作为宇宙最强IDE,每个几天是安装不完的。
安装过程中遇到的问题
- 问题一,就是提取文件这里没有下载速度,这个问题还得分两种情况,第一种是点进去之后毫无反应,等半个小时,还是没有。第二种情况是下载速度很慢,用的是电信的宽带,奇慢无比,只有几kb/秒,从网上找了很多方案都没有效果,结果换成了edu,下载速度直线飙升,电信的宽带估计有限制。
- 问题二,当上面这个问题解决后,又来了新的问题,在选择需要的工作负载之前,会显示正在准备,然后就一直等,一直等,然后等来了下面这张图,这个问题我也搜了很多方案,没有效果,这个问题困扰了我一天,看了错误日志,也看不出所以然,然后,经过两次很日常的开机,结果就可以了。(日志里面报的错都不一样,最后一次是缺少SDK和Apache Ant,但是我都没管,重启了一下,结果可以了)
- 问题三,和问题一差不多,在下载工作负载时,没有下载速度,切换edu即可。
安装vs总结:
安装vs2017时遇到问题不要绝望,要有希望。我是先卸载了vs2013,再安装的2017,有经验的人会告诉你说,必须把以前安装的vs都卸载干净,这个干净指的是所有与vs有关的,这个可以利用卸载工具。然后遇到网速问题,试试多个网络。然后呢,剩下的问题交给玄学吧。
2) 环境配置
PS:vs系列软件的环境配置不需要手动配置
这就是vs2017所需要的环境。
核心:.NET Framework 4.6.1框架
2.代码设计思路
1) 符号处理
定义一个symbol类,也就是符号类,将加减乘除符号存进一个数组,通过randSymbol方法来返回一个随机确定的符号,就是随机数的利用。
class symbol
{
Random rd = new Random();
public static string[] ch = { "+", "-", "*", "/" };//符号数组
public string randSymbol(int num)//产生随机符号并返回
{
if (num == 1)
return ch[0];
else if (num == 2)
return ch[1];
else if (num == 3)
return ch[2];
else
return ch[3];
}
}
2) 运算处理
运算处理我建了两个类,一个是根据符号,选择运算类型,一个是调整运算的先后顺序,就是先乘除后加减。
class choicemath//选择运算类型
{
public int Option(int x,string symbol,int y)//通过传过来的数和符号选择运算方法
{
if (symbol == "+")
return x + y;
else if (symbol == "-")
return x - y;
else if (symbol == "*")
return x * y;
else
return x / y;
}
}
class yunsuan
{
choicemath cho = new choicemath();//实例化一个运算类型对象
public int Sum(int x,int y,int z,string sym1,string sym2)//运算方法,先乘除,后加减。
{
if ((sym1 == "*"||sym1=="/") || (sym2 =="+"||sym2=="-"))
return cho.Option(cho.Option(x, sym1, y), sym2, z);
else
return cho.Option(x, sym1, cho.Option(y, sym2, z));
//返回运算结果
}
}
3) 无负数,无小数
通过一个工具类,主要针对除法,来判断是否结果为小数。
class utils
{
choicemath cho = new choicemath();//实例化一个运算类型对象
public bool judge(string sym1,string sym2,int x,int y,int z)//判断是否位为小数
{
if(sym1=="/"&&(x/y*y)!=x)//如果符号为除号,则判断除后的结果乘以除数是否等于被除数
{
return false;
}
if(sym2=="/"&&(((sym1=="+"||sym1=="-")&&(y/z*z)!=y)||((sym1=="*"||sym2=="/")&&(cho.Option(x,sym1,y)/z*z)!=cho.Option(x,sym1,y))))//原理与上面一致
{
return false;
}
return true;
}
}
4) 打印到文本文档
将数据转换成字符串然后打印
StreamWriter stream = new StreamWriter("test.txt", true);
stream.WriteLine(str);
stream.Close();
其余则是一些变量的定义了
运行截图:
3.Git初体验
- 注册GitHub账户。
- 下载并安装Git,得到如下图所示的软件。
- 由于写完之后,才发现在写的过程中vs可以连接git,所以就没有过程的记录,直接来说一下怎么将项目上传到github上。在桌面上创建一个文件夹,我取名为Calculator.
找到克隆地址,点击页面右上角的fork,复制地址。
在刚才建立的文件内,点击右键,选择git bash,输入神秘代码。
修改配置文件内的内容,设置自己的名字以及邮箱。
进行git添加,并给自己的分支取名。
通过git push命令,将自己的项目上传,期间会有一个登录。
问题:
- 输入git push,提示origin does not to be a git repository
原因是因为本地仓库和远程仓库没有相关联,先关联再push就可以了。
4.项目测试以及效能分析
1) 单元测试
测试步骤
-
点击项目的解决方案,添加单元测试。或者点开类,右键点击创建单元测试。
-
对测试的具体条件进行设置
- 点开创建的单元测试,打开后缀为cs的文件,通过Assert断言进行测试。
- 点击测试后,查看测试结果。
2) 回归测试
回归测试是在修改代码后就进行测试,我在修改代码后,出现了连续5道题都是加法,就是说连续5道题的符号都相同,经过重构后,解决了问题,也体会到了回归测试的好处。
3) 效能分析
-
点击分析工具栏的分析,选择性能探查器。
-
选择cpu使用率
-
效能分析结果(测试时尽量使得数据足够大)
问题以及总结:
1.单元测试所测试的方法必须是公有方法还有必须是公有类,不然就不会自动生成测试方法,而只生成一个空白的TestMethod。
2.效能分析需要的数据要够大,不然结果不明显。
5.心得及体会
- 首先是安装vs2017这个过程足够折磨人,让人心累,整个软件装了两天,以后要装vs软件,先别卸载已有的,装好了再卸载不迟,如果先卸载了,就需要卸载的很干净。
- 第一次使用GitHub,还有很多不熟练的地方,需要进一步的了解与学习与使用。
- C#也需要补一补了,很多东西都忘了,不会使用了。
- 这次写这个阿超的计算机,我就在想,如果按照个人开发的流程,先进行需求分析,评审等一系列的步骤并且预估每一个步骤所需要花费的时间去写会不会好一点,但是这个程序相对来讲,比较小,不适合使用这种方法。
黑色的不是夜晚,是漫长的孤单。