第二次作业
GIT地址 | https://github.com/Ht1567 |
GIT用户名 | Ht1567 |
学号后五位 | 24119 |
博客地址 | https://www.cnblogs.com/ht123-XNSY/ |
作业链接 | https://edu.cnblogs.com/campus/xnsy/GeographicInformationScience/homework/7582 |
1、配置环境安装
GIT安装:
- 因为以前电脑安装过visual studio2015,所以就不展示安装过程了
2、克隆项目
- 进入班级仓库链接点击“fork”将四则运算生成器复制到自己的仓库
- 复制进自己的仓库
- 使用git clone 进行克隆
3、程序设计
虽然上学期学过C#,但写代码的时候还是很生疏,过程比较困难,遇到了很多问题只有网上看教程和语句用方法,最后编写出来。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.IO;
namespace Calculate
{
class Program
{
static void Main(string[] args)
{
calculator ca = new calculator();
string s = null;
Console.WriteLine("----------------------------------------四则运算题目-----------------------------------------");
Console.WriteLine("请输入题目个数:");
int x;
x = int.Parse(Console.ReadLine());
for (int i = 0; i < x; i++)
{
s = s + calculator.Y(calculator.X())+"\n";
System.Threading.Thread.Sleep(100);//语句的用法可以参考csdn博客https://bbs.csdn.net/topics/270030440
}
Console.WriteLine(s);
Console.ReadKey();
StreamWriter sw = new StreamWriter("D:\\Git\\新建文件夹\\subject.txt");
sw.Write(s);
sw.Close();//参考https://www.cnblogs.com/arxive/p/6781858.html上写入文档的用法
}
}
class calculator
{
public static char[] fuhao = { '+', '-', '*', '/' };//将所用的符号放入数组
public static string X()
{
string s=null;
Random r = new Random();
int num1 = r.Next(0, 100);
int num2 = r.Next(2,4);
s = s + num1;
for (int i = 0; i < num2; i++)
{
int num3 = r.Next(0, 100);
int ff = r.Next(0, 4);
s = s + fuhao[ff] + num3;//通过数组和随机0~3的数字来确定符号
}
return s;
}
public static string Y(string Q)
{
object ob = null;
DataTable dt = new DataTable();
//改进后的代码
ob = dt.Compute(Q, "");
while (ob.ToString().Contains(".") || Q.Contains("/0") || int.Parse(ob.ToString()) < 0)//判断四则运算是否符合题目要求
{
Q = X();
ob = dt.Compute(Q, "");//再次检验是否合乎要求
}
return Q + "=" + ob.ToString();//最后返回结果
}
}
}
- 运行结果
- 在代码设计的时候也遇到了一些问题,比如出现一样算式的情况,如下:
- 具体解决方法我参考了https://blog.csdn.net/weixin_33847182/article/details/93562070上对Datatable.compute()的用法。
4、单元测试
- 这里和指导博客上不太一样,可能是因为vs版本问题,添加依赖项的方法不同,还有待探索。
- 编写测试代码
5、回归测试
单元测试不仅仅用来保证当前代码的正确性,更重要的是用来保证代码修复、改进或重构之后的正确性。也就是说,在每次修改完 Bug 之后,我们其实都需要运行一遍来看看是不是满足之前所有的单元测试样例。所以,在每次因为现有的 failed test 而修复原有代码后,最好都全部运行一遍单元测试,保证以前 passed test 仍然是可以通过的。
同样地,Git 的使用也是讲究勤提交,提交的粒度最好是细到每个小功能的完成。一个小功能可以是一处小 Bug 的修复,也可以是一个简单函数的实现。所以,在我们本次的编程训练任务中,Git 至少会提交 2 次或以上。
6、效能工具使用
-
输入生成题的数量100000,使循环增加。
-
通过效能工具可以查看项目的cpu使用率及其他数据,对后续代码优化有很大帮助。
7、提交代码
- 首先进行对代码进行add和commit,然后用git status验证
- 向github提交代码
- 检查没有conflicts
8、总结
这次的个人项目作业涉及到编写代码,因为自己的编程基础较薄弱所以过程比较困难,但完成了这次项目后感觉提升了很多,也了解到git的一些基本操作,希望后面跟进一步地学习。