学会github管理项目与VS单元测试——第二次作业
|
GIT地址 |
|
|
GIT用户名 |
Bing—Fairy |
|
学号后五位 |
62502 |
|
博客地址 |
|
|
作业链接 |
VS环境配置过程:
1.下载安装包,在安装的时候选择c#开发平台,呃呃呃,内存比较大



在配置过程中遇到的问题:
因为本次程序编写用的是C#,我起初只配置了C++环境,没有添加iC#的nstaller,就不能编写C#程序,后来才添加的C#开发环境。
编程思路:
题目:
- 程序接收一个命令行参数 n,然后随机产生
n道加减乘除(分别使用符号+-*/来表示)练习题,每个数字在0和100之间,运算符在2个 到3个之间。 - 由于阿超的孩子才上一年级,并不知道分数。所以软件所出的练习题在运算过程中不得出现非整数,比如不能出现
3÷5+2=2.6这样的算式。 - 练习题生成好后,将生成的
n道练习题及其对应的正确答案输出到一个文件subject.txt中。 当程序接收的参数为4时,以下为一个输出文件示例。
13+17-1=29
11*15-5=160
3+10+4-16=1
15÷5+3-2=4
针对题目要求,我分析了一下,觉得问题逻辑比较简单,
- 当获取到用户输入的题目个数,就开始循环生成四则运算等式左边的内容
- 通过随机种子Random来实现数字的随机生成,操作符号也是通过随机种子生成
- 先生成第一个数字,通过字符串拼接方式,来存储这个等式
- 最后得到一个完整的等式等号左边的内容,通过,compute()方法来把拼接的字符串转为整形类型,并且把等式结果计算出来,这是一个相当便利的东西啊
- 最后每生成一个等式,就把他写入文件,这样就做到了存储
具体代码如下:

产生四则运算的等式:

单独写了一个类来保存等式到本地D盘的result.txt文件

代码运行截图:

遇到的问题:
随机种子做不到随机,情况如下图所示:

让我惊讶了,随机函数随机出来的东西一模一样,了解了之后,发现这是伪随机数,计算机生成了相同的数字,Random是主要产生伪随机数的类,它主要包括两个构造函数(无参构造函数和带一个Int32类型参数的构造函数),无参构造函数主要采用系统时间作为随机种子,带参数的构造函数需要自己去指定随机种子。而在很短的时间内生成大量随机数的时候,由于时间相当短暂,很大的可能性一部分随机数生成时,取到作为随机种子的系统时间相同,因此产生出来的随机数就相同了。
解决办法:百度之后,发现网上说需要加入这个函数来解决种子不随机问题:

Git代码的提交:
先是在我的D盘建立一个文件calculator,按照指令 git clone 地址的方式,把项目克隆到改文件内

克隆之后,我的github项目显示为:

然后提交新代码到git上去,git config --global user.name “用户名”,git config --global user.email “邮箱”登录,
因为我之前传过项目,注册过邮箱,添加过秘钥,所以这次项目就不用操作这些了

git status可以查看当前状态,确保处于可提交状态:

输入 git add . ,git commit -m ,git push指令


可以在github项目里查看提交状态:

最后可以在gihub项目里找到提交的代码,如下:


单元测试:
在函数处点击右键,即可看到创建单元测试,点击创建单元测试


书写测试代码:
测试product函数生成的等式是否为空:

测试计算的函数是否正确:

测试结果:

在单元测试过程中发现,必须建立net framework项目,才有做单元测试,我之前创建成了net core的应用程序,无法实现单元测试,虽然都是c#控制台程序,这可能就是VS的一个机制吧。
测试的前提是,创建的类和方法必须是public,否则无法进行测试。
效能分析:


详细报告:

回归测试:
最先我还不懂回归测试是什么,就顾百度,官方解释为:“回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。”,所以我就优化了一下代码,再进行了测试

之前的Main没有调用Count方法,这次我加上了,再来测试,同样通过了

设置断点调试过程:

