




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计设计说明书图书销售管理系统学生姓名李志红学号0918014009班级计本091成绩指导教师钟永友数计学院2012年3月2日0 课程设计课程设计评阅书题目图书销售管理系统学生姓名李志红学号0918014009指导教师评语及成绩指导教师签名: 年 月 日答辩评语及成绩 答辩教师签名: 年 月 日教研室意见总成绩: 室主任签名: 年 月 日注: 指导老师成绩60%,答辩成绩40%,总成绩合成后按五级制计入。课程设计任务书20112012学年第 2 学期专业: 数学与计算机科学学院 学号: 0918014009 姓名: 李志红 课程设计名称: 课程设计 设计题目: 图书销售管理系统 完成期限:自 2012 年 2 月 20 日至 2010年 3 月 2 日共 2 周设计依据、要求及主要内容(可另加附页):本课程设计是在学完数据库课程之后,根据所学的理论知识和实践内容,要求对图书销售管理系统进行数据库设计,并开发实现如下功能:1. 销售明细、批发明细、退货明细2. 查询图书的销售详情:包括零售明细、批发明细、销售统计等3. 订单处理:审核订单,出库单4. 收付款处理:5. 用户管理(注意用户权限设置)、系统维护功能。开发完成以上功能后,并撰写说明书,要求按照相关数据库设计规范进行撰写。指导教师(签字): 教研室主任(签字): 批准日期: 2012年 月 日摘 要随着计算机的普及书店规模的不断扩大,使图书销售管理成为书店管理中的一个重要课题。通过图书销售管理系统可以解决书店管理中遇到的各种问题。本系统分析了市场需求和实际需要,利用Visual C+ 6.0连接SQL数据库的方式,主要实现了书店的图书销售管理,该系统具有处理图书录入、图书销售、销售统计、查询库存等功能。关键词:图书销售管理;数据库;Visual C+ 6.0目 录1课题描述12.1 系统设计功能概要22.2 系统功能总体结构23数据库设计与实现33.1业务流程图33.2 数据流图33.3 数据字典43.4 概念结构设计53.5 逻辑结构设计93.6 物理结构设计93.7系统维护114部分编程代码124.1图书录入模块124.2图书销售模块144.3图书统计模块165程序调试与测试186总结20参考文献21数计学院数据库课程设计1课题描述随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。传统的图书管理系统其日常管理工作都是人工操作,存在着许多缺点,如:效率低下、保密性差,另外时间一长,将产生大量的文件和数据,这对于数据的查找、更新和维护都带来了不少的困难,并且浪费了许多人力和物力。特别是中小型书店、个体书店,由于其规模小,硬件投入不大,管理人员水平有限,如果没有一个好的图书管理系统,对于书店的经营是非常不利的。在信息时代,传统的图书管理方式必然被计算机为基础的信息管理系统所取代。因为作为计算机应用的一部分,使用计算机对图书信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高图书管理的效率。为此,开发了此图书销售管理系统,结合市场需求,经过研究分析后,完成该系统,并实现了系统基础信息管理,库存管理,销售管理和查询管理等模块。对图书的进购,入库,销售,出库进行全程管理,给用户带来了方便。2系统设计2.1 系统设计功能概要本系统是根据书店的实际需求而开发的,要求稳定、可靠的实现图书销售的自动化管理,通过本系统可以达到以下目标:1.图书录入,包括图书的基本信息,如分类、进价、售价、作者等。2.图书销售,包括图书的售价、折扣、销售日期,并实现对库存量的修改。3.销售统计,包括按图书类型、书名、作者、出版社等进行统计。4.查询库存,对指定的某本图书剩余库存量进行查询。5.售完图书查询,对已售完图书进行查询。6.用户管理,系统维护功能。2.2 系统功能总体结构 图书销售管理系统功能结构图如图2.1所示。图2.1 图书销售管理系统功能结构图3数据库设计与实现3.1业务流程图系统流程图是概括的描绘物理系统的传统工具。它的基本思想是用图形符号以黑盒子形式描绘组成系统的部件(程序、文档、数据库、人工过程等)。系统流程图表达的是数据在系统各部件之间的流动情况而不是对数据进行加工处理的控制过程,因此尽管系统流程图的某些符号和程序流程图的符号形式相同,但是它却是物理数据流图而不是程序流程图。 通过分析图书销售管理系统,得到以下业务流程图如图3.1所示:图3.1 系统业务流程图3.2 数据流图数据流图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。在数据流图中没有任何具体的物理元素,它只是描绘信息在系统中流动和被处理的情况。 经过详细的分析,了解图书销售管理系统的具体业务流程,构造出逻辑模型,再结合数据流图的相关定义,绘制出本系统的数据流图如图3.2所示:图3.2 图书销售管理系统数据流图3.3 数据字典一般来说,数据字典应该由下列四类元素的定义组成:(1)数据流;(2)数据流分量(即数据元素);(3)数据存储;(4)处理。在开发小型的软件系统时可采用卡片形式书写数据字典,每张卡片表上保存一个数据的信息,这样会使更新和修改比较方便,而且能单独处理描述每个数据的信息。每张卡片上主要包含一些信息:名称,简述,定义,位置。针对以上数据流图,给出部分数据字典的说明。数据流名称:管理员位置:管理员信息P1定义:管理员=管理员名+秘密+操作级别说明:管理员登录系统时候,必须要通过正确的秘密,依据权限级别操作数据流名称:图书入库信息位置:入库单P2定义:入库信息=入库编号+图书信息说明:管理员对入库单信息进行审核数据流名称:审核情况位置:审核P3、P4定义:审核情况=入库(出库)单信息+图书信息说明:入库单(出库单)信息一定要和图书信息完全吻合数据流名称:图书入库管理位置:图书入库管理P3定义:图书入库管理=仓库名+图书类别+图书信息说明:图书储存在的仓库名及图书类别和图书信息一定要全面数据流名称:图书价格位置:图书价格P5定义:图书价格=录入价格/调动价格说明:要对入库的图书定价及销售价格做一个初始化数据流名称:图书信息位置:添加图书信息P6定义:图书信息表=图书种类+图书名+条形码+助记码+作者+价格+出版社+备注说明:图书信息完整才算合格数据流图名称:图书销售管理位置:P7P2定义:销售管理=销售单的审核+图书出库(记录图书销售)说明:图书销售单必须要通过图书出库对销售的图书做存底数据流名称:客户信息(购买图书信息)位置:客户信息P7定义:客户信息=客户姓名+购买图书信息说明:客户的信息是建立在购买图书的前提上数据流名称:供应商(图书)位置:供应商P2定义:供应商=供应商信息+图书信息说明:供应商的信息是在提供图书的前提上3.4 概念结构设计整个系统E-R图如下图3.3所示。 图3.3 系统E-R图本系统图书信息实体的分E-R图如图3.4所示: 图3.4 图书信息的分E-R图本系统图书入库实体的分E-R图如图3.5所示: 图3.5 图书入库的分E-R图本系统入库退货实体的分E-R图如图3.6所示: 图3.6 入库退货的分E-R图本系统图书销售实体的分E-R图如图3.7所示:图3.7 图书销售的分E-R图本系统销售退货实体的分E-R图如图3.8所示:图3.8 销售退货的分E-R图本系统供货商信息实体的分E-R图如图3.9所示:图3.9 供货商信息的分E-R图3.5 逻辑结构设计将图书销售管理系统的系统E-R图转换成关系数据库的数据模型,其数据库关系模式如下:仓库信息(仓库编号)图书销售(销售单号,销售时间,条形码,折扣,总价,数量,顾客名,操作员名)供应商信息(供应商名,法人,负责人,详细地址,联系电话,网址,电子邮箱)操作员信息(用户名,密码,权限级别)图书类别信息(类型名)图书信息表(图书名,条形码,图书类型,作者,出版社,出版日期,进价,售价)管理(管理员名称,仓库名编号)顾客(顾客名)购买图书(顾客名,销售单号)图书供应(供应商名,图书条形码)3.6 物理结构设计关系属性的设计包括属性名,数据类型,数据长度。该属性是否允许空值,是否为主码,是否为索引项及约束条件。根据物理结构设计理论,将该系统逻辑结构转换为物理结构,其详细结构列表如表3.6.1表3.6.7所示。(1)表3.6.1图书信息表字段数据类型长度允许为空说明booknamevarchar30否图书名称barcodevarchar30否条形码authorvarchar30否作者bookconcernvarchar30否出版社Purchasefloat8否 进价Pricefloat8否售价PublishDatesmalldatetime4否出版日期kindvarchar30否图书类型(2)表3.6.2 图书种类信息表字段数据类型长度允许为空说明bookkindvarchar30否图书类型bookkindIDvarchar10否类型编号(3)表3.6.3图书入库表字段数据类型长度允许为空说明IDvarchar30否入库单号providevarchar50否供货商operatorvarchar30否操作员rebatefloat8否折扣sumtotalfloat8否总价paymoneymoney8否应付金额factmoneymoney8否实付金额intimedatetime10否入库时间(4)表3.6.4入库退货明细表字段数据类型长度允许为空说明CancleIDvarchar30否退货单号barcodevarchar30否条形码unitPricemoney8否定价numbersfloat8否数量rebatefloat8否折扣paymoneymoney8否金额stocknamevarchar30否仓库名称timedatetime10否时间(5)表3.6.5图书销售主表字段数据类型长度允许为空说明SellIDvarchar30否销售单号Customervarchar30是顾客名operatorvarchar30否操作员rebatefloat8否折扣sumtotalmoney8否总价paymoneymoney8否应付金额factmoneymoney8否实付金额intimedatetime-否时间(6)表3.6.6销售退货主表字段数据类型长度允许为空说明SellCancelIDvarchar30否售货单号Customervarchar50是 顾客名operatorvarchar30否操作员rebatefloat8否折扣intimedatetime-否时间barcodevarchar30否条形码unitPricemoney8否单价paymoneymoney8否金额(7)表3.6.7供应商信息表 字段数据类型长度允许为空说明providervarchar50否供应商名corporationvarchar30否法人principalvarchar10是负责人phonevarchar30是联系电话addrvarchar50是详细地址webvarchar50是网址e_mailvarchar30是电子邮箱3.7系统维护系统的修改往往会“牵一发而动全身”。程序、文件、代码的局部修改都可能影响系统的其他部分。因此,系统的维护工作应有计划有步骤的统筹安排,按照维护任务的工作范围、严重程度等诸多因素确定优先顺序,制定出合理的维护计划,然后通过一定的批准手续实施对系统的修改和维护。下图3.7.1简要说明了维护工作的全过程的步骤。图3.7.1 系统维护步骤 4部分编程代码4.1图书录入模块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 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();GetDlgItem(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)-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(输入有误!作者名称不能为空或包含数字。);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( 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;return true;4.2图书销售模块void RSaleBookDlg: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);GetDlgItem(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.IsEmpty()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* pApp = (CRBookSaleApp*)AfxGetApp();trypApp-m_pRecordset-Open(strSql.AllocSysString(),pApp-m_pConnection.GetInterfacePtr()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_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 = 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_dPrice * (double(m_lDiscount)/100); /计算折后价UpdateData(FALSE);return true; 4.3图书统计模块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)case 0:/图书类型统计iTitleType = CATEGORY_REPORT_TITLE;break;case 1:/图书名称统计iTitleType = BOOKNAME_REPORT_TITLE;break;case 2:/图书作者统计iTitleType = AUTHOR_REPORT_TITLE;brea
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 影视技术与创新
- 英语考试试卷及答案
- 企业团队能力培训课件
- 铲车操作培训及就业保障合同范本
- 餐厅厨师劳动合同与职业健康管理
- 餐饮业店铺租赁合同范本及食品安全责任协议
- 房屋抵押典当业务合同范本
- 小区地漏定期检查方案
- 工厂店铺定向选址方案
- 智能家居产品保密及信息安全合同
- 2025至2030中国油气3D打印行业调研及市场前景预测评估报告
- 2024年绥阳县选聘城市社区工作者笔试真题
- 公文写作技能题库及答案
- 2025年广东省中考语文试卷真题(含答案解析)
- 辽宁省“三支一扶”招募考试真题2024
- 2025中国内地薪酬指南-kos高奥士国际-202506
- 算法歧视的法律规制-洞察及研究
- 检验表4.15 灌砌石或大块石理灌护坡单元工程施工质量检验表
- 2024《煤矿安全生产标准化管理体系基本要求及评分方法》掘进专业标准条款解读
- 胸痛中心的常态化质控与持续质量改进
- 核设施老化管理-洞察及研究
评论
0/150
提交评论