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

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

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




三、psp表格

四、遇到的困难及bug
- 不会C++,看Qt的各种类、各种调用,都一头雾水。现在也只是能试着用而已,实际上要求稍高的UI仍然不会写。
- 在Qt的编程套路上卡了很久,后来基本把他理解成了stm32的中断。
- 在dll上卡了一天,最后好像是因为编译器不支持隐式调用,想换个编译器又老出问题,最后就用了特别麻烦的显式调用,然而函数名又会有奇奇怪怪的变化,真是一坑更比一坑深。
五、收获和反馈
这次结对作业的经历非常恼火,但最后还是大概做出来了。我承认人是非常之贱的生物,这次编程让我想起了卢俊义被“骗”上梁山的事。有人先给了你一巴掌,再给你一颗糖,你最后会觉得结局是甜的。这大概最能描述我此刻的心情了。这次实验的收获简单直接,就是对UI编程有了最简单的一些了解,会用Qt进行一些基础的界面设计。但是也有很多问题:
- 知识零碎,不系统。大部分东西都是照搬网上的东西,谈不上什么设计、思想,与其说在练程序设计,不如说是在学习工具。个人喜欢非常系统清晰的学习方法,而不是这种加减还没学会就开始学乘除的做法。
- 有限的知识和过量的投入。网上的东西良莠不齐,对一个完全没有辨别能力的小白来说,从这些海量资料里面抽取出有用信息实在太费劲了。我觉得老师和助教应该适当提供参考解决方案、学习资料的东西。比如前两学期的电子设计实践,也是英才班课程,我们也没有基础,但是助教会提供例程、模块手册和相应的电路知识讲解,而不是单纯的只抛出任务和要求。如果老师上周四的东西能在布置结对作业的时候就讲,我们入门的速度会快很多。
- 关于结对编程。两个人讨论着解决问题确实比一个人块多了。但在确定了大致思路和方法后,两个人对实现细节的讨论反而会拖慢进度。感觉这时候倒不如一个人写,另一个只在必要的时候给出提示比较好。至于走上工作岗位后,我还没有概念,也不知道会遇见什么样的队友。
- 以上观点仅站在一个小白的立场上发表,个人表示生活在软工班的底层是一件挺难受的事。当然这也只能怪自己,语言和软件的知识面太狭窄,课余没有了解过更高级的语言和各种操作。
- 关于今后的团队作业。各成员除明确分工外,还要商量好各种对接方式。写完了又改是很烦的事。
四则运算UI组结对作业报告的更多相关文章
- Core 第三组 结对作业——四则运算 Part1. Core代码编写
结对作业——四则运算 Part1. Core代码编写 PB15061303 刘梓轩PB16061489 艾寅中 GITHUB 地址 戳这里 目录 (因为内容较多,分为了三个部分,但作业系统中只能提交一 ...
- 结对作业——随机生成四则运算(Core 第7组)
结对作业 ——随机生成四则运算(core第7组) 吕佳玲 PB16060145 涂涵越 PB16060282 GITHUB地址 https://github.com/hytu99/homework_2 ...
- 【第二次个人作业】结对作业Core第一组:四则运算生成PB16061082+PB16120517
[整体概况] 1.描述最终的代码的实现思路以及关键代码. 2.结对作业两个人配合的过程和两个人分工. 3.API接口文档和两个组的对接. 4.效能分析,优化分析和心得体会. [代码实现] 一. 实现功 ...
- UI-12组结对编程作业总结
UI-12组结对编程作业总结 源码Github地址 https://github.com/tilmto/TILMTO/tree/master/Arithmetic 作业摘要 本次结对编程作业分为以下两 ...
- 结对作业——四则运算 Part2. 封装与对接相关问题
结对作业——四则运算 Part2. 封装与对接相关问题 PB15061303 刘梓轩PB16061489 艾寅中 GITHUB 地址 戳这里 目录 Part 1. Core代码编写部分Part 2. ...
- 结对作业_core组
github地址:https://github.com/ljw-wakeup/expression_project2 对于这种结对的工作,由于有过电子设计实践的基础,大概知道建一个工程需要做的事,有点 ...
- 结对作业——web四则运算
目录: 一.Coding.net项目地址 二.PSP 三.接口设计 四.接口实现 五.性能分析 六.单元测试 七.异常处理 八.模块设计 九.模块对接 十.结对 十一.思考 十二.PSP 网站:htt ...
- 小学四则运算结对项目报告(GUI)
小学四则运算结对项目报告(GUI) 一.Coding.Net项目地址: https://git.coding.net/wsshr/Calculation.git 二.PSP表格(完成前): PSP 任 ...
- 结对作业——四则运算 Part3. 对于结对编程的总结与思考
结对作业——四则运算 Part3. 对于结对编程的总结与思考 PB15061303 刘梓轩PB16061489 艾寅中 GITHUB 地址 戳这里 目录 Part 1. Core代码编写部分 Part ...
随机推荐
- [转载]AngularJS入门教程01:静态模板
为了说明angularJS如何增强了标准HTML,我们先将创建一个静态HTML页面模板,然后把这个静态HTML页面模板转换成能动态显示的AngularJS模板. 在本步骤中,我们往HTML页面中添加两 ...
- RobotFramework:钉钉扫码登录UI自动化
背景: 遇到一个项目,使用的是钉钉扫码登录,一时间不知道该怎么下手了,还是先F12抓包看下都有什么数据传输吧. 分析: 先熟悉下钉钉扫码登录的逻辑,参考官文:https://open-doc.ding ...
- python_72_json序列化2
#序列化(json是最正规的) import json info={ 'name':'Xue Jingjie', 'age':22 } f=open('第72.text','w') print(jso ...
- js数据结构处理--------扁平化数组处理为树结构数据
将扁平化的数组处理为树结构数据,我们可以利用对象来处理,对象的复制是浅拷贝,指向相同的内存地址: var arr = [ { id: 0, pid: -1, name: 'sadas' }, { id ...
- CUDA高性能编程中文实战11章例子中多设备的例子编译提示问题
提示的问题如下: error : argument of type "void *(*)(void *)" is incompatible with parameter of ty ...
- el-upload控件一次接口请求上传多个文件
el-upload组件默认情况下上传多少个文件就会请求多少次上传接口,如何一次上传多个文件而不必多次请求上传接口呢?直接看代码 html <el-upload :action="act ...
- eclipse中的字体大小设置和背景色设置
1.字体大小设置 在basic下选择最后一个TextFont 护眼背景色设置 添加到自定义颜色后点确定 最后一步点apply
- 黑马基础阶段测试题:创建一个存储字符串的集合list,向list中添加以下字符串:”C++”、”Java”、” Python”、”大数据与云计算”。遍历集合,将长度小于5的字符串从集合中删除,删除成功后,打印集合中的所有元素
package com.swift; import java.util.ArrayList; import java.util.List; import java.util.ListIterator; ...
- 1072: [SCOI2007]排列perm
Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 3000 Solved: 1875[Submit][Status][Discuss] Descript ...
- 二、Linux 系统启动过程
Linux 系统启动过程 linux启动时我们会看到许多启动信息. Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段: 内核的引导. 运行 init. 系统初始化. 建立终端 ...