第二次作业

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)写入文件
    以下是完整代码
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();
        }
    }
}

运行截图
![](https://img2018.cnblogs.com/blog/1798254/201909/1798254-20190920171958972-1324363054.png)

单元测试代码  
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], '-');
        }
    }
}
单元测试 截图
![](https://img2018.cnblogs.com/blog/1798254/201909/1798254-20190920172049248-1450416381.png)

性能分析截图
![](https://img2018.cnblogs.com/blog/1798254/201909/1798254-20190920172225419-902174567.png)

![](https://img2018.cnblogs.com/blog/1798254/201909/1798254-20190920172242864-1944829723.png)

在进行单元测试的过程中由于自己从没写过,c#也很久没用了,对于自己来说很陌生,所以出了些错误
我先在单元测试中定义对象,但是却不能调用对象方法,之后我直接使用定义的对象关键字,然后就可以调用了。
在git提交过程中,我提交错了代码,但是我又不知道怎么改,查了一下对于我来说我还是不懂,所以我一共提交了四次。

#个人总结
这次的学习我重新复习了下c#知识,熟悉了vs2017和但是发现自己git的使用还是很困难,只能使用git desktop,后期得加强git练习。

posted on 2019-09-20 18:20  wonihello  阅读(125)  评论(1编辑  收藏  举报