“你帮我助”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