软件工程(2018)结对编程第2次作业
代码工作
本次迎来了结对编程正式编程,我们选择的是题目1。我担任驾驶员一职。
题目要求
本次作业要求两个人合作完成,驾驶员和导航员角色自定,鼓励大家在工作期间角色随时互换,这里会布置两个题目,请各组成员根据自己的爱好任选一题。
题目1:
我们在刚开始上课的时候介绍过一个小学四则运算自动生成程序的例子,
请实现它,要求:
能够自动生成四则运算练习题
可以定制题目数量
用户可以选择运算符
用户设置最大数(如十以内、百以内等)
用户选择是否有括号、是否有小数
用户选择输出方式(如输出到文件、打印机等)
最好能提供图形用户界面(根据自己能力选做,以完成上述功能为主)
我们选择用JAVA编写(毕竟前面的作业都是JAVA完成)
我和我的队友刘智决定先将题目要求的每一项逐个进行大概的编程算法分析,在纸上大体画了个流程图,将程序中要出现的变量记录下来,将可能遇到的问题记录下来。然后根据纸上的流程我们开始编写程序。最终程序基本实现全部要求功能。
总程序约140多行,历时差不多3个小时。
程序运行截图如下:
同时桌面生成了Question.txt,截图如下
遗憾的是,图形界面我们自学效果比较差,没有实现。但是其余要求均完美实现。
评价与总结
本次结对编程中,我们遇到了不少由于不熟悉JAVA产生的问题。例如输出保留两位小数的浮点数、JAVA中对于文件的输出等。我和刘智同学不断在网上查询解决方法、研讨如何解决问题。在我编程期间刘智同学不断在纸上走流程,时刻提醒我思路到哪。在程序出现bug时,总是能以我想不到的角度提醒我,帮我找出错误。在网上查资料时,刘智同学也以他的语文功底帮我精炼问题语句,让我更快的找到答案。刘智同学无疑是一个让我很满意的领航员。
本次编程中遇到了大多问题,均通过网络和《疯狂JAVA讲义》解决了。我觉得作为一个程序员,学习消化能力真的很重要。技术不断革新发展,未来编程语言趋势永远是未知的。很难只靠一种语言发展,只有掌握编程思想、计算机思路、编程学习能力,才能快速融入适应一个新的编程环境、工作环境。软件工程这门课让我提前领略到了将来工作的环境、思路,感谢这门课让我学到了很多。