感想:
这次实验过程,让我学会很多新东西,知道项目如何github上克隆,以及如何用git上传我们本地项目区github管理,还有就是VS的应用,让我感受到VS编辑器的强大与有趣,学会了用它做单元测试,调试,回归测试,系统分析等;
git是个好系统,但我真的对他着实不熟练的话,每次需要百度很多命令,参考别人的才能完成自己的,多次操作后,应该对那些常用命令会更熟悉了;
通过这次,我看到了在未来工作中的一种工作模式,在团队写作过程中,每个成员完成的东西是不一样的,github就是一个很棒的东西了,成员可以在上面push他负责的模块,不在需要人工整合,希望在接下来的团队项目中,我有更大的提升;
学习真的是一件刺激的事,越学越刺激,每天都在接触新的内容,每天都在挑战自己,棒棒哒,写完这篇,就继续学习了。
学会github管理项目与VS单元测试——第二次作业的更多相关文章
- 构建微服务开发环境7————使用Github管理项目代码的版本
[内容指引] 1.注册GitHub帐号: 2.下载Github Desktop客户端: 3.macOS安装Github Desktop客户端: 4.windows安装Github Desktop客户端 ...
- 使用git和github管理项目代码
以前不知道使用代码管理工具,最后写的一些东西都没有了,由于硬盘坏了或者不小心格式化了之类的,后来使用了Git 和Github来托管自己的代码和读书笔记方便了不少,到哪里只要有网就可以把自己的东西拷贝下 ...
- 使用Github管理项目代码的版本
作为开源代码库以及版本控制系统,Github拥有140多万开发者用户.随着越来越多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现已有代码的首选方法. 在Git中并不存在主库这样的概 ...
- iOS 本地项目上传github,github管理项目配置
一.注册github账号 首先需要注册一个github账号,注册地址:https://github.com 接着会来到这 然后会收到一封github发的邮件,进入邮箱验证 二.创建个人的githu ...
- github管理项目
1.在GitHub上创建一个项目,然后拷贝git地址. 2.在本地打开GIT CMD,然后建立一个文件夹,输入git clone 上面拷贝的git地址. 3.文件夹下会多出一个以你创建的项目名字的文件 ...
- 使用当前主流的github管理项目代码(记我的第一次项目创建)
先创建一个github的账号 网址:https://github.com/ 然后下载一个git工具并安装 网址:https://gitforwindows.org/ 下载安装注册完成后, 创建一个新的 ...
- 使用git和github管理自己的项目---基础操作学习[转]
原文: https://segmentfault.com/a/1190000003728094 我是通过看廖雪峰的git教程学习的,真的是极好的,以下是我学习过程中的总结,记录下来,方便自己参考以熟悉 ...
- 在GitHub上管理项目
在GitHub上管理项目 新建repository 本地目录下,在命令行里新建一个代码仓库(repository) 里面只有一个README.md 命令如下: touch README.md git ...
- 使用github管理Eclipse分布式项目开发
使用github管理Eclipse分布式项目开发 老关我在前面的博文(github管理iOS分布式项目开发)中介绍了github管理iOS分布式开发,今天老关将向大家介绍使用github管 理Ecli ...
随机推荐
- [转]Ubuntu18.04下安装搜狗输入法
鏈接地址:https://blog.csdn.net/lupengCSDN/article/details/80279177
- SVN 本地文件锁/服务端文件锁清除步骤
1.本地文件锁,直接cleanup,cleanup界面选择break locks即可 2.服务端文件锁,本地文件右击没有release lock或者break lock的选项时 方法1:右键,svn选 ...
- webpack打包完成,复制,打包,移动,删除已生成的文件插件
const FileManagerPlugin = require('filemanager-webpack-plugin'); 详情请到 https://www.npmjs.com/ 一看究竟 贴个 ...
- 最新 物易云通java校招面经 (含整理过的面试题大全)
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.物易云通等10家互联网公司的校招Offer,因为某些自身原因最终选择了物易云通.6.7月主要是做系统复习.项目复盘.Leet ...
- UE项目打包
https://docs.unrealengine.com/zh-CN/Engine/Basics/Projects/Packaging/index.html 必须先对虚幻项目进行正确打包,之后才能将 ...
- Java开发笔记(一百二十八)Swing的图标
前面提过,AWT没提供能够直接显示图像的控件,这无疑是个令人诟病的短板,因为一上来就得由程序员自己去定义新控件,对于初学者来讲很不友好.这个问题在Swing中也解决掉了,不过Swing并未提供单独的图 ...
- 【C++札记】内联函数
概述 函数的使用使得相同代码不必多次重写,但会带来额外的开销,函数调用的过程中会有入栈和出栈,这些都会消耗时间. 如果一个函数在程序运行过程中被成千上万次调用,那么这个开销也是不容忽视的,C++中引入 ...
- python实战项目 — selenium登陆豆瓣
利用selenium 模仿浏览器,登陆豆瓣 重点: 1. 要设置好 chromedriver配置与使用, chromedriver.exe 和 Chrome的浏览器版本要对应, http://chro ...
- 关于django操作orm的一些事--反向生成orm、连接多个数据库
1. django反向生成orm的类代码 使用命令python manage.py inspectdb > app01/models.py,注意,我这里的app01是app的名字. 2.djan ...
- mysql_select 单表查询
select * *代表全部 查询多个字段 select 字段1,字段2,字段3 聚合函数 count(*) 统计 select count(*) ...