第二次个人作业:熟悉使用环境
GIT地址 | https://github.com/cl12312 |
---|---|
GIT用户名 | cl12312 |
学号后五位 | 24130 |
博客地址 | https://www.cnblogs.com/chen100/ |
作业链接 | https://www.cnblogs.com/harry240/p/11515697.html |
1.环境配置问题
a.VS环境的配置
在大一学C语言的时候已经安装过vs2015,这次重新安装vs的时候在网上下载安装包的时候竟然下成Blend Visual studio,后面重新下载了Visual studio2015的安装包。在缓慢的安装进程后,我写了一个“hello world!”测试环境,结果显示执行错误,后面再网上搜索解决办法,原来是安装过程中用过金山毒霸清理垃圾导致重要文件丢失无法运行C#的程序。第三次在卸载金山毒霸后重新安装,终于能正常运行C#的程序啦。
b.Git和GitHub的注册
github的注册比较顺利没有遇见问题,下载GitHub也比较顺利。
2.克隆项目
3.设计思路
a.新建项目
b.代码思路
(1)首先把加减乘除放进数组中
char[] o = { '+', '-', '*', '/' };
(2)然后通过随机生成数字和运算符号将运算式放进提前设置好的result字符中,同时注意除号的时候除数不能为零。
int i = 0;
while (i < n)
{
int h = rd.Next(2, 4);//随机生成的数字为了进行三个或者四个数字的随机运算
int a = rd.Next(0, 100);
string result = null;
result = result + a;
for (int j = 0; j < h; j++)
{
int m = rd.Next(0, 4);
int b = rd.Next(0, 100);
if (o[m] == '/')
{
if (b != 0)
result = result + o[m] + b;
else
break;
}
else
result = result + o[m] + b;
}
(3)运算式的运算函数
public double Com(string result)//计算运算式的结果
{
DataTable da = new DataTable();
double end = double.Parse(da.Compute(result, "").ToString());
return end;
}
(4)最后结果的判断,不能为分数和负数
if (Com(result) % 1 == 0 && Com(result) >= 0)//结果除以1有余数就说明是小数,为了不为负数必须保证结果大于等于0
{
i++;
Console.WriteLine(result + "=" + Com(result));
CreatFile cf = new CreatFile(result );
}
保存进文本文件:
// 这是一个保存在D盘的subject文件所创建的类
StreamWriter sw = new StreamWriter("D:/subject.txt", true);
sw.WriteLine(st);
sw.Close();
输入出题的数量:
// 这是主函数
Console.WriteLine("请输入出题个数:");
int n = Convert.ToInt32(Console.ReadLine());//输入要出题的个数并赋值给n
PrintCalcuate calcuate1 = new PrintCalcuate(n);
Console.ReadKey();
运算结果:
记事本打开的结果:
编译成功的结果跟记事本结果一直,之前准备存C盘但是权限不够就只能放进D盘,存入文本文件以及运算式的运算一直出问题后面经过网上搜索才慢慢理解后写出来。
4.测试项目
a.单元测试
单元测试比较坎坷,发现右键点击打不开单元测试,后来右键点击解决方案。
在添加新项目中点测试新建单元测试。
双击后出现下面界面:
在测试项目上,有键引用原项目:
在出现的界面中添加要测试的方法:点上面控件测试-全部测试:
测试完毕后出现下面界面
b.回归测试
回归测试就是在修改原有代码后,重新对代码进行测试防止没有新的错误或者其他代码的产生出现的错误。
测试前代码:
// 这是一个保存在D盘的subject文件所创建的类
namespace ConsoleApp2
{
class CreatFile
{
public CreatFile(string st)
{
string st = "20+2-6=16";
StreamWriter sw = new StreamWriter("D:/subject.txt", true);
sw.WriteLine(st);
sw.Close();
}
}
}
修改后代码:
// 这是一个保存在D盘的subject文件所创建的类
namespace cee
{
[TestClass]
public class CreatFile
{
[TestMethod]
public void CreatFile()
{
string st = "45+20-12=53";
StreamWriter sw = new StreamWriter("D:/subject.txt", true);
sw.WriteLine(st);
sw.Close();
}
}
}
其后的方法与单元测试一直
C.设置断点
断点可以很快的看出程序的出错点在哪里,也能清楚的了解程序的运算思路。
c.效能测试
(1)cpu测试
(2)Gpu使用情况
(3)内存使用情况
(4)性能分析
(5)对象分配分配跟踪
5.提交代码
代码提交一直没有成功,按照实验指导总是出错,后面试了网上的方法,按照这个网站https://blog.csdn.net/cai2016/article/details/51557682一步一步的来。然而错误还是出现,因为第一次使用git提交代码,所以复制地址本来需要http但是有些博客上说SSH所以一直出错,还有代码没有规范运行不了。按照我用的方法:首先创建一个文件夹(点进文件夹空白出在git bash 上输入git init),将代码复制带这个文件夹继续输入git add .(后面这个点是包括这个文件夹所有更改文件),查询状态发现文件名有绿色变成蓝色说明文件已经添加到临时仓库,在输入git commit -m“信息”
后输入查询状态再创建链接(记得输入htpps地址),然后pull文件到本地在push仓库临时文件到Achao服务器。
总的来说,最后一步上次代码比我预期还要困难,主要是不熟悉操作错误,花了很多时间在搜集信息上面,但还是值得。
6.心得体会
这次作业花费了两天的时间,开始按照实验指导还是很轻松到代码阶段自己一直想各种方法但是很难实现(C#的基础不行)。后面按照自己想的方法就去搜索各种博客看其他大佬的代码,看代码也是比较浪费时间的事情,花费不少时间看懂几份代码后自己慢慢写出代码不过运行通过结果却不对或者没有答案或者各种bug然后调试断点一步步改进最后写出一份。第一个份是用switch写的觉得代码重复而且范围有限,然后又用随机生成运算符、运算符个数和运算数字进行运算(这个是最开始想法但开始难以实现)。第二份比第一份代码写的快多了,不过还有不少问题出现,比如怎样运算代数、怎样存入文本文件不被覆盖.........
这次收获真的很大,对C#的很多语句又熟练很多除此之外也对C#其他之前没有学过的知识有了一定的掌握。Github也有了一定的认识,掌握了用git提交本地的代码,但是觉得自己耗费的时间太多了下次还是需要多学习再动手。