毕业设计(论文)网上图书销售系统实现前台.doc

上传人:仙人指路1688 文档编号:3984504 上传时间:2023-03-30 格式:DOC 页数:36 大小:406.50KB
返回 下载 相关 举报
毕业设计(论文)网上图书销售系统实现前台.doc_第1页
第1页 / 共36页
毕业设计(论文)网上图书销售系统实现前台.doc_第2页
第2页 / 共36页
毕业设计(论文)网上图书销售系统实现前台.doc_第3页
第3页 / 共36页
毕业设计(论文)网上图书销售系统实现前台.doc_第4页
第4页 / 共36页
毕业设计(论文)网上图书销售系统实现前台.doc_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《毕业设计(论文)网上图书销售系统实现前台.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)网上图书销售系统实现前台.doc(36页珍藏版)》请在三一办公上搜索。

1、天 津 大 学 网 络 教 育 学 院本科毕业论文题目:网上图书销售系统-实现前台完成期限:2011年 4月20 日 至 2011年 5月 20日学 习 中 心 年 级 专 业 指 导 教 师 姓 名 学 号 目 录摘 要21 引言12 需求分析22.1 国内外研究的现状22.2 功能需求22.3 数据描述42.4 数据库描述53 概要设计63.1 系统运行环境63.2 系统功能模块设计63.3 系统处理流程73.4 接口设计74 详细设计94.1 登录模块及主界面94.2 图书录入模块114.3 图书销售模块164.4 销售统计模块214.5 查询库存模块245 系统测试276 操作手册32

2、7 结论337.1 系统功能337.2 系统不足和改进337.3 总结33致 谢34参考文献35摘 要随着Internet的迅速崛起,网络信息化得发展,在线图书销售利用Vc+连接SQL数据库的方式也迅速的发展并深入人们的日常生活中。更多的人更愿意秩足不出户就可以挑选购买自己喜欢的各种书籍,这样大大缩短了购书的时间,提高了效率。可见,网上图书销售系统跨越了时间的空间的限制,给商业流通领域带来了不一样的变革,也给消费者带来了便捷。关键词:图书;销售;库存;网上购书系统;电子商务 The Design and Realization of SQL Bookshop Management System

3、 Beased on . NET Abstract With the rapid rise of Internet, the development of network informati on technology , Sql bookshop system as a typical electronic commerce system also develops rapidly and deeps into peoples life. More and more people could be willing to select and buy their favorite books

4、at home, so that is greatly reducing the time of shopping, and improving the efficiency. Obviously, the sql bookshop management system has crossed the constraint of the time and the space , it not only brings a different chang to the commercial domain, but also brings convenient to the consumers. Ke

5、y words : Sql bookshop system ; Books ; Electronic commerce ; Stocks Sale 1 引言 传统的图书销售管理方法,都是通过人工统计和计算的管理方式进行的。这样的管理方法不但费时费力,也容易产生计算上的错误和疏漏;计算机技术的全面普及,打破了书店管理的传统管理方法,提高了管理效率的同时,克服了传统管理方法中易产生的问题,使管理员能够有序的、全面的对图书销售和库存进行管理。网上图书销售系统可以完成书店的日常管理,如图书录入、图书销售、销售统计、查询库存等功能,迅速准确地对已售图书和剩余库存进行统计和汇总工作,大大提高了书店的管理效

6、率和准确性。2 需求分析2.1 国内外研究的现状在现代化的书店中,对图书销售工作运用现代化技术进行管理,是提高工作效率的有效手段。图书销售管理是书店日常工作中非常重要的一个方面,越来越受到书店经营者的重视。通过计算机管理系统对图书销售进行全面的统计与管理,全面解决了书店经营过程中所遇到的各种问题,并且克服了传统管理方式中的易出错等问题。图书销售管理系统成为书店管理的首选管理工具。2.2 功能需求2.2.1待开发软件的功能需求本系统是根据书店的实际需求而开发的,要求稳定、可靠的实现图书销售的自动化管理,通过本系统可以达到以下目标:1. 图书录入,包括图书的基本信息,如分类、进价、售价、作者等。2

