第二次作业
1博客开头
git地址 | https://github.com/kevenlewis/AchaoCalculator |
---|---|
GIT用户名 | kevenlewis |
学号后五位 | 62129 |
博客地址 | https://www.cnblogs.com/wocaishizhangxu/p/11558384.html |
作业链接 | https://www.cnblogs.com/harry240/p/11515697.html |
2博客内容
- 在配置git bash时出现了的问题是我输入的很多git命令没有显示,除了能下载文件,其他基本不能用,于是我使用了github的git desktop解决问题。
- git和vs2017配置好后,我开始编写代码,整体的思路是设计一个函数Profunc()生成四则运算式,设计一个函数Compute(string func)计算对应答案。设计一个函数Xuwrite(string aws)写入文件
以下是完整代码
“`csharp
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Data;
namespace zhangxu_Caculator
{
public class Caculator
{
public static char[] symbol = { ‘+’, ‘-‘, ‘*’, ‘/’ };
public static string Profunc()
{
String func = null;
Random numsyb = new Random(Guid.NewGuid().GetHashCode());//生成1到100随机数
int num = numsyb.Next(1, 101);
int j, i,s,k;
func = func + num;//生成第一个运算式,接下来的代码实现添加后续运算式
j = numsyb.Next(1, 3);//生成2到3个运算符,从而产生随机的运算式
for (i=0;i<=j;i++)
{
k = numsyb.Next(1, 101);
s = numsyb.Next(0, 4);
func = func + symbol[s] + k;
}
return func;
}
public static string Compute(string func)//通过datatable库来处理字符串类型的表达式
{
string aws=null;
DataTable m = new DataTable();
aws = m.Compute(func, null).ToString();
if (double.Parse(aws) % 1 != 0) //判断运算结果是否为小数
{
return null;
}
return aws;
}
public static void Xuwrite(string aws)
{
StreamWriter sw = new StreamWriter("C:\\Users\\MagicBook\\Desktop\\xu.txt", true, System.Text.Encoding.Default);
sw.WriteLine(aws);
sw.Close();
}
static void Main(string[] args)
{
int n;
string m=null;
Console.Write("输入个数:");
n=int.Parse(Console.ReadLine());
int i = 0;
while (i<n)
{
string func = Profunc();
string aws = Compute(func);
i++;
if (aws == null)
{
i--;
continue;
}
Console.WriteLine(func + "=" + aws);
m = func + "=" + aws;
Xuwrite(m);
}
Console.ReadLine();
}
}
}
运行截图
单元测试代码
using Microsoft.VisualStudio.TestTools.UnitTesting;
using zhangxu_Caculator;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace zhangxu_Caculator.Tests
{
[TestClass()]
public class CaculatorTests
{
[TestMethod()]
public void ProfuncTest()
{
Assert.AreEqual(Caculator.symbol[1], ‘-‘);
}
}
}
单元测试 截图
性能分析截图
在进行单元测试的过程中由于自己从没写过,c#也很久没用了,对于自己来说很陌生,所以出了些错误
我先在单元测试中定义对象,但是却不能调用对象方法,之后我直接使用定义的对象关键字,然后就可以调用了。
在git提交过程中,我提交错了代码,但是我又不知道怎么改,查了一下对于我来说我还是不懂,所以我一共提交了四次。
个人总结
这次的学习我重新复习了下c#知识,熟悉了vs2017和但是发现自己git的使用还是很困难,只能使用git desktop,后期得加强git练习。