熟悉VS2017 和Github 第二次作业
| GIT地址 | https://github.com/Astone1213 |
| GIT用户名 | Astone1213 |
| 学号后五位 | 62114 |
| 博客地址 | https://www.cnblogs.com/AsLU/ |
| 作业链接 | https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1/homework/2793 |
一、准备工作
1、配置环境,安装VS2017。
本次作业所需的VS2017,C#内容,早已在之前的课程中安装,并且在本学期,新增了关于Python相关内容。


2、注册Github
注册过程,没有遇到什么困难,就是感觉访问有点慢。

3、安装Git
安装Git过程中,遇到一个很大问题,一开始,下载很多次都在下载到一半的时候失败,后来通过查询相关问题,也没有解决,结果最后换了个网络环境就下载成功了。


二、代码设计
1、题目背景
阿超家里的孩子上小学一年级了,这个暑假老师给家长们布置了一个作业:家长每天要给孩子出一些合理的,但要有些难度的四则运算题目,并且家长要对孩子的作业打分记录。
作为程序员的阿超心想,既然每天都需要出题,那何不做一个可以自动生成小学四则运算题目与解决题目的命令行 “软件”呢。他把老师的话翻译一下,就形成了这个软件的需求:
- 程序接收一个命令行参数 n,然后随机产生
n道加减乘除(分别使用符号+-*/来表示)练习题,每个数字在0和100之间,运算符在2个 到3个之间。 - 由于阿超的孩子才上一年级,并不知道分数。所以软件所出的练习题在运算过程中不得出现非整数,比如不能出现
3÷5+2=2.6这样的算式。 - 练习题生成好后,将生成的
n道练习题及其对应的正确答案输出到一个文件subject.txt中。
2、代码思路
- 根据题目,要求随机产生,所以可以用Random生成随机数,并且用Random产生四个随机数,分别传入加减乘除函数,随机产生运算,但其实是一个伪随机。
- 题目难度,我感觉在于生成除运算的时候,因为条件限制,所以产生的随机数不能用,这个时候就需要把这组数据想办法,用掉或者重新生成一组随机数,但是在进行的过程中会产生异常,最后通过查阅相关知识解决了这个问题。
- 第二个问题,在于把最后产生的四则运算题目,把问题和答案分开写入两个txt文件中,一开始构思的是使用数组,但是具体实现的时候有困难,最后查教材,发现了用字符串下Split方法分开。
3、部分核心代码
进行随机生成运算的函数。
public string Getcalculate(int num4)
{
int z=num4;
switch (z)
{
case :
ex1=mathjia();
break;
case :
ex1=mathjian();
break;
case :
ex1=mathcheng();
break;
case :
ex1=mathchu();
break;
}
return ex1;
}
主函数代码
static void Main(string[] args)
{
int a, b,c,z;
string[] va;
Console.Write("请输入打印题目提数:");
int n =Convert.ToInt16(Console.ReadLine());
Random rad = new Random();
using (StreamWriter sw2 = new StreamWriter(@"F:\vs\github\AchaoCalculator\Astone123\Answer.txt", true))
using (StreamWriter sw = new StreamWriter(@"F:\vs\github\AchaoCalculator\Astone123\Exercises.txt", true))
{
for (int i = ; i < n; i++)
{
a = rad.Next(, );
b = rad.Next(, );
c = rad.Next(, );
z = rad.Next(, );
Calculation ca = new Calculation(a, b, c);
va = ca.Getcalculate(z).Split('!');
sw.WriteLine(va[]);
sw2.WriteLine(va[]);
} }
Console.ReadLine();
}
至此,所有代码完成。
三、将代码提交至Github班级仓库
方法一、使用vs,团队资源管理器提交代码
选择同步,并换成班级仓库的地址,即可


(结果因为一些失误,在提交至了自己的仓库)
方法二、运用Git Bash,即运用git add . 等指令提交。


四、测试过程及效能工具的体验
1、单元测试
首先在解决资源管理器中直接新建一个单元测试项目并为其命名,随后为新建的单元测试项目添加引用,随后点开窗口中的测试资源管理器即可开始进行单元测试。


测试代码(其中“!”是用于Split,分开前后字符串)



修改代码后,测试成功。

2、条件断点
在解决之前提到的关于除函数的异常的时候,就是运用断点的方法找到问题所在,并解决的。


3、效能分析
根据作业要求,对程序进行了效能测试,并且最后生成分析报告



