网上图书销售系统数据库课程设计报告(共36页).doc_第1页
网上图书销售系统数据库课程设计报告(共36页).doc_第2页
网上图书销售系统数据库课程设计报告(共36页).doc_第3页
网上图书销售系统数据库课程设计报告(共36页).doc_第4页
网上图书销售系统数据库课程设计报告(共36页).doc_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数学与计算机学院课程设计说明书课 程 名 称: 数据库-课程设计 课 程 代 码: 题 目: 网上图书销售系统-实现前台 年级/专业/班:学 生 姓 名: 学 号: 开 始 时 间: 20132013 年 6 6 月 9 日完 成 时 间: 20132013 年 6 6 月 21 日课程设计成绩:学习态度及平时成绩(30)技术水平与实际能力(20)创新(5)说明书撰写质量(45)总 分(100)指导教师签名: 年 月 日目 录摘摘 要要.21 1 引言引言.12 2 需求分析需求分析.22.1 国内外研究的现状 .22.2 功能需求 .22.3 数据描述 .42.4 数据库描述 .53 3 概

2、要设计概要设计.63.1 系统运行环境 .63.2 系统功能模块设计 .63.3 系统处理流程 .73.4 接口设计 .74 4 详细设计详细设计.94.1 登录模块及主界面 .94.2 图书录入模块 .114.3 图书销售模块 .164.4 销售统计模块 .214.5 查询库存模块 .245 5 系统测试系统测试.276 6 操作手册操作手册.327 7 结论结论.337.1 系统功能 .337.2 系统不足和改进 .337.3 总结 .33致致 谢谢.34参考文献参考文献.35摘 要随着计算机的普及书店规模的不断扩大,使图书销售管理成为书店管理中的一个重要课题。通过图书销售管理系统可以解决

3、书店管理中遇到的各种问题。本系统分析了市场需求和实际需要,利用 VC+连接 SQL 数据库的方式,主要实现了书店的网上图书销售管理,该系统具有处理图书录入、图书销售、销售统计、查询库存等功能。关键词:关键词:图书;销售;库存1 1 引言引言 传统的图书销售管理方法,都是通过人工统计和计算的管理方式进行的。这样的管理方法不但费时费力,也容易产生计算上的错误和疏漏;计算机技术的全面普及,打破了书店管理的传统管理方法,提高了管理效率的同时,克服了传统管理方法中易产生的问题,使管理员能够有序的、全面的对图书销售和库存进行管理。网上图书销售系统可以完成书店的日常管理,如图书录入、图书销售、销售统计、查询

4、库存等功能,迅速准确地对已售图书和剩余库存进行统计和汇总工作,大大提高了书店的管理效率和准确性。2 需求分析2.1 国内外研究的现状在现代化的书店中,对图书销售工作运用现代化技术进行管理,是提高工作效率的有效手段。图书销售管理是书店日常工作中非常重要的一个方面,越来越受到书店经营者的重视。通过计算机管理系统对图书销售进行全面的统计与管理,全面解决了书店经营过程中所遇到的各种问题,并且克服了传统管理方式中的易出错等问题。图书销售管理系统成为书店管理的首选管理工具。2.2 功能需求2.2.1 待开发软件的功能需求本系统是根据书店的实际需求而开发的,要求稳定、可靠的实现图书销售的自动化管理,通过本系

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

6、基本信息,如分类、进价、售价、作者等。图书销售,包括图书的售价、折扣、销售日期,并实现对库存量的修改。销售统计,包括按图书类型、书名、作者、出版社等进行统计。查询库存,对指定的某本图书剩余库存量进行查询。售完图书查询,对已售完图书进行查询。通过以上分析,可以得到仓库管理系统的数据流图,如图 2.2 所示。管理员图书信息处理图书管理反馈信息图书信息反馈信息记录数据数据库图 2.2 图书管理系统的数据流图2.3 数据描述2.3.1 数据库概要说明数据库中包括管理员信息表、图书基本信息表、图书类型表、图书销售记录表等4 个数据表。图 2.3 所示的即为本系统中数据库中的数据表结构图,该数据表结构图包

7、含系统所有数据表。可以清晰地反应数据库信息。图 2.3 数据表结构图2.3.22.3.2 主要数据表的结构表 2.1 Pwd(管理员信息表)字段名数据类型字段大小描述IDint4管理员帐号Passwordnvarchar50r密码表 2.2 BookInfo(图书基本信息表)字段名数据类型字段大小描述BookIDint4图书编号BookNamenvarchar50图书名称CategoryIDint4图书类型编号Authornvarchar50作者Publishernvarchar50出版社PublishDatesmalldatetime4出版日期Purchasefloat8进价Priceflo

