代码改变世界

四则运算UI组结对作业报告

2018-04-15 22:37  ccj1998  阅读(302)  评论(1编辑  收藏  举报
  • Github提交地址:
  • 小组成员:陈兆庭,陈昶金;

一、编程阶段

  1. 清明节开始接触和调研关于UI设计的方法。由于两人的各方面知识储备均不足,在各种东西C#、MFC、Qt中进行调查和讨论,最终因为网上说Qt简单易学、方便、上手快等特点,我们最终选择了Qt作为开发工具。
  2. 在清明节的最后一天开始安装和学习Qt。由于Qt比较大安装废了不少时间。在看到Qt的拖拽设计功能后一度以为剩下的事很简单了。但是由于网上的资料零碎不成系统,加上我们C++基础很差,在接下来的几天里进展异常缓慢,完全搞不懂Qt的运行套路和编程基本思想,各个控件的各种属性、信号、槽函数的关系也把我们搅成了一团乱麻。这时候听到延期的消息我们就理所当然地弃疗复习信号与系统期中了。。。。
  3. 期中考完后我们通过《Qt5开发及实例》和网站上较为系统的教程重新学习Qt,加上老师上课展示的一些东西,我们大概对写程序的思路和功能实现方法有了一些概念。在大致写完界面后,我们进行了使用DLL的尝试。从13号晚到14号晚,整整一天的时间,才通过非常麻烦的显式调用用上了DLL,因为隐式调用会出各种bug。14号晚到15号进行对接。

二、界面细节

  • 第一行为参数设置,包含了生成表达式所需的大部分参数,以及计时器设置。点击开始即可进行一轮答题。若输入参数不符合规范则会弹出错误提示框如下图:

  • 第二行左边显示算式,等号右边输入答案。点提交会结束倒计时并在下面的大框中输出正确与否、剩余题目等提示信息。点击next开始倒计时并显示下一题。若题目做完则会显示此次练习的分数。
  • 点击历史、错题、历史成绩将分别在大框中显示相应信息。

 

 

三、psp表格

 

 

四、遇到的困难及bug

 

  • 不会C++,看Qt的各种类、各种调用,都一头雾水。现在也只是能试着用而已,实际上要求稍高的UI仍然不会写。
  • 在Qt的编程套路上卡了很久,后来基本把他理解成了stm32的中断。
  • 在dll上卡了一天,最后好像是因为编译器不支持隐式调用,想换个编译器又老出问题,最后就用了特别麻烦的显式调用,然而函数名又会有奇奇怪怪的变化,真是一坑更比一坑深。

五、收获和反馈

 

      这次结对作业的经历非常恼火,但最后还是大概做出来了。我承认人是非常之贱的生物,这次编程让我想起了卢俊义被“骗”上梁山的事。有人先给了你一巴掌,再给你一颗糖,你最后会觉得结局是甜的。这大概最能描述我此刻的心情了。这次实验的收获简单直接,就是对UI编程有了最简单的一些了解,会用Qt进行一些基础的界面设计。但是也有很多问题:

    1. 知识零碎,不系统。大部分东西都是照搬网上的东西,谈不上什么设计、思想,与其说在练程序设计,不如说是在学习工具。个人喜欢非常系统清晰的学习方法,而不是这种加减还没学会就开始学乘除的做法。
    2. 有限的知识和过量的投入。网上的东西良莠不齐,对一个完全没有辨别能力的小白来说,从这些海量资料里面抽取出有用信息实在太费劲了。我觉得老师和助教应该适当提供参考解决方案、学习资料的东西。比如前两学期的电子设计实践,也是英才班课程,我们也没有基础,但是助教会提供例程、模块手册和相应的电路知识讲解,而不是单纯的只抛出任务和要求。如果老师上周四的东西能在布置结对作业的时候就讲,我们入门的速度会快很多。
    3. 关于结对编程。两个人讨论着解决问题确实比一个人块多了。但在确定了大致思路和方法后,两个人对实现细节的讨论反而会拖慢进度。感觉这时候倒不如一个人写,另一个只在必要的时候给出提示比较好。至于走上工作岗位后,我还没有概念,也不知道会遇见什么样的队友。
    4. 以上观点仅站在一个小白的立场上发表,个人表示生活在软工班的底层是一件挺难受的事。当然这也只能怪自己,语言和软件的知识面太狭窄,课余没有了解过更高级的语言和各种操作。
    5. 关于今后的团队作业。各成员除明确分工外,还要商量好各种对接方式。写完了又改是很烦的事。