此作业要求参考:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2148
四则运算试题生成:
功能1. 四则运算:支持出题4个数的四则运算题目
功能2. 支持括号
功能3. 限定题目数量,打印输出,避免重复
功能4. 支持分数出题和运算(女神的青睐放弃之。。)
要求一:(1) 给出每个功能的重点、难点、编程收获。(2)给出结对编程的体会。 (3) 至少5项在编码、争论、复审等活动中花费时间较长,给你较大收获的事件。
(一)对每个功能进行分析
1. 功能一:
1 for (i = 0; i < strlen - 1; i++) 2 { 3 switch (strOld[i]) 4 { 5 case ‘+‘: 6 case ‘-‘: 7 case ‘*‘: 8 case ‘/‘: 9 //判断优先级,进行压栈出栈操作 10 while (this.priority(ope.Peek()) >= this.priority(strOld[i])) 11 { 12 num.Push(ope.Peek()); 13 strNew += " "; 14 strNew += ope.Peek(); 15 ope.Pop(); 16 } 17 ope.Push(strOld[i]); 18 flag = 1; 19 break; 20 case ‘(‘: 21 ope.Push(strOld[i]); 22 break; 23 case ‘)‘: 24 while (ope.Peek() != ‘(‘) 25 { 26 num.Push(ope.Peek()); 27 strNew += " "; 28 strNew += ope.Peek(); 29 ope.Pop(); 30 } 31 ope.Pop(); 32 break; 33 default: 34 num.Push(strOld[i]); 35 if ((flag == 1) && (i != 0)) 36 { 37 strNew += " "; 38 flag = 0; 39 } 40 strNew += strOld[i]; 41 break; 42 } 43 }
2. 功能二:
3. 功能三:
1 if (args.Length != 2) 2 { 3 Console.WriteLine("输入指令有误!"); 4 } 5 else 6 { 7 if (args[0] != "-c") 8 { 9 Console.WriteLine("输入指令有误!"); 10 } 11 else if(!int.TryParse(args[1],out tmp)) 12 { 13 Console.WriteLine("题目数量必须是 正整数。"); 14 } 15 else if (Convert.ToDecimal(args[1]) <= 0 || args[1].Contains(".")) 16 { 17 Console.WriteLine("题目数量必须是 正整数。"); 18 } 19 else 20 { 21 sum = Convert.ToInt32(args[1]); 22 function3(sum); 23 } 24 }
(二)结对编程的体会
这次作业是与小伙伴一起完成的,因为上一次作业没有提前计划好写作业时候很痛苦,这次我们更多注意在事前的讨论和计划上。两个人一起完成,可以有更多讨论和互补,就觉得没有上一次的焦头烂额,完成作业的过程相对顺利和愉快。体会就是,很多人一起完成一项任务,比自己一个人孤军奋战能更快解决问题。
(三)花费时间较长的事件
(1)学习如何进行单元测试,以及编写测试用例:
(2)分析功能实现的过程:
(3)逆波兰式的转化出现错误,找错花费了一些时间:
(4)讨论如何添加括号:
(5)实现功能三批量生成试题写入文件的方法:
要求二:给出照片1张,包括结对的2位同学、工作地点、计算机,可选项包括其他能表达结对编程工作经历的物品或场景。
工作地点:星华公寓 b116
使用乔静玉同学的电脑进行编程
照片:
要求三:使用coding.net做版本控制。
代码地址:https://git.coding.net/qiaojingyu/f4.git
原文:https://www.cnblogs.com/wuyiyao694/p/9750987.html