一、 题目描述
本课程的教学目的是掌握并熟练使用STL。我的期末大作业是基于STL实现网店管理系统。该系统主要用于服装网店进货以及销售时库存的统计(对编程实现的系统进行介绍。)
二、 开发环境
Qt Creator 4.11.0 (Community)
三、 详细设计
1. 程序结构(对涉及的变量、类、程序结构进行说明)
①项目文件(ClothingManager.pro)
在此定义模板,头文件,源文件,UI列表以及预处理程序定义的列表。
②头文件(mainwindow.h)
在此定义头文件,由于程序中需要对服装进行处理,不妨定义一个“ALLData”数据类型,用来保存每件衣服的名字,颜色,编号,尺码,库存数,季节及上架日期。
采用 STL 中 vector 和 map 容器来存储数据,并定义界面中需要用到的槽函数。
③界面 UI 文件(mainwindow.ui)
实现界面中的按钮,以及界面的设置。
④主程序(main.cpp)
运行整个项目。
⑤主窗体源文件(mainwindow.cpp)
具体实现每个槽函数,并执行项目中的每个功能。具体作用将在“2.主要功能”中详细介绍。
2. 主要功能(对实现的系统功能进行阐述,哪个函数完成什么功能)
实现商品属性管理,并实现销售、进货、按季节显示、排序、缺货预警等功能。这些功能均通过主窗体源文件实现的,在头文件中定义的各个槽函数具体实现。下面对这些函数以及程序结构做仔细分析介绍。
①on_Read_clicked()
通过调用readTXTFile()实现文件的读取
②readTXTFile()
实现对文件的读取。先打开文件路径对数据文件进行读取,如果未选择则给出错误提示。选择对应的文件之后,将文件按行读取放入文件流中, 由于数据文件中商品的每个属性之间以空格分隔,故可以直接将商品的每个属性直接对应到文件流中。
③setViewDatas()
本函数的作用为初始化表格填充并显示相应的数据。
④on_ShowEason_clicked()
本函数的作用为按季节进行展示,通过迭代器遍历全体数据,符合条件的显示,不符合条件的不显示。报告中仅展示当季节选择为“春”时的情景,其他情况基本一致。
⑤on_Sort_clicked()
本函数的作用为按所选内容进行排序,通过迭代器遍历 map 中全体数据并进行排序,此处以按序号排序为例进行展示。
⑥on_Add_clicked()
本函数的作用为进行进货,即库存的增加。在进行进货操作时,对数据
合法性进行判断,若数据位空,则弹出错误提示,若操作成功,则弹出成功提示。
数据合法性判断:
对应数据的增加:
数据回显:
⑦on_Sole_clicked()
本函数的作用为进行销售,即库存的减少。在进行进货操作时,对数据合法性进行判断,若数据位空,则弹出错误提示,若操作成功,则弹出成功提示。此外,如果库存少于 200,将弹出库存过少的提示。
数据合法性判断:
数据回显:
⑧on_pushButton_clicked()
本函数负责数据的保存,为了防止在销售过程中的误操作造成无法撤回,并保留前一天的数据。将进行操作后的数据重新保存为对应的数据文件,命名为newData.txt