五、感想
本次作业,涉及到一些没有接触过的地方,例如Github及其相关操作,Git相关指令等等,为了完成本次作业,查阅许多相关文章,博客,以及手册,也请教了了一些同学,和同学做了一些讨论。个人感觉收获颇多。但是这是都是作为一个软件工程师所必备的技能,通过这次作业,确实学会了很多新技能,同时也把自己搁置较久的C#语言重新复习了一次,对它的认识更加深刻。
而且,在这次作业过程中,意识到作为一个程序员,不仅需要厉害的编程能力,同时需要熟练的英语技能,因为,现在英文是世界上最通用的语言,很多文献和网站都是以英文为主,所以,学会英语相当重要。
最后,总结一下,y自学能力,真的,真的很重要!!
熟悉VS2017 和Github 第二次作业的更多相关文章
- 第二次作业&熟悉使用工具
GIT地址 我的地址 GIT用户名 995020892w 学号后五位 81105 博客地址 我的博客 作业链接 第二次作业 一.环境配置过程 安装vs2017 因为以前学习C#相关 ...
- 第二次作业(Git and Github)
第二次作业(Git and Github) 1.Github项目地址: https://github.com/YanSiJu/JavaWebProject.git 具体介绍详见READ.md 2 ...
- Lobooi第二次作业:熟悉使用工具
第二次作业 GIT地址 https://github.com/Lobooi//AchaoCalculator GIT用户名 Lobooi 学号后五位 24235 博客地址 https://home.c ...
- 软工实践第二次作业-sudoku
说明 Github项目地址 作业题目 解题思路 一开始拿到的时候,有一个思路,可以先填写全盘的"1",然后在插空填满全盘的"2".后来觉得自己理不清那个思路.遂 ...
- 20169212《Linux内核原理与分析》第二周作业
<Linux内核原理与分析>第二周作业 这一周学习了MOOCLinux内核分析的第一讲,计算机是如何工作的?由于本科对相关知识的不熟悉,所以感觉有的知识理解起来了有一定的难度,不过多查查资 ...
- 软件工程(QLGY2015)第二次作业点评(随机挑选20组点评)
相关博文目录: 第一次作业点评 第二次作业点评 第三次作业点评 说明:随机挑选20组点评,大家可以看看blog名字,github项目名字,看看那种是更好的,可以学习,每个小组都会反应出一些问题,希望能 ...
- 程序设计第二次作业<1>
面向对象程序设计第二次作业<1> Github 链接:https://github.com/Wasdns/object-oriented 题目: <1>第一次尝试 我立马认识到 ...
- 软件工程(GZSD2015)第二次作业小结
第二次作业,从4月7号开始,陆续开始提交作业.根据同学们提交的作业报告,相比第一次作业,已经有了巨大改变,大家开始有了完整的实践,对那些抽象的名词也开始有了直观的感受,这很好.然后有一些普遍存在的问题 ...
- OO第二单元作业小结
前言 转眼已是第九周,第二单元的电梯系列作业已经结束,终于体验了一番多线程电梯之旅. 第一次作业是单电梯的傻瓜调度,虽然是第一次写多线程,但在课程PPT的指引下,写起来还是非常容易:第二次作业是单电梯 ...
随机推荐
- 八进制、十进制、操作符(day04)
把二进制表示的数字从右向左每三个数位分成 一组,每组用一个0到7之间的数字替换. 这个替换结果叫做数字的八进制表示方式 (八进制) 可以直接在程序里用八进制方式表示数字, 这种数字必须以0做开头 可以 ...
- Oleg and Little Ponies
Oleg and Little Ponies Time limit: 0.9 secondMemory limit: 64 MB Little boy Oleg loves the cartoon M ...
- (32)Spring Boot使用@SpringBootApplication注解,从零开始学Spring Boot
[来也匆匆,去也匆匆,在此留下您的脚印吧,转发点赞评论] 如果看了我之前的文章,这个节你就可以忽略了,这个是针对一些刚入门的选手存在的困惑进行写的一篇文章. 很多Spring Boot开发者总是使用 ...
- DNS绑定多个IP地址
DNS轮循技术 首先介绍一个DNS系统:传统的DNS解析都是一个域名对应一个IP地址,但是通过DNS轮循技术(负载平衡技术)可以做到一个域名对应到多个IP 上. 这样大家难免就会问,这个技术有什么用呢 ...
- [bzoj2259][Oibh]新型计算机_Dijkstra
新型计算机 bzoj-2259 Oibh 题目大意:给定一个n个数的数列,第i个数为a[i],更改第i个数至x的代价为|x-a[i]|.求最小代价,使得:读入一个数s1后,向后连着读s1个数,然后如s ...
- axios 全攻略之基本介绍与使用(GET 与 POST)
axios axios 是一个基于 Promise 的 HTTP 客户端,专门为浏览器和 node.js 服务 Vue 2.0 官方推荐使用 axios 来代替原来的 Vue request,所以这里 ...
- 解决TortoiseGit下载代码每次要输入用户名、密码
解决办法: 方案1: 右键>ortoiseGit → Settings → Git → Credential 设置为 wincred - this repository only 或者 winc ...
- 【转】iOS程序自动检测更新的实现 -- 思路不错
原文网址:http://blog.csdn.net/davidsph/article/details/8931718 之前项目需要用到app自动更新的功能,现将实现方案分享出来.iOS程序自动提示更新 ...
- 杂项-事务:OLTP(联机事务处理过程)
ylbtech-杂项-事务:OLTP(联机事务处理过程) On-Line Transaction Processing联机事务处理过程(OLTP) 也称为面向交易的处理过程,其基本特征是前台接收的用户 ...
- (Go)02.go 安装delve调试工具测试
安装调试工具 go get github.com/derekparker/delve/cmd/dlv 增加断点调试 调试--->启动调试