软件工程第四次作业
博客信息 | 沈阳航空航天大学计算机学院2020软件工程作业 |
---|---|
作业要求 | https://edu.cnblogs.com/campus/sau/Computer1701-1705/homework/10685 |
课程目标 | 熟悉一个“高质量”软件的开发过程 |
作业目标 | 结对编程练习 |
题目选择
我们在刚开始上课的时候介绍过一个小学四则运算自动生成程序的例子,请实现它,要求:
- 能够自动生成四则运算练习题
- 可以定制题目数量
- 用户可以选择运算符
- 用户设置最大数(如十以内、百以内等)
- 用户选择是否有括号、是否有小数
- 用户选择输出方式(如输出到文件、打印机等)
- 最好能提供图形用户界面(根据自己能力选做,以完成上述功能为主)
任务分配
- 驾驶员:陈朗朗
- 领航员:刘佳迎
成果
请访问GitHub 四则运算
完成情况
为了完成此次任务,我和结对伙伴选用了C++&WPF(Windows Presentation Foundation)用户界面框架来实现功能,C++用来编写生成运算式的算法,并编译为动态链接库(DLL),使用基于C#的WPF来编写图形界面,加载DLL中的功能获取算式打印到屏幕上,并且提供了生成算式的选项和保存在文件中的功能。
工作图片
工作总结
此次任务和刘佳迎同学合作完成,完成了提出的功能,并设计制作了图形界面,我们一起商讨了界面的组织方式,由于WPF具有很高的可定制性,我们也尝试着给控件加上定制风格,如按钮的样式,在界面雏形完成过后,结对伙伴给我提出了一些建议,如数字最大值的设置等,我也对应做出了更改。由于C++的高效性,生成算式的部分在C++里完成,我们一致同意将功能模块化,包含随机数、随机运算符的生成等。使用了标准模板库里的string,省去了对字符串的繁琐操作,C++是一个强大的语言,越去了解越能发现C++的丰富。C++编写完成后,生成DLL文件,但是在C#中调用时却遇到了字符乱码的问题,经过查找资料,了解了到了是由于编码方式不同。使用C#的函数进行ANSI与UNCOIDE转换解决了问题。整体完成后,细心的结对伙伴给我提出了一个括号不匹配的bug,经过调试改正了问题。总之,这次的结对作业使我受益匪浅。
工作记录
项目 | 预计 | 实际 |
---|---|---|
设计时间 | 1h | 1h |
编码时间 | 4h | 6.5h |
测试时间 | 1h | 1h |
代码行数 | 400 | 280 |
测试代码行数 | 20 | 10 |
错误数量 | 5 | 10 |
错误修复时间 | 1h | 2h |
开发总时间 | 2d | 2d |