zoukankan      html  css  js  c++  java
  • 第二次作业

    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;
                }
    
            
        }
    
    }
    代码部分我在for循环内利用random 随机生成随机的100以内的数字,然后才随机生成1~4之间的数字然后通过switch函数判断是进行什么运算。其中如果两个数相减,而被减数小于减数,则将两个数进行交换后再相减,而如果两个数相除,不能产生整数,则这两个数采取乘运算。而在将算式输出的同时,将其输出到文件中。

    在在运行程序后我发现产生的式子都是一样的,我不明白其原理,上网查阅了资料后才知道:在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。

       

  • 相关阅读:
    圣诞快乐有感
    今天填补了尹大神的一个小瑕疵 被他戏称接锅侠 有感
    统计js数组中奇数元素的个数
    PHP实现一致性哈希算法
    寻找一组数的最大值并统计出现次数
    得知尹大神最后一天在岗位工作明天即将离开有感
    小物件之checkbox复选框
    处理特殊格式的GET传参
    vim分屏
    【学习笔记】Docker基础
  • 原文地址:https://www.cnblogs.com/XiaoPB/p/10609458.html
Copyright © 2011-2022 走看看