C++课设

图书管理系统开发工程文档

所用知识: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注入可能使用到的关键字。

0x06源代码及成品

访问https://github.com/desperadoccy/Cpp_project 下载