GIT地址 https://github.com/gentlemanzq/yunsuanhomework
GIT用户名  gentlemanzq
学号后五位  62320
博客地址 https://www.cnblogs.com/gentlemanzq/
作业链接 https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1/homework/2793

这是第二次写博客了,没有之前那么紧张。。这一次的熟悉使用工具这个任务,动手能力更强,难度更大,下面就讲讲作业过程中遇到的一些问题。


  • 一.编译环境搭建
  1. 由于进入大一时就多次听说VS天下第一,再加上团队项目要求,早早的就下载了Visual Studio 2013,但是到现在我都还记得那些数不尽的坑!第一次下载时遇到不能更改安装目录问题!!!直接就安装了C盘。故第一次安装,卒,C盘只剩下小小的几个G。后面在学长帮助下格式化了C盘。(至今仍未搞清楚当时为什么不能更改安装目录)重新下载了VS2015,这回就安装在其他盘了。所以千万不要把VS安装在C盘。。安装完成后打开如下图:
  2. C#组件展示:如下图,我的.NET Framework版本为4.5.2(PS:正常下载的C#组件应该没有DevExpress)


  • 二.Git与GitHub下载注册
  1. 在下载git和注册GitHub账号之前,强烈推荐大家使用Google chrome浏览器,因为git和github都是英文的啦。如果实在看不懂可以用谷歌翻译,右键空白处可以选择翻译中文。
  2. 注册GitHub(由于之前我注册过了,这次重新注册了一个)容易遇到的问题有以下几个

    1.首先是第一步的时候容易卡住,不会进入第二步。并且返回登陆会遇到账号密码错误问题,那么遇到这种情况建议大家更换一个浏览器就可以了,chrome ,firefox Microsoft Edge          或者手机浏览器都是可以的。个人建议手机浏览器,快速,方便。

    2.建议注册邮箱用QQ邮箱,其余部分邮箱可能会出现问题(我没有遇见,师兄曾经遇见过)若有问题可以参考这篇博客[1]

  3.Git下载

    1.可以从作业链接点击进行Git安装,也可以百度点击第一个出来的网页

    2.正常安装就可以了,楼主自己是没有出现问题,(看了大部分错误大概率都是Windows下出现问腿)如果出现问题请借鉴此篇博客[2]

    3.建议在下载完成后了之后,在桌面空白处点击git bush here,绑定自己的用户名邮箱

$ git config user.name 'github用户名'

$ git config user.email '邮箱'

         [1]:https://blog.csdn.net/qq_42836176/article/details/83098690

         [2]:https://blog.csdn.net/limin2928/article/details/51482470


  • 三.克隆项目
  1. 首先打开GitHub,登陆自己的账号,然后输入将要clone的地址https://github.com/Jupi4ter/AchaoCalculator 出现如下界面,点击fork(克隆或下载)

2.点击clone后就会进入自己的仓库,这里会显示自己的ID

3.这个时候点击clone,会有一个链接,复制这个链接

4.在自己需要的位置建立文件夹,对文件夹右键,点击git bush,如下图:

5.出现git的命令行窗口,输入 git clone 后面输入复制的地址  ps(gti的命令行窗口不能复制如果要进行复制,见下图)

6.clone成功后出现以下界面,并且在文件夹中出现(.git这个文件是不可见的,需要设置可见,具体操作就不详细叙述,可百度)

7.建立和自己GitHub用户名相同的文件夹,在里面建立C#代码文件文件


  • 四.编写四则运算代码
  1. 打开VS建立项目,选择控制台应用程序,更改位置为自己建立的文件夹。

