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

本文档详细介绍了使用QT进行软件开发的过程,包括UI设计、功能实现、bug调试等方面的经验分享。项目实现了数学题生成、倒计时、错题记录等功能。

·本次作业要求 

 

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

 

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

 

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

 

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

 

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

 

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

 

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

·github地址

    https://github.com/wazjx55/jieduizuoye

 

·编写过程

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

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

 

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

·成果展示

初始界面

仅支持加法运算设置

提交结果

 

 

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

 

 

错题记录

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

与耿子刚组对接的界面

与李浩冉组对接的界面

 

 

 

·时间分配

项目计划用时(分钟)实际用时(分钟)
计划项目60120
开发1440 
·需求分析6060
·项目构思60120
·生成设计文档12060
·具体设计  12060
·具体编码600720
·代码除错300900
报告6060
·项目报告与总结6060
总计15602280

 

·心得体会

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

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

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

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

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

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

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

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

       

转载于:https://www.cnblogs.com/ffy0701/p/8824100.html

在车辆工程中,悬架系统的性能评估和优化一直是研究的热点。悬架不仅关乎车辆的乘坐舒适性,还直接影响到车辆的操控性和稳定性。为了深入理解悬架的动态行为,研究人员经常使用“二自由度悬架模型”来简化分析,并运用“传递函数”这一数学工具来描述悬架系统的动态特性。 二自由度悬架模型将复杂的车辆系统简化为两个独立的部分:车轮和车身。这种简化模型能够较准确地模拟出车辆在垂直方向上的运动行为,同时忽略了侧向和纵向的动态影响,这使得工程师能够更加专注于分析与优化与垂直动态相关的性能指标。 传递函数作为控制系统理论中的一种工具,能够描述系统输入和输出之间的关系。在悬架系统中,传递函数特别重要,因为它能够反映出路面不平度如何被悬架系统转化为车内乘员感受到的振动。通过传递函数,我们可以得到一个频率域上的表达式,从中分析出悬架系统的关键动态特性,如系统的振幅衰减特性和共振频率等。 在实际应用中,工程师通过使用MATLAB这类数学软件,建立双质量悬架的数学模型。模型中的参数包括车轮质量、车身质量、弹簧刚度以及阻尼系数等。通过编程求解,工程师可以得到悬架系统的传递函数,并据此绘制出传递函数曲线。这为评估悬架性能提供了一个直观的工具,使工程师能够了解悬架在不同频率激励下的响应情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值