7、. 图书销售,包括图书的售价、折扣、销售日期,并实现对库存量的修改。3. 销售统计,包括按图书类型、书名、作者、出版社等进行统计。4. 查询库存,对指定的某本图书剩余库存量进行查询。5. 售完图书查询,对已售完图书进行查询。2.2.2待开发软件的功能按照用户需求,要满足以上功能,我设计出了图书销售管理系统的系统功能图,如图2.1所示。图书销售管理系统图书录入查询库存图书销售销售统计售完图书查询图2.1 图书销售管理系统的系统功能图综合系统要求,对图2.1所示的系统功能解释如下:图书录入,包括图书的基本信息,如分类、进价、售价、作者等。图书销售,包括图书的售价、折扣、销售日期,并实现对库存量的修

8、改。销售统计,包括按图书类型、书名、作者、出版社等进行统计。查询库存,对指定的某本图书剩余库存量进行查询。售完图书查询,对已售完图书进行查询。通过以上分析,可以得到仓库管理系统的数据流图,如图2.2所示。管理员图书信息处理图书管理反馈信息图书信息反馈信息记录数据数据库图2.2 图书管理系统的数据流图2.3 数据描述2.3.1数据库概要说明数据库中包括管理员信息表、图书基本信息表、图书类型表、图书销售记录表等4个数据表。图2.3所示的即为本系统中数据库中的数据表结构图,该数据表结构图包含系统所有数据表。可以清晰地反应数据库信息。图2.3 数据表结构图2.3.2主要数据表的结构表2.1 Pwd(管

9、理员信息表)字段名数据类型字段大小描述IDInt4管理员帐号PasswordNvarchar50r密码表2.2 BookInfo(图书基本信息表)字段名数据类型字段大小描述BookIDInt4图书编号BookNamenvarchar50图书名称CategoryIDInt4图书类型编号Authornvarchar50作者Publishernvarchar50出版社PublishDatesmalldatetime4出版日期Purchasefloat8进价Pricefloat8售价StockInt4库存本数DiscountInt4折扣BarCodenvarchar50条形码表2.3 BookCate

10、gory(图书类型表)字段名数据类型长度描述CategoryIDInt4图书类型编号CategoryNameNvarchar8图书类型名称表2.4 BookSale(图书销售记录表)字段名数据类型长度描述IDInt4销售记录编号BookIDInt4图书编号SalePriceFloat8实际售价SaleDatesmalldatetime4销售日期2.4 数据库描述本软件采用SQL数据库。3 概要设计本系统是根据书店的实际需求而开发的,完全能够帮助书店实现高效、准确的图书销售自动化管理。在分析阶段,我们已经提出了系统的结构和数据字典。本节我们将对系统的使用环境作简要介绍,并对该系统作概要设计。3.

11、1 系统运行环境P4机Windows操作系统Visual C+6.03.2 系统功能模块设计在前面系统功能分析的基础上,结合Visual C+程序编制的特点,得到如图3.1所示的系统功能模块图。图书销售管理系统图书录入模块(M2)查询库存模块(M5)图书销售模块(M3)销售统计模块(M4)售完图书查询模块(M6)管理员登录模块(M1)图3.1图书销售管理系统功能模块图各模块功能分配如下:(1)用户登陆功能:管理员登陆模块(M1)。(2)图书录入功能:图书录入模块(M2)。(3)图书销售功能:图书销售模块(M3)。(4)销售统计功能:销售统计模块(M4)。(5)查询图书库存功能:查询库存模块(M

12、5)。(6)售完图书查询功能:售完图书查询模块(M6)。3.3 系统处理流程(1)系统启动,进入身份验证。(2)初始化系统,导入数据库。(3)录入图书信息。(4)图书销售。(5)统计图书销售信息。(6)查询图书库存信息。(7)查询已售完图书信息。(8)退出系统。3.4 接口设计3.4.1 外部接口(1) 用户界面采用图形用户界面,包含菜单、按钮、对话框等元素。(2) 软件接口软件运行于Visual C+6.0平台上。(3) 硬件接口运行于PC机上。3.4.2 内部接口(1)用户登陆模块(M1):由相应事件驱动消息激活,完成用户登陆功能,之后进入消息循环状态。(2)图书销售模块(M3):由相应事

