结对作业 ——UI组第八组 冯富禹 齐天浩

·本次作业要求 

 

     UI是交付给最终用户的软件,有一定的界面和必要的辅助功能。完成Windows和Linux电脑图形界面的程序,需实现以下功能:

 

  • 对上述各属性参数(生成题目的数量,操作数的数量,题目及答案中的数值的范围……)进行设置

 

  • 调用Core模块得到题目和运算结果,显示题目,接受输入,并能判断答案是否正确

 

  • 增加“倒计时”功能,每个题目必须在20秒内完成,否则,得0分并进入下一题

 

  • 增加“错题记录”功能,对于答错的题,将其保存下来,当下次进行“复习”时,增大错题在练习题中的概率

 

  • 增加”历史纪录“功能,把用户做题的成绩纪录下来并可以展现历史纪录

 

  • 增加“成绩分享”功能,生成成绩单,想一想成绩单里要展现什么,仅仅是最后的得分吗?错题的类型及数量?帮用户分析其薄弱的环节,提出合理的学习建议?

·github地址

    https://github.com/wazjx55/jieduizuoye

 

·编写过程

       本次作业使用QT编写,思路是首先使用QT Creator创建图形界面,通过设置等原件设计按钮,文本框等必要的元素,来读取用户输入的各种参数以及输出题目,输入答案。

        再通过转移到槽函数来编写事件发生后对应的相应,例如改变参数的值。

 

        与CORE组的对接时,首先将用户输入的QString变量转换成Sring变量,再将其装换成int变量,与Setting等函数进行对接。      

·成果展示

初始界面

仅支持加法运算设置

提交结果

 

 

将各种运算加入之后生成的题目 

 

 

错题记录

 在经过页面设计之后,我们把界面进行了美化

与耿子刚组对接的界面

与李浩冉组对接的界面

 

 

 

·时间分配

项目 计划用时(分钟) 实际用时(分钟)
计划项目 60 120
开发 1440  
·需求分析 60 60
·项目构思 60 120
·生成设计文档 120 60
·具体设计   120 60
·具体编码 600 720
·代码除错 300 900
报告 60 60
·项目报告与总结 60 60
总计 1560 2280

 

·心得体会

       本次项目遇到的最大的问题就是QT使用不熟练,因为以前从来没有接触过QT,导致在结对编程一开始的时候安装软件就耗费了一下午的时间,然后发现QT中使用的语言和类是我们之前从来没有接触过的,由于时间紧迫,只能边看教程边实验性的编写。学习各种槽函数的输入和输出,还有事件的连接与调用方式。

        遇到的最大的一个bug就是QT编辑器在进行编译的时候貌似只通过文件名来识别,而由于习惯不好,我们在改动各个版本的时候只改了文件夹名字,而并没有改变文件名字,因此在改动文件的时候由于名字没变,导致编译器认为是之前的版本,运行结果是之前没改动的版本,由于这个bug我们耗费了大量的时间去检查代码。

        在设计倒计时功能时,因为使用两个定时器耦合的方式,导致有些情况下倒计时发生加速的bug,最后发现是因为没有将输入情况进行分类,在分类之后,分离出仅输入一道题,最后一道题未作答两个特殊状态,通过判断各种情况,改变槽函数的连接方式,最终解决掉这个问题。

        以上bug的产生原因大多数都是来自于对于编译环境的不熟悉和写代码时有一些平时编程时的不良习惯没有纠正过来,再加上QT使用c++为基本语言,这是我们两个人都没有接触过的,导致了浪费了大量的时间。

        通过这次结对编程我了解到了艺多不压身这个道理,懂得越多,在以后的工作岗位上就会有更加方便的资源可以利用,如果我们在之前就已经学习过c++和QT的话,相信可以节约很多的时间,而且一定要改正编程时的一些不良习惯,不要图省事图方便,这样最后浪费的还是自己的时间,在管理多个版本时要多实用github等工具,常改文件名。在编程的时候要考虑多种情况,不要想当然的相信客户输入的都是合法数据,反复强化自己程序的鲁棒性。

·结对编程的意义&课程建议

        结对编程对于我们来说是十分有意义的,在编程中难免遇到bug,一个人编程可能突然大脑短路导致浪费大量时间,但是结对编程两个人可以相互提醒相互帮助,而且在学习新内容的时候可以各自学习一部分,然后互相讲解,这样可以大幅缩短学习的时间。

        这门课程已经过去了一半左右的时间,感觉确实学习到了软件开发所必备的只是,但是感觉文字类作业过多,老师上课讲解的内容有些过于职场化,对于我们学生来说有些遥远,个人认为在课上应该更多地介绍常用软件的使用方法,网页前后端开发语言的设计等实用性知识,这样可以大幅降低我们今后团队开发的压力和学习新知识的时间。

       

posted @ 2018-04-15 20:36  ffy0701  阅读(296)  评论(1编辑  收藏  举报