学会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 ...
随机推荐
- css几个优先级测试和!important
css样式不加!important情况下的有默认优先级 ,用!important提高优先级,最常见的css样式选择器的优先级测试.之前博文里也用到了提升优先级的方法: 测试结果:加了!importan ...
- C/C++ 面试-面向对象的特性
面向对象的三大特性 此文只是简单介绍一下三大特性 详细介绍在: 封装:http://www.cnblogs.com/52why/p/7631381.html 继承:http://www.cnblo ...
- Numba——python面向数组高性能计算库
python在计算性能上相对c是比较弱鸡的,有了numpy后计算性能短板是补了一些,而Numba库又给python计算性能加了发动机(忽然想到西虹市首富王多鱼的名言:我再加200万,给冰山提提速.), ...
- 查看LINUX进程内存占用情况及启动时间
可以直接使用top命令后,查看%MEM的内容.可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令: (1) top top命令是Linux下常用的性能分 ...
- spring的面试
IOC IOC(Inversion Of Controll,控制反转)是一种设计思想,将原本在程序中手动创建对象的控制权,交由给Spring框架来管理.IOC容器是Spring用来实现IOC的载体,I ...
- 从Asp .net到Asp core (第二篇)《Asp Core 的生命周期》
前面一篇文章简单回顾了Asp .net的生命周期,也简单提到了Asp .net与Asp Core 的区别,我们说Asp Core不在使用Asp.netRuntime,所以它也没有了web程序生命周期中 ...
- flask框架(八)—自定义命令flask-script、多app应用、wtforms表单验证、SQLAIchemy
自定义命令flask-script 用于实现类似于django中 python3 manage.py runserver ...类似的命令,用命令行启动项目 首先安装:pip3 install fla ...
- Microsoft的考验――查找第二大的数
#include<stdio.h> int main() { int n,m,t,max,max1; scanf("%d",&n); while(n--) { ...
- opencv学习笔记D01
目录 opencv学习笔记D01 一.图片读取 二.图片保存 三.图片展示 四.图片缩放 五.四种常用插值方式的比较 1.最近邻插值 2.双线性插值 3.区域插值 4.三次样条插值 我是尾巴: ope ...
- JAVA day1 基础知识
一.windows命令 dir:查看文件 cd:打开文件 二.java的编译和运行 编译: javac 源文件名 一个类编译后会对应一个.class文件 运行: java 类名 三.类 一个源文件内可 ...