8、at8售价Stockint4库存本数Discountint4折扣BarCodenvarchar50条形码表 2.3 BookCategory(图书类型表)字段名数据类型长度描述CategoryIDint4图书类型编号CategoryNamenvarchar8图书类型名称表 2.4 BookSale(图书销售记录表)字段名数据类型长度描述IDint4销售记录编号BookIDint4图书编号SalePricefloat8实际售价SaleDatesmalldatetime4销售日期2.4 数据库描述本软件采用SQL数据库。3 概要设计本系统是根据书店的实际需求而开发的,完全能够帮助书店实现高效、准确

9、的图书销售自动化管理。在分析阶段,我们已经提出了系统的结构和数据字典。本节我们将对系统的使用环境作简要介绍,并对该系统作概要设计。3.1 系统运行环境P4 机Windows 操作系统Visual C+6.03.2 系统功能模块设计在前面系统功能分析的基础上,结合 Visual C+程序编制的特点,得到如图 3.1所示的系统功能模块图。图书销售管理系统图书录入模块(M2)查询库存模块(M5)图书销售模块(M3)销售统计模块(M4)售完图书查询模块(M6)管理员登录模块(M1)图 3.1 图书销售管理系统功能模块图各模块功能分配如下:(1)用户登陆功能:管理员登陆模块(M1) 。(2)图书录入功能

10、:图书录入模块(M2) 。(3)图书销售功能:图书销售模块(M3) 。(4)销售统计功能:销售统计模块(M4) 。(5)查询图书库存功能:查询库存模块(M5) 。(6)售完图书查询功能:售完图书查询模块(M6) 。3.3 系统处理流程(1)系统启动,进入身份验证。(2)初始化系统,导入数据库。(3)录入图书信息。(4)图书销售。(5)统计图书销售信息。(6)查询图书库存信息。(7)查询已售完图书信息。(8)退出系统。3.4 接口设计3.4.1 外部接口(1) 用户界面采用图形用户界面,包含菜单、按钮、对话框等元素。(2) 软件接口软件运行于Visual C+6.0平台上。(3) 硬件接口运行于

11、PC机上。3.4.2 内部接口(1)用户登陆模块(M1):由相应事件驱动消息激活,完成用户登陆功能,之后进入消息循环状态。(2)图书销售模块(M3):由相应事件驱动消息激活,完成图书销售功能,之后进入消息循环状态。(3)销售统计模块(M4):由相应事件驱动消息激活,完成销售统计功能,之后进入消息循环状态。(4)查询库存模块(M5):由相应事件驱动消息激活,完成查询库存功能,之后进入消息循环状态。(5)售完图书查询模块(M6):由相应事件驱动消息激活,完成售完图书查询功能,之后进入消息循环状态。4 详细设计该系统采用 VC+6.0 中的 MFC 连接 SQL 数据库的方式,使用图形用户界面,主要

12、实现图书录入、图书销售等功能。下面具体对各模块进行介绍。4.1 登录模块及主界面在登录界面(如图 4.1 所示)中输入用户名和密码,登录成功后进入主界面。登陆框流程图如图 4.2 所示,系统主界面如图 4.3 所示,单击某个按钮就能弹出某个功能的界面。图 4.1 系统登录界面输入用户名开始验证密码是否正确输入密码登录成功进入主界面结束是否选择帐号类型图 4.2 登录模块流程图图 4.3 系统主界面4.2 图书录入模块4.2.1 实现目标添加图书信息,图书录入对话框的设计如图 4.4 所示。 “保存”按钮对应的方法为RAddBookDlg:OnSave(),流程图如图 4.5 所示。图 4.4

13、图书录入对话框开始结束输入图书基本信息判断输入是否正确且完整添加该信息到关联表并写入数据库 是否图 4.5 RAddBookDlg:OnSave()方法的流程图4.2.2 设计步骤(1)向项目中添加一个新 Dialog 资源,资源 ID 为 IDD_ADDBOOK。在IDD_YGTJK 对话框资源中单击鼠标右键,执行弹出快捷菜单的“Properties”菜单命令,打开“Dialog Properties”对话框。在“Dialog Properties”对话框中选择 General 选项卡,更改其“Caption”文本框内容为“图书信息录入” 。(2)从 Controls 面板上向 Dialog

