个人第2次作业:熟悉使用工具
博客开头
GIT地址 | https://github.com/jojolin0125 |
---|---|
GIT用户名 | jojolin0125 |
学号后五位 | 24128 |
博客地址 | https://www.cnblogs.com/jiangjiang0125/p/11557404.html |
作业链接 | https://edu.cnblogs.com/campus/xnsy/GeographicInformationScience/homework/7582 |
一、博客内容
1.环境配置
自己电脑里安装有vs2015,这次的操作不强调一定要用2017版,所以此次的软件操作环境为vs2015.
2.克隆项目
- 注册一个github账号(上周注册博客园,顺便把github注册成功了,这次就直接使用。)
- 登陆github网页,寻找班级仓库所在地址,将实验内容进行拷贝,将其拷贝到自己的仓库中。
- 配置Git环境。
- 新建一个文件夹来保存仓库中的文件,选择Git Bash Here,输入git clone + 仓库的地址 (点击自己仓库上的绿色按钮,复制下面的地址),在保存位置生成了AchaoCalculator文件夹。
-
进入AchaoCalculator文件夹,新建一个与自己GitHub用户名相同的文件夹。(本人ID:jojolin0125)
二.代码设计
1.注意及难点:
- 项目的运算过程中不允许出现负数
- 项目采用C#完成
- 要求为四则运算
- 需要两至三个运算符
- 随机数以及随机符号难以实现
2.部分代码展示
由于代码行数太多,所以在此只展示部分代码,完整代码在github仓库里面。
namespace ConsoleApplication1
{
public class Program
{
public static void Main(string[] args)
{
int time;
string s, s2;
Console.WriteLine("请输入所生成题目数量:");
time = int.Parse(Console.ReadLine());
for (int i = 1; i <= time;)
{
Random Number = new Random(Guid.NewGuid().GetHashCode());
int a= Number.Next(0, 100);
int b = Number.Next(0, 100);
int d = Number.Next(0, 100);
int c = Number.Next(0,17);
int n1 = 0;
int n2 = 0;
switch (c)
{
case 0:
s = "+";
n2 = Calculate(a, b, s);
if (n2 > 0)
{
n1 = Calculate(n2, d, s);
if (n1 > 0)
{
Console.WriteLine(a + "+" + b + "+" + d + "=" + n1);
i++;
}
}
break;
case 1:
s = "-";
n2 = Calculate(a, b, s);
if (n2 % 2 == 0 && n2 > 0)
{
n1 = Calculate(n2, d, s);
if (n1 % 2 == 0 && n1 > 0)
{
Console.WriteLine(a + "-" + b + "-" + d + "=" + n1);
i++;
}
}
break;
case 2:
s = "*";
n2 = Calculate(a, b, s);
if (n2 % 2 == 0 && n2 > 0)
{
n1 = Calculate(n2, d, s);
if (n1 % 2 == 0 &&n1 > 0)
{
Console.WriteLine(a + "*" + b + "*" + d + "=" + n1);
i++;
}
}
break;
case 3:
if (a % b == 0)
{
s = "/";
n2 = Calculate(a, b, s);
if (n2 % 2 == 0 && n2 > 0)
{
if (n2 % d == 0)
{
n1 = Calculate(n2, d, s);
if (n1 % 2 == 0 && n1 > 0)
{
Console.WriteLine(a + "/" + b + "/" + d + "=" + n1);
i++;
}
}
}
}
break;
3.结果输出
本次测试随机生成20道题目,经检验,答案均为正确。
三、测试检验
1.单元测试
1.新建一个测试项目。右键单击解决方案,可以添加一个新建项目,在类型里选择 单元测试,新建了一个名为 CalculatorUnitTest 的单元测试项目。
2.测试结果。我采用测试数据1+2进行检验,检验是否答案会等于3.测试资源管理器显示已通过测试,耗时5毫秒。
2.断点测试
按照实验方法进行断点测试,在 第15行进行断点测试,自动窗口中显示测试过程及结果。其中b=46,d=34,即此次断点测试生成b,d的随机数,并没有向下面代码进行实验。
疑问:
为什么a值没有产生?
3.回归测试
在进行断点测试之后进行一次回归测试,我将测试数据改为12和24,最终通过测试,答案与36相等,说明代码不存在问题。
4.效能分析
输入测试数据30000个时,显示以下效能分析图。
5.提交
GIT PUSH操作
自己的提交过程真的是充满艰辛。
困难:按照基础操作 git add .——git commit -m "achao works"——git push 进行操作,一直出现问题,之前操作还能弹出登陆github界面,后面就一直没有登陆界面了。然后我向室友大佬寻求帮助,终于得以解决。
GIT HUB设置标题并提交
由于之前多进行了一次提交,所以目前显示有两条记录。不知道怎样删去多余的记录?
四、总结
- 这次的个人作业应该算是进入大学两年多以来最复杂的一次,平心而论,题目要求感觉是比较简单,但其中细节让我难以处理,所以只能多查阅资料(包括别人的博客,CSDN文章,以及C#书籍)。
- 我的计算代码其实并不完全,它只涉及了2个运算符的计算,比如12+24+12=48.我没有办法实现三个运算符的操作。我在此次代码设计中,采用了一个很笨的方法,我将两个运算符的计算的16种情况全部编写出来,导致代码行数达300+,我知道这种是不太可取的方法,但实在写不出简易的程序。
- 在此之前还编写了另外一种算法,但仅仅能实现一个运算符的计算,所以放弃而重新构思。
心得体会:
要写好一个好点的程序,一定要多阅读,多询问,多实践。同时自己要有一定的思考,为什么会出错,为什么要用这个方法,为什么别人的代码更简便。即使很难,也要不断努力,负重前行。