2.代码设计思路:

    step1:首先运算符的个数是2到3个,其次是每个数范围在0-100之间。在这里我首先生成随机数,用来0,1来判断有多少个运算符

  1. Random random1 = new Random();
  2. int x = random1.Next(, );
  3. if(x==)
  4. {
  5.  
  6. }
  7. else
  8. {
  9.  
  10. }

    step2:然后我按照逻辑生成了四个或者三个随机数,接着就是判断运算符优先级问题,这里由于赶时间就用了笨办法,用了if来列举

  1. //两个运算符
  2. if ((s[s1] == '+' || s[s1] == '-') && (s[s2] == '*' || s[s2] == '/'))
  3. {
  4.  
  5. }
  6. else
  7. {
  8.  
  9. }
  10. //三个运算符
  11.  
  12. if ((s[s1] == '+' || s[s1] == '-') && (s[s2] == '*' || s[s2] == '/') && (s[s3] == '*' || s[s3] == '/'))
  13. {
  14.  
  15. }
  16. else if ((s[s1] == '+' || s[s1] == '-') && (s[s2] == '*' || s[s2] == '/') && (s[s3] == '-' || s[s3] == '+'))
  17. {
  18.  
  19. }
  20. .................就不挂上全部代码了

    step3:计算过程中需要进行是否是小数和负数的判断,代码如下

  1. public static bool ansx(double sum)
  2. {
  3. if (sum == (int)sum)
  4. return true;
  5. else
  6. return false;
  7. }

    step4:真实计算过程如下:   ps(写入文件过程就不展示了)

  1. public static double counter(int x,int y,int z)
  2. {
  3. if (z == )
  4. return x + y;
  5. else if (z == )
  6. return x - y;
  7. else if (z == )
  8. return x * y;
  9. else
  10. {
  11. if(y!=)
  12. {
  13. int m = x / y;
  14. if(m*y==x)
  15. return x / y;
  16. else
  17. {
  18. return -;
  19. }
  20.  
  21. }
  22. else
  23. {
  24. return -;
  25. }
  26. }
  27. }

   3.运行结果展示:

  4.总结

    这个四则运算难度不大,但是有许多需要注意的地方,例如运算符的优先级,运算符的个数,其次是需要判断计算过程中是否出现小数分数,还有负数。


  •  五.单元测试

1.新建单元测试

2.在单元测试中引用原项目函数接口

3.(由于上种方法,在引用后我的VS貌似缺少外部依赖,故选用了另一种测试方式)将所有的类和方法全部改成公有的,即public(否则会出现错误)然后右键创建单元测试跳出如下对话框

        4.不进行修改,直接点击确定后,出现以下初始代码 。PS:必须要将你想要测试的每一个函数都要添加测试才行

5.在测试函数中编写代码,对函数进行测试,例如对counter函数进行测试

  1. public void counterTest()
  2. {
  3. int expect = ;
  4. int act=Convert.ToInt32( Program.counter(, , ));
  5. Assert.AreEqual(expect, act);
  6. // Assert.Fail();
  7. }

  6.依照上述步骤,依次测试三个函数,直到三个测试函数都通过测试。


  • 六.断点,监视器已经回归测试

  1.设置断点,例如,在调用函数后的地方设置断点,观察调用函数后的值

  2.点击运行当前程序,程序运行到断点时,停止运行。

  3.设置监视,具体跟踪某个变量。PS:暂时没有找到监视

  4.条件断点设置,右键断点,点击条件。由图片可知只有当条件满足时,会执行断点

  5.在每一次修改完了之后,重新进行单元测试,回归测试很够很好程度上的保证代码的准确性。

  • 七.效能工具使用

  1.打开性能探查器

  2.手动输入10000,生成一万个四则运算式,等待收集数据完成

  3.点击右上创建详细的报告。可以详细查看某个函数,某一行代码所占用的时间。

八.提交代码

  1.右键自己建立的文件夹,点击git bash here (这里不做演示)

  2.在git的命令窗口中,输入命令行

    git add  .(注意add后面有个空格)

    git commit -m “First Commit”

  3.将代码push进入仓库,push后输入自己的用户名和密码

    git push

    username for ‘https://github.com’:xxxxx(用户名)

  4.登陆仓库,查看是否提交成功

  5.点击请求合并,通过请求后,代码正式提交成功

  

  ps:这里除了作业要求的这种提交方式,还有一种以前博主在使用的提交方式,一种偷懒的方式。

  1.首先在视图中生成团队资源管理器

  2.点击Git设置,再点入设置,可以进行全局变量设置,填写自己的用户名和电子邮箱地址。

 

  3.返回Git设置,点击项目,选中管理链接,在本地git仓库点击克隆,然后输入github项目中的克隆链接,克隆完成后点击创建新项目或解决方案。

  4.建立控制台应用,在上面进行代码书写,进行作业要求的单元测试和回归测试。最后进行代码提交,点击团队资源管理器,点击更改,输入你要提交的消息,此处随意。然后点击全部提交。

  5.点击菜单中的同步,然后你会发现之前提交的更改在这里可以看到,有一个推送,点击推送  PS:注意点击推送前,一定要注意当前代码的更新程度一定要大于仓库代码,否则就要先点击拉取

  6.点击推送之后,如果你是第一次进行这种操作,那么要先进行GitHub登陆如下:

  7.推送成功后,登陆github仓库看一下。


  • 九.总结

这一次的作业感觉难度挺大,由于之前都用的是另一种GIT提交方式故刚开始用命令行有点不习惯,再加上四则运算没有想象中的那么简单,所以还是耗费了很大的精力,甚至临到作业提交前一刻还在写博客。呼,下次一定要提前很快开始写博客了。期间感觉助教老师的帮助,下一次再接再励

