ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:316.20KB ,
资源ID:10343908      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10343908.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(图书销售管理系统.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

图书销售管理系统.docx

1、图书销售管理系统图书销售管理系统1引言传统的图书销售管理方法,都是通过人工统计和计算的管理方式进行的。这 样的管理方法不但费时费力,也容易产生计算上的错误和疏漏;计算机技术的全 面普及,打破了书店管理的传统管理方法,提高了管理效率的同时,克服了传统 管理方法中易产生的问题,使管理员能够有序的、全面的对图书销售和库存进行 管理。网上图书销售系统可以完成书店的日常管理,如图书录入、图书销售、销售统计、查询 库存等功能,迅速准确地对已售图书和剩余库存进行统计和汇总工作,大大提高了书店的管 理效率和准确性。2需求分析2.1国内外研究的现状在现代化的书店中,对图书销售工作运用现代化技术进行管理,是提高工

2、作 效率的有效手段。图书销售管理是书店日常工作中非常重要的一个方面,越来越 受到书店经营者的重视。通过计算机管理系统对图书销售进行全面的统计与管 理,全面解决了书店经营过程中所遇到的各种问题,并且克服了传统管理方式中 的易出错等问题。图书销售管理系统成为书店管理的首选管理工具。2.2功能需求2.2.1 待开发软件的功能需求本系统是根据书店的实际需求而开发的,要求稳定、可靠的实现图书销售的 自动化管理,通过本系统可以达到以下目标:1.图书录入,包括图书的基本信息,如分类、进价、售价、作者等。2.图书销售,包括图书的售价、折扣、销售日期,并实现对库存量的修改。3.销售统计,包括按图书类型、书名、作

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

4、析,可以得到仓库管理系统的数据流图,如图 2.2所示。图 2.2 图书管理系统的数据流图2.3数据描述2.3.1数据库概要说明 数据库中包括管理员信息表、图书基本信息表、图书类型表、图书销售记录表等 4 个数据表。图 2.3 所示的即为本系统中数据库中的数据表结构图,该数据表结构图包含系统所有数据表。可以清晰地反应数据库信息。图 2.3 数据表结构图2.3.2 主要数据表的结构表 2.1 Pwd (管理员信息表)字段名数据类型字段大小描述IDint4管理员帐号Passwordnvarchar50r密码表 2.2 BookInfo (图书基本信息表)字段名数据类型字段大小描述BookIDint4

5、图书编号BookNamenvarchar50图书名称CategoryIDint4图书类型编号Authornvarchar50作者Publishernvarchar50出版社PublishDatesmalldatetime4出版日期Purchasefloat8进价Pricefloat8售价Stockint4库存本数Discountint4折扣BarCodenvarchar50条形码表 2.3 BookCategory (图书类型表)字段名数据类型长度描述CategoryIDint4图书类型编号CategoryNamenvarchar8图书类型名称表 2.4 BookSale (图书销售记录表)字

6、段名数据类型长度描述IDint4销售记录编号BookIDint4图书编号SalePricefloat8实际售价2.4数据库描述本软件采用SQL数据库。3概要设计本系统是根据书店的实际需求而开发的,完全能够帮助书店实现高效、准确 的图书销售自动化管理。在分析阶段,我们已经提出了系统的结构和数据字典。 本节我们将对系统的使用环境作简要介绍,并对该系统作概要设计。3.1系统运行环境P4机Windows 操作系统Visual C+6.03.2系统功能模块设计在前面系统功能分析的基础上,结合 Visual C+程序编制的特点,得到如 图 3.1 所示的系统功能模块图。图书销售管理系统图 3.1 图书销售

7、管理系统功能模块图 各模块功能分配如下:(1)用户登陆功能:管理员登陆模块(M1)。(2)图书录入功能:图书录入模块(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) 用户界面 采用图形用户界面,包含菜单、按钮、对话框

8、等元素。(2) 软件接口软件运行于Visual C+6.0平台上。(3) 硬件接口运行于PC机上。3.4.2内部接口(1)用户登陆模块(M1):由相应事件驱动消息激活,完成用户登陆功能, 之后进入消息循环状态。(2)图书销售模块(M3):由相应事件驱动消息激活,完成图书销售功能, 之后进入消息循环状态。(3)销售统计模块(M4):由相应事件驱动消息激活,完成销售统计功能, 之后进入消息循环状态。(4)查询库存模块(M5):由相应事件驱动消息激活,完成查询库存功能, 之后进入消息循环状态。(5)售完图书查询模块(M6):由相应事件驱动消息激活,完成售完图书 查询功能,之后进入消息循环状态。4详细

9、设计该系统采用VC+6.0 中的MFC 连接SQL 数据库的方式,使用图形用户界面, 主要实现图书录入、图书销售等功能。下面具体对各模块进行介绍。4.1登录模块及主界面在登录界面(如图 4.1所示)中输入用户名和密码,登录成功后进入主界面。 登陆框流程图如图 4.2所示,系统主界面如图 4.3所示,单击某个按钮就能弹出 某个功能的界面。图 4.1 系统登录界面图 4.3 系统主界面4.2图书录入模块4.2.1实现目标添加图书信息,图书录入对话框的设计如图 4.4 所示。“保存”按钮对应的 方法为 RAddBookDlg:OnSave(),流程图如图 4.5 所示。图 4.4 图书录入对话框开始

10、图 4.5 RAddBookDlg:OnSave() 方法的流程图4.2.2设计步骤(1)向项目中添加一个新 Dialog 资源,资源 ID 为 IDD_ADDBOOK。在 IDD_YGTJK 对话框资源中单击鼠标右键,执行弹出快捷菜单的“Properties”菜 单命令,打开“Dialog Properties”对话框。在“Dialog Properties”对话框中选择 General 选项卡,更改其“Caption”文本框内容为“图书信息录入”。(2)从 Controls 面板上向 Dialog 资源中添加所需控件,更改资源的属性, 并为资源设置相对应的变量,如表 4.1 所示。表 4.

11、1 图书录入 Dialog 资源属性设置IDPropertiesMember VariablesTypeMemberIDC_BK_CATEGORY默认文本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默认

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

13、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 here UpdateData(TRUE);if(!IsValidInput()return ;if(IDYES != AfxMessageBox( 确定要保存吗?,MB_YESNO) / 放

14、弃保存 return ;if(SaveData() AfxMessageBox(保存成功!); /保存后重置数据 m_bHasNewBook = true; OnReset();GetDlgItem(IDC_BK_CATEGORY)-SetFocus();else AfxMessageBox(保存失败!);(3)判断输入信息是否正确的函数是 IsValidInput(),其响应代码如下: bool RAddBookDlg:IsValidInput()CString str = 0123456789;if(m_strBookCategory.IsEmpty() | m_strBookCatego

15、ry.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) != -1)AfxMessageBox(输入有误!作者名称不能

16、为空或包含数字。); 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 SetFocus(); return false;if(

17、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;/ AfxMessageBox(m_s

18、trBookName + 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 图书销售对话框开始图 4.7 RSaleBookDlg:OnOK()方法的流程图4.3.2实现步骤(1)向项目中添加一个新 Dialog 资源,资源 ID 为 IDD_SA

19、LEBOOK。在 IDD_YGGONGZITJ 对话框资源中单击鼠标右键,执行弹出快捷菜单的 “Properties”菜单命令,打开“Dialog Properties”对话框。在“Dialog Properties” 对话框中选择 General 选项卡,更改其“Caption”文本框内容为“图书销售。”(2)从 Controls 面板上向 Dialog 资源中添加相关控件,更改资源的属性,并为资源设置相对应的变量,如表 3.2所示: 表 4.2 图书销售添加 Dialog 资源属性设置IDPropertiesMember VariablesTypeMemberIDC_SBK_NAME默认文

20、本BookNameIDC_SBK_BARCODE默认文本BarCodeIDC_SBK_PRICE默认数字PriceIDC_SBK_SALEPRICE默认数字SalePriceIDC_SBK_DISCOUNT默认数字DiscountIDC_SBK_DATE默认日期/时间SaleDateIDOKCaption 销售4.3.3代码分析 (1)为“销售”按钮添加代码,实现图书销售功能,代码如下: void RSaleBookDlg:OnOK()/ TODO: Add extra validation here if(!m_bReadySale)m_bReadySale = FindBook();els

21、eUpdateData(TRUE); CString strMsg; strMsg.Format(是否出售?n 书名:%sn 价格:%.2f”,m_strBookName ,m_dSalePrice);if(IDYES = AfxMessageBox(strMsg,MB_YESNO) ModifyStock(); /修改图书库存SaveSaleRecord(); /记录销售记录Init(); UpdateData(FALSE); GetDlgItem(IDC_SBK_NAME)-SetFocus(); m_editDiscount.EnableWindow(FALSE);/CDialog:On

22、OK(); (2)判断销售是否能够成功的函数是 RSaleBookDlg:FindBook(),其代码如 下:bool RSaleBookDlg:FindBook()/ TODO: Add your control notification handler code here UpdateData(TRUE);CString strSql ; _variant_t var; double dPurchase; if(!m_strBookName.IsEmpty() strSql.Format(SELECT * FROM BookInfo WHERE BookName = %s and Stoc

23、k 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* pApp = (CRBookSaleApp*)AfxGetApp();try pApp-m_pRecordset-Open(strSql.All

24、ocSysString(), pApp-m_pConnection.GetInterfacePtr(), adOpenDynamic,adLockOptimistic, adCmdText);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_pRecord

25、set-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 = pApp-m_pRecordset-GetCollect(CategoryID); if(var.vt != NULL)

26、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_dPrice * (double(m_lDiscount)/100); /计算折后价UpdateData(F

27、ALSE);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”对话框中选 择 General 选项卡,更改其“Caption”文本框内容为“销售统计”。(2)从 Controls 面板上向 Dial

28、og 资源中添加相应控件,更改资源的属性, 并为资源设置相应的变量,如表 4.3所示:表 4.3 用户信息管理 Dialog 资源属性设置IDPropertiesMember VariablesTypeMemberIDC_RADIO2默认单选框IDC_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.DoModal()m_iReportType

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1