图书管理系统开发工程文档
所用知识:c++类的使用、QT、UI设计、Mysql数据库
软件特色:UI界面,数据库使用,sql注入过滤
代码总量:1733 + 326 lines
0X00总体介绍
本软件采用QT5.12.1版本文本编辑器,MSVC2015 64bit编译器进行开发。文字编码为utf-8。
软件设计舍弃了复杂耗时落后的基础C++文件操作,选择使用可以实时同步数据的MYSQL数据库进行远程链接。
通过大量的connect函数将UI界面输入信号和相关函数进行链接
舍弃繁琐的槽函数设计,选用简洁方便的lambda函数代替槽函数,但一定程度上降低了代码可读性。
0X01UI设计
软件舍弃了简单不美观的控制台窗台,改为Windows桌面应用设计。界面UI使用一个整体mainwindowUI,里面嵌套三个功能模块QWidgetUI,使三个模块之间的切换更加方便。为了软件美观,没有使用QT中预设的类,而是应用继承对其进行UI美化。UI的美化我使用图片来美化按钮样式,其动态效果则使用下移上移来伪造3D效果。按钮整体风格由郭俊杰同学使用PS设计,在软件中我也对其进行了感谢。
0x02功能设计
将更改税率的按钮从图书管理模块转移到销售模块
每个功能所对应的功能框均使用QWidget或QTableWidget,然后向其中添加所需要的按键,标签。
0x03信号链接
使用connect函数链接信号,槽函数直接采用lambda函数。
0x04sql数据库的链接
由于QT5.12目前不支持8.0版本的MYSQL,所以需要在QT下安装MYSQL5.7 mysql.dll文件。
本软件使用服务器端的MYSQL数据库,所以不用担心数据的流失和异地使用软件没有书库的情况。
服务器由刘志赞同学提供,在软件中我也对其进行了感谢。
0x05sql数据库的使用
sql数据库的使用很简单,即是sql语句的使用。
但在使用的过程中,若是直接使用未经处理的用户输入值,则会产生不可估量的危害。本软件最大的危害就是sql注入。要预防sql注入,我们就认同一个观点,用户的任何输入都不可信,所以我在软件中对用户的每次输入都进行了处理,过滤了所有sql注入可能使用到的关键字。