第二次作业-熟悉git的更多相关文章

  1. 第二次作业&熟悉使用工具

     GIT地址  我的地址  GIT用户名  995020892w  学号后五位  81105  博客地址  我的博客  作业链接  第二次作业 一.环境配置过程 安装vs2017 因为以前学习C#相关 ...

  2. 第二次作业:Git的安装与使用

    ---恢复内容开始--- 本次作业要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2103 1.首先安装git bash软件, ...

  3. 《构建之法》个人第二次作业之git学习

    GIT地址 点一下 GIT用户名 Mretron 学号后五位 62517 博客地址 点一下 作业链接 点一下 在征得陈老师的同意下,使用java面向对象语言+IDEA工具完成本次作业 一.前期配置 虽 ...

  4. 第二次作业(Git and Github)

       第二次作业(Git and Github) 1.Github项目地址: https://github.com/YanSiJu/JavaWebProject.git 具体介绍详见READ.md 2 ...

  5. Lobooi第二次作业:熟悉使用工具

    第二次作业 GIT地址 https://github.com/Lobooi//AchaoCalculator GIT用户名 Lobooi 学号后五位 24235 博客地址 https://home.c ...

  6. 20169212《Linux内核原理与分析》第二周作业

    <Linux内核原理与分析>第二周作业 这一周学习了MOOCLinux内核分析的第一讲,计算机是如何工作的?由于本科对相关知识的不熟悉,所以感觉有的知识理解起来了有一定的难度,不过多查查资 ...

  7. 软件工程(QLGY2015)第二次作业点评(随机挑选20组点评)

    相关博文目录: 第一次作业点评 第二次作业点评 第三次作业点评 说明:随机挑选20组点评,大家可以看看blog名字,github项目名字,看看那种是更好的,可以学习,每个小组都会反应出一些问题,希望能 ...

  8. 20169210《Linux内核原理与分析》第二周作业

    <Linux内核原理与分析>第二周作业 本周作业分为两部分:第一部分为观看学习视频并完成实验楼实验一:第二部分为看<Linux内核设计与实现>1.2.18章并安装配置内核. 第 ...

  9. 熟悉Git使用

    熟悉Git使用安装git后请修改提交用的用户名和邮箱命令:git config --global user.name "Your Name" git config --global ...

随机推荐

  1. SpringCloud笔记六:Hystrix

    目录 Hystrix是什么? Hystrix服务熔断 新建Hystrix项目 修改yml Maven的pom.xml添加hystrix引用 修改Controller Hystrix服务降级 修改api ...

  2. Angular记录(9)

    文档资料 箭头函数--MDN:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Functions/Arrow_fun ...

  3. css/css3 未知元素宽高,垂直居中和水平居中

    未知元素的宽高情况下  垂直居中和水平居中 第一种 flex盒布局 (推荐) /*弹性盒模型*/ /*主轴居中对齐*/ /*侧轴居中对齐*/ .ele{ display:flex; justify-c ...

  4. webpack-dev-server live reloading 技术实现

    webpack-dev-server  live reloading https://github.com/webpack/webpack-dev-server Use webpack with a ...

  5. HDU-6397(2018 Multi-University Training Contest 8) Character Encoding(生成函数+组合数学)

    题意 从$0$到$n-1$的数字里可重复的取至多$m$个数的和等于$k$的方案数. 思路 显然的生成函数的思路为构造 $(1+x+x^{2}+...+x^{n-1})^{m}$ 那么$x^{k}$的系 ...

  6. excel2json

    原文链接 在游戏项目中一般都需要由策划制作大量的游戏内容,其中很大一部分是使用Excel表来制作的.于是程序就需要把Excel文件转换成程序方便读取的格式. 之前项目使用的Excel表导入工具都是通过 ...

  7. 虚拟机上的centos7链接不上网络: activation of network connection failed

    报错: 重启网络也不行: 解决: 1.打开网络配置文件: $vi /etc/sysconfig/network-scripts/ifcfg-ens33  (可以参照这里的描述,找到这个文件https: ...

  8. 1、js的基本对象和垃圾回收

    js常用的基本类型:Undefined,null,string,number,boolen 还有一种复杂的数据类型 object.判断类型可以用 typeof. 确定值是否是有穷的,isFinite, ...

  9. JAVA 数组作为方法返回值—返回地址

    package Code411;/*一个方法可以有0,1,多个 参数,但只能有0和1个返回值希望一个方法产生多个结果数据进行返回 数组作为方法的参数,传递进去的是数组的地址值. */public cl ...

  10. VUE中/deep/深度作用域

    vue中css样式不起作用,用!important也不起作用,此时需要用 /deep/ ,没加之前是 加了之后起作用了,此时这个deep是深度作用域