



版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、图书销售管理系统图书销售管理系统1引言传统的图书销售管理方法,都是通过人工统计和计算的管理方式进行的。这样的管理方法不但费时费力,也容易产生计算上的错误和疏漏;计算机技术的全面普及,打破了书店管理的传统管理方法,提高了管理效率的同时,克服了传统管理方法中易产生的问题,使管理员能够有序的、全面的对图书销售和库存进行管理。网上图书销售系统可以完成书店的日常管理,如图书录入、图书销售、销售统计、查询库存等功能,迅速准确地对已售图书和剩余库存进行统计和汇总工作,大大提高了书店的管理效率和准确性。2 需求分析 国内外研究的现状在现代化的书店中,对图书销售工作运用现代化技术进行管理,是提高工作效率的有效手
2、段。图书销售管理是书店日常工作中非常重要的一个方面,越来越受到书店经营者的重视。通过计算机管理系统对图书销售进行全面的统计与管理,全面解决了书店经营过程中所遇到的各种问题,并且克服了传统管理方式中的易出错等问题。图书销售管理系统成为书店管理的首选管理工具。 功能需求待开发软件的功能需求本系统是根据书店的实际需求而开发的,要求稳定、可靠的实现图书销售的自动化管理,通过本系统可以达到以下目标:1. 图书录入,包括图书的基本信息,如分类、进价、售价、作者等。2. 图书销售,包括图书的售价、折扣、销售日期,并实现对库存量的修改。3. 销售统计,包括按图书类型、书名、作者、出版社等进行统计。4. 查询库
3、存,对指定的某本图书剩余库存量进行查询。5. 售完图书查询,对已售完图书进行查询。待开发软件的功能按照用户需求,要满足以上功能,我设计出了图书销售管理系统的系统功能图,如图所示。图书销售管理系统图书录入查询库存图书销售销售统计售完图书查询图 图书销售管理系统的系统功能图综合系统要求,对图所示的系统功能解释如下:图书录入,包括图书的基本信息,如分类、进价、售价、作者等。图书销售,包括图书的售价、折扣、销售日期,并实现对库存量的修改。销售统计,包括按图书类型、书名、作者、出版社等进行统计。查询库存,对指定的某本图书剩余库存量进行查询。售完图书查询,对已售完图书进行查询。通过以上分析,可以得到仓库管
4、理系统的数据流图,如图所示。管理员图书信息处理图书管理反馈信息图书信息反馈信息记录数据数据库图 图书管理系统的数据流图 数据描述数据库概要说明数据库中包括管理员信息表、图书基本信息表、图书类型表、图书销售记录表等4个数据表。图所示的即为本系统中数据库中的数据表结构图,该数据表结构图包含系统所有数据表。可以清晰地反应数据库信息。图 数据表结构图主要数据表的结构表 pwd(管理员信息表)字段名数据类型字段大小描述idint4管理员帐号passwordnvarchar50r密码表 bookinfo(图书基本信息表)字段名数据类型字段大小描述bookidint4图书编号booknamenvarchar
5、50图书名称categoryidint4图书类型编号authornvarchar50作者publishernvarchar50出版社publishdatesmalldatetime4出版日期purchasefloat8进价pricefloat8售价stockint4库存本数discountint4折扣barcodenvarchar50条形码表 bookcategory(图书类型表)字段名数据类型长度描述categoryidint4图书类型编号categorynamenvarchar8图书类型名称表 booksale(图书销售记录表)字段名数据类型长度描述idint4销售记录编号bookidin
6、t4图书编号salepricefloat8实际售价saledatesmalldatetime4销售日期 数据库描述本软件采用sql数据库。3 概要设计本系统是根据书店的实际需求而开发的,完全能够帮助书店实现高效、准确的图书销售自动化管理。在分析阶段,我们已经提出了系统的结构和数据字典。本节我们将对系统的使用环境作简要介绍,并对该系统作概要设计。 系统运行环境p4机windows操作系统visual c+ 系统功能模块设计在前面系统功能分析的基础上,结合visual c+程序编制的特点,得到如图所示的系统功能模块图。图书销售管理系统图书录入模块(m2)查询库存模块(m5)图书销售模块(m3)销售
7、统计模块(m4)售完图书查询模块(m6)管理员登录模块(m1)图图书销售管理系统功能模块图各模块功能分配如下:(1)用户登陆功能:管理员登陆模块(m1)。(2)图书录入功能:图书录入模块(m2)。(3)图书销售功能:图书销售模块(m3)。(4)销售统计功能:销售统计模块(m4)。(5)查询图书库存功能:查询库存模块(m5)。(6)售完图书查询功能:售完图书查询模块(m6)。 系统处理流程(1)系统启动,进入身份验证。(2)初始化系统,导入数据库。(3)录入图书信息。(4)图书销售。(5)统计图书销售信息。(6)查询图书库存信息。(7)查询已售完图书信息。(8)退出系统。 接口设计 外部接口(1
8、) 用户界面采用图形用户界面,包含菜单、按钮、对话框等元素。(2) 软件接口软件运行于visual c+平台上。(3) 硬件接口运行于pc机上。 内部接口(1)用户登陆模块(m1):由相应事件驱动消息激活,完成用户登陆功能,之后进入消息循环状态。(2)图书销售模块(m3):由相应事件驱动消息激活,完成图书销售功能,之后进入消息循环状态。(3)销售统计模块(m4):由相应事件驱动消息激活,完成销售统计功能,之后进入消息循环状态。(4)查询库存模块(m5):由相应事件驱动消息激活,完成查询库存功能,之后进入消息循环状态。(5)售完图书查询模块(m6):由相应事件驱动消息激活,完成售完图书查询功能,
9、之后进入消息循环状态。4 详细设计该系统采用vc+中的mfc连接sql数据库的方式,使用图形用户界面,主要实现图书录入、图书销售等功能。下面具体对各模块进行介绍。 登录模块及主界面在登录界面(如图所示)中输入用户名和密码,登录成功后进入主界面。登陆框流程图如图所示,系统主界面如图所示,单击某个按钮就能弹出某个功能的界面。图 系统登录界面输入用户名开始验证密码是否正确输入密码登录成功进入主界面结束是否选择帐号类型图登录模块流程图图 系统主界面 图书录入模块 实现目标添加图书信息,图书录入对话框的设计如图所示。“保存”按钮对应的方法为raddbookdlg:onsave(),流程图如图所示。图 图
10、书录入对话框开始结束输入图书基本信息判断输入是否正确且完整添加该信息到关联表并写入数据库 是否图 raddbookdlg:onsave()方法的流程图 设计步骤(1)向项目中添加一个新dialog资源,资源id为idd_addbook。在idd_ygtjk对话框资源中单击鼠标右键,执行弹出快捷菜单的“properties”菜单命令,打开“dialog properties”对话框。在“dialog properties”对话框中选择general选项卡,更改其“caption”文本框内容为“图书信息录入”。(2)从controls面板上向dialog资源中添加所需控件,更改资源的属性,并为资源
11、设置相对应的变量,如表所示。表 图书录入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_
12、bk_barcode默认文本barcodeidc_bk_discount默认数字discountidc_resetcaption 重填idc_savecaption 添加idcancelcaption 退出 代码分析(1)打开classwizard窗口,添加在oninitdialog成员函数,向oninitdialog添加代码如下:bool raddbookdlg:oninitdialog() cdialog:oninitdialog();开始结束输入书名或条形码判断输入是否正确且findbook()函数返回值为1添加该信息到关联表并写入数据库是否f”,m_strbookname,m_dsal
13、eprice);if(idyes = afxmessagebox(strmsg,mb_yesno)modifystock();/修改图书库存savesalerecord();/记录销售记录init();updatedata(false);getdlgitem(idc_sbk_name)->setfocus();(false);/cdialog:onok();(2)判断销售是否能够成功的函数是rsalebookdlg:findbook(),其代码如下:bool rsalebookdlg:findbook() / todo: add your control notification han
14、dler code hereupdatedata(true);cstring strsql ;_variant_t var;double dpurchase;if(!()("select * from bookinfo where bookname = "%s" and stock >0", m_strbookname);else if(!()("select * from bookinfo where barcode = "%s" and stock >0", m_strbarcode);elseaf
15、xmessagebox("请输入书名或条码!");getdlgitem(idc_sbk_name)->setfocus();return false;crbooksaleapp* papp = (crbooksaleapp*)afxgetapp();trypapp->m_precordset->open(),papp->(),adopendynamic,adlockoptimistic,adcmdtext);if(papp->m_precordset->adoeof)afxmessagebox("查无此书!请输入书名或条码无误。
16、");papp->m_precordset->close();return false;var = papp->m_precordset->getcollect("bookid");if != null)m_lbookid = ;var = papp->m_precordset->getcollect("discount");if != null)m_ldiscount = ;var = papp->m_precordset->getcollect("price");if !=
17、 null)m_dprice = ;var = papp->m_precordset->getcollect("purchase");if != null)dpurchase = ;var = papp->m_precordset->getcollect("categoryid");if != null)m_lcategory = ;papp->m_precordset->close();catch(_com_error * e)afxmessagebox(e->errormessage();(m_dprice
18、>= dpurchase);m_ldiscount = (m_dprice >= dpurchase) m_ldiscount :100;/售价小于进价时,不允许打折m_dsaleprice = m_dprice * (double(m_ldiscount)/100); /计算折后价updatedata(false);return true; 销售统计模块 实现目标实现对已销售的图书进行统计的功能,销售统计对话框如图所示。图 销售统计对话框 设计步骤(1)向项目中添加一个新dialog资源,资源id为idd_report。在idd_report对话框资源中单击鼠标右键,执行弹出快捷
19、菜单的“properties”菜单命令,打开“dialog properties”对话框。在“dialog properties”对话框中选择general选项卡,更改其“caption”文本框内容为“销售统计”。(2)从controls面板上向dialog资源中添加相应控件,更改资源的属性,并为资源设置相应的变量,如表所示:表用户信息管理dialog资源属性设置idpropertiesmember variablestypememberidc_radio2默认单选框idc_radio3默认单选框idc_radio4默认单选框idc_radio5默认单选框idc_radio6默认单选框idc_
20、static默认单选框idokcaption 确定idcancelcaption 取消 代码分析查询函数为crbooksaleview:onsalereport(),代码如下:void crbooksaleview:onsalereport() / todo: add your command handler code hererreportdlg dlg; = m_ireporttype ;if(idok = ()m_ireporttype = ;/设置销售报表标题/前2个标题类型为用户模式和书店管理模式,故此处加2int ititletype = 0;switch(m_ireporttyp
21、e)case 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(itit
22、letype);showreport(); 查询库存模块 实现目标实现对已销售的图书进行统计的功能,销售统计对话框如图所示。图 查询库存对话框 设计步骤(1)向项目中添加一个新dialog资源,资源id为idd_query。在idd_query对话框资源中单击鼠标右键,执行弹出快捷菜单的“properties”菜单命令,打开“dialog properties”对话框。在“dialog properties”对话框中选择general选项卡,更改其“caption”文本框内容为“查询”。(2)从controls面板上向dialog资源中添加相应控件,更改资源的属性,并为资源设置相应的变量,如表
23、所示:表库存查询dialog资源属性设置idpropertiesmember variablestypememberidc_book_category默认组合框idc_book_name默认文本booknameidc_book_author默认文本authoridc_book_publisher默认文本publisheridokcaption 确定idcancelcaption 取消 代码分析(1)“确定”按钮的函数为rquerydlg:onok(),代码如下:void rquerydlg:onok() / todo: add extra validation hereupdatedata(t
24、rue);/单独处理类型为全部的情况,0表示选择类型为全部(),m_strcategory);if(m_strcategory = _t("全部")m_strcategory = _t("");cdialog:onok();(2)组合框根据图书类型查询的函数为rquerydlg:getbookgategory(),代码如下:void rquerydlg:getbookgategory()int num = 0;cstring strsql;_variant_t var;();/清空组合框中原有数据/生成sql查询语句,在数据苦中查找图书类型(sql_se
25、lect_categoryname);crbooksaleapp* papp = (crbooksaleapp*)afxgetapp();trypapp->m_precordset->open(),papp->(),adopendynamic,adlockoptimistic,adcmdtext);/遍历数据库中bookcategory表,获取全部图书类型while(!(papp->m_precordset->adoeof)var = papp->m_precordset->getcollect("categoryname");if
26、 != null)(lpcstr)_bstr_t(var);papp->m_precordset->movenext();num+;("全部");papp->m_precordset->close();catch(_com_error * e)afxmessagebox(e->errormessage();/设置当前选择类型为全部(num);5 系统测试进入vc+,打开工程,然后进入源程序,接着编译和运行即可运行。下面将给出系统运行的过程。(1)打开程序后,选择“使用书店身份登录”,输入密码“111”,进入主对话框,如图。图 主对话框(2)在功能菜单下选择图书录入功能,添加一本新的图书信息,如图。图 添加图书信息(3)点击“返回”按钮后,系统会自动显示现有图书信息,如图。图 系统自动显示现有图书信息(4)在功能菜单下进入图书销售对话框,卖出一本c+教程,如图。点击返回按钮后,系统会显示当前所有图书剩余库存信息,如图。图 图书销售(5)点击结束销售后,系统会自动显示当前所有图书的库存信息,c+教程的库存量已减少一本,如图。图 完成销售后的库存信息 (6)在功能菜单
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年区块链在跨境支付中的实际应用案例深度解析
- 智能交通信号优化系统2025年在城市交通信号灯控制系统升级中的应用报告
- 2025年元宇宙社交平台用户体验深度分析与优化策略报告
- 2025年医疗健康行业医疗信息化建设与网络安全研究报告
- 天津市和平区二十一中2025届八下英语期中质量跟踪监视试题含答案
- 工业自动化控制网络技术安全风险防范与应对策略2025年研究报告
- 2025年医药行业研发投入与产出效益研究报告
- 咨询工程师复习课件
- 文化产业发展专项资金2025年申请项目文化产业与乡村振兴战略报告
- 金融行业人工智能伦理与监管挑战下的金融监管政策对金融业风险管理能力的影响报告001
- 2025重庆水务环境控股集团有限公司招聘6人笔试参考题库附带答案详解
- 办公技能实操考试试题及答案
- 空调移机安装合同范本
- 水泥牌楼维护方案范本
- 中医药在气管炎治疗中的应用
- 银行人力资源发展计划
- 喷涂作业安全专项培训
- 危险性较大分部分项工程及建筑施工现场易发生重大事故的部位环节的预防监控措施和应应急处理预案
- 养老护理员四级试题含答案
- 全国寄生虫病防治技能知识竞赛参考试题(附答案)
- 高速公路改扩建工程监理投标方案(技术方案)
评论
0/150
提交评论