四则运算试题生成
博客园地址:http://www.cnblogs.com/liuyaoze/
git地址:https://git.coding.net/Vector121/f4.git
要求1:
(1)给出每个功能的重点、难点、编程收获。
功能1. 四则运算
重点:实现四则运算中的计算功能。
难点:当程序出现除法时,易出现除零bug。于是我们采用冲击随机数的方法来解决这个问题。
编程收获:这个功能的实现,让我对使用堆栈进行中后缀表达式变换的过程更加熟悉,同时发现了自己编程不规范的一些问题,比如命名写在一起,学会了随机数random函数的用法。
操作:打开控制台,cd到工程的路径中C:UsersAdministratorDocumentsVisual Studio 2013Projectsf4f4inDebug。然后键入f4并按格式输入结果后,实现了功能1的要求,并实现了对输入格式是否合法使用?进行判断,详细可见附图。
功能2.支持括号
重点:加括号的方法,除法有所变化
难点:在哪个位置加括号,怎么不让括号出现4个。
编程收获:直到这次作业我才知道原来计算加个括号有这么难。我们采用随机加给两个数的方法使用三种情况,加括号的情况,不加括号的情况,将加完括号的算试与未加括号的数字用位置对调的方法来进行随机生成试题。
功能3.限定题目数量,"精美"打印输出,避免重复
重点:如何打印整齐,避免试题重复
难点:如何避免试题重复。使用了将算试存入数组进行匹配的方式进行判断,通过IsNotSame函数实现了功能。
编程收获:知道如何精美输出,使用Console.WriteLine("{0,-30}{1}",str,sum)便可实现对输出变量位置的确定。
操作:按作业要求分别键入f4 -c 3,f4 -c 5,得到如下面两图,实现了限定题目数量,"精美"打印输出,避免重复。
(2)结对编程体会:
这次编程首先我要感谢我的队友杨梓瑞同学,这次结对我觉得很有意义。与自己编程不同,很多编程时遇到的问题都可以互相讨论,得到比自己独自编程时更佳的结果,加强了自己的编程效率和劲头。同时我能学习到我伙伴的良好编程习惯,以及编程思路,并进而发现很多自己身上的陋习。比如说注释格式,编程时用到的快捷键。这种愉快的合作方式十分有趣,希望呦吼还能有机会和我的小伙伴一起合作。
(3)至少5项在编码、争论、复审等活动中花费时间较长,给你较大收获的事件。
1.在编写本程序之前,我们首先讨论了编写程序所用的语言,我们最后选择使用C#语言作为本程序的编程语言。
2.在将中缀表达式变成后缀表达式时,我们本来以为会有那种直接实现的栈的函数,经过在网上搜索后,我们发现这个功能还是得自己实现,最后我们讨论出可行的解决方法实现了这个功能。
3.生成试题加入括号后,我们碰到了难点,如何能实现括号结果出现0时,不让括号里的数成为除数,我们产生了很多想法,最后讨论出结果解决了问题,这里也花费了很长时间。
4.给变量起名字也是个有意思且费时的事情,我们查找了很多单词,确定下最适合当函数名的单词,修改了不少格式上的问题,这都花了一些时间。
5.在测试生成试题结果的时候,我们发现我们的计算结果和程序运算的结果并不相同,经过查找最后发现这个错误是因为在计算后缀表达式的时候将参数写反了,仅仅很小的一个错误便费了我们不少时间。
要求2:杨梓瑞(左)和我交流讨论时的照片。