毕业设计 书店管理信息系统设计.doc_第1页
毕业设计 书店管理信息系统设计.doc_第2页
毕业设计 书店管理信息系统设计.doc_第3页
毕业设计 书店管理信息系统设计.doc_第4页
毕业设计 书店管理信息系统设计.doc_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

*学院课程设计报告学院课程设计报告 课设名称课设名称 书店管理信息系统 日日 期期 2009.6.152009.7.3 指导教师指导教师 * 班班 级级 06 姓姓 名名 * 学学 号号 成成 绩绩 书店管理信息系统设计 1 文献综述文献综述2 1 前 言.3 2 关键技术分析.3 3 总 结.8 参考文献.9 1、书店管理信息系统概述、书店管理信息系统概述(前言前言).10 2、书店管理信息系统规划、书店管理信息系统规划10 2.1 业务调查.10 2.2 业务及流程10 2.2.1 图书入库业务流程.13 2.2.2 会员注册业务流程.14 2.2.3 销售管理业务流程.15 2.2.4 库存管理业务流程.15 2.3 e-r 图 .16 2.4 关系数据模式.17 2.5 应用系统体系结构设计.18 3、书店管理信息系统分析、书店管理信息系统分析19 3.1 系统需求.19 3.2 功能需求.20 3.2.1 权限设置.20 3.2.2 图书销售21 3.2.3 图书入库.21 3.2.4 图书库存.22 3.3 数据库设计.23 3.4 交互式界面设计.27 3.4.1 书店管理系统登录界面.27 3.4.2 书店管理系统主界面.27 4、代码实现、代码实现29 书店管理信息系统设计 2 5、总结、总结49 参参 考考 文文 献献51 书店管理信息系统设计 3 文献综述文献综述 摘 要 40 多年来,计算机在处理各方面的应用发展迅速。尤其在计算机飞速发展 的今天,计算机的应用已在社会的各个领域深入开来,无论是在商业,工业还 是政府部门都早已普及。 本文对实现书店图书销售系统的关键技术 mfc 和 ado 进行了概括的描述, 探讨了 mfc 的宏观框架体系、构成应用程序的对象、ado 以及在 vc 中使用 ado 的步骤。本次设计采用了 mfc 技术、ado 技术,并且结合 access2000 来开发书店的图书销售系统。 关键词: 图书销售,mfc,ado 1 前前 言言 在科技飞速发展的今天,计算机的应用已经深入到各行各业当中。为了提 高书店日常工作效率,因此设计了图书销售系统,协助书店的图书销售的管理。 该前台销售部分的开发是为了简化销售过程,能够方便快捷的销售图书,系统 配合了后台管理系统和数据库使用,完成零售业的供销存等商业活动过程。本 次设计的实现采用 visual c+6.0 和 access 2000 等工具来完成,其环境为单击 书店管理信息系统设计 4 环境,采用 mfc 连接数据库,设计出了简洁、易用的人性化界面。实现的功 能有:登陆过程、增加记录、删除记录、查询功能、计费功能等。特点:操作 简单,界面和谐,有一定安全性(登陆过程)和可维护性,查询和计费准确快 捷等。这些功能都在系统中实现,mfc 将数据库的操作封装起来,通过用户对 界面的操作产生相应的消息,从而进行相对应的消息处理并得出的结果。 2 关键技术关键技术分析分析 根据任务书及系统的要求,采用 vc+6.0 和 access 2000 完成整个设计。 用 access 2000 作为后台数据库,并运用 mfc 技术和 ado 技术等设计出简洁、 易用的符合人们使用习惯的操作界面,完成书店图书销售系统的设计与实现。 2.1 mfc 概述概述 2.1.1 mfc 的宏观框架体系 mfc1 4实现了对应用程序概念的封装,把类、类的继承、动态约束、类 的关系和相互作用等封装起来。这样封装的结果对程序员来说,是一套开发模 板(或者说模式) 。针对不同的应用和目的,程序员采用不同的模板。例如, sdi 应用程序的模板,mdi 应用程序的模板,规则 dll 应用程序的模板,扩展 dll 应用程序的模板,ole/activex 应用程序的模板等等。 这些模板都采用了以文档-视为中心的思想,每一个模板都包含一组特定的 类。 为了支持对应用程序概念的封装,mfc 内部必须作大量的工作。例如, 为了实现消息映射机制,mfc 编程框架必须要保证首先得到消息,然后按既定 的方法进行处理。又如,为了实现对 dll 编程的支持和多线程编程的支持, mfc 内部使用了特别的处理方法,使用模块状态、线程状态等来管理一些重要 信息。虽然,这些内部处理对程序员来说是透明的,但是,懂得和理解 mfc 内部机制有助于写出功能灵活而强大的程序。 总之,mfc 封装了 win32 api,ole api,odbc api 等底层函数的功能, 并提供更高一层的接口,简化了 windows 编程。同时,mfc 支持对底层 api 的直接调用。 mfc 提供了一个 windows 应用程序开发模式,对程序的控制主要是由 mfc 框架完成的,而且 mfc 也完成了大部分的功能,预定义或实现了许多事 书店管理信息系统设计 5 件和消息处理,等等。框架或者由其本身处理事件,不依赖程序员的代码;或 者调用程序员的代码来处理应用程序特定的事件。 mfc 是 c+类库29,程序员就是通过使用、继承和扩展适当的类来实现 特定的目的。例如,继承时,应用程序特定的事件由程序员的派生类来处理, 不感兴趣的由基类处理。实现这种功能的基础是 c+对继承的支持,对虚拟函 数的支持,以及 mfc 实现的消息映射机制。 2.1.2 构成应用程序的对象 (1)应用程序 应用程序类派生于 cwinapp。基于框架的应用程序必须有且只有一个应用 程序对象,它负责应用程序的初始化、运行和结束。 (2)边框窗口 如果是 sdi 应用程序,从 cframewnd 类派生边框窗口类,边框窗口的客 户子窗口(mdiclient)直接包含视窗口;如果是 mdi 应用程序,从 cmdiframewnd 类派生边框窗口类,边框窗口的客户子窗口(mdiclient)直接包 含文档边框窗口。 如果要支持工具条、状态栏,则派生的边框窗口类还要添加 ctoolbar 和 cstatusbar 类型的成员变量,以及在一个 oncreate 消息处理函数 中初始化这两个控制窗口。 边框窗口用来管理文档边框窗口、视窗口、工具条、 菜单、加速键等,协调半模式状态(如上下文的帮助(shift+f1 模式)和打印预 览) 。 (3)文档边框窗口 文档边框窗口类从 cmdichildwnd 类派生,mdi 应用程序使用文档边框窗 口来包含视窗口。 (4)文档 文档类从 cdocument 类派生,用来管理数据,数据的变化、存取都是通过 文档实现的。视窗口通过文档对象来访问和更新数据。 (5)视 视类从 cview 或它的派生类派生。视和文档联系在一起,在文档和用户之 间起中介作用,即视在屏幕上显示文档的内容,并把用户输入转换成对文档的 操作。 书店管理信息系统设计 6 (6)文档模板 文档模板类一般不需要派生。mdi 应用程序使用多文档模板类 cmultidoctemplate;sdi 应用程序使用单文档模板类 csingledoctemplate。 应 用程序通过文档模板类对象来管理上述对象(应用程序对象、文档对象、主边 框窗口对象、文档边框窗口对象、视对象)的创建。 2.2 vc 开发数据库之 ado 2.2.1 ado 概述 ado 是 microsoft 为最新和最强大的数据访问范例 ole db 而设计的,是 一个便于使用的应用程序层接口。ado 使您能够编写应用程序以通过 ole db 提供者访问和操作数据库服务器中的数据。ado 最主要的优点是易于使用、 速度快、内存支出少和磁盘遗迹小。ado 在关键的应用方案中使用最少的网 络流量,并且在前端和数据源之间使用最少的层数,所有这些都是为了提供轻 量、高性能的接口。之所以称为 ado,是用了一个比较熟悉的暗喻,ole 自 动化接口。ole db 是一组”组件对象模型”(com) 接口,是新的数据库低层接 口,它封装了 odbc 的功能,并以统一的方式访问存储在不同信息源中的数据。 ole db 并不局限于 isam、jet 甚至关系数据源,它能够处理任何类型的数 据,而不考虑它们的格式和存储方法。ole db 应用程序编程接口的目的是为 各种应用程序提供最佳的功能,它并不符合简单化的要求。您需要的 api 应该 是一座连接应用程序和 ole db 的桥梁,这就是 activex data objects (ado)。 2.2.2 在 vc 中使用 ado (1)引入 ado 库文件 使用 ado 前必须在工程的 stdafx.h 文件里用直接引入符号#import 引入 ado 库文件,以使编译器能正确编译。代码如下所示: 代码 1:用#import 引入 ado 库文件 #import “c:program filescommon filessystemadomsado15.dll“ no_namespaces rename(“eof“ adoeof“) 这行语句声明在工程中使用 ado,但不使用 ado 的名字空间,并且为了 避免常数冲突,将常数 eof 改名为 adoeof。现在不需添加另外的头文件,就 书店管理信息系统设计 7 可以使用 ado 接口了。 (2)初始化 ole/com 库环境 必须注意的是,ado 库是一组 com 动态库,这意味应用程序在调用 ado 前,必须初始化 ole/com 库环境。在 mfc 应用程序里,一个比较好的 方法是在应用程序主类的 initinstance 成员函数里初始化 ole/com 库环境。加 入一句 afxoleinit();即可。 代码 2:初始化 ole/com 库环境 函数 afxoleinit 在每次应用程序启动时初始化 ole/com 库环境。同 dao 和 cdatabase 一样,ado 由几个接口组成:_connectionptr,_commandptr 和 _recordsetptr.不同于 dao 和 cdatabase 的是,ado 基于 com 的接口。 (3)ado 接口简介 ado 库包含三个基本接口:_connectionptr 接口、_commandptr 接口和 _recordsetptr 接口。_connectionptr 接口返回一个记录集或一个空指针。通常使 用它来创建一个数据连接或执行一条不返回任何结果的 sql 语句,如一个存储 过程。使用_connectionptr 接口返回一个记录集不是一个好的使用方法。通常同 cdatabase 一样,使用它创建一个数据连接,然后使用其它对象执行数据输入输 出操作。_commandptr 接口返回一个记录集。它提供了一种简单的方法来执行 返回记录集的存储过程和 sql 语句。在使用_commandptr 接口时,你可以利用 全局_connectionptr 接口,也可以在_commandptr 接口里直接使用连接串。如 果你只执行一次或几次数据访问操作,后者是比较好的选择。但如果你要频繁 访问数据库,并要返回很多记录集,那么,你应该使用全局_connectionptr 接口 创建一个数据连接,然后使用_commandptr 接口执行存储过程和 sql 语句。 _recordsetptr 是一个记录集对象。与以上两种对象相比,它对记录集提供了更 多的控制功能,如记录锁定,游标控制等。同_commandptr 接口一样,它不一 定要使用一个已经创建的数据连接,可以用一个连接串代替连接指针赋给 _recordsetptr 的 connection 成员变量,让它自己创建数据连接。如果你要使用 多个记录集,最好的方法是同 command 对象一样使用已经创建了数据连接的 全局_connectionptr 接口,然后使用_recordsetptr 执行存储过程和 sql 语句78。 书店管理信息系统设计 8 代码 3:使用_recordsetptr 执行 sql 语句 _recordsetptr myset; myset.createinstance(_uuidof(recordset); myset-open(“select * from some_table“, mydb.getinterfaceptr(),adopendynamic,adlockoptimistic,adcmdtext); 现在我们已经有了一个数据连接和一个记录集,接下来就可以使用数据了。 使用 ado 的_recordsetptr 接口,就不需要象 dao 那样频繁地使用大而复杂的 数据结构 variant,并强制转换各种数据类型了,这也是 ado 的优点之一。 假定程序有一个名称为 m_list 的的 listbox 控件,下面代码我们用 _recordsetptr 接口获取记录集数据并填充这个 listbox 控件: 代码 4:使用 dao 访问数据 variant * vfieldvalue; colevariant covfieldvalue; cstring holder; while(!myset-iseof() myset-getfieldvalue(“field_1“, covfieldvalue); vfieldvalue = (lpvariant)covfieldvalue; if(vfieldvalue-vt!-vt_null) holder.format(“%s“,vfieldvalue-pbval); m_list.addstring(holder); myset.movenext(); 代码 5:使用 ado 访问数据 _variant_t holder try while(!myset-adoeof) 书店管理信息系统设计 9 holder = myset-getcollect(“field_1“); if(holder.vt!=vt_null) m_list.addstring(char*)_bstr_t(holder); myset-movenext(); catch(_com_error * e) cstring error = e-errormessage(); afxmessagebox(e-errormessage(); catch(.) messagebox(“ado 发生错误!“); 必须始终在代码中用 try 和 catch 来捕获 ado 错误,否则 ado 错误会使你 的应用程序崩溃。当 ado 发生运行时错误时(如数据库不存在),ole db 数据提 供者将自动创建一个_com_error 对象,并将有关错误信息填充到这个对象的成员 变量. 3 总总 结结 书店图书销售系统是书店提高效率的必要组成部分,为其图书销售提供了 方便快捷准确的操作。 通过以上的分析。我们可以充分认识到设计开发一个图书销售系统的重要 性,本次设计开发图书信息管理系统符合一个书店销售的基本规定,并达到操 作过程中的直接,方便,实用,安全等要求。系统采用模块化程序设计的方法, 便于系统的组合和修改,又便于系统以后的维护和升级。本设计采用的 mfc 技术,并使用 ado 操作数据库,这是很多应用软件常用的一种方法,虽然技 术还算比较陈旧,但很实用,也是很多企业常用的方法。 书店管理信息系统设计 10 这几个月中我阅读了大量的专业类书籍,使我受益匪浅。学会了如何把所 学到的理论知识运用到实践当中去,同时对软件开发和设计有了更深一层的理 解,这段时间的学习也锻炼了我的创新思维能力。也为下一阶段的系统的开发 和论文的撰写做好了充分的准备。 参考文献参考文献 1 王华. visual c+ 6.0 编程实例与技巧.m 北京:中国水利水电出版社, 1999 2 朱晴婷. visual c+程序设计.m 北京:清华大学出版社,2006 3 (美)stabley b.lippman. c+ primer. m 北京:人民邮电出版社,2006 4 侯俊杰. 深入浅出 mfc.m 武汉:华中科技大学出版社,2001 5 陆惠恩. 实用软件工程.m 北京:清华大学出版社,2006 6陈禹.软件开发工具.m 北京:经济科学出版社,2005 7王珊 洒师煊. 数据库系统概论. m 北京:高等教育出版社,2005 8 罗骏.sql server2000 实用教程. m 北京:清华大学出版社.,2007 9 严华峰. visual c+ 课程设计案例精编.m 北京:中国水力水电出版社, 2002 10 谭浩强. c+程序设计.m 北京:清华大学出版社,1998 书店管理信息系统设计 11 1、书店管理信息系统概述、书店管理信息系统概述(前言前言) 书店管理系统是一个大型书店不可缺少的部分。人工管理方式存在着许多 缺点:效率低,保密性差,另外时间一长,将产生大量的文件和数据,这对于 查找,更新和维护都带来不少困难。随着科学技术的不断提高。计算机学日渐 成熟。它已进入人类社会的各个领域并发挥重要作用。使用计算机档案信息管 理,有好多好处:查找方便,可靠性高,存储量大,保密性好,成本低等,能 够极大提高管理的效率,也是企业的科学化,与世界接轨的重要条件。 开发了书店管理系统就可以进行统一数字化管理,为书店工作人员提供明确, 有效的信息,使工作人员工作更方便,更简单。 2、书店管理信息系统规划、书店管理信息系统规划 2.1 业务调查业务调查 了解书店的进书,售书,退书及会员管理等业务流程,分析功能实现的模 块,大体制定设计方案,针对每一模块所要实现的具体要求进行详细的调查分 析。 2.2 业务及流程业务及流程 系统总结构图系统总结构图 图图 2-1 书店管理信息系统设计 12 某书店销售管理系统系统 销 售 管 理 子 系 统 仓 库 管 理 子 系 统 经 理 子 系 统 统 计 分 析 销 售 统 计 图 书 的 销 售 图 书 分 类 管 理 供 应 商 管 理 库 存 管 理 会 员 政 策 用 户 管 理 图 书 的 库 存 信 息 会 员 管 理 供 应 商 信 息 会 员 信 息 查 询 子 系 统 图图 2-1 本书店销售管理系统主要有以下四大模块: (1)、系统管理 包括用户的登陆、用户修改密码、重新登陆和退出系统。 (2)、经理子系统:包括统计分析、用户管理和会员政策。统计分析包括对 销售、库存、退货等信息的统计这样管理员就能够很直观的了解当前书店的运 营情况,可以及时的制定下一时间段的销售和管理策略。用户管理包括对用户 的添加、删除和修改,由于在系统用户中有部分是书店的管理人员聘请过来的, 这些人员不是一成不变的,总是在不断变化,这就涉及到用户信息的添加、删 除和修改。另外,会员还分有不同的级别,有的在本店里买的书籍比较多了会 员级别比较高,这样打的折也多,新入的会员等级低打的折也少,这样就需要 对会员的等级进行管理 (3)、仓库管理子系统 包括库存管理、供应商信息管理和图书分类管理。 书店管理信息系统设计 13 图书存在仓库总有入库和出库,为了对图书的入库和出库信息进行详细的统计 和管理我们需要对库存进行管理,并且我们要对库存里的书籍进行书目管理, 这也属于库存管理的范畴。由于现在供应商很多,书店会有选择的选取其中的 一些作为固定的合作伙伴,这样就需要对他们的信息进行管理,这就涉及到供 应商信息的添加、删除和修改。另外,图书还分为不同的类型,有文学的,有 经济类的等等,不同的类型的书籍的销售情况,摆放位置也不一样,这需要对 图书的类型进行管理。 (4)、销售管理子系统包括图书的销售、销售统计和会员管理。本系统的一 个主要的功能就是销售图书的功能。销售统计是让营业员查看一下当天的销售 记录。由于本书店是会员制的所有我们就需要对会员进行管理,这里面包括会 员的增加,修改和删除。 (5)、查询子系统 包括对图书的库存信息,会员信息,供应商信息进行查 询。如果想知道某本书的相关信息,可以输入该书的编号、书名任意查询,同 时该操作还支持模糊查询。如果想知道某会员的购买情况、某种书的销售情况 同样可以通过查询得到。 书店管理信息系统设计 14 2.2.1 图书入库业务流程图书入库业务流程 图图 2-22-2 管理 员 查询库 存 进货的图书 信息 记录不 足的图 书 进货交易单 图书供 应商 提供所 需图书 登记图 书信息 图书管 理员 图书信息 图书入 库 图书管 理员 图书分 类 图书分类 信息 图书上 架 录入系 统 系统管 理员 图书入库 信息 导购 员 图图 2-22-2 书店管理信息系统设计 15 2.2.2 会员注册业务流程会员注册业务流程 图图 2-3 顾客 填写会员 申请表 会员申请 表 注册会员 会员信息 错误的会 员信息 正确的会 员信息 成功注册 会员信息 系统审核 会员信息 正确 错误 管理 员 图图 2-3 会员优惠政策判断表: 决策规格号1234 会员时间60 天yynn 条 件 购买金额100 元ynyn 优惠 25%y 优惠 20%y 优惠 15%y 应采取 的政策 优惠 5%y 书店管理信息系统设计 16 2.2.3 销售管理业务流程销售管理业务流程 图图 2-4 选择图 书 录入图 书和顾 客信息 顾客 系统分 析 会员优惠 政策 收银 员 进行相 应的收 费 询问顾客 是否办理 会员 支付 顾客 不是会员 是会员 图书销售 信息表 会员信息 是 修该会员 信息表 会员信息 表 图图 2-4 2.2.4 库存管理业务流程库存管理业务流程 图图 2-5 职员 统计库存 库存信息 表 销售信息 表 录入信 息 系统审 核 错误的库 存信息 正确的库 存信息 库存信息 正确 错误 管理 员 库存信息 书店管理信息系统设计 17 2.3 e-r 图图 管理员管理职员属于部门 维护服务 会员书籍购买 供应 供应商 折扣规则 供应量 1nn1 m m nn 1n m n 管理员:管理员: 管理员 管理员编号年龄性别姓名学历工资部门编号电话住址 职员:职员: 职员 职员编号年龄性别姓名学历工资部门编号电话住址 书店管理信息系统设计 18 部门:部门: 部门 部门编号职员人数部门名称 会员:会员: 会员 会员编号姓名联系方式性别会员有效期累计消费享有优惠 书籍:书籍: 书籍 书籍编号 在库数 量 供应商 编号 货架号价格作者书名 供应商供应商 供应商 供应商编号名称地址联系电话供应量书籍名称 2.4 关系数据模式关系数据模式 管理员(管理员编号,部门编号,姓名,工资,性别,年龄,学历,住址,电 话) 书店管理信息系统设计 19 部门(部门编号,部门名称,职员人数) 职员(职员编号,部门编号,工资,姓名,性别,年龄,学历,住址,电话) 书籍信息(书籍编号,书名,作者,价格,货架号,供书商编号,在库数量) 供书商(供书商编号,名称,地址,联系电话,书籍名称,供应量) 会员(会员编号,姓名,性别,联系方式,会员有效期,累计消费,享有 优惠) 书店管理信息系统设计 20 2.5 应用系统体系结构设计应用系统体系结构设计 将业务流程与规划出的主题数据库结合在一起画出 u-c 矩阵。矩阵中的 u 表示某项业务使用某一数据库,c 表示某项业务负责产生某一主题数据库,同 时也使用该主题数据库。主题数据库与业务流程中的各项业务处理环节所组成 的 u-c 矩阵见表.。 数据数据 库库 项目项目 职 员 信 息 数 据 库 会 员 信 息 数 据 库 图 书 信 息 数 据 库 图 书 分 类 信 息 数 据 库 图 书 销 售 信 息 数 据 库 库 存 信 息 数 据 库 订 单 明 细 数 据 库 订 单 信 息 数 据 库 职员管理c 会员注册业 务 c 会员管理u 图书分类管 理 uc 图书销售管 理 库存管理u 供应商信息 管理 在 u-c 矩阵基础上进行的体系结构设计见表.。 书店管理信息系统设计 21 将 u-c 矩阵进行调整,使 c 集中在对角线上,然后划分出信息系统的子系 统,如表 2.3 所示。其中,落在黑框外的 u 表示子系统之间的信息交换关系, 从而可以看出数据库的共享性。 表 2.3 中各子系统的功能如下: 子系统 1:基础数据管理,提供了对各类编码数据的维护功能。 子系统 2:图书销售管理,提供了图书的信息、分类信息、车图书销售信 息处理功能。 子系统 3:库存管理,提供了仓库基本信息的管理、出入库管理和库存结 算以及供应商信息等。 数据数据 库库 项目项目 职 员 信 息 数 据 库 会 员 信 息 数 据 库 图 书 信 息 数 据 库 图 书 分 类 信 息 数 据 库 图 书 销 售 信 息 数 据 库 库 存 信 息 数 据 库 订 单 明 细 数 据 库 订 单 信 息 数 据 库 职员管理 会员注册业 务 会员管理 系统系统 1 图书分类管 理 图书销售管 理 系统系统 2 库存管理u 供应商信息 管理 系统系统 3 书店管理信息系统设计 22 3、书店管理信息系统分析、书店管理信息系统分析 3.1 系统需求系统需求 书店管理系统需要满足来自三个方面需求:第一,书店工作人员通过计算 机来管理各类图书,进行图书分类编号,调整图书结构,增加图书库存,适应 读者的需求。第二,工作人员对读者的需求情况能作好全面的掌握,及时得到 历史销售记录。第三,也是书店的核心工作,对图书的销售管理。 原始落后的管理已经远远不能满足,不但工作繁琐,出错的几率也是很大 的,大大降低了工作效率。另外现在比较有先见之明的书店都慢慢发展自己的 特色业务,比如会员制度,针对会员有免费借阅书籍的业务,要求是每月消费 达到一定金额,据悉这种举措很受市场的欢迎,极大的带动了书店的消费,为 书店自身的发展积累了一定的资金和管理经验。除此之外还有各色名目繁多的 会员活动等等,给读者一种心理上的优越感,刺激了消费。 为了优化书店管理模式,我们尝试开发了这个书店综合管理系统,让用户 很方便的通过这套系统管理书店的日常事务和繁琐数据,让用户在整洁的环境 下轻松的进行书店的日常业务的开展。 3.2 功能需求功能需求 基于系统需求分析,该系统需要实现以下基本功能: 3.2.1 权限设置权限设置 本系统的使用用户分两种:管理员和普通用户。管理员具有使用本系统的 所有功能,而普通用户是需要具有日常书店的管理功能即可。用户权限的设置 通过用户登陆界面的输入来进行。 会员注册数据流程图会员注册数据流程图 书店管理信息系统设计 23 顾客 填写会员 申请表 会员申请 表 注册会员 会员信息 错误的会 员信息 正确的会 员信息 成功注册 顾客信息 顾客信息会员信息 错误的会员信息 会员信息 会员信息 系统审核 会员信息 正确的会员信息 会员信息 错 误 的 会 员 信 息 会员信息 管理 员 申请信息 会员信息 3.2.2 图书销售图书销售 图书管理人员通过此模块来销售各类图书并对销售情况进行记录,记录的 信息包括图书销售的数量,价格,折扣比例等。在进行销售图书时,输入图书 的编号,系统就可以搜索到该图书编号对应的图书信息,然后列出该图书销售 是需要的基本信息,书名,出版社价格等。销售可以输入折扣数以便打折, 在购买相同的多本书时,可以直接输入图书数量,避免重复输入图书编号。同 时,也提供撤销销售记录的功能,销售员可以撤销销售时的上一条记录。程序 还能自动统计读者购买的总金额,便于销售员掌握。 销售管理数据流程图销售管理数据流程图 书店管理信息系统设计 24 顾客收银员图书信息和顾客信息录入系统图书信息和顾客信息系统分析 顾客信息 会员优惠 政策 会员信息 普通顾客 信息 普通顾客信息 进行相应 的收费 会员优惠政策 会员信息与顾客信息 收费信息 顾客 收费信息 销售信息 销售信息 3.2.3 图书入库图书入库 书店工作人员通过此模块来管理各类图书库存的数目。当一批图书入库时, 只需要输入图书编号和图书数量,程序将自动更改库存的图书数量。使用的公 式为:现有图书库存=原有图书库存 + 新入库图书数量。 图书入库数据流程图图书入库数据流程图 书店管理信息系统设计 25 查询库存库存信息管理员 导购 员 不足的图书信息 进货的图书信息 进货图书信息 供应 商 进货交易单 图书管 理员 入库图书信息 图书分 类 系统管 理员 图书分类信息 图书信息 图书信息图书分类信息 图书分类信息 图书入库信息 3.2.4 图书库存图书库存 书店工作人员通过次模块来管理各类图书信息,包括图书的库存。 当一种图 书的库存数量规定值本时,系统将图书的信息列入不足表中,以便进货员及时 购书入库。 库存管理数据流程图库存管理数据流程图 书店管理信息系统设计 26 职员 统计库存 库存信息 表 销售信息 表 录入信 息 系统审 核 错误的库 存信息 正确的库 存信息 库存信息 库存信息库存信息 库存信息 正确的库存信息 错误的库存信息 错误的库存信息 管理 员 库存信息 库存信息 销售信息 库存信息 3.3 数据库设计数据库设计 图书信息的表结构,为了便于说明,其中 bookisbn 是主键,区分不同的图 书。 javabeans 要根据不同的图书 bookisbn 来获得起相应的书名,作者,出 版社,价格,简介等信息。同时 javabeans 还要有列出书店中所有图书的信息 的功能。 表 3.1 bookinfo 图书的信息 序号字段名类型是否可置空含义是否是关键字 1bookisbn文本否图书编号是 2bookname文本否书名否 3bookauther文本否作者否 4publisher文本否出版社否 5price文本否价格否 6introduce文本否简介否 书店管理信息系统设计 27 表 3.2 buyerinfo 会员信息库 序号字段名类型是否可置 空 含义是否是关 键字 1memberid文本否用户代码是 2membername文本否用户名称否 3logontimes文本否登陆次数否 4pwd文本否密码否 5phonecode文本否电话否 6zipcode文本否邮政编码否 7address文本否地址否 8email文本否电子邮件地址否 表 3.3 workersinf 职员信息库 序号字段名类型是否可置 空 含义是否是关 键字 1memberid文本否职员代码是 2membername文本否职员姓名名称否 3sex文本否性别否 4age文本否年龄否 5phonecode文本否电话否 6wage 文本否工资否 7address文本否地址否 8part文本否部门编号否 书店管理信息系统设计 28 表 3.4 图书销售表-booksale 35 图书类别表-booktypeinfo 表 3.6 bookinfo 图书库存的信息 序号字段名类型是否可置空含义是否是关键字 1bookisbn文本否图书编号是 2bookname文本否书名否 3bookauther文本否作者否 字 段 名 称类 型 主 键非 空 saleno销售数目自动编号是 是 bookno销售图书编号文本 否 是 bookname销售图书名文本 否 否 author销售图书作者文本 否 否 publisher销售图书出版 社 文本 否 否 price销售图书价格数字 否 是 discount打折数字 否 是 number销售图书数量数字 否 是 moneysum金额数字 否 是 date销售日期数字否 是 名 称字 段 名 称 类 型主 键非 空 booktypeno图书类别编号自动增长 是 是 booktypename图书类别名称 文本 否 是 书店管理信息系统设计 29 4publisher文本否出版社否 5price文本否价格否 storecount数字否库存量否 introduce文本否简介否 表 3.7orderdetail 定单明细 序号字段名类型是否可置空含义是否是关键字 1orderid数字否定单号是 2bookisbn文本否书号是 3bookcount数字否数量否 表 3.8 orderinfo 定单信息表 序号字段名类型是否可置 空 含义是否是关键 字 1orderid文本否是 2userid文本否会员 id否 3receivername文本否接受者姓 名 否 4receiveraddress文本否接受者地 址 否 5receiverzip文本否接邮政编 码 否 6orderrem文本否备注否 7orderprice文本否否 8orderdate文本否否 9handled数字否否 书店管理信息系统设计 30 3.4 交互式界面设计交互式界面设计 3.4.1 书店管理系统登录界面书店管理系统登录界面 书店管理信息系统设计 31 3.4.2 书店管理系统主界面书店管理系统主界面 本系统基本能适合小型书店的应用,书店实现了前台销售模块,包括图 书销售,图书查询,查询不足,销售管理;后台管理模块,实现了图书入库, 入库纪录,退书管理,退书查询;高级管理模块实现了客户管理,会员管理, 管理员管理等功能。本系统有着人性化的界面,方便用户操作,所有菜单栏 都在左侧,实现简单、美观,通过自定义属性可以动态的添加菜单项和图标, 为以后软件的扩展提供了接口。由于时间原因,系统中部分功能未能实现, 有待于以后完善。 书店管理信息系统设计 32 4、代码实现、代码实现 public sub logoff() dim retval as integer retval = msgbox(“你确定要注销吗?“, vbokcancel + vbquestion, “注销当前用户 “) if retval = vbcancel then exit sub load login login.show unload main end sub private sub ab_click() 书店管理信息系统设计 33 load about about.show end sub private sub bf_click() backup.show unload me end sub private sub c11_click() adodc_rk1.commandtype = adcmdtext adodc_rk1.recordsource = “select * from 图书 “ adodc_rk1.refresh adodc_rk2.commandtype = adcmdtext adodc_rk2.recordsource = “select 编号 from 图书 where 编号=“ data source=“ persist security info=false;jet oledb:database password=hh“ adodc1_0.connectionstring = connstr adodc1_01.connectionstring = connstr adodc1_02.connectionstring = connstr adodc1_1.connectionstring = connstr adodc1_11.connectionstring = connstr adodc1_2.connectionstring = connstr adodc1_3.connectionstring = connstr adodc_rk1.connectionstring = connstr adodc_rk2.connectionstring = connstr adodc_rk3.connectionstring = connstr adodc_rj.connectionstring = connstr adodc_th1.connectionstring = connstr adodc_th2.connectionstring = connstr adodc_tc.connectionstring = connstr adodc_hy.connectionstring = connstr agl.connectionstring = connstr abg.connectionstring = connstr guanli.connectionstring = connstr frame1_1.visible = false frame1_2.visible = false frame1_3.visible = false 书店管理信息系统设计 50 frame1_4.visible = false frame1_5.visible = false frame1_6.visible = false frame1_7.visible = false frame1_8.visible = false cmd_th_ok.enabled = false commanda_ok0.enabled = false commanda_ok.enabled = false texta_s2.enabled = false end sub private sub picture1_1_click() frame1_1.visible = true frame1_2.visible = false frame1_3.visible = false frame1_4.visible = false frame1_5.visible = false frame1_6.visible = false frame1_7.visible = false frame1_8.visible = false frame1_9.visible = false frame1_10.visible = false frame1_11.visible = false end sub label_movedown & up 设置 private sub picture1_1_mousedown(button as integer, shift as integer, x as single, y as single) picture1_1.borderstyle = 1 书店管理信息系统设计 51 end sub private sub picture1_1_mouseup(button as integer, shift as integer, x as single, y as single) picture1_1.borderstyle = 0 end sub private sub picture1_2_click() frame1_1.visible = false frame1_2.visible = true frame1_3.visible = false frame1_4.visible = false frame1_5.visible = false frame1_6.visible = false frame1_7.visible = false frame1_8.visible = false frame1_9.visible = false frame1_10.visible = false frame1_11.visible = false end sub private sub picture1_2_mousedown(button as integer, shift as integer, x as single, y as single) picture1_2.borderstyle = 1 end sub private sub picture1_2_mouseup(button as integer, shift as integer, x as single, y as single) picture1_2.borderstyle = 0 end sub 书店管理信息系统设计 52 private sub picture1_3_click() frame1_1.visible = false frame1_2.visible = false frame1_3.visible = true frame1_4.visible = false frame1_5.visible = false frame1_6.visible = false frame1_7.visible = false frame1_8.visible = false frame1_9.visible = false frame1_10.visible = false frame1_11.visible = false end sub private sub picture1_3_mousedown(button as integer, shift as integer, x as single, y as single) picture1_3.borderstyle = 1 end sub private sub picture1_3_mouseup(button as integer, shift as integer, x as single, y as single) picture1_3.borderstyle = 0 end sub private sub picture1_4_click() frame1_1.visible = false frame1_2.visible = false frame1_3.visible = false frame1_4.visible = true 书店管理信息系统设计 53 frame1_5.visible = false frame1_6.visible = false frame1_7.visible = false frame1_8.visible = false frame1_9.visible = false frame1_10.visible = false frame1_11.visible = false end sub private sub picture1_4_mousedown(button as integer, shift as integer, x as single, y as single) picture1_4.borderstyle = 1 end sub private sub picture1_4_mouseup(button as integer, shift as integer, x as single, y as single) picture1_4.borderstyle = 0 end sub

温馨提示

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

评论

0/150

提交评论