第二次作业
GIT地址 | https://github.com/pbnbpb |
GIT用户名 | pbnbpb |
学号后五位 | 62609 |
博客地址 | https://www.cnblogs.com/XiaoPB/ |
作业链接 | https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2/homework/2795 |
1:配置环境
vs是以前就在官网下载并配置好了。
2:进行拷贝以及git相关操作
对要求的四则运算库进行拷贝。
将已经拷贝的文件克隆到本地。
代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { public class Program { static int GetRandomSeed() { byte[] bytes = new byte[4]; System.Security.Cryptography.RNGCryptoServiceProvider rng = new System.Security.Cryptography.RNGCryptoServiceProvider(); rng.GetBytes(bytes); return BitConverter.ToInt32(bytes, 0); } static void Main(string[] args) { string newTxtPath = "E:/作业二/AchaoCalculator/subject.txt"; StreamWriter sw = new StreamWriter(newTxtPath, false, Encoding.Default); Console.WriteLine("需要多少运算题"); int n = int.Parse(Console.ReadLine()); int i, j, m, q, ans, temp; string formula; for (i = 0; i < n; i++) { Random ro = new Random(GetRandomSeed()); int up, down; up = 100; down = 1; j = ro.Next(down, up); m = ro.Next(down, up); q = ro.Next(1, 4); switch (q) { case 1: ans = result(j, m); formula = j + "+" + m + "=" + ans; sw.WriteLine(formula); Console.WriteLine(formula); break; case 2: if (j < m) { temp = j; j = m; m = temp; } ans = result1(j, m); formula = j + "-" + m + "=" + ans; sw.WriteLine(formula); Console.WriteLine(formula); break; case 3: ans = result2(j, m); formula = j + "*" + m + "=" + ans; sw.WriteLine(formula); Console.WriteLine(formula); break; case 4: if (j % m != 0) ans = result2(j, m); else ans = result3(j, m); formula = j + "/" + m + "=" + ans; sw.WriteLine(formula); Console.WriteLine(formula); break; default: break; } } sw.Flush(); sw.Close(); Console.ReadKey(); } static public int result(int a, int b) { return a + b; } static public int result1(int a, int b) { return a - b; } static public int result2(int a, int b) { return a * b; } static public int result3(int a, int b) { return a / b; } } }
在在运行程序后我发现产生的式子都是一样的,我不明白其原理,上网查阅了资料后才知道:在Random生成随机数的时候,如果短时间内连续生成随机数,就会导致生成的随机数相同。而后通过浏览了他人的博客找到了解决方法——获取随机种子。
//static int GetRandomSeed( )
{
byte[] bytes = new byte[4];
System.Security.Cryptography.RNGCryptoServiceProvider rng = new System.Security.Cryptography.RNGCryptoServiceProvider( );
rng.GetBytes( bytes );
return BitConverter.ToInt32( bytes , 0 );
}
Random random = new Random( GetRandomSeed( ) );//
参考资料:https://blog.csdn.net/shuai_wy/article/details/78606175
运行结果:
单元测试:
测试成功。(测试过程中之前新建了一个项目,但是它属于.NET core,可是我开始创建时并没有用它建立单元测试项目,我不清楚是怎么回事。因为框架不对,导致后来一直无法添加引用,浪费了我许多时间。)
性能分析:
设置断点:
回归测试:
成功。
提交代码:
在使用git提交代码的时候我是先用 git add .将所有文件放入暂存区,而后使用git commit -m‘’ 将文件存入本地仓库,然后在输入 git status查看是否已经全部存入本地仓库,最后使用git push远程提交代码。
完全不清楚如何提交代码,这些全是我在网上查阅资料时弄的,一开始输入git add .的时候出现了问题,后来输入git status之后,我再次输入git add .就成功将文件放入暂存区了,我并不知道其中是什么问题。
体会:
这次作业过程中,我明显感受到自己在C#程序编写方面能力不足,仍需要去学习和练习实践。其次就是刚刚使用Git,有许多方面都不清楚,很多操作指令都不了解,作业过程中并不知道如何提交代码,后来全是上网查阅资料才迷迷糊糊地成功提交了代码。这次作业后,我应该花时间去了解和练习和GitHub相关的操作,让我在以后可以熟练地运用git。