小型超市进销存管理系统论文.doc_第1页
小型超市进销存管理系统论文.doc_第2页
小型超市进销存管理系统论文.doc_第3页
小型超市进销存管理系统论文.doc_第4页
小型超市进销存管理系统论文.doc_第5页
免费预览已结束,剩余50页可下载查看

下载本文档

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

文档简介

华中师范大学本科生论文 分类号 论文选题类型 u d c 编号 本科毕业论文(设计) 题 目 小型超市进销存管理系统的 设计与实现 院 (系) 计算机科学系 专 业 计算机科学与技术(师) 年 级 2008 级 学生姓名 学 号 指导教师 华中师范大学本科毕业论文 二一二年五月 华中师范大学 学位论文原创性声明 本人郑重声明:所呈交的学位论文是本人在导师指导下独立进行研究工作所 取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他 个人或集体已经发表或撰写的成果作品。本人完全意识到本声明的法律后果由本 人承担。 学位论文作者签名: 日期: 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保障、使用学位论文的规定,同意学校保 留并向有关学位论文管理部门或机构送交论文的复印件和电子版,允许论文被查 阅和借阅。本人授权省级优秀学士学位论文评选机构将本学位论文的全部或部分 内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇 编本学位论文。 本学位论文属于 1、保密 ,在_年解密后适用本授权书。 2、不保密 。 (请在以上相应方框内打“” ) 学位论文作者签名: 日期: 年 月 日 华中师范大学本科毕业论文 导师签名: 日期: 年 月 日 摘要 随着经济的发展和人们生活节奏的加快,超市购物越来越受到人们的青睐。 在市场经济的引导下,小型超市如雨后春笋般兴起,并且规模日益增大,销售额 和门店数量大幅度增加。进货、售货、商品信息的更新、分析与统计等工作量的 纷繁复杂使得传统的手工记账方式已经远远不能满足超市发展的需要;另一方面, 全球经济一体化的发展和电子商务的兴起,使得各行业之间的竞争愈演愈烈,这 就要求中小型超市必须改变其经营模式,以提高运营效率。 本论文主要实现对小型超市员工信息管理、供应商信息管理、订单管理、商 品销售管理、商品退货管理等。系统采用 b/s 架构,运用 jsp 技术编写代码,可 以完成对各类信息的查询、添加、修改、删除等功能,操作简单,使用方便,安 全性强,在很大程度上减轻了超市管理者的工作强度。 关键词:jsp、sql server 2005、b/s 架构、超市、进销存、管理系统 华中师范大学本科毕业论文 abstract with the rapid development of economic and the accelerated pace of modern life, more and more people prefer to shop in the supermarket. with the market-oriented economy developing, the small supermarkets spring up with bigger sales, which lead to bigger dimensions expansion and more sells of the markets. the large amount of work to update, analyze and evaluate the information of those purchases and sales are more complicated, which makes its unable to meet the needs of the supermarkets development; on the other hand, in the environment of the global economic integration and the emergence of the electronic commerce, competition among the industries becomes more and more fierce. considering those conditions, the small supermarket must change its operation mode in order to improve its work efficiency. this thesis is mainly to analyze how the system completes the function to manage the information of the employee, providers and orders, charge-back of the small supermarket. the system uses the framework of b/s, and it is coded by jsp to update, add, change, and delete all kinds of information of the system. the advantage of the system is that its easy to use and owns high level of security, which is largely ease the managers workload of the supermarket. key words:jsp, sql server 2005, b/s framework, supermarket, purchase-sale-exist, management system 华中师范大学本科生论文 目录 第 1 章 绪论 .1 第 2 章 主要开发工具及技术介绍 .2 2.1 jsp 技术概述 2 2.1.1 jsp 技术简介 .2 2.1.2 jsp 技术特点 .3 2.2 jsp 连接数据库 4 2.3 系统开发环境 .4 第 3 章 系统设计 .6 3.1 系统体系结构设计 .6 3.2 系统开发模式选择 .7 3.3 系统功能需求概述 .9 3.4 系统模块功能设计与分析 .9 3.5 数据库设计 .12 3.5.1 数据库详细设计 .12 3.5.2 数据库表的设计 .16 第 4 章 系统实现 .21 4.1 系统文件结构 .21 4.2 系统调用过程 .21 4.3 系统页面布局 .29 4.4 系统各功能实现 .30 4.4.1 销售功能 .30 4.4.2 查询商品 .31 4.4.3 退货管理 .31 4.4.4 订单管理 .32 4.4.5 供应商管理 .36 4.4.6 商品类别管理 .37 华中师范大学本科毕业论文 4.4.7 员工信息管理 .38 4.4.8 分页功能的实现 .40 第 5 章 总结与展望 .42 参考文献 .43 致谢 .44 华中师范大学本科毕业论文 1 第 1 章 绪论 在各种信息膨胀爆炸的今天,人类每天要处理的信息量大都难以预计的程度, 甚至出现“信息威胁”说。计算机的出现,为人们带来了希望。它能迅速、准确 地对信息进行收集、查询和加工等,大大改善了因手工操作带来的正确率和效率 低下等问题。 超市每天都要对大量的信息进行处理。尤其是现代人对于超市的青睐,使得 超市在业绩蒸蒸日上的同时,所面临的信息处理量也跟着成倍增长。在这种情况 下,手工管理的弊端更加暴露无遗,利用计算机来进行数据管理已经成为一种必 然的选择。计算机信息化管理有着储存量大,速度快等许多优点,提供给我们的 处理信息及时快捷。因此我们利用计算机提供给我们的信息对需求者的查询及购 买过程形成一整套动态的管理能够极大地提高超市进销存管理的效率,这也是超 市进销存管理的科学化、正规化和与世界接轨的重要条件。 本文将介绍一个基于 web 的小型超市进销存管理系统,读者可以根据本系统 了解利用计算机在超市管理系统中是如何发挥作用的。由于超市管理系统所涉及 到的内容十分广泛,短时间之内不可能实现其全部功能,因此本系统只介绍与超 市进、销、存相关的核心功能,有兴趣的读者可以对其功能自己再加以扩展和丰 富,使之成为功能更加全面、界面更加美观的系统。 本文第一章主要介绍本系统选题的意义和概述。第二章详细介绍了系统开发 所采用的技术及开发系统所需的环境,只有正确搭建好环境才能使系统顺利运行, 这也是开发任何一个系统都必不可少的。第三章介绍的是本系统的需求分析与设 计,包括系统体系结构设计、系统开发模式的选择、系统功能模块的设计和系统 数据库的设计等。第四章介绍了系统的实现过程,包括系统各个功能模块的实现 及其实现的核心代码等。第五章是对本系统的总结与展望。 华中师范大学本科毕业论文 2 第 2 章 主要开发工具及技术介绍 2.1 jsp 技术概述 2.1.1 jsp 技术简介 jsp 是 java server pages 的简称,它是一种用于开发包含动态内容的 web 页 面的技术。在纯 html 页面中,仅包含静态内容,这些内容永远都是一样的,与 此不同,jsp 页面可以基于任何数目的可变项修改其内容,包括用户身份、用户 浏览器类型、用户提供的信息以及用户所作出的选择等 11。jsp 页面由 html 代码和嵌入其中的 java 代码所组成。服务器在 jsp 页面被客户端请求以后对这些 java 代码进行处理 6;如果客户端请求的是 jsp 页面,则服务器会先将 jsp 文件 编译成 servlet 文件,再将 servlet 文件编译成 class 文件;如果客户端不是第一次 请求,则服务器就不会再对这些 java 代码进行编译,这样就生成了 servlet 实例; 接下来,服务器会将生成的 servlet 实例以 html 页面的形式返回给客户端的浏 览器 9,其过程如图 1.1 所示。java servlet 是 jsp 技术的基础,而且大型的 web 应用程序的开发需要 java servlet 和 jsp 配合才能完成。此外,jsp 技术还具有跨 平台性、运行效率高、上手容易等优点,是动态网站设计者十分不错的选择。 图 1.1 jsp 网站工作流程 返回响应 客 户 端 请求 jsp 页面 jsp 服务器 jsp 文件 (.jsp) servlet 文件 (.java) class 文件 (.class) servlet 实例 华中师范大学本科毕业论文 3 2.1.2 jsp 技术特点 jsp 已成为当今最为流行的网络编程语言之一,广泛地运用于电子商务、电 子政务以及各行业的软件中 2。jsp 之所以深受大家的喜爱,主要是因为它具有 以下特点: (1)将内容的生成和显示进行分离 使用 jsp 技术, web 页面开发人员可以使用 html 或者 xml 标识来设计和 格式化最终页面,使用 jsp 标识或者小脚本来生成页面上的动态内容。生成内容 的逻辑被封装在标识和 javabeans 组件中,并且捆绑在小脚本中,所有的脚本都 在服务器端运行。而在服务器端,jsp 引擎解释 jsp 标识和小脚本,生成所请求 的内容并将结果以 html 页面的形式发送回浏览器。这样一来,jsp 设计人员就 可以任意操作 jsp 代码而不会影响到页面的布局;网页设计者也可以任意编辑和 使用 jsp 页面而不影响内容的生成。 (2)强调可重用的组件 绝大多数 jsp 页面依赖于可重用、跨平台的组件(javabeans 或 enterprise javabeans tm 组件)来执行应用程序所要求的更为复杂的处理。例如:开发人员 可以将处理逻辑封装在 javabeans 中,再通过调用 jsp 将处理结果显示出来。修 改组件只需动用组件内部代码,而不必更改 jsp 代码。这样,大大提高了系统的 可重用性。 (3)采用标识简化页面开发 jsp 技术封装了许多功能,而这些功能是在易用的、与 jsp 相关的 xml 标识 中进行动态内容生成所需要的。标准的 jsp 标识能够访问和实例化 javabeans 组 件、设置或者检索组件属性、下载 applet 以及执行更难于编码和耗时的功能。 (4)jsp 的适用平台更广 jsp 基于强大的 java 语言,拥有 java 语言“一次编写,到处运行”的特点, 几乎可以在所有的操作系统平台上运行。jsp 网站从一个平台移植到另一个平台, jsp 和 javabeans 不必重新编译,因为 java 字节码都是标准的字节码,与平台无 华中师范大学本科毕业论文 4 关。这种与服务器硬件和操作系统平台的无关性是 jsp 相对于其他动态网页技术 最大的优点。 (5)功能可扩展性 jsp 提供了一种隐含对象在 jsp 页面中可以直接引用而不必首先声明。利用 jsp 提供的这些隐含对象,可以使脚本功能更加强大,并且编程更加容易、方便。 例如,利用 request 对象,可以很容易地接收用户在 html 表单中提交的信息 4。 2.2 jsp 连接数据库 jsp 的开发离不开后台数据库的支持。与 java 一样,jsp 中连接数据库是通 过 jdbc 来实现的。jdbc(java data base connectivity,java 数据库连接)是一 种用于执行 sql 语句的 java api,大部分数据库都带有 jdbc 驱动程序,这使得 java 程序可以访问大多数的数据库系统,包括 oracle、 sybase、informix、mysql、microsoft sql server、ms access 等 1。本 系统所采用的数据库是 microsoft sql server 2005,它是微软公司在 2005 年推出 的,是 sql server 系列的全新升级。sql server 2005 可作为用于大规模联机事 务处理(oltp) 、数据仓库和电子商务应用的数据库和数据分析平台 7,操作简 单,容易上手,而且性能相比于 microsoft sql server 2000 有非常大的提高 8。 2.3 系统开发环境 在开发系统之前,需要先搭建编写 jsp 所需要的环境。 (1)安装 jdk:jdk 是 java 开发包,是整个 java 的核心,包括了 java 运行 环境、java 工具和 java 基础的类库。jsp 完全以 java 语言开发,因此要设计编写 jsp 网站必须安装 java 开发包。jdk 安装完成之后,要进行环境配置,可在控制 台输入 java version,若能输入 jdk 的版本号,则证明环境已经正确配置。 (2)安装 tomcat:tomcat 是一个免费并且开源的 jsp 服务器,它是 apache 华中师范大学本科毕业论文 5 软件基金会的 jakarta 项目中的一个核心项目,由 apache、sun 和其他一些公司 及个人共同开发而成。由于有了 sun 的参与和支持,最新的 servlet 和 jsp 规范 总能在 tomcat 中得到体现。因为 tomcat 技术先进、性能稳定和简单易用已经成 为目前最广泛的 jsp 服务器。 (3)安装 myeclipse:eclipse 不直接支持 web 应用程序的开发,要开发 web 应用程序,需要安装相应的插件。目前这方面主流的插件是 myeclipse enterprise workbench,简称 myeclipse。它是对 eclipse 的扩展,集成了很多经常 用的经典插件,利用它我们可以在数据库、java web 应用的开发、发布以及应用 服务器的整合方面极大地提高工作效率。 华中师范大学本科毕业论文 6 第 3 章 系统设计 3.1 系统体系结构设计 目前,最为流行的体系结构就是 c/s(客户端/服务器)和 b/s(浏览器/ 服务 器)两种。c/s 结构将应用一分为二,服务器(后台)负责数据管理,客户机 (前台)负责与用户的交互任务。通过它可以充分利用两端硬件环境的优势,将 任务合理分配到 client 端和 server 端来实现,降低了系统的开销。b/s 架构是随 着 internet 技术而兴起,是对 c/s 结构的一种改进。在 b/s 体系结构中,用户通 过浏览器向分布在网络上的许多服务器发出请求,服务器对浏览器的请求进行处 理,将用户所需信息返回到浏览器。在这种结构下,用户工作界面是通过浏览器 来实现,极少部分事务逻辑在前端(browser)实现,但是主要事务逻辑如数据请 求、加工、结果返回以及动态网页生成等工作全部由 web 服务器端(server)实 现,形成所谓的三层结构。这样大大简化了客户端电脑的负载,减轻了系统维护 与升级的成本和工作量,降低了用户的总体成本。 与 c/s 结构相比,b/s 结构有着非常突出的优势:(1)操作使用简单,只需 要安装浏览器便可使用;(2)维护和升级方式简单,由于业务逻辑在中间服务 器,当业务规则变化后,客户端程序基本不做改动;(3)c/s 组织结构不支持 internet,只适用于局域网,而且随着互联网的飞速发展,移动办公和分布式办公 越来越普及,c/s 结构很显然无法满足这些需求。 (4)系统扩展灵活,基于多层 分布体系,当业务增大时,可以在中间层部署更多的应用服务器,提高对客户端 的响应,而所有变化对客户端透明。 此外,b/s 体系结构还具有跨平台的特点,给系统的开发和使用带来了方便。 对于待开发系统的体系结构如图 3.1 所示。 基于以上各方面的考虑,本文最终采用 b/s 结构体系来进行系统设计。 华中师范大学本科毕业论文 7 数 据 库 服 务 器 j d b c j s p w e b 服 务 器 公司内部 b r o w s e r 公司外部 b r o w s e r 客户机 b r o w s e r i n t r a n e t e x t r a n e t i n t e r n e t 图 3.1 系统的体系结构图 3.2 系统开发模式选择 根据网站的开发标准,jsp 技术主要有两种开发模式:模式一, jsp+javabean;模式二, jsp+javabean+servlet。每种模式都有它们应用的场合, 并且每种模式涉及到的分工都不同。模式一比较简单,分工也不是很细,在小型 项目中可以考虑使用这种模式,其工作方式如图 3.2 所示。 图 3.2 模式一的工作方式 jsp 和 javabean 在这种模式下是这样分工的: (1)jsp 实现页面的现实,并且需要完成所有数据的处理工作,并把数据处 理的结果返回给客户端; (2)javabean 用来进行数据存储,并且需要完成所有的数据处理工作。这 种模式实现了页面的现实和页面内容的分开。 华中师范大学本科毕业论文 8 模式二的工作方式如图 3.3 所示。 图 3.3 模式二的工作方式 jsp、javabean 和 servlet 三种技术同时使用,各种技术分工更加详细更加明 确,适合大型项目的开发,其主要的特点是: (1)jsp 主要用来进行客户端的显示,不再用来响应和调度。 (2)javabean 主要用来存储数据,把数据库查询处理数据这些工作分给了 servlet。 (3)servlet 用来响应客户端 jsp 或 html 页面的请求,并对请求的数据进 行处理,将处理后的数据放在 javabean 中,然后转发到 jsp 页面去显示这时 jsp 页面就可以从 javabean 中获取数据用于显示了。 模式一中由于 jsp 页面除了用于显示,还用于控制可响应请求,所以 jsp 文 件中插入了大量的 java 代码。这种应用虽然很方便,但是也会带来一些副作用, 例如当 jsp 文件中嵌入了大量 java 代码,当要处理的业务逻辑很复杂时,这种情 况会变得很乱;大量的内嵌 java 代码使页面变得庞大,也很难看懂。所以这种模 式不适合开发人员的分工,导致页面维护起来很困难。 模式二有更清晰的页面表现,更明确的开发人员角色划分。在实际的项目开 发过程中,页面设计者可以很方便地使用普通的 html 工具来开发 jsp 页面,从 而很方便地发挥自己的设计才能。开发 servlet 的人员可以使用 java 集成开发环 境进行编程,从而可以充分发挥自己业务处理方便的逻辑思维,去实现项目中的 数据库 华中师范大学本科毕业论文 9 业务处理。本文采用模式二的方式进行系统开发。 3.3 系统功能需求概述 本文中的系统设计的主要目标是:实现小型超市进销存信息管理的系统化、 精确化和自动化,满足小型超市管理人员对超市进销存信息管理的需要,并达到 操作过程的直观、方便、实用、安全等。 系统的主要功能有: (1)各种信息的输入输出,包括进货信息、售货信息、个人信息的输入等; (2)各类信息的查询,包括对每一种商品信息、供应商信息的查询; (3)进货订单的管理,包括订单的预算和管理员的审核以及进货信息的确 认; (4)顾客退货管理,若顾客所退商品未损坏,则可重新摆上货架进行销售; (5)库存预警:为降低企业成本,提高生产效率,该系统具有库存预警功 能;系统对每一类产品设置一个临界值,当低于该值时,提醒用户订货; (6)商品定价管理,系统默认的售价是进货价的 1.2 倍,管理员可以对此价 格进行调整,自己设定商品的售价; (7)管理员对员工用户名、密码的维护和个人资料修改等。 另外,考虑到系统的安全性,该系统在登录窗口对使用者进行身份的识别功 能,以识别该用户是否存在。同时,系统对不同的用户也进行了权限控制,每个 员工可以查看自己相关业务的信息,但不能查看不同业务范围的信息。 3.4 系统模块功能设计与分析 根据以上功能,共设计了 16 个模块,分别对应于售货员、进货员和管理员 三个用户,系统各功能模块的结构如图 3.4 所示。 华中师范大学本科毕业论文 10 虽然系统是网络版,但考虑到超市内信息的安全问题,不管是管理员还是售 货员、进货员,都不能进行任意的登录与注册。用户的账号密码及权限必须在后 台由管理员进行指定,若用户觉得管理员指定的密码不容易记,那么用户可以自 己在进入系统后更改自己的登录密码;但若是用户密码忘了,则必须要到管理员 出寻回自己的密码。 用户进入系统时,根据用户的角色不同,用户进入系统后的界面和可以操作 的菜单将会有所不同。比如:售货员进入系统后只能看到销售商品、查看个人信 息、商品退货处理等相关的操作而没有提交订单等。 图 3.4 系统功能模块图 系统各个功能模块介绍: (1)登录模块:登录模块是本系统唯一的入口。当用户输入用户名和密码 时,系统会自动将输入的用户名和密码与数据库中的用户名和密码进行比对。若 用户名和密码都正确,则进一步查看该用户名所对应的用户角色是什么,并将跳 转到角色相对应的页面中去。若用户名和密码错误,则系统会提示用户重新登录。 若未经登录而访问其他网页,系统找不到该用户的登录信息,则无法正常访问网 华中师范大学本科毕业论文 11 页。 (2)商品查询:这也是三个角色的用户都拥有的功能,但是各个用户所查 询到的信息有所不同。售货员所查询到的信息主要是该商品的条形码、商品名称、 库存量、售价、供应商等基本信息;进货员所查询到的是该商品的条形码、商品 名称、库存量、进价、进货时间、供应商等信息,若库存量不足,则进货员要着 手准备该商品的进货订单准备进货;而管理员可以查看到该商品的全部信息,并 且可以修改该商品的售价或者提醒进货员及时进货。 (3)个人信息维护:每个人都是一个独立的个体,了解每个员工的个人信 息能有助于管理员与员工的交流和沟通,所以有必要为本系统提供一个可以输入 员工信息的模块。若员工输入的信息有误或者信息有变动,员工也可以进行修改。 此外,在本模块中,用户可以自行修改登录系统的密码。 (4)员工信息维护:由于登录该系统的用户名只能由后台指定,所以管理 员可在此增加、查询、修改员工的用户名、密码以及用户角色。若员工职位有变 动,则必须在此修改其用户角色,否则员工无法正常登录系统。若员工离职,则 管理员必须在此将该员工的登录账号删除,以维护系统的安全。 (5)商品销售:商品销售是超市管理系统的核心功能。售货员销售商品时, 可在输入框中输入商品的条形码以及销售数量来结算商品价格。 (6)商品退货:此模块实现当用户购买的商品由于某种原因不满意时,超 市可以接受顾客退货。若顾客所退的商品符合超市的退货要求,则售货员在退回 顾客该商品的金额的同时填写该商品的相关信息,如是否损坏,退货原因是什么 等。进货员会根据退货清单考虑下次进货时该注意的问题,比如很多退回来的商 品都是同一个供应商供应的,则下次便不会再向该供应商进货。 (7)进货订单维护:进货订单包括未审核订单、以审核订单和已进货订单。 当仓库中某件商品的库存不足或者需要购买新商品的时候,进货员需要填写该商 品的具体信息,如商品名称、进货数量、供应商、进货单价等,并将该订单提交 给管理员进行审核。只有该订单审核通过,进货员才可以进货。在管理员审核之 前,进货员还可以对该订单进行查询、修改和删除,管理员也可以对该订单进行 华中师范大学本科毕业论文 12 修改和删除。进货员进货完毕,需要进行进货确认,则系统会自动将本次的进货 信息写入库存。管理员对订单的管理主要是审核进货员提交的进货订单。若管理 员对进货订单不满意,则可以先对订单进行修改后再让进货员进货。此外,管理 员也可查看已经审核过的订单是否已经确认进货。 (8)库存预警:当某种商品的库存量低于某个预定的临界值或者即将过期 时,系统会自动将该商品显示出来,提醒进货员和管理员及时进货补充库存。 (9)添加新商品:当超市需要购入新商品时,需要在数据库中填入该商品 的具体信息。若该商品是新的种类,则要先添加商品类别;若该商品是由新的供 应商提供进货渠道,则也应该先增加供应商信息。 (10)供应商信息管理:不同的供应商提供的商品可能存在很大的差异,只 有对供应商的信息进行记载和追踪,才能确定最适合本超市进货的供应商。本系 统对每个供应商都有详细的记载资料,包括供应商的联系方式、信用度等。若供 应商的信用度太低,则超市进货时进货员就不会考虑向该供应商进货。 (11)商品定价:商品的价格总是波动的,有时候因为商品的质量问题或者 超市做宣传活动,会对某些商品进行减价销售。管理员作为超市最高管理者,拥 有对商品定价的权利。进货员进货后,系统会默认商品的售价为进价的 1.2 倍。 管理员可以对此倍数进行修改,也可单独对某种商品进行定价。 3.5 数据库设计 数据库设计是指对于一个给定的应用环境,构造优化的数据库逻辑模式和物 理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满 足各种用户的应用需求,包括信息要求和数据操作要求。 3.5.1 数据库详细设计 数据库概念设计是数据库设计的关键,是各种数据模型的共同基础,比数据 模型更独立于机器、更抽象,它的主要特点是: (1)能真实、充分地反应现实世界,包括事物和事物之间的联系,能满足 华中师范大学本科毕业论文 13 用户对数据的处理要求,是对现实世界的一个真实模型; (2)易于理解,从而可以用它和不熟悉计算机的用户交换意见; (3)易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩 充; (4)易于向关系、网状、层次等各种数据库模型转换。 本文主要以售货员、进货员和管理员来共同完成了一个业务流程,他们之间 存在着数据关联并且靠数据库关键字段进行索引,建立表关联,系统的 e-r 图如 图 3.5 所示(图中某些实体属性未完全给出) 。 图 3.5 系统 e-r 图 概念结构是独立于任何一种数据模型的信息结构。逻辑结构设计的任务就是 把概念结构设计阶段设计好的基本 e-r 图转换为选用 dbms 产品所支持的数据 模型相符合的逻辑结构。设计逻辑结构时一般要分三步进行:首先将概念结构转 换为一般的关系、网状、层次模型,其次要将转化来的关系、网状、层次模型向 特定 dbms 支持下的数据模型转换,最后还要对数据模型进行优化。而 e-r 图 则是由实体、实体的属性和实体之间的联系三个要素组成的。所以将 e-r 图转换 为关系模型实际上就是要将实体、实体的属性和实体之间的联系转化为关系模式。 华中师范大学本科毕业论文 14 本文所设计的数据库中有不同的表结构,这些物理表中存放着各种网站所调 用的数据,为整个网站的流程提供最基本的数据来源。各表的信息如下: (1)登录信息表:用户名、密码、职务(登录权限) 。其属性图如图 3.6 所 示。 图 3.6 登录信息表属性图 (2)员工信息表:员工编号、姓名、性别、籍贯、学历、生日、身份证号、 联系方式、银行卡号、e-mail 地址、聘用时间、工资。其属性图如图 3.7 所示。 图 3.7 员工信息表属性图 (3)供应商信息表:供应商名称、信用指数、联系方式、地址、银行账号 类型、银行卡号码。其属性图如图 3.8 所示。 图 3.8 供应商信息表属性图 (4)商品类别表:商品类别 id,类别名称。其属性图如图 3.9 所示。 华中师范大学本科毕业论文 15 图 3.9 商品类别表属性图 (5)商品信息表:条形码,商品名称,商品类别,进货价,售货价,进货 时间,是否参加打折,产地,附加信息。其属性图如图 3.10 所示。 图 3.10 商品信息表属性图 (6)商品销售表:商品条形码,售货员编号,单价,销售数量,总价,销 售时间。其属性图如图 3.11 所示。 图 3.11 商品表销售属性图 (7)顾客退货表:商品条形码,退货原因,是否损坏,退货数量,退货总 金额,接收退货的售货员编号,退货时间。其属性图如图 3.12 所示。 图 3.12 顾客退货表属性图 华中师范大学本科毕业论文 16 (8)超市退货表:商品条形码,退货原因,退货数量,退货总金额,退货 时间。其属性图如图 3.13 所示。 图 3.13 超市退货表属性图 (9)进货表:进货 id,商品条形码,商品名称,进货价,进货数量,供应 商,进货日期,产品有效期,进货员,入库号,进货总金额,备注,管理员是否 审核, 时候已 经进货。 其属性 图如图 3.14 所 示。 图 3.14 商 品进货 表属性 图 3.5.2 数据库表的设计 每张表在 sql server 2005 数据库中的数据结构都是一张规范化的二维表, 每张表的每个数据项都有名称、数据类型、数据长度、是否为空和键码等最基本 的约束。本文所设计的每张表在数据库中的表示如下: (1)登录信息表中包括用户名、密码和职务三个属性。由于用户名具有唯 一性,所以可以指定此用户名为主键。在登录信息表中的每个数据都与用户登录 系统相关,所以都不能为空,其设计说明如表 3.1 所示。 表 3.1 登录信息表 华中师范大学本科毕业论文 17 列名 说明 数据类型 数据长度 是否空 键码 loginno 用户名 varchar 30 否 主键 loginpwd 密码 varchar 30 否 loginjob 职务 int 4 否 (2)每个员工都有姓名、性别、籍贯、学历、生日、身份证号码、联系方式、 银行卡号、e-mail、聘用时间、工资和登录系统的用户名。而用户名与登录信息 表中的用户名一致,所以可以指定该属性为外键。性别只分男女,所以可以用 0 代表男,1 代表女,以节约数据库的空间。虽然越详细的信息对于管理者了解员 工更加有利,但是某些信息可能会涉及到员工的隐私,所以可以根据员工的实际 情况有选择性地填写。员工信息表的设计说明如表 3.2 所示。 表 3.2 员工信息表 列名 说明 数据类型 数据长度 是否空 键码 loginno 用户名 varchar 30 否 外键 ename 姓名 varchar 30 否 egender 性别 binary 1 否 enative 籍贯 varchar 50 否 eeducation 学历 nvarchar 20 是 ebirthday 生日 datetime 8 是 eidcard 身份证号 varchar 18 是 etelephone 联系方式 varchar 11 是 ebankno 银行卡号 varchar 30 是 eemail e-mail varchar 30 是 edate 聘用时间 datetime 8 是 ewages 工资 float 8 是 (3)供应商信息表主要用于记录供应商的联系方式及其信用指数。由于每个 华中师范大学本科毕业论文 18 企业的名字都不一样,所以可以指定供应商名为主键。该表的设计说明如表 3.3 所示。 表 3.3 供应商信息表 列名 说明 数据类型 数据长度 是否空 键码 sname 供应商名 varchar 30 否 主键 sworth 信用指数 int 4 否 stelphone 联系方式 varchar 11 否 saddress 地址 nvarchar 50 否 sbank 账号类型 nvarchar 20 否 sbankno 银行卡号 varchar 30 否 (4)商品类别信息表主要用于增加商品的类别,以方便超市根据商品的类 别对商品进行管理。当用户增加一条信息时,cid 会根据上次分配的数据再加 1。由于类别必须唯一,所以类别名必须要符合 unique 约束。商品类别信息表 的设计说明如表 3.4 所示。 表 3.4 商品类别信息表 列名 说明 数据类型 数据长度 是否空 键码 cid 类别 id int 4 否 主键 cname 类别名 nvarchar 20 否 (5)由于每种商品都有其唯一的条形码,所以可以指定此条形码为主键。 商品信息表主要用于记录商品的详细信息,主要包括商品名称、类别、进货价、 售货价、进货时间、是否打折、产地和附加信息。其设计说明如表 3.5 所示。 表 3.5 商品信息表 列名 说明 数据类型 数据长度 是否空 键码 gno 条形码 varchar 20 否 主键 gname 商品名称 nvarchar 20 否 华中师范大学本科毕业论文 19 cid 类别 id int 4 否 外键 gprice 进货价 float 8 否 gsaleprice 售货价 float 8 否 gdate 进货时间 datetime 8 否 gsale 是否打折 bit 1 否 gaddr 产地 nvarchar 30 是 ginfo 附加信息 text 100 是 (6)商品销售表主要是用于记录售货员销售的商品,包括商品条形码、售 价、销售数量、销售总价、销售时间和售货员编号,员工可以根据自己的编号查 询自己的销售情况。商品销售表的设计说明如表 3.6 所示。 表 3.6 商品销售表 列名 说明 数据类型 数据长度 是否空 键码 gno 条形码 varchar 20 否 外键 loginno 员工编号 varchar 30 否 外键 gsaleprice 售货价 float 8 否 snum 销售数量 int 4 否 stotalprice 销售总价 float 8 否 sdate 销售时间 datetime 8 否 (7)顾客退货表记录的是超市顾客的退货信息,主要记录的是退货的原因、 退货数量、退货金额、退货时间、是否损坏和给顾客退货的员工的编号等。若商 品未损坏,则商品可以继续上架销售;若商品已损坏,则只能做其他处理。是否 损坏只有两种情况,所以可以设置其数据类型为 bit 型,0 代表未损坏,1 代表已 损坏。其设计说明如表 3.7 所示。 表 3.7 顾客退货表 列名 说明 数据类型 数据长度 是否空 键码 华中师范大学本科毕业论文 20 gno 条形码 varchar 20 否 外键 breasion 退货原因 text 100 否 bdamage 是否损坏 bit 1 否 bnum 退货数量 int 4 否 bmoney 退货金额 float 8 否 loginno 员工编号 varchar 30 否 外键 bdate 退货时间 datetime 8 否 (8)超市所进的商品也可能因为某种原因需要退货,所以可用本表记录超 市向供应商退货的情况,其设计说明如表 3.8 所示。 表 3.8 超市退货表 列名 说明 数据类型 数据长度 是否空 键码 gno 条形码 varchar 20 否 外键 bcreasion 退货原因 text 100 否 bcnum 退货数量 int 4 否 bcmoney 退货金额 float 8 否 bcdate 退货时间 datetime 8 否 (9)本表主要用于进货员填写进货订单和管理员审核订单,包括进货单号 (进货 id) 、商品条形码、进货价、进货数量、进货总额、供应商名、是否审核 和是否进货等。审核状态和进货状态的默认值都是 0,确认审核和确认进货后其 值变为 1。该进货表的设计说明如表 3.9 所示。 表 3.9 进货表 列名 说明 数据类型 数据长度 是否空 键码 sid 进货 id int 4 否 主键 gno 条形码 varchar 20 否 外键 华中师范大学本科毕业论文 21 gname 商品名称 nvarchar 20 否 gprice 进货价 float 8 否 snum 进货数量 int 4 否 sname 供应商名 varchar 30 否 外键 sdate 进货日期 datetime 8 否 svalid 有效期 varchar 20 否 loginno 进货员 varchar 30 否 外键 smoney 进货总额 float 8 否 stext 备注 text 100 是 sisexamin 是否审核 bit 1 否 sin 是否进货 bit 1 否 华中师范大学本科毕业论文 22 第 4 章 系统实现 4.1 系统文件结构 本文中编写的 jsp 文件存储在 webroot 目录下,其他的 java 文件存储在 src 目录下。src 目录下共打了 4 个包,如图 4. 1 所示,各个包所存储的文件为: .ccnu.bean:javabeans 文件 .ccnu.dao:执行对数据库操作的文件 .ccnu.servlet:servlet 文件 .ccnu.util:连接数据库的驱动 由于本系统采用了 mvc 的设计模式,所有的业务逻辑处理任务都交由 servlet 负责,但由于系统所需要的文件较多,如果把数据库查询和调用的类都写 在 servlet 中,则会造成 servlet 阅读和维护较难,因此在 servlet 中把对数据库操 作的类都写在 dao 中,servlet 中只负责进行类的调用和逻辑判断,这样就使得代 码有更好的阅读性,也使得程序变得清晰明了。数据库连接的代码虽然较短,但 是它要被很多类调用,所以单独写在一个类中更有利于程序的开发。 4.2 系统调用过程 现在,以用户登录系统为例说明系统函数的调用过程,如图 4.2 所示是系统 登录的流程图。 图 4.1 src 目录结构 华中师范大学本科毕业论文 23 图 4.2 系统登录的流程图 当用户要登录系统时,必须先在浏览器中输入地址 http:/localhost:8080/shop/index.jsp 来访问系统登录的页面,此时要求用户输入用 户名和密码,登录系统的页面如图 4.3 所示。 图 4.3 系统登录页面 在 jsp 页面,系统利用 javascript 编写的函数来检测用户的输入是否合法, 当用户点击【提交】按钮时,系统会触发对 javascript 相应的函数的调用。在本 页面中,主要是检查用户的输入是否为空。若用户名或密码为空,则系统将会给 华中师范大学本科毕业论文 24 予提示,并将光标定位到相应的输入框中。只有用户的输入合法,才能顺利提交 该表单。用 javascript 验证用户名输入是否为空的代码如下: function check(loginform) if(loginform.usename.value=”) /判断用户名的输入是否为空 alert(“请输入用户名!”); /弹出一个提示对话框 loginform.usename.focus().false; return; 当用户点击【确定】提交表单后,表单中的 onsubmit=”return check( )” 会使 得程序调用 javascript 函数,对表单进行验证;当提交表单后,系统还要进一步 跳转到由表单的 action 属性指定的 servlet 文件在服务器端对这些文件进行验证, 以判断用户是否为合法用户。servlet 通过 request 对象的 getparameter( ) 方法获取 从客户端输入的数据并存储在临时变量中;同时,servlet 将实例化 dao 中的 logindao 类,并调用该类中的 checkuser(string username, string password)方法对 用户输入的信息进行验证。因此 logindao 类要取得与数据库的连接的函数,然 后从数据库中读取用户登录表中的信息并一一比较若数据库中的用户名和用户输 入的一样,密码是否一样。若在数据库中查找不到与用户输入的用户名相同的字 段,则返回 false;若在数据库中找到了与用户数据的用户名相同的字段,但用户 的密码不一样,同样返回 false;只有当用户输入的用户名和密码与数据库中的用 户名和密码相匹配的时候,函数才返回 true,然后读取该用户的用户名、密码、 职务信息并将这些数据存储在 javabean 中。因为超市中不同职务的工作人员所负 责的工作不一样,所以很有必要对系统进行权限控制,即在判断用户输入合法后, 根据 javabean 中用户的职务信息跳转到不同的页面。系统函数调用过程如图 4.4 所示。 华中师范大学本科毕业论文 25 图 4.4 函数调用过程 数据库连接代码: private connection conn=null; public connection getconn() try class.forname(“com.microsoft.sqlserver.jdbc.sqlserverdriver“); conn=drivermanager.getconnection(“jdbc:sqlserver:/:1433;databasenam e=xxcsglxt“,“sa“,“123“); catch (exception e) e.printstacktrace(); return conn; 其中,connection 是一个数据库连接,负责与数据库进行通信,sql 执行及 事务处理都是在某个特定的 connection 环境中进行的。 华中师

温馨提示

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

最新文档

评论

0/150

提交评论