zoukankan      html  css  js  c++  java
  • 20180925-6 四则运算试题生成

      本作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2148

    结对对象:王硕

    一、功能的重点难点,编程收获及运行截图

    功能一的重点难点:

    1.重点,如何生成随机数和随机运算符

    1 int num1 = rand.Next(1, 100);
    2 int num2 = rand.Next(1, 100);
    3 int num3 = rand.Next(1, 100);
    4 int num4 = rand.Next(1, 100);
    5 string[] opera = new string[] { "+", "-", "*", "/" };
    6 string op1 = opera[rand.Next(4)];
    7 string op2 = opera[rand.Next(4)];
    8 string op3 = opera[rand.Next(4)];

    2.重点,如何定义+-*/的优先级

     1  public static int assess(string str)
     2         {
     3             switch (str)
     4             {
     5                 case "+":
     6                     return 1;
     7                 case "-":
     8                     return 1;
     9                 case "*":
    10                     return 2;
    11                 case "/":
    12                     return 2;
    13                 default:
    14                     return 0;
    15             }
    16         }

    3.难点,判断题目是否重复

     1 public static bool IsNotSame(string str, string[] set)
     2         {
     3             for (int i = 0; i < set.Length; i++)
     4             {
     5                 if (str == set[i])
     6                 {
     7                     return false;
     8                 }
     9             }
    10             return true;
    11         }

    功能二的重点难点 

    1.重点难点,中缀表达式转后缀表达式并计算

     1         public static int ChangeExpression(string zStr)
     2         {
     3             char a = ' ';
     4             String[] sp = zStr.Split(a);//字符串数组sp
     5 
     6             Stack st = new Stack();  //栈st
     7 
     8             Stack st1 = new Stack();
     9             //int j = 0;
    10             int res = 0;
    11             for (int i = 0; i < sp.Length; i++)
    12             {
    13                 if (sp[i] != "+" && sp[i] != "-" && sp[i] != "*" && sp[i] != "/" && sp[i] != "(" && sp[i] != ")")
    14                 {
    15                     st1.Push(sp[i]);
    16                     //j++;
    17                 }
    18                 else
    19                 {
    20                     if (st.Count == 0 || IsPriority(sp[i], st.Peek().ToString()) == 1 || sp[i] == "(")
    21                     {
    22                         st.Push(sp[i]);
    23                     }
    24                     else
    25                     {
    26                         while (st.Count != 0)
    27                         {
    28                             if (st.Peek().ToString() != "(")
    29                             {
    30 
    31                                 res = calc(Convert.ToInt32(st1.Pop().ToString()), 
    Convert.ToInt32(st1.Pop().ToString()), st.Pop().ToString());
    32 st1.Push(res); 33 //j++; 34 } 35 else if (sp[i] != ")") 36 { 37 break; 38 } 39 else if (sp[i] == ")") 40 { 41 if (st.Peek().ToString() == "(") 42 { 43 st.Pop(); 44 break; 45 } 46 else 47 { 48 res = calc(Convert.ToInt32(st1.Pop().ToString()),
    Convert.ToInt32(st1.Pop().ToString()), st.Pop().ToString());
    49 st1.Push(res); 50 } 51 } 52 } 53 if (sp[i] != ")") 54 { 55 st.Push(sp[i]); 56 } 57 } 58 } 59 } 60 while (st.Count != 0) 61 { 62 res = calc(Convert.ToInt32(st1.Pop().ToString()), Convert.ToInt32(st1.Pop().ToString()), st.Pop().ToString()); 63 st1.Push(res); 64 //j++; 65 } 66 67 return res; 68 }

    功能三的重点难点 :

    1.重点,将题目输出到文件

    1 StreamWriter sw = File.AppendText("F:\研一\f4\f4\answer.txt");
    2 
    3 
    4 sw.WriteLine("{0,-30}{1}", str, sum);
    5 sw.Flush();//清空缓冲区
    6 sw.Close();//关闭流

    2.难点,判断题目数量是否为正整数

    1 System.Text.RegularExpressions.Regex reg1 = new System.Text.RegularExpressions.Regex(@"^[0-9]d*$");
    2 return reg1.IsMatch(str);

    运行截图:

    功能一,功能二运行截图:

    功能三运行截图:

     

    编程收获: 

    1,有了另一个人在一边监督,指导,让枯燥的编程更加的有了趣味性,质量也更好了,没有一个人编程那么多盲点。

    2,学会了许多之前不会的问题,比如如何打印,如何不重复输出等等。

    、结对编程的体会及 在编码、争论、复审等活动中花费时间较长,给我较大收获的五事件

    1.开始我们对于用哪种语言也产生了分歧,最后选择了大家都熟悉的C#。

    2.对于如何把题目打印出来,花了许多的心思,最后找到了成功实现的方法。

    3.对输入f4 -c后输入test时总是出错花了许多的时间去调整如何让系统辩认出这不是正整数。

    4.如何保证题目不重复。

    5.两个人的编程代码风格有所不同,花了许多时间去适应对方。

    结对体会:发现了两个人编程的优势,并且觉得团队协作比一个人工作要更有动力更有进展,两个人也在合作中增进了友谊并且取长补短。

    三、给出照片1张

     

    四、版本控制

     https://coding.net/u/lulululu88/p/f4/git

  • 相关阅读:
    搬家
    围棋程序
    图论----基础知识
    贪心算法
    944. 删列造序
    1221. 分割平衡字符串
    面试题 01.01. 判定字符是否唯一
    剑指 Offer 10- II. 青蛙跳台阶问题
    面试题 16.11. 跳水板
    1137. 第 N 个泰波那契数
  • 原文地址:https://www.cnblogs.com/zhaojialu/p/9721324.html
Copyright © 2011-2022 走看看