zoukankan      html  css  js  c++  java
  • 熟练使用Github

    ---恢复内容开始---

    1.开头

    GIT地址 https://github.com/Untrara
    GIT用户名 Untrara
    学号后五位 31124
    博客地址  https://i.cnblogs.com/posts
    作业链接  https://www.cnblogs.com/harry240/p/11515697.html

    2.作业

    (1)因为自己在很早之前就安装过VS2019,我就直接截我VS2019的图来证明我的环境配置完成了吧。

    我的GitHub首页

    GIt我也之前就安装了,这个地方不再演示安装过程,展示一下黑色窗体

     

     

    从远程仓库拷贝到本地(我这是第二次拷贝的截图,第一次拷贝忘了截图,第二次拷贝显示文件已经在本地)

     

     

     

     

     (2)代码设计思路

    首先声明一个包含四则运算符号的数组

    产生一个随机数2或者3,来确保选择的符号个数,是2或者3

    接下来分成两个分支,一个符号是2个的时候,一个符号是三个的时候

    符号是2的时候,随机从符号数组选取两个符号,存入LIst<String>中,再随机产生三个[1,100]的数

    接下来把三个随机数与两个符号用Concat函数拼接成一个四则运算式。形如:2+3-5

     得到这个四则运算的字符串之后,用dataTable.Compute对拼接好的四则运算式进行运算(公式本身会先算乘除,再算加减)

     这个时候程序初步就完成了,但是由于这个时候没有条件限制,导致输出会有小数和负数,此时需要对结果进行判定

    如果结果为负,或者是小数,则舍弃当前的式子,重新开始一轮循环,知道式子的结果不为负,不为小数为止

     此时还有最后一个需要注意的地方,就是虽然结果不会出现小数,但是形如:10/20*20的式子在运算中会出现小数。这个时候我的判别条件是这样的,如果符号为负的时候,符号前的数必须大于符号后的数,如果不大于,则同样舍弃当前式子,继续下一轮循环。(以上都是符号为两个,随机数为三个的情况。符号为三个,随机数为四个的情况同理)

     总体代码:

    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.IO;
    
    namespace Calculator
    {
        class Program
        {
            static void Main(string[] args)
            {
                StreamWriter sw = new StreamWriter(@"F:QQPCmgrDesktopCalculatorUntraraOutput.txt");           
                int NumOfSymbol;
                DataTable dataTable = new DataTable();
                Console.WriteLine("输入一个整数确定四则运算个数,请输入:");
                int count = Convert.ToInt32(Console.ReadLine());
                String[] symbol = { "+", "-", "*", "/" };
                Random r = new Random();
              
                Console.SetOut(sw);
                for (int j = 1; j <= count; j++)
                {
                   
                    int num = r.Next(1, 101);
                    if (num > 50)
                    {
                        NumOfSymbol = 2;
                        int tmp = 0;
                        List<string> list1 = new List<string>();
                        while (true)
                        {
                                                    
                            int NumOfArr = r.Next(0,4);
                            string result = symbol[NumOfArr];
                            list1.Add(result);
                            tmp++;
                            
                            if (tmp == NumOfSymbol)
                            {
                                string a = Convert.ToString(r.Next(1, 101));
                                string b = Convert.ToString(r.Next(1, 101));
                                string c = Convert.ToString(r.Next(1, 101));
                                
                                string formula = String.Concat(a, list1[0], b, list1[1], c);
                                object test = dataTable.Compute(formula,"");
                                decimal final = Convert.ToDecimal(test);
                                int finalNum = Convert.ToInt32(final);
                                if (final == finalNum && final > 0)
                                {
                                    if (list1[0].Equals("/") || list1[1].Equals("/"))
                                    {
                                        if (Convert.ToInt32(a) < Convert.ToInt32(b) && Convert.ToInt32(b) < Convert.ToInt32(c))
                                        {
                                            tmp = 0;
                                            list1.Clear();
                                        }
                                    }                               
                                    else {
                                        Console.WriteLine(a + list1[0] + b + list1[1] + c + "=" + final);
    
                                        break;
                                    }
                                   
                                }
                                else {
                                    tmp=0;
                                    list1.Clear();
                                }
                                
                            }
                        }                   
                    }
                    else
                    {
                        NumOfSymbol = 3;
                        int tmp = 0;
                        List<string> list2 = new List<string>();
                        while (true)
                        {                                           
                            int NumOfArr = r.Next(0,4);
                            string result = symbol[NumOfArr];
                            list2.Add(result);
                            tmp++;                      
                            if (tmp == NumOfSymbol)
                            {
                                string a = Convert.ToString(r.Next(1, 101));
                                string b = Convert.ToString(r.Next(1, 101));
                                string c = Convert.ToString(r.Next(1, 101));
                                string d = Convert.ToString(r.Next(1, 101));                          
                                string formula = String.Concat(a, list2[0], b, list2[1], c, list2[2], d);
                                object test = dataTable.Compute(formula, "");
                                decimal final = Convert.ToDecimal(test);
                                int finalNum = Convert.ToInt32(final);
                                
                                if (final == finalNum && final > 0)
                                {
                                    if (list2[0].Equals("/")|| list2[1].Equals("/")|| list2[2].Equals("/"))
                                    {
                                        if (Convert.ToInt32(a) < Convert.ToInt32(b) || Convert.ToInt32(b) < Convert.ToInt32(c) || Convert.ToInt32(c) < Convert.ToInt32(d))
                                        {
                                            tmp = 0;
                                            list2.Clear();
                                        }
                                    }                               
                                    else
                                    {
                                        Console.WriteLine(a + list2[0] + b + list2[1] + c + list2[2] + d + "=" + final);
                                        break;
                                    }
                                    
                                }
                                else
                                {
                                    tmp = 0;
                                    list2.Clear();
                                }
                            }                                               
                        }                   
                    }
                }
                sw.Flush();
                sw.Close();
            }       
        }
    }

    (3).用git提交代码

     

     

    提交后结果

     

    四、对项目进行单元测试和回归测试的过程

    vs2019测试创建

    单元测试:

     回归测试,多次输入数字,发现结果均正确:

     

     效能分析,cpu与内存可视图

     五.感想

     虽然通过这次的作业收获很多,首先是自己花了一天的时间编写了一个四则运算的程序,在这个过程之中,我是自己编写这个程序,我看到有些人使用了堆栈或者二叉树等数据结构来实现,总的来说还是自己对这些基本的数据结构了解不够深刻,所以想使用的时候总感觉有心无力,以后有空的话,这个程序的实现可以使用二叉树来试一试。在编程的过程中,很多时候以为变量的作用域而出错,经常在修改不同的变量,想来通过这次,发现自己虽然一直在往前学习,但是却基础不牢,实在是不应该,在今后的学习中要更加注意。接下来是使用git和GitHub的使用,这些工具虽然我在之前也安装使用过,如果操作得当,是真的很方便,但是这些工具都需要在日常的使用中一次又一次的使用,才能保证熟练的使用。通过单元测试和回归测试等等,以这次机会了解到了一个类的运行时间,比起之前,更加直观的看到自己写的代码是否高效,在以后的学习工作中,多使用,才能保证自己代码的高效。

    ---恢复内容结束---

  • 相关阅读:
    聚类算法
    shell编程之运算符
    linux shell编程子bash变量
    java SSM框架单元测试最佳实战代码
    在maven项目中使用Junit进行单元测试(一)
    JMeter之Http协议接口性能测试
    TestNG学习笔记新的
    单元测试最佳实战项目代码下载
    单元测试中使用mock最好不要使用easymock而应该使用powermock
    springboot 读写excel
  • 原文地址:https://www.cnblogs.com/cyh0813/p/11549166.html
Copyright © 2011-2022 走看看