13、件驱动消息激活,完成图书销售功能,之后进入消息循环状态。(3)销售统计模块(M4):由相应事件驱动消息激活,完成销售统计功能,之后进入消息循环状态。(4)查询库存模块(M5):由相应事件驱动消息激活,完成查询库存功能,之后进入消息循环状态。(5)售完图书查询模块(M6):由相应事件驱动消息激活,完成售完图书查询功能,之后进入消息循环状态。4 详细设计该系统采用VC+6.0中的MFC连接SQL数据库的方式,使用图形用户界面,主要实现图书录入、图书销售等功能。下面具体对各模块进行介绍。4.1 登录模块及主界面在登录界面(如图4.1所示)中输入用户名和密码,登录成功后进入主界面。登陆框流程图如图4.

14、2所示,系统主界面如图4.3所示,单击某个按钮就能弹出某个功能的界面。图4.1 系统登录界面输入用户名开始验证密码是否正确输入密码登录成功进入主界面结束是否选择帐号类型图4.2登录模块流程图图4.3 系统主界面4.2 图书录入模块4.2.1 实现目标添加图书信息,图书录入对话框的设计如图4.4所示。“保存”按钮对应的方法为RAddBookDlg:OnSave(),流程图如图4.5所示。图4.4 图书录入对话框开始结束输入图书基本信息判断输入是否正确且完整添加该信息到关联表并写入数据库 是否图4.5 RAddBookDlg:OnSave()方法的流程图4.2.2 设计步骤(1)向项目中添加一个新

15、Dialog资源,资源ID为IDD_ADDBOOK。在IDD_YGTJK对话框资源中单击鼠标右键,执行弹出快捷菜单的“Properties”菜单命令,打开“Dialog Properties”对话框。在“Dialog Properties”对话框中选择General选项卡,更改其“Caption”文本框内容为“图书信息录入”。(2)从Controls面板上向Dialog资源中添加所需控件,更改资源的属性,并为资源设置相对应的变量,如表4.1所示。表4.1 图书录入Dialog资源属性设置IDPropertiesMember VariablesTypeMemberIDC_BK_CATEGORY默

16、认文本CategoryNameIDC_BK_NAME默认文本BookNameIDC_BK_AUTHOR默认文本AuthorIDC_BK_PUBLISHER默认文本PublisherIDC_BK_DATE默认日期/时间PublishDateIDC_BK_PURCHASE默认数字PurchaseIDC_BK_PRICE默认数字PriceIDC_BK_PAYOFF默认数字PriceIDC_BK_STOCK默认数字StockIDC_BK_BARCODE默认文本BarCodeIDC_BK_DISCOUNT默认数字DiscountIDC_RESETCaption 重填IDC_SAVECaption 添加I

17、DCANCELCaption 退出4.2.3 代码分析(1)打开ClassWizard窗口,添加在OnInitDialog成员函数,向OnInitDialog添加代码如下:BOOL RAddBookDlg:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initialization hereGetBookGategory();return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should

