• 软件工程第四次作业


    博客信息 沈阳航空航天大学计算机学院2020软件工程作业
    作业要求 https://edu.cnblogs.com/campus/sau/Computer1701-1705/homework/10685
    课程目标 熟悉一个“高质量”软件的开发过程
    作业目标 结对编程练习

    一、题目要求

    我们在刚开始上课的时候介绍过一个小学四则运算自动生成程序的例子,请实现它,要求:

    • 能够自动生成四则运算练习题
    • 可以定制题目数量
    • 用户可以选择运算符
    • 用户设置最大数(如十以内、百以内等)
    • 用户选择是否有括号、是否有小数
    • 用户选择输出方式(如输出到文件、打印机等)
    • 最好能提供图形用户界面(根据自己能力选做,以完成上述功能为主)

    二、任务分工

    • 驾驶员:李彦林,负责完成代码的编写工作,并对同伴在本次编程工作中起到的作用给出客观评价;
    • 领航员:梁廷宇,辅助驾驶员完成代码,设计单元测试用例,并完成代码审查工作,最后对同伴做出评价。

    三、代码实现

    1.完整代码

    代码在这里

    2.实现方法

    (1)程序的主要功能是随机生成四则运算表达式,实现方法是使用srand((int)time(0))语句种下随机种子数,再使用rand()%N语句随机产生范围是0~N的随机数。
    (2)在实现完题目要求的基本功能后,领航员建议增加显示四则运算练习题答案的功能。经过研究与讨论,采用了如下方法:运用栈先将中缀表达式(四则运算表达式)转换成后缀表达式(逆波兰式),然后利用逆波兰式求出四则运算表达式的解。

    3.运行截图

    (1)不含括号和小数的情况

    (2)含括号和小数的情况

    (3)输出到文件的情况

    四、结对工作截图

    通过QQ聊天讨论程序的实现及错误修改的方法,利用屏幕分享的方式为结对伙伴演示程序的操作方法及运行结果。

    五、评价与总结

    1.对结对伙伴的评价:在本次结对工作中,我担任驾驶员负责全部代码的编写工作。在工作的过程中,领航员梁廷宇对我帮助很大,他和我一起讨论程序实现的方法,在遇到错误时,也同我一起思考出错原因和解决办法,这让我的编码工作事半功倍。同时,他从用户使用的角度思考,提出了增加输出四则运算练习题答案功能的建议,并和我一同讨论了该功能的实现思路,真正起到了“领航员”的作用。

    2.总结:经过本次结对作业的训练,我的编码能力与合作能力都有了一定的提升。首先,我感受到了以“驾驶员”的身份来设计编写程序与以往自己编写程序有很大的不同,虽然实际敲代码的是我,但是在前期思考以及后期修改错误的阶段,需要和结对伙伴一同讨论,这让我学会了当彼此意见不统一时,应该先去想谁的想法更适合软件;其次,当领航员提出增加显示答案功能时,我起先是比较抵触的,因为这样要增加不小的代码编写量,但是当最后实现这个功能时,我才真正意识到领航员的建议让软件有了更好的用户体验,也让我明白了开发软件应该遵循与迎合用户的需求而非程序员的主观意愿;然后,本次结对作业相较于上一次更加让我感受到了合作的重要性,合作并不是两个人独立工作后进行简单的组合,而是一个如果善用沟通与配合就可以让1+1大于2的过程。合作可以让我们学会沟通、学会采纳别人的正确建议;最后,我会带着自己在结对训练中的收获迎接接下来的团队编程工作,努力发挥自身优势,虚心向队友学习指教!

  • 相关阅读:
    基于UDP的聊天室一例
    用原始套接字编程实现linux中的 ping 命令
    UNIX域流式套接字一例
    基于TCP的多进程echo服务器
    网络数据包检测抓包一例
    Java中static、final用法小结
    TCP/IP 组播的发送和接收
    Java数据库连接字符串
    对java中的访问限定符的理解1
    UNIX域用户数据报套接字一例
  • 原文地址:https://www.cnblogs.com/lylincode/p/12781861.html
Copyright © 2020-2023  润新知