Qt-5开发及实例-第17章-(综合实例)电子商城系统课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Qt-5开发及实例-第17章-(综合实例)电子商城系统课件.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 综合实例 Qt 开发 实例 17 综合 电子商城 系统 课件
- 资源描述:
-
1、第第17章章 【综合实例】电子商城系统【综合实例】电子商城系统商品管理系统功能需求商品管理系统功能需求电子商城商品管理系统的主要功能如下:(1)管理员口令登录,密码采用MD5加密算法封装验证。(2)浏览库存商品信息,采用Qt数据网格控件实现。(3)商品入库和清仓,用表单录入商品信息(可指定商品类别、进价、售价、入库数量等,还可上传商品样照)。(4)预售订单功能。选择指定数量的库存商品出售,系统自动计算出应付款总金额并显示销售清单,用户一次可预售多种商品,然后统一下订单。商品管理系统功能需求商品管理系统功能需求0101登登 录录 功功 能能登登 录录 功功 能能初始启动程序,显示登录界面(如图1
2、7.1所示)。输入管理员账号及口令,单击“登录”按钮执行验证,口令用Qt内置的MD5算法做加密处理后先存于MySQL数据库中,若验证不通过则弹出警告提示框。0202新品入库功能新品入库功能新品入库功能新品入库功能在“新品入库”页上可看到全部库存的商品信息(商品名称、进价、售价和库存量),用户可输入(或选择)新品信息,将其录入系统中;也可选择库中已有的商品执行清仓操作,如图17.2所示。0303预售订单功能预售订单功能预售订单功能预售订单功能在“预售订单”页上,用户从左边表单下拉列表中选择要预售的商品类别和名称,表单会自动联动显示出该商品的单价、库存、照片,并根据用户所指定的售出数量算出总价,如
3、图17.3所示。第第17章章 【综合实例】电子商城系统【综合实例】电子商城系统项目开发准备项目开发准备0101项项 目目 配配 置置项目配置项目配置(1)创建Qt桌面应用程序项目,项目名称为“eMarket”。创建完成在Qt Creator开发环境中单击左侧栏的 按钮切换至项目配置模式,如图17.4所示。(2)修改项目的.pro配置文件,在其中添加配置项。配置文件eMarket.pro内容如下(加黑处为需要修改添加的地方)。0202数据库准备数据库准备1创建数据库创建数据库2设计表设计表3创建视图创建视图数据库准备数据库准备1创建数据库创建数据库在MySQL中创建数据库,名称为emarket,
4、其中建立5个表,分别为category表(商品类别表)、commodity表(商品表)、member表(会员表)、orders表(订单表)和orderitems表(订单项表)。2设计表设计表(1)表结构设计对以上建好的各表设计其表结构字段属性如下。category表设计见表17.1。列 名类 型长 度允 许 空 值说 明CategoryIDint6否商品类别编号,主键,自动递增Namechar16否商品类别名称数据库准备数据库准备commodity表设计见表17.2。列 名类 型长 度允 许 空 值说 明CommodityIDint6否商品编号,主键,自动递增CategoryIDint6否商品
5、类别编号Namechar32否商品名称Pictureblob默认是商品图片InputPricefloat6,2位小数否商品购入价格(进价)OutputPricefloat6,2位小数否商品售出价格(单价)Amountint6否商品库存量数据库准备数据库准备member表设计见表17.3。列 名类 型长 度允 许 空 值说 明MemberIDchar16否会员账号,主键PassWordchar50否登录口令(以MD5加密存储)Namevarchar32否会员名Sexbit1否性别:1表示男,0表示女,默认1Emailvarchar32是电子邮箱Addressvarchar128是联系地址Phon
6、echar16是联系电话RegisterDatedate默认否注册日期数据库准备数据库准备orders表设计见表17.4。列 名类 型长 度允 许 空 值说 明OrderIDint6否订单编号,主键,自动递增MemberIDchar16否会员账号PaySumfloat6,2位小数是付款总金额PayWayvarchar32是付款方式OTimedatetime默认是下单日期时间orderitems表设计见表17.5。列 名类 型长 度允 许 空 值说 明OrderIDint6否订单编号,主键CommodityIDint6否商品编号,主键Countint11否数量Affirmbit1否是否确认:0没
7、有确认,1确认,默认0SendGoodsbit1否是否发货:0没有发货,1发货,默认0数据库准备数据库准备(2)外键关联设计好表结构之后,为表之间建立外键关联。本例要在commodity、orders和orderitems表上建立4个外键关联。commodity表外键CategoryID引用category表主键,在Navicat for MySQL数据库可视化工具的commodity表设计窗口中选择“外键”选项卡,如图17.5所示设置即可。数据库准备数据库准备 orders表外键MemberID引用member表主键,在orders表设计窗口中选择“外键”选项卡,按如图17.6所示进行设置即
8、可。数据库准备数据库准备 orderitems表在该表上要设置两个外键:OrderID引用orders表的主键OrderID,CommodityID引用commodity表的主键CommodityID。在orderitems表设计窗口中选择“外键”选项卡,按如图17.7所示进行设置即可。数据库准备数据库准备(3)数据录入设计好表及其关联之后,往各表中预先录入一些数据记录以供后面测试运行程序之用,如图17.8图17.10所示。数据库准备数据库准备图17.10 member表数据为体现实际应用,本章实例所用的商品信息皆是从真实的电商网站选取,各商品的样品图片由本书随源代码提供,读者可预先编写以下代
9、码将其录入数据库commodity表的Picture字段。数据库准备数据库准备3创建视图创建视图根据应用需要,本例要创建一个视图commodity_inf,用于显示商品的基本信息(商品名称、进价、售价和库存),创建视图的操作如下。展开数据库节点,右击“视图”“新建视图”,打开MySQL的视图创建工具,如图17.11所示。第第17章章 【综合实例】电子商城系统【综合实例】电子商城系统商品管理系统界面设计商品管理系统界面设计0101总总 体体 设设 计计总体设计总体设计在开发环境项目目录树状视图中,双击mainwindow.ui切换至可视化界面设计模式,如图17.12所示,在其上拖曳设计出商品管理
10、系统的整个图形界面。0202“新品入库新品入库”页页“新品入库新品入库”页页“新品入库”页界面设计效果如图17.13所示。“新品入库”页界面上各控件的属性设置见表17.6。“新品入库新品入库”页页表17.6“新品入库”页界面上各控件的属性设置序 号名 称类 型属 性 设 置newCategoryComboBoxQComboBoxnewNameLineEditQLineEditnewInputPriceLineEditQLineEditnewOutputPriceLineEditQLineEditnewCountSpinBoxQSpinBoxalignment:水平的,AlignHCenter;
11、value:1newUploadPushButtonQPushButtontext:上 传.newPictureLabelQLabelgeometry:宽度151,高度151;frameShape:Box;frameShadow:Sunken;text:空;scaledContents:勾选newPutinStorePushButtonQPushButtontext:入 库newClearancePushButtonQPushButtontext:清 仓commodityTableViewQTableViewhorizontalHeaderVisible:勾选;horizontalHeader
12、DefaultSectionSize:120;horizontalHeaderMinimumSectionSize:25;horizontalHeaderStretchLastSection:勾选;verticalHeaderVisible:取消勾选0303“预售订单预售订单”页页“预售订单预售订单”页页“预售订单”页界面设计效果如图17.14所示。“预售订单”页界面上各个控件的属性设置见表17.7。“预售订单预售订单”页页表17.7“预售订单”页界面上各控件的属性设置序 号名 称类 型属 性 设 置preCategoryComboBoxQComboBoxpreNameComboBoxQCom
13、boBoxpreOutputPriceLabelQLabelframeShape:Box;frameShadow:Sunken;text:空preAmountLabelQLabelframeShape:Box;frameShadow:Sunken;text:空preCountSpinBoxQSpinBoxalignment:水平的,AlignHCenter;value:1preTotalLabelQLabelframeShape:Box;frameShadow:Sunken;text:空prePictureLabelQLabelgeometry:宽度151,高度151;frameShape:B
14、ox;frameShadow:Sunken;text:空;scaledContents:勾选preSellPushButtonQPushButtontext:出 售prePlaceOrderPushButtonQPushButtonenabled:取消勾选;text:下 单sellListWidgetQListWidgetgeometry:宽度441,高度3110404登登 录录 窗窗 口口1创建步骤创建步骤2窗口设计窗口设计1创建步骤创建步骤(1)右击项目名,选择“添加新文件”菜单项,弹出“新建文件”对话框,如图17.15所示,选择模板“Qt”“Qt设计师界面类”,单击“Choose.”按钮
15、。1创建步骤创建步骤(2)在“Qt设计器界面类”对话框中,选择界面模板为“Dialog without Buttons”,如图17.16所示,单击“下一步”按钮。1创建步骤创建步骤(3)在导航页上,将登录窗口所对应的类名命名为“LoginDialog”,如图17.17所示,单击“下一步”按钮。1创建步骤创建步骤(4)在“项目管理”页可看到即将添加到项目中的源文件名,确认无误后,单击“完成”按钮,如图17.18所示。2窗口设计窗口设计新添加的登录窗口可以像程序主窗体一样在可视化设计器中进行设计,我们向其中拖入若干控件,最终效果如图17.19所示,为便于指示,我们对这些控件也加了、,数字标注。2窗
16、口设计窗口设计登录窗口界面上各控件的属性设置见表17.8。序 号名 称类 型属 性 设 置label_3QLabeltext:欢 迎 进 入 电 子 商 城;font:微软雅黑,16;alignment:水平的,AlignHCenterlabelQLabeltext:管 理 员:;font:微软雅黑,12adminLineEditQLineEditfont:微软雅黑,14;text:b02020622label_2QLabeltext:口 令:;font:微软雅黑,12pwdLineEditQLineEditfont:微软雅黑,14;text:空;echoMode:PasswordloginP
17、ushButtonQPushButtonfont:微软雅黑,12;text:登 录exitPushButtonQPushButtonfont:微软雅黑,12;text:退 出第第17章章 【综合实例】电子商城系统【综合实例】电子商城系统商品管理系统功能实现商品管理系统功能实现0101登录功能实现登录功能实现登录功能实现登录功能实现登录功能实现在logindialog.h头文件和logindialog.cpp源文件中。首先,在logindialog.h头文件中声明变量和方法,完整代码。然后,在logindialog.cpp源文件中实现登录验证功能,完整代码。其中,其中,(a)Qstring pw
18、dMd5=strToMd5(ui-pwdLineEdit-text();:由于从数据库中查出的口令字符串是已经过MD5加密的,故这里需要先使用自定义的MD5转换函数strToMd5()将用户输入的口令字符串转为MD5加密串后再与从数据库中查出的内容比较以验证。(b)qba=QCryptographicHash:hash(str.toLatin1(),QCryptographicHash:Md5);:Qt 5提供了QCryptographicHash类,该类实现了生成密码散列的方法,可用于生成二进制或文本数据的加密散列值。该类目前支持MD4、MD5、SHA-1、SHA-224、SHA-256、S
19、HA-384和SHA-512等多种加密算法。0202主体程序框架主体程序框架主体程序框架主体程序框架(1)main.cpp它是整个系统的主启动文件,代码。其中,其中,(a)if(!createMySqlConn():createMySqlConn()是我们编写的一个连接后台数据库的方法,它返回true表示连接成功,返回false表示失败。程序在开始启动时就通过执行该方法来检查数据库连接是否就绪。若连接不成功,系统则通过启动MySQL服务进程的方式再尝试一次;若依旧连接不成功,则提示连接失败,交由用户检查排除故障。(b)if(logindlg.exec()=QDialog:Accepted):之
20、前在登录对话框的实现中,若用户通过了口令验证则执行对话框类的“QDialog:accept();”方法,在这里判断对话框类的返回结果,即“QDialog:Accepted”表示验证通过。(2)mainwindow.h它是程序头文件,包含程序中用到的各个全局变量的定义、方法声明,完整的代码。(3)mainwindow.cpp它是本程序的主体源文件,其中包含各方法功能的具体实现代码,框架。0303界面初始化功能实现界面初始化功能实现界面初始化功能实现界面初始化功能实现启动程序时,首先需要对界面显示的信息进行初始化,在窗体的构造方法MainWindow:MainWindow(QWidget*pare
展开阅读全文