18、return FALSE(2)当用户单击“保存“按钮时,实现添加图书功能,其响应代码如下:void RAddBookDlg:OnSave() / TODO: Add your control notification handler code hereUpdateData(TRUE);if(!IsValidInput()return ;if(IDYES != AfxMessageBox(确定要保存吗?,MB_YESNO) /放弃保存return ;if(SaveData()AfxMessageBox(保存成功!);/保存后重置数据m_bHasNewBook = true;OnReset();G

19、etDlgItem(IDC_BK_CATEGORY)-SetFocus();elseAfxMessageBox(保存失败!);(3)判断输入信息是否正确的函数是IsValidInput(),其响应代码如下:bool RAddBookDlg:IsValidInput()CString str = 0123456789;if(m_strBookCategory.IsEmpty() | m_strBookCategory.FindOneOf(str) != -1)AfxMessageBox(输入有误!图书类型不能为空或包含数字。);GetDlgItem(IDC_BK_CATEGORY)-SetFoc

20、us();return false;if(m_strBookName.IsEmpty()AfxMessageBox(输入有误!书名不能为空。);GetDlgItem(IDC_BK_NAME)-SetFocus();return false;if(m_strAuthor.IsEmpty() | m_strAuthor.FindOneOf(str) != -1)AfxMessageBox(输入有误!作者名称不能为空或包含数字。);GetDlgItem(IDC_BK_AUTHOR)-SetFocus();return false;if(m_strPublisher.IsEmpty()| m_strP

21、ublisher.FindOneOf(str) != -1)AfxMessageBox(输入有误!出版社名称不能为空或包含数字。);GetDlgItem(IDC_BK_PUBLISHER)-SetFocus();return false;if(m_dPurchase SetFocus();return false;if(m_dPrice SetFocus();return false;if( m_lDiscount 100)AfxMessageBox(图书折扣应为0-100之间正值!);GetDlgItem(IDC_BK_DISCOUNT)-SetFocus();return false;if

22、(m_lStock SetFocus();return false;if(m_strBarcode.IsEmpty() | m_strBarcode.GetLength() 15)AfxMessageBox(条形码应为15位整数!);GetDlgItem(IDC_BK_BARCODE)-SetFocus();return false;/AfxMessageBox(m_strBookName + rn +/m_strBookCategory + rn +/m_strAuthor + rn +/m_strPublisher + rn +/m_strBarcode );return true;4.3

23、 图书销售模块4.3.1 实现目标实现图书销售功能,图书销售对话框设计如图4.6所示。“销售”按钮对应的方法为RSaleBookDlg:OnOK(),流程图如图4.7所示。图4.6 图书销售对话框开始结束输入书名或条形码判断输入是否正确且FindBook()函数返回值为1添加该信息到关联表并写入数据库是否图4.7 RSaleBookDlg:OnOK()方法的流程图4.3.2 实现步骤(1)向项目中添加一个新Dialog资源,资源ID为IDD_SALEBOOK。在IDD_YGGONGZITJ对话框资源中单击鼠标右键,执行弹出快捷菜单的 “Properties”菜单命令,打开“Dialog Pro

24、perties”对话框。在“Dialog Properties”对话框中选择General选项卡,更改其“Caption”文本框内容为“图书销售。”(2)从Controls面板上向Dialog资源中添加相关控件,更改资源的属性,并为资源设置相对应的变量,如表3.2所示:表4.2 图书销售添加Dialog资源属性设置IDPropertiesMember VariablesTypeMemberIDC_SBK_NAME默认文本BookNameIDC_SBK_BARCODE默认文本BarCodeIDC_SBK_PRICE默认数字PriceIDC_SBK_SALEPRICE默认数字SalePriceID

25、C_SBK_DISCOUNT默认数字DiscountIDC_SBK_DATE默认日期/时间SaleDateIDOKCaption 销售IDCANCELCaption 退出4.3.3 代码分析(1)为“销售”按钮添加代码,实现图书销售功能,代码如下:void RSaleBookDlg:OnOK() / TODO: Add extra validation hereif(!m_bReadySale)m_bReadySale = FindBook();elseUpdateData(TRUE);CString strMsg;strMsg.Format(是否出售?n 书名:%sn 价格:%.2f”,m_

26、strBookName,m_dSalePrice);if(IDYES = AfxMessageBox(strMsg,MB_YESNO)ModifyStock();/修改图书库存SaveSaleRecord();/记录销售记录Init();UpdateData(FALSE);GetDlgItem(IDC_SBK_NAME)-SetFocus();m_editDiscount.EnableWindow(FALSE);/CDialog:OnOK();(2)判断销售是否能够成功的函数是RSaleBookDlg:FindBook(),其代码如下:bool RSaleBookDlg:FindBook()

27、/ TODO: Add your control notification handler code hereUpdateData(TRUE);CString strSql ;_variant_t var;double dPurchase;if(!m_strBookName.IsEmpty()strSql.Format(SELECT * FROM BookInfo WHERE BookName = %s and Stock 0, m_strBookName);else if(!m_strBarCode.IsEmpty()strSql.Format(SELECT * FROM BookInfo

28、WHERE BarCode = %s and Stock 0, m_strBarCode);elseAfxMessageBox(请输入书名或条码!);GetDlgItem(IDC_SBK_NAME)-SetFocus();return false;CRBookSaleApp* pApp = (CRBookSaleApp*)AfxGetApp();trypApp-m_pRecordset-Open(strSql.AllocSysString(),pApp-m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdTex

29、t);if(pApp-m_pRecordset-adoEOF)AfxMessageBox(查无此书!请输入书名或条码无误。);pApp-m_pRecordset-Close();return false;var = pApp-m_pRecordset-GetCollect(BookID);if(var.vt != NULL)m_lBookID = var.lVal;var = pApp-m_pRecordset-GetCollect(Discount);if(var.vt != NULL)m_lDiscount = var.lVal;var = pApp-m_pRecordset-GetCol

30、lect(Price);if(var.vt != NULL)m_dPrice = var.dblVal;var = pApp-m_pRecordset-GetCollect(Purchase);if(var.vt != NULL)dPurchase = var.dblVal;var = pApp-m_pRecordset-GetCollect(CategoryID);if(var.vt != NULL)m_lCategory = var.lVal;pApp-m_pRecordset-Close();catch(_com_error * e)AfxMessageBox(e-ErrorMessag

31、e();m_editDiscount.EnableWindow(m_dPrice = dPurchase);m_lDiscount = (m_dPrice = dPurchase) ? m_lDiscount :100;/售价小于进价时,不允许打折m_dSalePrice = m_dPrice * (double(m_lDiscount)/100); /计算折后价UpdateData(FALSE);return true; 4.4 销售统计模块4.4.1 实现目标实现对已销售的图书进行统计的功能,销售统计对话框如图4.8所示。图4.8 销售统计对话框4.4.2 设计步骤(1)向项目中添加一个新

32、Dialog资源,资源ID为IDD_REPORT。在IDD_REPORT对话框资源中单击鼠标右键,执行弹出快捷菜单的“Properties”菜单命令,打开“Dialog Properties”对话框。在“Dialog Properties”对话框中选择General选项卡,更改其“Caption”文本框内容为“销售统计”。(2)从Controls面板上向Dialog资源中添加相应控件,更改资源的属性,并为资源设置相应的变量,如表4.3所示:表4.3用户信息管理Dialog资源属性设置IDPropertiesMember VariablesTypeMemberIDC_RADIO2默认单选框IDC

33、_RADIO3默认单选框IDC_RADIO4默认单选框IDC_RADIO5默认单选框IDC_RADIO6默认单选框IDC_STATIC默认单选框IDOKCaption 确定IDCANCELCaption 取消4.4.3 代码分析查询函数为CRBookSaleView:OnSaleReport(),代码如下:void CRBookSaleView:OnSaleReport() / TODO: Add your command handler code hereRReportDlg dlg;dlg.m_iReportType = m_iReportType ;if(IDOK = dlg.DoMod

34、al()m_iReportType = dlg.m_iReportType;/设置销售报表标题/前2个标题类型为用户模式和书店管理模式,故此处加2int iTitleType = 0;switch(m_iReportType)case 0:/图书类型统计iTitleType = CATEGORY_REPORT_TITLE;break;case 1:/图书名称统计iTitleType = BOOKNAME_REPORT_TITLE;break;case 2:/图书作者统计iTitleType = AUTHOR_REPORT_TITLE;break;case 3:/出版社统计iTitleType

35、= PUBLISHER_REPORT_TITLE;break;case 4:/全部销售记录统计iTitleType = SALE_REPORT_TITLE;break;default:break;SetTitle(iTitleType);ShowReport();4.5 查询库存模块4.5.1 实现目标实现对已销售的图书进行统计的功能,销售统计对话框如图4.9所示。图4.9 查询库存对话框4.5.2 设计步骤(1)向项目中添加一个新Dialog资源,资源ID为IDD_QUERY。在IDD_QUERY对话框资源中单击鼠标右键,执行弹出快捷菜单的“Properties”菜单命令,打开“Dialog

36、 Properties”对话框。在“Dialog Properties”对话框中选择General选项卡,更改其“Caption”文本框内容为“查询”。(2)从Controls面板上向Dialog资源中添加相应控件,更改资源的属性,并为资源设置相应的变量,如表4.4所示:表4.4库存查询Dialog资源属性设置IDPropertiesMember VariablesTypeMemberIDC_BOOK_CATEGORY默认组合框IDC_BOOK_NAME默认文本BookNameIDC_BOOK_AUTHOR默认文本AuthorIDC_BOOK_PUBLISHER默认文本PublisherIDO

37、KCaption 确定IDCANCELCaption 取消4.5.3 代码分析(1)“确定”按钮的函数为RQueryDlg:OnOK(),代码如下:void RQueryDlg:OnOK() / TODO: Add extra validation hereUpdateData(TRUE);/单独处理类型为全部的情况,0表示选择类型为全部m_ctrlCategory.GetLBText(m_ctrlCategory.GetCurSel(),m_strCategory);if(m_strCategory = _T(全部)m_strCategory = _T();CDialog:OnOK();(2

38、)组合框根据图书类型查询的函数为RQueryDlg:GetBookGategory(),代码如下:void RQueryDlg:GetBookGategory()int num = 0;CString strSql;_variant_t var;m_ctrlCategory.ResetContent();/清空组合框中原有数据/生成SQL查询语句,在数据苦中查找图书类型strSql.Format(SQL_SELECT_CATEGORYNAME);CRBookSaleApp* pApp = (CRBookSaleApp*)AfxGetApp();trypApp-m_pRecordset-Open

39、(strSql.AllocSysString(),pApp-m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);/遍历数据库中BookCategory表,获取全部图书类型while(!(pApp-m_pRecordset-adoEOF)var = pApp-m_pRecordset-GetCollect(CategoryName);if(var.vt != NULL)m_ctrlCategory.AddString(LPCSTR)_bstr_t(var);pApp-m_pRecordset-Move

40、Next();num+;m_ctrlCategory.AddString(全部);pApp-m_pRecordset-Close();catch(_com_error * e)AfxMessageBox(e-ErrorMessage();/设置当前选择类型为全部m_ctrlCategory.SetCurSel(num);5 系统测试进入VC+6.0,打开工程RBookSale.dsw,然后进入源程序,接着编译和运行即可运行。下面将给出系统运行的过程。(1)打开程序后,选择“使用书店身份登录”,输入密码“111”,进入主对话框,如图5.1。图5.1 主对话框(2)在功能菜单下选择图书录入功能,添加一本新的图书信息,如图5.2。图5.2 添加图

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号