14、 资源中添加所需控件,更改资源的属性,并为资源设置相对应的变量,如表 4.1 所示。表 4.1 图书录入 Dialog 资源属性设置Member VariablesIDPropertiesTypeMemberIDC_BK_CATEGORY默认文本CategoryNameIDC_BK_NAME默认文本BookNameIDC_BK_AUTHOR默认文本AuthorIDC_BK_PUBLISHER默认文本PublisherIDC_BK_DATE默认日期/时间PublishDateIDC_BK_PURCHASE默认数字PurchaseIDC_BK_PRICE默认数字PriceIDC_BK_PAYOFF

15、默认数字PriceIDC_BK_STOCK默认数字StockIDC_BK_BARCODE默认文本BarCodeIDC_BK_DISCOUNT默认数字DiscountIDC_RESETCaption 重填IDC_SAVECaption 添加IDCANCELCaption 退出4.2.3 代码分析(1)打开 ClassWizard 窗口,添加在 OnInitDialog 成员函数,向 OnInitDialog添加代码如下:BOOL RAddBookDlg:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initialization h

16、ereGetBookGategory();return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSE(2)当用户单击“保存“按钮时,实现添加图书功能,其响应代码如下:void RAddBookDlg:OnSave() / TODO: Add your control notification handler code hereUpdateData(TRUE);if(!IsValidInput()return ;if(IDY

17、ES != AfxMessageBox(确定要保存吗?,MB_YESNO) /放弃保存return ;if(SaveData()AfxMessageBox(保存成功!);/保存后重置数据m_bHasNewBook = true;OnReset();GetDlgItem(IDC_BK_CATEGORY)-SetFocus();elseAfxMessageBox(保存失败!);(3)判断输入信息是否正确的函数是 IsValidInput() ,其响应代码如下:bool RAddBookDlg:IsValidInput()CString str = 0123456789;if(m_strBookCa

18、tegory.IsEmpty() | m_strBookCategory.FindOneOf(str) != -1)AfxMessageBox(输入有误!图书类型不能为空或包含数字。);GetDlgItem(IDC_BK_CATEGORY)-SetFocus();return false;if(m_strBookName.IsEmpty()AfxMessageBox(输入有误!书名不能为空。);GetDlgItem(IDC_BK_NAME)-SetFocus();return false;if(m_strAuthor.IsEmpty() | m_strAuthor.FindOneOf(str)

19、 != -1)AfxMessageBox(输入有误!作者名称不能为空或包含数字。);GetDlgItem(IDC_BK_AUTHOR)-SetFocus();return false;if(m_strPublisher.IsEmpty()| m_strPublisher.FindOneOf(str) != -1)AfxMessageBox(输入有误!出版社名称不能为空或包含数字。);GetDlgItem(IDC_BK_PUBLISHER)-SetFocus();return false;if(m_dPurchase SetFocus();return false;if(m_dPrice Set

20、Focus();return false;if( m_lDiscount 100)AfxMessageBox(图书折扣应为 0-100 之间正值!);GetDlgItem(IDC_BK_DISCOUNT)-SetFocus();return false;if(m_lStock SetFocus();return false;if(m_strBarcode.IsEmpty() | m_strBarcode.GetLength() 15)AfxMessageBox(条形码应为 15 位整数!);GetDlgItem(IDC_BK_BARCODE)-SetFocus();return false;/

21、AfxMessageBox(m_strBookName + rn +/m_strBookCategory + rn +/m_strAuthor + rn +/m_strPublisher + rn +/m_strBarcode );return true;4.3 图书销售模块4.3.1 实现目标实现图书销售功能,图书销售对话框设计如图 4.6 所示。 “销售”按钮对应的方法为 RSaleBookDlg:OnOK(),流程图如图 4.7 所示。图 4.6 图书销售对话框开始结束输入书名或条形码判断输入是否正确且 FindBook()函数返回值为 1添加该信息到关联表并写入数据库是否图 4.7 R

22、SaleBookDlg:OnOK()方法的流程图4.3.2 实现步骤(1)向项目中添加一个新 Dialog 资源,资源 ID 为 IDD_SALEBOOK。在IDD_YGGONGZITJ 对话框资源中单击鼠标右键,执行弹出快捷菜单的 “Properties”菜单命令,打开“Dialog Properties”对话框。在“Dialog Properties”对话框中选择General 选项卡,更改其“Caption”文本框内容为“图书销售。 ”(2)从 Controls 面板上向 Dialog 资源中添加相关控件,更改资源的属性,并为资源设置相对应的变量,如表 3.2 所示:表 4.2 图书销售

23、添加 Dialog 资源属性设置Member VariablesIDPropertiesTypeMemberIDC_SBK_NAME默认文本BookNameIDC_SBK_BARCODE默认文本BarCodeIDC_SBK_PRICE默认数字PriceIDC_SBK_SALEPRICE默认数字SalePriceIDC_SBK_DISCOUNT默认数字DiscountIDC_SBK_DATE默认日期/时间SaleDateIDOKCaption 销售IDCANCELCaption 退出4.3.3 代码分析(1)为“销售”按钮添加代码,实现图书销售功能,代码如下:void RSaleBookDlg:

24、OnOK() / TODO: Add extra validation hereif(!m_bReadySale)m_bReadySale = FindBook();elseUpdateData(TRUE);CString strMsg;strMsg.Format(是否出售?n 书名:%sn 价格:%.2f”,m_strBookName,m_dSalePrice);if(IDYES = AfxMessageBox(strMsg,MB_YESNO)ModifyStock();/修改图书库存SaveSaleRecord();/记录销售记录Init();UpdateData(FALSE);GetDl

25、gItem(IDC_SBK_NAME)-SetFocus();m_editDiscount.EnableWindow(FALSE);/CDialog:OnOK();(2)判断销售是否能够成功的函数是 RSaleBookDlg:FindBook(),其代码如下:bool RSaleBookDlg:FindBook() / TODO: Add your control notification handler code hereUpdateData(TRUE);CString strSql ;_variant_t var;double dPurchase;if(!m_strBookName.IsE

26、mpty()strSql.Format(SELECT * FROM BookInfo WHERE BookName = %s and Stock 0, m_strBookName);else if(!m_strBarCode.IsEmpty()strSql.Format(SELECT * FROM BookInfo WHERE BarCode = %s and Stock 0, m_strBarCode);elseAfxMessageBox(请输入书名或条码!);GetDlgItem(IDC_SBK_NAME)-SetFocus();return false;CRBookSaleApp* pA

27、pp = (CRBookSaleApp*)AfxGetApp();trypApp-m_pRecordset-Open(strSql.AllocSysString(),pApp-m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);if(pApp-m_pRecordset-adoEOF)AfxMessageBox(查无此书!请输入书名或条码无误。);pApp-m_pRecordset-Close();return false;var = pApp-m_pRecordset-GetCollect(Book

28、ID);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-GetCollect(Price);if(var.vt != NULL)m_dPrice = var.dblVal;var = pApp-m_pRecordset-GetCollect(Purchase);if(var.vt != NULL)dPurchase = var.dblVal;var

29、 = pApp-m_pRecordset-GetCollect(CategoryID);if(var.vt != NULL)m_lCategory = var.lVal;pApp-m_pRecordset-Close();catch(_com_error * e)AfxMessageBox(e-ErrorMessage();m_editDiscount.EnableWindow(m_dPrice = dPurchase);m_lDiscount = (m_dPrice = dPurchase) ? m_lDiscount :100;/售价小于进价时,不允许打折m_dSalePrice = m_

30、dPrice * (double(m_lDiscount)/100); /计算折后价UpdateData(FALSE);return true; 4.4 销售统计模块4.4.1 实现目标实现对已销售的图书进行统计的功能,销售统计对话框如图 4.8 所示。图 4.8 销售统计对话框4.4.2 设计步骤(1)向项目中添加一个新 Dialog 资源,资源 ID 为 IDD_REPORT。在IDD_REPORT 对话框资源中单击鼠标右键,执行弹出快捷菜单的“Properties”菜单命令,打开“Dialog Properties”对话框。在“Dialog Properties”对话框中选择 Gener

31、al 选项卡,更改其“Caption”文本框内容为“销售统计” 。(2)从 Controls 面板上向 Dialog 资源中添加相应控件,更改资源的属性,并为资源设置相应的变量,如表 4.3 所示:表 4.3 用户信息管理 Dialog 资源属性设置Member VariablesIDPropertiesTypeMemberIDC_RADIO2默认单选框IDC_RADIO3默认单选框IDC_RADIO4默认单选框IDC_RADIO5默认单选框IDC_RADIO6默认单选框IDC_STATIC默认单选框IDOKCaption 确定IDCANCELCaption 取消4.4.3 代码分析查询函数为

32、 CRBookSaleView:OnSaleReport(),代码如下:void CRBookSaleView:OnSaleReport() / TODO: Add your command handler code hereRReportDlg dlg;dlg.m_iReportType = m_iReportType ;if(IDOK = dlg.DoModal()m_iReportType = dlg.m_iReportType;/设置销售报表标题/前 2 个标题类型为用户模式和书店管理模式,故此处加 2int iTitleType = 0;switch(m_iReportType)ca

33、se 0:/图书类型统计iTitleType = CATEGORY_REPORT_TITLE;break;case 1:/图书名称统计iTitleType = BOOKNAME_REPORT_TITLE;break;case 2:/图书作者统计iTitleType = AUTHOR_REPORT_TITLE;break;case 3:/出版社统计iTitleType = PUBLISHER_REPORT_TITLE;break;case 4:/全部销售记录统计iTitleType = SALE_REPORT_TITLE;break;default:break;SetTitle(iTitleTy

34、pe);ShowReport();4.5 查询库存模块4.5.1 实现目标实现对已销售的图书进行统计的功能,销售统计对话框如图 4.9 所示。图 4.9 查询库存对话框4.5.2 设计步骤(1)向项目中添加一个新 Dialog 资源,资源 ID 为 IDD_QUERY。在IDD_QUERY 对话框资源中单击鼠标右键,执行弹出快捷菜单的“Properties”菜单命令,打开“Dialog Properties”对话框。在“Dialog Properties”对话框中选择 General 选项卡,更改其“Caption”文本框内容为“查询” 。(2)从 Controls 面板上向 Dialog 资

35、源中添加相应控件,更改资源的属性,并为资源设置相应的变量,如表 4.4 所示:表 4.4 库存查询 Dialog 资源属性设置IDPropertiesMember VariablesTypeMemberIDC_BOOK_CATEGORY默认组合框IDC_BOOK_NAME默认文本BookNameIDC_BOOK_AUTHOR默认文本AuthorIDC_BOOK_PUBLISHER默认文本PublisherIDOKCaption 确定IDCANCELCaption 取消4.5.3 代码分析(1) “确定”按钮的函数为 RQueryDlg:OnOK(),代码如下:void RQueryDlg:On

36、OK() / 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)组合框根据图书类型查询的函数为 RQueryDlg:GetBookGategory(),代码如下:void RQueryDlg:GetBookGategory()int num

37、= 0;CString strSql;_variant_t var;m_ctrlCategory.ResetContent();/清空组合框中原有数据/生成 SQL 查询语句,在数据苦中查找图书类型strSql.Format(SQL_SELECT_CATEGORYNAME);CRBookSaleApp* pApp = (CRBookSaleApp*)AfxGetApp();trypApp-m_pRecordset-Open(strSql.AllocSysString(),pApp-m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptim

38、istic,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-MoveNext();num+;m_ctrlCategory.AddString(全部);pApp-m_pRecordset-Close();catch(_com_error *

39、 e)AfxMessageBox(e-ErrorMessage();/设置当前选择类型为全部m_ctrlCategory.SetCurSel(num);5 5 系统测试系统测试进入 VC+6.0,打开工程 RBookSale.dsw,然后进入源程序,接着编译和运行即可运行。下面将给出系统运行的过程。(1)打开程序后,选择“使用书店身份登录” ,输入密码“111” ,进入主对话框,如图 5.1。图 5.1 主对话框(2)在功能菜单下选择图书录入功能,添加一本新的图书信息,如图 5.2。图 5.2 添加图书信息(3)点击“返回”按钮后,系统会自动显示现有图书信息,如图 5.3。图 5.3 系统自动

40、显示现有图书信息(4)在功能菜单下进入图书销售对话框,卖出一本C+教程 ,如图 5.4。点击返回按钮后,系统会显示当前所有图书剩余库存信息,如图 5.4。图 5.4 图书销售(5)点击结束销售后,系统会自动显示当前所有图书的库存信息, C+教程的库存量已减少一本,如图 5.5。图 5.5 完成销售后的库存信息 (6)在功能菜单下进入销售统计对话框,查询全部销售清单,并给出已售出图书总本数,如图 5.6。图 5.6 查询所有图书销售清单(7)在功能菜单下进入查询库存对话框,查询魅力何来这本书的库存信息,如图 5.7。图 5.7 查询图书库存信息(8)再售出魅力何来2 本后,在功能菜单下进入售完图书列表功能,查询已售完的图书

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论