首页 > 其他分享 >“你帮我助”软件开发总结

“你帮我助”软件开发总结

时间:2022-12-26 09:44:48浏览次数:53  
标签:总结 功能 Qt 软件开发 实现 物品 类型 我助 软件

“你帮我助”1.0

需求分析

在初步阅读完软件的功能需求后,我首先上网查询了一下GUI的实现方法,发现Qt被较多人推荐。随后又初步了解了一下Qt的功能及使用方法,如何设计可视化界面,感觉要使用Qt来实现GUI还要花不少的时间。于是我决定先在VS上实现不带GUI的第一版软件,登录功能也暂时搁置,在熟练掌握Qt之后再在第一版软件的基础上完善软件。

建立对象模型

确定类与对象

最初的想法是一个物品类型作为一个类,每个物品都是其所属物品类型的类的一个实例。但是这样的话添加物品类型就要动态地创建一个类,暂时没有想到如何实现。于是选择物品类型和物品两个概念作为两个类,每个物品类型和物品都是相应类的实例。

确定联系

将所有的物品类型以链表形式储存,每个物品类型是链表的一个节点。将一个物品类型下的所有物品也以链表形式储存,链表的头节点储存在所属物品类型的节点中。

确定属性及方法

物品类型需要有类型名称、类型属性,还要一个储存该类型下所有物品链表的指针,和指向下个物品类型的指针。物品需要有物品信息(包括公共信息和类型信息),还要指向下个物品的指针。
物品类型要有添加物品类型、修改物品类型两个方法,物品要有添加物品、删除物品、查找物品、展示物品信息四个方法。

功能测试及调试

采取黑盒测试技术,对软件的功能进行测试。可以将功能分为两类,一类是只涉及物品类型的,一类是涉及物品类型和物品的。前一类功能正常运行是下一类功能正常运行的基础,所以先对第一类功能进行了测试,功能正常再对第二类功能进行测试。有一点要注意的是在测试第二类功能途中对代码进行修改之后,要回头去验证第一类功能。

“你帮我助”2.0

需求分析

在学习了Qt的相关知识后,发现只需要使用Qt自带的一个QTreeWidget类便可以轻松实现1.0中的所有功能,并且更加简便更加完善。本来想着节省一点时间,结果反而浪费了时间。
再次审视软件需求,可以分为两部分,登录需求和物品需求,这两部分没有交集。

建立对象模型

确定类与对象

在Qt中,每一个窗口、按钮等都是一个类。为了实现登录功能,我们需要创建一个登录窗口,定义为类QDlgLogin,从QDialog类继承而来。在登陆窗口上我们要有文字,要有输入框,要有确认取消等按钮,这些是Qt中自带的类。为了实现物品功能,我们要创建一个功能页面,将其作为主窗口,定义为类MainWindow,从QMainWindow继承而来。在主窗口中有一个树窗口,文本显示窗,和多个功能按钮,这些也都是Qt自带的类。

确定联系

软件主体是MainWindow类和QDlgLogin类,这两个类分别由许多构件类组成,同时又要调用其他的许多功能类,需要根据代码的编写具体确定。

确定属性及方法

QDlgLogin类要有两个字符串,储存账号和密码。MainWindow类属性较少,主要设计的是功能的实现

绘制类图

绘制用例图

代码实现

https://github.com/ZZFyigeshuaige/-

功能测试及调试

由于登陆界面和功能界面的耦合程度并不高,首先实现了登陆界面的功能,并且对其进行测试。之后实现功能界面,分为管理员界面和用户界面。功能也可分为三类,第一类是注册审批,第二类是物品类型的添加和修改,第三类是物品的添加、删除和查找。第一类功能和其他的功能没有联系,先实现这一功能并测试,第二类功能是第三类功能的基础,故先实现第二类功能测试完毕后在进行第三类功能的实现。

软件展示

注册和登录界面:

管理员界面:

用户界面:

大作业感想

在这次大作业过程中,我第一次利用所学的知识系统地完成了一个软件。以前我都是拿到需求就直接开始编写代码,想到哪里写到哪,而这次我先根据需求分析出了所需的类和对象,确定了类的属性和方法,绘制出类图,使后面的软件实现更加有方向性。在测试过程中也要按照一定的方法,使用渐增式测试方法,逐步将模块添加至软件架构中去,出现错误时可以迅速定位错误的来源。GUI实现的要求也让我掌握了GUI功能的实现方式,学习了一项新的技术。

标签:总结,功能,Qt,软件开发,实现,物品,类型,我助,软件
From: https://www.cnblogs.com/ZZFyigeshuaige/p/17001689.html

相关文章

  • qt基础知识总结
    qt基础知识总结1、ctrl+r:快速运行2、两种模式的区别:一个是提供菜单栏的,一个不提供菜单栏3、界面讲解layouts:布局=水平布局+垂直布局+网格布局+表单布局spacers:垫子≈......
  • 工作总结之开发篇
    目录复盘开发时遇到的一些问题前言后端复盘开发时遇到的一些问题前言就把自己遇到的,认为比较重要的提出来讲一讲后端修改两个SpringBoot项目各自的路径因为这个涉及......
  • [Contest]2022 sti2百度搜索首届技术创新挑战赛赛道二比赛复盘总结
    2022sti2比赛复盘总结前期进行了PaddleInference的配置探索,后期经过了Paddleslim的transformer裁剪+蒸馏的策略上分。侥幸进入了决赛,感觉还是偏运气,感觉自己在比赛技术......
  • 【博学谷学习记录】超强总结,用心分享|狂野架构TiDB与MySQL兼容性对比
    目录TiDB与MySQL兼容性对比3.1TiDB不支持的MySql特性3.2自增ID3.3SELECT的限制3.4视图3.5默认设置差异3.5.1字符集3.5.2排序规则3.5.3大小写敏感3.5.3.1参数解释......
  • 英语学习词根词缀总结
    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站​​点击跳转浏览。​​目录​​一.联想法​​​​二.词根词缀法​​​​......
  • ()找圆算法((HoughCircles)总结与优化
       Opencv内部提供了一个基于Hough变换理论的找圆算法,HoughCircle与一般的拟合圆算法比起来,各有优势:优势:HoughCircle对噪声点不怎么敏感,并且可以在同一个图中......
  • 工作总结之DockerFile篇
    目录理解项目中的DockerFile的编写前言含义解析总结理解项目中的DockerFile的编写前言详解项目中DockerFile命令的具体含义含义解析脚本如下:FROMfrolvlad/alpine-ja......
  • 软件工程总结
    软件工程是一门研究如何更有效地开发、维护和升级软件的学科。它旨在通过使用系统化的方法来提高软件的质量、减少开发周期、降低成本并使软件更易于使用。软件......
  • 《并发编程入门》总结篇
    前言本文是《Java并发视频入门》视频课程的笔记总结,旨在帮助更多同学入门并发编程。本系列共五篇博客,此文为五篇博客的汇总篇。目录​​并发编程入门(一):多线程基础_......
  • 2021年年终总结
    2021YearSummary—26岁What:根据年度划分,对于个人全年情况做一个总结Why:回顾过去,保持优秀的习惯、纠正不足的习惯,不断精进,实现物质自由,精神自由How:用书写来进行回顾、......