毕业论文范文网-论文范文
电气工程 会计论文 金融论文 国际贸易 财务管理 人力资源 学前教育 德语论文 工程管理 文化产业 工商管理 会计专业 行政管理 广告学
机械设计 汉语文学 英语论文 物流论文 电子商务 法律论文 工商管理 旅游管理 市场营销 药学论文 播音主持 人力资源 金融论文 保险学
制药工程 生物工程 包装工程 模具设计 测控专业 工业工程 教育管理 行政管理 计算机论 电子信息 市场营销 法学论文 财务管理 投资学
体育教育 小学教育 印刷工程 土木工程 书法论文 护理论文 心理学论 信息管理 公共事业 给水排水 新闻专业 摄影专业 广电编导 经济学
  • 范文首页 |
  • 毕业论文 |
  • 论文范文 |
  • 计算机论文 |
  • 外文翻译 |
  • 工作总结 |
  • 工作计划 |
  • 现成论文 |
  • 论文下载 |
  • 教学设计 |
  • 免费论文 |
  • 原创论文 |
搜索 高级搜索

原创毕业论文

当前位置:毕业论文范文网-论文范文 -> 免费论文 -> 计算机论文

(超市商品信息管理系统系统)毕业文档

作者: 浏览:9次
免费专业论文范文
免费专业论文
政治工作论文
计算机论文
营销专业论文
工程管理论文范文
医药医学论文范文
法律论文范文
生物专业论文
物理教学论文范文
人力资源论文范文
化学教学论文范文
电子专业论文范文
历史专业论文
电气工程论文
社会学专业论文
英语专业论文
行政管理论文范文
语文专业论文
电子商务论文范文
焊工钳工技师论文
社科文学论文
教育论文范文
数学论文范文
物流论文范文
建筑专业论文
食品专业论文
财务管理论文范文
工商管理论文范文
会计专业论文范文
专业论文格式
化工材料专业论文
英语教学专业论文
电子通信论文范文
旅游管理论文范文
环境科学专业论文
经济论文
人力资源论文范文
营销专业论文范文
财务管理论文范文
物流论文范文
财务会计论文范文
数学教育论文范文
数学与应用数学论文
电子商务论文范文
法律专业论文范文
工商管理论文范文
汉语言文学论文
计算机专业论文
教育管理论文范文
现代教育技术论文
小学教育论文范文
机械模具专业论文
报告,总结,申请书
心理学论文范文
学前教育论文范文

收费计算机专业论文范文
收费计算机专业论文
Delphi
ASP
VB
JSP
ASP.NET
VB.NET
java
VC
pb
VS
dreamweaver
c#.net
vf
VC++
计算机论文
毕业论文范文题目:(超市商品信息管理系统系统)毕业文档,论文范文关键词:(超市商品信息管理系统系统)毕业文档
(超市商品信息管理系统系统)毕业文档毕业论文范文介绍开始:

摘要
 目前,超市行业是生活中非常常见的行业。在超市行业引入超市商品信息系统,是超市经营之中最热门的话题之一。随着超市规模的扩大,商品信息的增多,引入商品信息管理系统对超市中商品信息数据管理的效率高低、对提高超市的销售营业额及超市的正常运转都具有一定的辅助作用。
 超市商品信息系统设计是利用目前比较成熟的网络数据库的实现技术来对超市商品信息数据进行处理的。实现对商品信息的录入、查询、修改和维护以及根据商品信息生成商品采购单等功能。该系统基于B/S(浏览器/服务器)模式开发,开发工具采用Macromedia dreamweaver8.0,数据库采用SQL SERVER 2000,数据访问技术采用ADO。本文首先进行需求分析,进而进行模块划分与设计,最后对整个系统进行了详细的分析和设计,在设计与实现过程中,结合源代码具体的描述出整个项目的开发过程。
 关键字:超市管理;信息系统;浏览器;数据访问;商品信息;
Abstract
 In nowadays, supermarket is a common industry in our live. Injecting the Supermarket Merchandise Information System into supermarket industry is becoming one of the remarkable issues in supermarket management. With the expanse of supermarket dimensions and the increase of merchandise information, injecting the Supermarket Merchandise Information System would give some extent assistant affections on the efficiency of merchandise information data management and improvement of vendition turnover, additionally, prosperous operation of supermarket.
 Supermarket Merchandise Information System Design, which deals with merchandise information data via realization technology of modern network database, is able to accomplish load, search, modification and reparation of merchandise information, and to create the merchandise information based on the stocking bill. The system is developed on B/S (browser / server) model, using the development tools of Macromedia dreamweaver8.0, database of SQL Server 2000, and the data access technology of ADO. The author firstly analyses the Requirements Analysis, then designs the modules, and makes a detailed analysis and design eventually. In the process of analyse and development, the author describes the source code of the whole project.
 Key words:management of super market; information system; browser ;ADO(ActiveX Data Object);information of merchandise;
 
 
 
 
 
 
 
目录
第一章 绪论 1
§1.1 问题背景 1
§1.2 研究范围和技术要求 1
§1.2.1 研究范围 1
§1.2.2 技术要求 1
§1.3 本课题在国内外的发展 2
第二章 系统分析及比较论证 3
§2.1 系统总体目标 3
§2.2 需求分析 3
§2.2.1 性能分析 3
§2.2.2 运行需求 3
§2.2.3 功能需求 3
§2.2.4 应用需求分析 4
§2.3 数据流程图 5
§2.4 系统功能模块划分 6
§2.5 C/S和B/S的比较论证 9
第三章  数据库设计 14
§3.1 数据库设计 14
§3.1.1 数据库设计理论基础 14
§3.1.2 系统E-R图的设计 14
§3.1.3 E—R图向关系模型的转化 17
§3.2 设计局部数据库实体关系 18
§3.3 设计全局数据库实体关系 19
第四章 系统详细设计与实现 21
§4.1  ADO访问数据库 21
§4.2 登录/注销模块的实现及MD5加密的实现 22
§4.3 密码修改模块的实现 23
§4.4 普通用户查询模块的实现 24
§4.5 商品录入模块的实现 25
§4.5.1 商品类别管理模块的实现 25
§4.5.2 商品供应商管理模块的实现 29
§4.5.3 商品制造商管理模块的实现 29
§4.5.4 商品图片管理模块的实现 30
§4.5.5 商品信息录入/修改模块的实现 31
§4.6 商品查询模块的实现 34
§4.7 商品库存维护模块的实现 37
§4.8 生成采购清单模块的实现 39
§4.9 商品资源统计模块的实现 41
第五章  测试 42
§5.1 测试目的 42
§5.2 测试方法及设计技术 42
§5.2.1 测试方法 42
§5.2.2 设计技术 42
§5.3 测试数据 42
§5.3.1 系统登陆模块测试数据 42
§5.3.2 密码修改模块测试数据 43
§5.3.3 商品录入模块测试数据 43
§5.3.4 商品信息查询模块测试数据 44
§5.3.5 商品库存维护模块测试数据 45
§5.4 测试结果及分析 45
结论 46
参考文献 47
附录 48
致谢 55

第一章 绪论
§1.1 问题背景
 长期以来。超市业务一直使用着最简单的人工管理。超市经营物品的采购、库存、销售及核算的手工信息管理使得工作量巨大、服务质量差、工作效率低。同时对市场的反馈的信息不能及时的处理,从而导致销售与市场脱节。最终的结果只能使超市在经营中立于不利的地位。
 而超市在整个经济产业中占有相当重要的地位,因为它是最贴近消费者的。如果能够以最好的服务来对待消费者,对于提高销售量一定会有很大的帮助。如何利用信息化来帮助我们提高销售行业的服务质量,是目前零售业关心的话题。虽然信息化能提高服务水平,但必须付出一定的建设成本。因此,如果能先了解如何信息化,以及信息化的设计方式,则必将对于降低建置信息设备的投入有相当大的帮助。
 本课题应设计出一个超市商品信息数据处理WEB数据库应用系统以实现对到超市中的商品信息进行计算机的管理和维护。使用户在能够使用一个人性化友好化的界面的同时,也能够体验到数据的高效处理功能,以及对企业数据的安全性的维护。并且系统可以跨平台使用,因此不用担心操作系统不同的问题,系统发布后在维护和升级及可扩展方面都能很好的实现。总之,各方面的条件均已具备,相信可以着手开发。
§1.2 研究范围和技术要求
§1.2.1 研究范围
 1.设计该系统的功能模块划分。
 2.根据各模块功能需求,使用SQL SERVER 2000设计出该系统的数据库数据表。
 3.参考超市商品实际管理情况,完成对系统的需求分析及设计论文。
 4.完成各模块的界面设计。
 5.实现商品管理各模块代码编制功能
 6.员工工作效率的提高以及公司设备的相对减少。
 7.一次编写、到处使用,不受到操作系统的限制。
 8.数据的安全性好精确性高。
§1.2.2 技术要求
 1.合理划分功能模块。
 2.数据库设计满足功能要求,数据表数量最小。
 3.数据库冗余度小,尽量满足三范式要求。
 4.绘制数据库各数据表之间的关系图。
 5.建立数据库访问接口类,实现对数据库的访问。
 6.完成功能模块中的一个较小的功能,以测试数据库接口的正确性。
 7.尽量代码重用,减轻代码编写强度。
§1.3 本课题在国内外的发展
 超市自动化的商品管理在欧美等国已经实行了多年,也是超市行业管理的基础。它最主要的特点是能够实时和准确的控制整个超市的销售情况。如果可以实时掌握销售流程和销售情况,则可以有效的加速商品的周转率并提高服务质量,而且可以减少产品售价不符等所产生的问题。一般的零售业销售必须是快速而且不允许出错的,如果能在销售前尽早了解目前商品的库存情况,并且掌握商品的周转率,就可以减少商品中的供过于求或供不应求等情况的发生。
 随着全球信息技术的发展,很多企事业单位客观上需要有综合的管理软件来对本单位业务与服务信息进行综合管理,很多软件也正是在这样的背景下应运而生了。当前,数据库管理系统已经应用于各行各业,管理信息系统使企业管理技术走向了成熟。在国内外的很多连锁超市企业,已经长时间的使用了Excel VBA应用程序管理系统,但是这种系统已经逐渐的暴露出它的很多不足,早已不能满足我们的需求。如今在管理信息系统的开发应用中,Microsoft公司的ASP(Active Server Pages)被广为使用。ASP实际上是将标准的HTML文件拓展了一些附加特征,为编写人员提供了在服务器端运行脚本的环境,使编写人员可以利用VBScript和java script或其他的第三方脚本语言来创建ASP,实现过去需要编写复杂的CGI程序才能实现的有动态内容的网页,如计数器等。ASP提供了一些内置对象和组件,允许用户从浏览器中接收和发送信息。ASP可以和诸如SQL Server这样的数据库进行连接,进而完成数据的交换与更新,人们越来越明显的感觉到它的强大功能,因此,企业要更新换代以前的系统已经是大势所趋。好的系统和正规化的管理可以让企业更好的与行业的标准接轨,为业务的扩大与更加深入提供了强大的后盾与支撑。
第二章 系统分析及比较论证
§2.1 系统总体目标
 1.超市商品数据库的设计
 2.超市商品数据库所需信息的录入
 3.超市商品数据的查询、修改和维护
 4.根据商品信息生成商品采购单
 5.实现数据录入、查询、统计的全面网络化管理,达到数据一次录入、随处访问的目的。
 6.报表全面,涵盖进货、库存、销售等全面信息
 7.采用图形界面,人机界面友好,使操作简单,学习容易。
§2.2 需求分析
§2.2.1 性能分析
 系统涉及到超市的一些重要信息,因而安全性极为重要,设有加密的权限和对用户密码进行加密,保证系统安全可靠.
 考虑到目前处于毕业设计阶段,但该系统今后可能投入到商业化运营中,故该系统的总体性能应有一定的严格要求,具体如下:联机系统对用户请求的响应时间不应超过10S,以免用户产生等待感;
§2.2.2 运行需求
支持该系统运行的系统软件是:Windows XP SP2 +IIS5.1;数据库管理系统是:MS SQL Server 2000;
 数据通信接口:局域网
§2.2.3 功能需求
 本系统主要要求实现:系统登陆模块、密码修改模块、商品录入模块、商品信息查询模块、商品信息维护模块、生成采购清单模块、商品资源统计这七大模块。详细如实的记录物品的品种分类,了解市场发展方向,及时修正进货信息,修改库存管理办法、结算工作办法、采购管理办法等,提高工作效率,节余财力物力资源。
§2.2.4 应用需求分析
 超市商品信息管理系统主要满足2种类型用户的需求,这2种类型用户分别为一般用户组、系统管理员组,以下将分别详细讨论这2种类型的用户需求:
 用户的静态结构图如图2.1所示:
 
 图2.1 用户的静态结构图
 普通用户组:普通用户组是这两种用户里面权限较低的用户,只可以对超市商品信息进行浏览,无法进行其他操作,而且无需经过身份验证即可实现该操作。
 普通用户组的用例图如图2.2所示:
 
 图2.2 普通用户组的用例图
 系统管理员组:系统管理员组是这两种用户里面权限较高的用户,不仅可以对超市商品信息按需求进行浏览,而且可以对此进行录入、编辑、删除,同时可以统计整个超市商品信息、维护库存、按需求生成采购清单。但以上各种操作也必须先通过验证后方可进行。
 系统管理员组的用例图如图2.3所示:
 
 图2.3 系统管理员组的用例图
§2.3 数据流程图
 数据流程分析是把数据在组织内部的流动情况抽象的独立出来,舍去了具体的组织机构、信息载体、物质、材料等,单从数据流动过程来考察实际业务的数据处理模式。数据流程图是数据流成分析所使用的主要工具之一。根据以上的分析,由此给出系统的数据流程图,如图2.4所示:
 
 
 图2.4系统数据流程图
§2.4 系统功能模块划分
 根据前面的功能需求分析,该超市商品信息管理系统主要包括以下七大模块,如图2.5所示:
 图2.5 系统主要功能模块图
 1.系统登陆模块:是一个包括前台和后台管理系统,前台对所有用户开放,无需经过身份验证。而后台是系统管理员组,因此需要对用户进行身份验证,该模块采用MD5算法加密。
 2.密码修改模块:是块针对系统管理员使用,管理员可以根据自己的需要修改密码。
 3.商品录入模块是:针对系统管理员使用,包括五个子模块:商品类别管理子模块、商品供应商管理子模快、商品制造商管理子模快、商品图片管理子模快、商品信息录入/修改子模快。商品录入部分功能模块图如图2.6所示:
 
 
 图2.6 商品录入功能模块图
  (1)商品类别管理子模块
 该模块的功能包括:添加新的商品类别(包括类别名称、类别说明的添加,其中类别说明可为空);对已存在的商品类别进行编辑(既是指在已有的类别名称和类别说明处录入新的信息并加以保存)、删除。
 (2)商品供应商管理子模块
 该模块的功能包括:添加新的商品供应商(包括供应商名称、供应商说明的添加,其中供应商说明可为空);对已存在的商品供应商进行编辑(既是指在已有的供应商名称和供应商说明处录入新的信息并加以保存)、删除。
 (3)商品制造商管理子模块
 该模块的功能包括:添加新的商品制造商(包括制造商名称、制造商说明的添加,其中制造商说明可为空);对已存在的商品制造商进行编辑(既是指在已有的制造商名称和制造商说明处录入新的信息并加以保存)、删除。
 (4)商品图片管理子模块
 该模块的功能包括:上传新的商品图片(首先通过浏览,在电脑中选取所需图片实现上传);对已存在的商品图片进行查看、编辑、删除。
 (5)商品信息录入/修改子模块
 该模块的功能包括:添加新的商品信息(包括商品名称、商品条形码、商品说明的填写,商品类别、商品制造商、商品供应商以及商品图片的选择,其中只有商品说明可为空);对已存在的商品信息进行编辑(既是对已添加的商品信息进行新的录入并加以保存)、删除。
 4.商品信息查询模块是:包括普通用户查询于管理员查询两个模块。普通用户查询模块是的功能是可以根据类别划分,查询所需了解商品信息,包括:商品编号、商品名称、商品类别、商品条形码、商品制造商、商品说明、商品图片、商品价格。商品查询模块部分功能模块图如图2.7所示:
 
 图2.7 商品查询功能模块图
 管理员查询模块又包括四个子模块:按类别查询子模快(又包括精确查询和模糊查询)、按供应商查询子模快、按商品销售排行查询(又包括按升序查询和按降序查询)子模快、按商品名称查询(又包括精确查询和模糊查询)子模快。
 (1)按类别查询子模快
 该模块的主要功能包括:选择商品类别-输入查询关键字-选择查询方式(精确查询或模糊查询)-点击查询功能键实现该功能。
 (2)按供应商查询子模快
 该模块的主要功能包括:选择商品供应商-输入查询关键字-选择查询方式(精确查询或模糊查询)-点击查询功能键实现该功能。
 (3)按类别查询子模快
 该模块的主要功能包括:选择按销售排行查询方式(升序或降序)-输入查询长度-点击查询功能键实现该功能。
 (4)按商品名称查询子模快
 该模块的主要功能包括:输入商品名称-选择查询方式(精确查询或模糊查询)-点击查询功能键实现该功能。
 5.商品库存信息维护模块是:针对系统管理员组,其主要功能包括:按商品名称可模糊查询、查询出所需添加库存记录的商品后,对出/入库数量及出/入库价格进行添加:也可通过模糊查询直接查看所有商品或指定商品的出/入库记录。
 6.生成采购清单模块是:针对系统管理员组,其主要功能是根据需求指定商品库存数量少于某数量时将被列入提示清单继而生成采购清单。
 7.资源统计模块是:针对系统管理员组,其主要功能是实现按商品类别统计商品的种数,和本类别商品的出入库记录,从而统计出出入库数量和金额。
§2.5 C/S和B/S的比较论证
 1.C/S和B/S的不同点
 C/S和B/S是当今世界开发模式技术架构的两大主流技术。
 Client/Server是建立在局域网的基础上的,Browser/Server是建立在广域网的基础上的。
 (1)、硬件环境不同:
 C/S一般建立在专用的网络上,小范围里的网络环境,局域网之间再通过专门服务器提供连接和数据交换服务。
 B/S建立在广域网之上的,不必是专门的网络硬件环境,例如电话上网,租用设备,信息自己管理,有比C/S更强的适应范围,一般只要有操作系统和浏览器就行。
 (2)、对安全要求不同
 C/S一般面向相对固定的用户群,对信息安全的控制能力很强。一般高度机密的信息系统采用C/S结构适宜,可以通过B/S发布部分可公开信息。
 B/S建立在广域网之上,对安全的控制能力相对弱,面向是不可知的用户群。
 (3)、对程序架构不同
 C/S程序可以更加注重流程,可以对权限多层次校验,对系统运行速度可以较少考虑。
 B/S对安全以及访问速度的多重的考虑,建立在需要更加优化的基础之上。比C/S有更高的要求,B/S结构的程序架构是发展的趋势,从MS的.Net系列的BizTalk2000Exchange2000等,全面支持网络的构件搭建的系统。SUN和IBM推的JavaBean构件技术等,使B/S更加成熟。
 (4)、软件重用不同
 C/S程序可以不可避免的整体性考虑,构件的重用性不如在B/S要求下的构件的重用性好。
 B/S对的多重结构,要求构件相对独立的功能。能够相对较好的重用。就如买来的餐桌可以再利用,而不是做在墙上的石头桌子。
 (5)、系统维护不同
 系统维护是软件生存周期中,开销大,相当重要 
 2.C/S和B/S的优势与劣势
 C/S架构软件的优势与劣势:
 (1)、应用服务器运行数据负荷较轻。
 (2)、数据的储存管理功能较为透明。
 (3)、C/S架构的劣势是高昂的维护成本且投资大。
 其次,传统的C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,由于产品的更新换代十分快,代价高和低效率已经不适应工作需要。在JAVA这样的跨平台语言出现之后,B/S架构更是猛烈冲击C/S,并对其形成威胁和挑战。
 B/S架构软件的优势与劣势:
 (1)、维护和升级方式简单。
 (2)、成本降低,选择更多。
 (3)、应用服务器运行数据负荷较重。 
 3.B/S结构的好处
 尽管C/S结构相对于更早的文件服务器来说,有了很大的进步,但与B/S相比,缺点和不足是很明显的。 
 (1) B/S比C/S的维护工作量大大减少了。C/S结构的每一个客户端都必须安装和配置软件。 而B/S结构,客户端不必安装及维护。
 (2)B/S相对C/S能够降低总体拥有成本。由于从应用服务到客户端只传递最终的结果,数据量较少,使用电话线也能够信任。而采用C/S两层结构,使用电话线作为传输线路可能因为速度太慢而不能够接受。 采用三层结构的璐华软件的配置可以是提高服务器的配置,降低客户端的配置。这样增加的只是一台服务器(应用服务和数据库服务可以放在同一台计算机中)的价格,而降低的却是几十台客户端机器的价格。起到了降低总体拥有成本的作用。
 (3) B/S比C/S的 数据安全性更强
 由于C/S结构软件的数据分布特性,客户端所发生的火灾、盗抢、地震、病毒、黑客等都成了可怕的数据杀手。另外,对于集团级的异地软件应用,C/S结构的软件必须在各地安装多个服务器,并在多个服务器之间进行数据同步。如此一来,每个数据点上的数据安全都影响了整个应用的数据安全。所以,对于集团级的大型应用来讲,C/S结构软件的安全性是令人无法接受的。对于B/S结构的软件来讲,由于其数据集中存放于总部的数据库服务器,客户端不保存任何业务数据和数据库连接信息,也无需进行什么数据同步,所以这些安全问题也就自然不存在了。
 (4) B/S比C/S的 数据一致性更强
 在C/S结构软件的解决方案里,对于异地经营的大型集团都采用各地安装区域级服务器,然后再进行数据同步的模式。这些服务器每天必须同步完毕之后,总部才可得到最终的数据。由于局部网络故障造成个别数据库不能同步不说,即使同步上来,各服务器也不是一个时点上的数据,数据永远无法一致,不能用于决策。对于B/S结构的软件来讲,其数据是集中存放的,客户端发生的每一笔业务单据都直接进入到中央数据库,不存在数据一致性的问题。
 (5) B/S比C/S的数据实时性更强
 在集团级应用里,C/S结构不可能随时随地看到当前业务的发生情况,看到的都是事后数据;而B/S结构则不同,它可以实时看到当前发生的所有业务,方便了快速决策,有效地避免了企业损失。
 (6) B/S比C/S的数据溯源性更强
 由于B/S结构的数据是集中存放的,所以总公司可以直接追溯到各级分支机构(分公司、门店)的原始业务单据,也就是说看到的结果可溯源。大部分C/S结构的软件则不同,为了减少数据通信量,仅仅上传中间报表数据,在总部不可能查到各分支机构(分公司、门店)的原始单据。
 从以上的分析可以看出,B/S结构的大型管理软件有着C/S结构软件无法比拟的优势。而从国外的发展趋势来看,也验证了这一点。目前,国外大型企业管理软件要么已经是B/S结构的,要么正在经历从C/S到B/S结构的转变。从国内诸多软件厂商积极投入开发B/S结构软件的趋势来看,B/S结构的大型管理软件势必在将来的几年内占据管理软件领域的主导地位。
 B/S(Brower/Server,浏览器/服务器)的网络结构如图2.8所示:
 
 图2.8 B/S的网络结构图
 综上所述,该超市管理系统设计采用的技术是基于B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。
 第三章  数据库设计
§3.1 数据库设计
 数据库设计是建立数据库及其应用系统的技术,是信息系统开发和建设中的核心技术,具体说,数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。因此建立一个良好的数据组织结构和数据库,使整个系统都可以迅速、方便、准确地调用和管理所需的数据,是衡量信息系统开发工作好坏的主要指标之一。
 该系统采用SQL Server 2000数据库服务器,Microsoft SQL Server 2000是一个分布式的关系型数据库管理系统,具有客户机/服务器体系结构,它支持远程访问数据库。程序不仅为基于客户端的用户数据访问提供界面,而且对服务器上的数据进行结构管理和存储。
§3.1.1 数据库设计理论基础
 一个成功的信息管理系统,是建立在许多条件之上的,而数据库是其中一个非常重要的条件和关键技术。要设计出一个好的信息管理系统数据库,除满足系统所要求的功能外,还必须遵守下列原则:1. 基本表的个数越少越好。2. 主键的个数越少越好。键是表间连接的工具,主键越少,表间的连接就越简单。3. 字段的个数越少越好。4. 所有基本表的设计均应尽量符合第三范式。数据库的设计中,如何处理多对多的关系和如何设计主键,是两个有着较大难度、需要重点考虑的问题。
§3.1.2 系统E-R图的设计
 数据模型是数据库系统的核心和基础,各种机器上的DBMS都是基于某种数据模型的。但在数据库设计中,如果直接将现实中的客观对象直接转换为机器世界中的对象常常比较困难,因此往往将现实世界中的客观对象首先抽象为不依赖任何具体机器的信息结构,这种信息结构不是DBMS支持的数据模型,而是概念及模型,于是就需要E-R图的出现。
 E-R模型(entity relationship model)是P.P.CHEN于1976年提出的。这个模型是直接从现实世界中抽象出实体类型及实体间联系,即是一种用于描述静态数据结构的概念模型,是对现实世界的一种抽象。它的主要成分是实体、联系和属性。因此可利用E-R模型进行数据库概念设计。逻辑设计的目的是把概念设计阶段的基本E-R图转换为与选用的机器上的DBMS所支持的数据模型相符合的逻辑结构。
 E-R图是直观表示概念模型的工具,它有四个基本成分:
 (1)矩形框,表示实体类型(考虑问题的对象)。
 (2)菱形框,表示联系类型(实体间的联系)。
 (3)椭圆形框,表示实体类型和联系类型的属性。对于关键码的属性,在属性名下划一横线。
 (4).直线,联系类型与其涉及的实体类型之间以直线连接。
 在本系统中,根据需要可以录入、查询、修改商品信息,同时还可以了解在库存和生成采购清单情况。依据数据库管理的实际情况,考虑了多方面的因素以后,确定系统的E-R图如下:
 管理员:
 
 图3.1 管理员E-R图
 供应商:
 
 图3.2 供应商E-R图
 图片:
 
 图3.3 图片E-R图
 商品库存:
 
 图3.4 商品库存E-R图
 
 类别:
 
 图3.5 类别E-R图
 制造商:
 
 图3.6 制造商E-R图
 商品:
  
 图3.7 商品E-R图
 h.
       
 图3.8 商品超市信息系统E-R图
§3.1.3 E—R图向关系模型的转化
 E-R图向关系模型的转换要解决的问题是如何将实体和实体间的联系转换为关系模型,如何确定这些关系模型的属性和码。
 关系模型的逻辑结构是一组关系模式的集合。E-R图则由实体、实体的属性和实体之间的联系三个要素组成的。所以将E-R图转换为关系模型实际上就是要将实体、实体的属性和实体之间的联系转换为关系模式,这种转换一般遵循如下原则:
 (1) 若两个实体间的联系是1:1,可以在两个实体类型转换成的两个关系模式中任意一个关系模式的属性中加入另一个关系模式的健和联系类型的属性。
 (2) 若两个实体间的联系是1:N,则在N端实体类型转换成的关系模式中加入1端实体类型转换成的关系模式的键和联系类型的属性。
 (3)若两个实体间的联系是M:N,则将联系类型也转换成关系模式,其属性为两端实体的键加上联系类型的属性,而键为两端实体间的组合。
 因此,根据以上规则,本系统E—R模型向关系模式的转换如下:
 (1) 管理员(管理员编号,用户名,用户密码);
 (2) 供应商(供应商编号,供应商名称,供应商说明)
 (3) 图片(图片编号,图片名称,图片数据)
 (4) 商品库存(库存编号,商品编号,出/入库日期,库存变动,加入数量,减少数量,商品价格,总价格,经办人);
 (5) 类别(类别编号,类别名称,类别说明);
 (6) 制造商(制造商编号,制造商名称,制造商说明);
 (7) 商品(商品编号,商品名称,商品类别,商品条形码,商品供应商,商品制造商,商品说明,商品图片编号,商品添加人);
§3.2 设计局部数据库实体关系
 通过对E—R图转换的关系模式进行分析,并结合库存管理信息系统的具体功能、要求和开发数据库系统的特点,对系统的局部数据库实体关系做如下设计:
 Admin表如下3.1所示:
 列名  描述 数据类型 长度  允许空
 ID  管理员编号  int  4  
 UserName  用户名 char 16  
 UserPass  用户密码(MD5加密保存) char 16  
 表3.1 数据库Admin表
 2. 供应商(GYS)表如下3.2所示:
 列名  描述 数据类型 长度  允许空
 GYSID  供应商编号  int  4  
 GYSName  供应商名称 char 100  
 GYSSM  供应商说明 char 100  可为空
 表3.2 数据库供应商表
 3.图片(Images)表如下3.3所示:
 列名  描述  数据类型 长度  允许空
 SPImageID  图片编号  int  4  
 image_name  图片名称 nvarchar 50 可为空
 image_data  图片数据 Image 16  
 表3.3 数据库图片表
 4. 商品库存(KC)表如下3.4所示:
列名 描述 数据类型 长度 允许空
KCID 库存编号 int 4 
SPID 商品编号 int 4 
KCDate 出/入库日期 datetime 8 
KCBD 库存变动(加入或减少) char 10 
InSL 加入数量 int 4 
OutSL 减少数量 int 4 
SPPrice 商品价格 decimal 9 
SPTotalMoney 总价格 decimal 9 
Operator 经办人 char 15 
表3.4 数据库商品库存表
 5. 商品类别(LB)表如下3.5所示:
列名 描述 数据类型 长度 允许空
LBID 类别编号 int 4 
LBName 类别名称 char 10 
LBSM 类别说明 char 20 可为空
表3.5 数据库商品类别表
 6. 商品制造商(ZZS)表如下3.6所示:
列名 描述 数据类型 长度 允许空
ZZSID 制造商编号 int 4 
ZZSName 制造商名称 char 100 
ZZSSM 制造商说明 char 200 可为空
表3.6 数据库商品制造商表
 7. 商品 (SP)表如下3.7所示:
列名 描述 数据类型 长度 允许空
SPID 商品编号 int 4 
SPName 商品名称 char 50 
SPLBID 商品类别 int 4 
SPTXM 商品条形码 char 13 
SPGYSID 商品供应商 int 4 
SPZZSID 商品制造商 int 4 
SPSM 商品说明 char 200 可为空
SPImageID 商品图片编号 int 4 可为空
SPTJR 商品添加人 char 10 
表3.6 数据库商品表
§3.3 设计全局数据库实体关系
 实体关系模型的“联系”用于刻画实体之间的关联。一种完整的方式是对局部结构中任意两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体类型之间是否存在联系。若有联系,进一步确定是1:N,M:N,还是1:1等。还要考察一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系,等等。
 数据库的全局实体关系如图3.9所示:
 
 图3.9 数据库全局实体关系图
 
 
第四章 系统详细设计与实现
§4.1  ADO访问数据库
 在管理信息系统的开发应用中,Microsoft公司的ASP(Active Server Pages)被广为使用。ASP实际上是将标准的HTML文件拓展了一些附加特征,为编写人员提供了在服务器端运行脚本的环境,使编写人员可以利用VBScript和java script或其他的第三方脚本语言来创建ASP,实现过去需要编写复杂的CGI程序才能实现的有动态内容的网页,如计数器等。ASP提供了一些内置对象和组件,允许用户从浏览器中接收和发送信息。ASP可以和诸如SQL Server这样的数据库进行连接,进而完成数据的交换与更新。
 ADO对OLEDB数据库访问规范进行了封装,用户通过OLEDB中的COM标准存取各种异构数据,加强了对WEB应用的支持。它支持创建独立的数据库访问对象,通过局部缓存数据,再以批处理方式更新数据,并支持结果集返回有限的行及其它返回值的处理。ADO组件对象作为ASP技术的核心,为ASP提供完整的站点数据库访问解决方案。它与ASP其它组件对象结合,作用的服务器端,通过OLEDB提供的COM对象接口访问数据、操纵各种关系型及非关系型数据库,通过执行ADO方法或SQL命令,让用户在浏览器画面输入、更新和删除站点服务器的数据库信息。ADO使用内置的Recordsets对象作为数据的主要接口 ,并可使用VBScript、java script语言来控制对数据库的访问与查询结果的输出显示画面。
 ASP与SQL Server数据库进行连接,代码如下:
 <%@ LANGUAGE = "VBScript" %>
 <!--#include file="ADOVBS.INC"-->
 <%
 Set objConnection = Server.CreateObject ("ADODB.Connection")
 objConnection.Open "driver={SQL Server};server=Shaoly;uid=sa;database=pub;"
 SQLQuery = "SELECT * FROM Author"
 Set rsRecordset = Server.CreateObject ("ADODB.Recordset")
 rsRecordset.Open SQLQuery,objConnection, adOpenKeyset, adLockReadOnly
 %>
 <%Do Until rsRecordset.EOF %>
 <tr>
 <td bgcolor="f7efde" align=center>
 <%= rsRecordset ("Author_FirstName") %>
 <br>
 <%= rsRecordset ("Author_LastName") %>
 <br>
 </td>
 </tr>
 <%
 rsRecordset.MoveNext
 Loop
 %>
 <% objConnection.close% >
§4.2 登录/注销模块的实现及MD5加密的实现
 MD5就是采用单向加密的加密算法,对于MD5而言,有两个特性是很重要的,第一是任意两段明文数据,加密以后的密文不能是相同的;第二是任意一段明文数据,经过加密以后,其结果必须永远是不变的。前者的意思是不可能有任意两段明文加密以后得到相同的密文,后者的意思是如果我们加密特定的数据,得到的密文一定是相同的。
 该模块主要是判断用户是否具有登录的权限以及登录哪个模块的权限。在这个模块中,比较核心的部分是验证码部分,MD5加密和Session传值技术,MD5加密把输入框的密码加密后与数据库里面的用户密码(暗文)比较,而Session变量的存在主要是保存用户的的用户名。MD5函数实现见MD5.asp部分。
 当系统登陆时,首先判定用户名是否为空,如为空则提示重新输入用户名,否则进入下一步,判定密码是否为空,如密码为空也提示重新输入密码,否则系统根据用户名获取密码,如果用户名存在且密码正确,就结束登陆。否则重新输入。
 系统管理员登陆界面如下图4.1所示:
 
 图4.1 系统管理员登陆界面图
 系统管理员登录流程图如下图4.2所示:
 
 图4.12 系统管理员登录流程图
 主要代码见附录1所示:
§4.3 密码修改模块的实现
 该模块功能是当管理员需要修改当前密码时使用,实现时首先获取用户名、旧密码、新密码,再进一步验证新密码,当新密码确认后,根据用户名查询密码,当原密码等于输入密码时,新密码修改成功,即结束修改。
 密码修改界面如下图4.3所示:
 
 图4.3 密码修改界面图
 密码修改流程如下图4.4所示:
 
 图4.4 密码修改流程图
 主要代码见附录2所示:
§4.4 普通用户查询模块的实现
 普通用户即是游客,无须通过身份验证即可登录,该模块功能是按类别提供给普通用户商品信息,包括:商品编号、商品名称、商品类别、商品条形码、商品制造商、商品说明、商品图片、商品价格。
 实现时,先列出所有商品类别,然后根据用户点击的商品类别查询所有属于该类别的商品,然后列出所有商品。
 普通用户查询商品界面如下图4.5所示:
 
 图4.5普通用户查询商品界面图
  界面执行流程如图4.6所示:
 
 图4.6 普通用户查询界面执行流程图
 主要代码见附录3所示:
§4.5 商品录入模块的实现
 这个模块的功能主要是实现对商品相关信息的录入,包括对商品类别的录入、商品供应商的录入、商品制造商的录入、商品图片的录入、以及商品信息录入/修改。用户登录后可进入其中任一子模块。
 §4.5.1 商品类别管理模块的实现
 此模块完成了商品类别的添加、编辑和删除。使用了按输入条件显示相应功能,将此三个功能在一个ASP页面中完成,减少了页面数量并有效的控制源代码。
 页面中使用了界面显示控制变量“ShowAction”来判断当前显示给用户的内容,具体对应关系见流程图。在页面中的程序部分使用了控制变量“Action”,根据“Action”的不同值来执行不同的程序段(添加、编辑、删除),从而在单页面中实现了多功能。
 开始查询Action的值后,判断当Action=AddLB时,首先接受参数,接着加入到数据库。当Action=DeleteLB时,首先查询出类别的编号,接着删除该类别;当Action=SaveLB时,首先查询类别等参数,接着保存更改; 其中,在添加和编辑商品时,商品名称为必填项,商品说明可为空。
 此模块页面程序执行流程如图4.7所示:
 
 图4.7 商品类别管理模块页面程序执行流程图
  添加类别界面如下图4.8所示:
 
 图4.8 添加类别界面图
 添加类别部分源代码:
 If Request.Form("Action")="AddLB" Then
  LBName=Request.Form("LBName")
  if LBName="" then
   Call eMessage("商品类别名称不能为空!")
  end if
  LBSM=Request.Form("LBSM")
  SQLStr="Insert Into LB(LBName,LBSM) Values('"&LBName&"','"&LBSM&"')"
  conn.execute SQLStr
  Call Message("类别添加成功!")
 End If
 编辑类别界面如下图4.9所示:
 
 图4.9 编辑类别界面图
  编辑类别部分源代码:
  If Request.Form("Action")="SaveLB" Then
  Dim LBID
  LBID=Request.Form("LBID")
  LBName=Request.Form("LBName")
  if LBName="" then
   Call eMessage("商品类别名称不能为空!")
  end if
  LBSM=Request.Form("LBSM")
  SQLStr="Update LB Set LBName='"&LBName&"',LBSM='"&LBSM&"' Where LBID="&LBID
  conn.execute SQLStr
  Call Message("类别修改成功!")
 End if
 删除类别部分源代码:
 If Request.QueryString("Action")="DeleteSPLB" Then
  LBID=Request.QueryString("LBID")
  SQLStr="Select SPName from SP where LBID="&LBID
  rS.open SQLStr,conn,1,1
  If rS(0)<>"" Then
   Call eMessage("该类别下还有商品,不能删除!")
  End If
  rS.close
  SQLStr="Delete from LB where LBID="&LBID
  conn.execute SQLStr
  Call Message("类别删除成功!")
 End If
 此模块界面显示控制流程图如图4.10所示:
 
 图4.10 商品类别管理模块界面显示控制流程图
 界面显示控制源代码如下:
 在此部分中采取了<%if Request.form("Action")="****" then%>…………<%end if%>
 此处“****”为要判断的关键部分。
 控制是否显示控制添加界面的源代码为:<%if Request.form("Action")="ShowAddLB"then%>…………<%end if%>
 控制是否显示控制编辑界面的源代码为:<% if request.querystring("Action")="ShowEditLB" then%>…………<%end if%>
§4.5.2 商品供应商管理模块的实现
 此模块完成了商品供应商的添加、编辑和删除。实现过程于4.5.1商品类别管理模块的实现过程类似。
§4.5.3 商品制造商管理模块的实现
 此模块完成了商品制造商的添加、编辑和删除。实现过程于4.5.1商品类别管理模块的实现过程类似。
§4.5.4 商品图片管理模块的实现
 此模块完成了商品图片的上传、查看、编辑和删除功能。把图片上传到数据库中,相对于传统的文件上传方式更方便管理(添加、编辑、删除)。在添加商品图片时只需引用图片编号即能实现对图片的添加。
 图片管理界面如下图4.11所示:
 
 图4.11 图片管理界面图
 图片上传过程:单击浏览-选择图片文件-单击打开-单击上传
 上传部分源代码见附录4所示:
 查看图片部分源代码见附录5所示:
 图片编辑功能是先接收到图片名称和图片编号,然后根据图片编号更新图片名称字段。
 图片编辑界面如下图4.12所示:
 
 图4.12 图片编辑界面图
 具体源代码如下:
  image_name=request.Form("image_name") '接收图片名称
 SPImageID=request.Form("SPImageID")
 conn.execute "update Images set image_name='"&image_name&"' where SPImageID="&SPImageID 
 图片删除功能运用了java script实现询问是否删除并加以确认。在删除时根据接收到的图片编号删除图片表中对应的记录。  
 图片删除源代码如下:
 if request.QueryString("Action")="DelPIC" then
  SPImageID=request.QueryString("SPImageID")
  conn.execute "delete from Images where SPImageID="&SPImageID
 end if
§4.5.5 商品信息录入/修改模块的实现     
 此模块完成了商品信息的录入、编辑、删除。在实现添加商品前需要对商品类别、商品制造商、商品供应商以及商品图片进行初始化,方便在录入时选择。紧接着就可以填写商品信息,进而提交已填数据,当商品名称和条形码均不为空时,执行将商品信息录入数据库,结束操作。否则弹出提示出错信息。
 商品信息录入界面如下图4.13所示:
 
 图4.13 商品信息录入界面图
 商品信息录入流程图如图4.14所示:
 
 图4.14 商品信息录入流程图
 商品类别的初始化源代码如下:
  <%  '初始化类别列表框
  SQLStr="select LBID,LBName from LB"
  rS.open SQLStr,conn,1,1
  %>
  <select name="SPLBID" id="SPLBID">
  <%for i=1 to rS.recordcount%>
       <option value="<%=rS(0)%>"><%=rS(1)%></option>
  <%rS.movenext
  next
  rS.close %>
     </select>
 商品制造商列表框、商品供应商列表框、商品图片列表框的初始化与此类似。
 在录入后的商品信息有所变动时,可通过编辑功能进行更改,在编辑时先传递商品编号给处理程序,然后处理程序根据商品编号从数据库中读出商品信息并在页面上显示出来,更改之后再更新相应商品记录。
 商品信息编辑流程图如图4.15所示:
 
 图4.15 商品信息编辑流程图
§4.6 商品查询模块的实现
 这个模块的功能主要是实现按商品类别、商品供应商、商品名称以及按商品排行查询。
 按商品类别、商品供应商、商品名称查询都分为精确查询和模糊查询,而显示查询结果的界面完全相同,因此在实现时采用了先生成查询字符串,在显示结果前才执行查询,得到查询结果记录集。这三个功能整合到同一个页面中,由“Action”控制,按“Action”的不同值执行不同的功能,由“SearhType”的值决定查询方式是升序或降序、精确或模糊。按销售排行查询可以帮助管理者了解商品的销售情况,可自由选择需要了解的前几位畅销商品或滞销商品。在实现时根据用户输入的要查询的商品个数及升序或降序要求对数据库中商品销售进行升序后降序排列,即可得到结果。
 商品查询页面界面如下:
 总查询菜单如下图4.16所示:选择所需要执行的查询方式
 
 图4.16 总查询菜单界面图
 查询分界面:
 (1)按商品类别查询界面如下图4.17所示:
 
 图4.17 按商品类别查询界面图
 (2)按商品供应商查询界面如图4.18所示:
 
 图4.18 按商品供应商查询界面图
 (3)按商品销售排行查询界面如图4.19所示:
 
 图4.19 按商品销售排行查询界面图
 (4)按商品名称查询界面如图4.20所示:
 
 图4.20 按商品名称查询界面图
 商品搜索页面显示控制流程如图4.21所示:
 图4.21商品搜索页面显示控制流程图
 商品查询模块程序执行流程如图4.22所示:
 
                      图4.22 品查询模块程序执行流程图
 此商品查询功能模块的关键源代码见附录6所示:
§4.7 商品库存维护模块的实现
 该模块的主要功能是按商品名称可模糊查询、添加出/入库记录:也可搜索查看所有商品或指定商品的出/入库记录。
 这里主要涉及到两张表(“商品信息表”和“库存表”),“商品信息表”用于查询商品相关信息,而商品出/入库操作所用到表是“库存表”。在对商品库存维护(出/入库)操作时,先获取商品编号、出/入库数量及价格等信息,然后写入库存表。在入库操作时,入库数量不能为负值。在出库时,如若商品库存数量不足时,出库操作也不能完成。在页面的执行过程中根据页面载入时接收到的控制参数,显示相应的功能界面。
 商品库存维护界面如下图4.23所示:
 
 图4.23 商品库存维护界面图
 页面的功能模块显示控制流程如图4.24所示:
             图4.24 页面的功能模块显示控制流程图
 页面的程序执行流程如图4.25所示:
 
 图4.25页面程序执行流程图
 主要功能实现源代码见附录7所示:
§4.8 生成采购清单模块的实现
 该模块的功能是根据需求指定商品库存数量少于某数量时商品名称将被列入提示清单继而生成采购清单。实现时首先获取界限数量,然后统计库存表里的所有商品库存数量,再与界限数量进行比较,小于界限数量时商品被加入采购清单,再结合商品信息表查询出商品的编号、名称、制造商、供应商、当前库存。
 生成采购清单界面如图4.26所示:
 
 图4.26 生成采购清单界面图
 生成采购清单流程如图4.27所示:
 
 图4.27 生成采购清单流程图
 关键源代码如下:
   <%
   TSSL=request.Form("TSSL") '获取到提示数量
   SQLStr="Select SPID,SPName,SPZZSID,SPGYSID From SP where SPID In(Select Distinct SPID from KC)"
   rS.open SQLStr,conn,1,1
   for i=1 to rS.recordcount
   if GetSPKCSLBYSPID(rS("SPID")) <  Cint(TSSL) then  '数量小于提示数量时显示的商品
   %>
 ……
   <%
   end if
   rS.movenext   '记录集指针指到下一条记录
   Next
   rS.close
  %>
§4.9 商品资源统计模块的实现
 此部分实现了按商品类别统计商品的种数,和本类别商品的出入库记录,从而统计出出入库数量和金额。实现时,先查询商品类别表,得到商品类别记录集,然后根据商品类别号查询商品表得到该类商品集合,最后查询每种商品在库存表中的出入库记录并统计,如此反复即可得到统计结果。商品资源统计界面如下图4.28所示:
 
 图4.28 商品资源统计界面图
 商品资源统计流程如图4.29所示:
 
 图4.29 商品资源统计界面图
 
 商品资源统计部分关键代码见附录8所示:
第五章  测试
§5.1 测试目的
 在软件生命周期的每个阶段都不可避免的会引入新的错误。如果在软件投入生产性运行之前,没有发现并纠正软件中的大部分差错,则这些差错迟早会在生产过程中暴露出来,那时不仅纠正这些错误的代价更高,而且往往会造成很恶劣的后果。测试的目的就是在软件投入生产性运行之前,尽可能多的发现软件中的错误。
§5.2 测试方法及设计技术
§5.2.1 测试方法
 我所采用的是测试方法是黑盒测试,及实在程序接口进行的测试,它只检查程序功能是否按照规格说明书的规定正常使用,程序是否能适当的接收输入数据产生正确的输出信息,并且保持外部信息(如,数据库或文件)的完整性。黑盒测试又称为功能测试。
§5.2.2 设计技术
 我所采用的设计技术是适用于黑盒测试的边界值分析和等价划分相结合的策略。使用边界值分析方法设计测试方案首先应该确定边界情况,通常输入等价类和输出等价类的边界,选取的测试数据应该刚好等于、刚好小于和刚刚大于边界值。等价划分法首先需要划分输入数据的有效等价类和无效等价类。在确定输入数据的等价类时常常还需要分析输出数据的等价类,以便根据输出数据的等价类导出对应的输入数据等价类。
 经验表明,用这种方法设计出的测试方案暴露程序错误的能力最强。必要时用等价划分法补充测试方案。
§5.3 测试数据
§5.3.1 系统登陆模块测试数据

输入 预期的输出 
用户名 密码  
不输入 不输入 用户名不能为空 无效输入
admin 不输入 密码不能为空 无效输入
admin 1023 登录成功 有效输入
a 1023 用户名不存在 无效输入
admin 1 密码错误 无效输入
                     表5.1系统登陆模块测试数据
§5.3.2 密码修改模块测试数据
输入 预期的输出 
原始密码 新密码 验证  
不输入 不输入 不输入 请输入原始密码 无效输入
1 2 2 原始密码不正确 无效输入
1023 不输入 不输入 请输入新密码 无效输入
1023 1 2 两次输入的密码不符 无效输入
1023 2 2 密码修改成功 有效输入
 表5.2 密码修改模块测试数据
§5.3.3 商品录入模块测试数据
 (1)商品类别管理模块测试数据
 添加商品类别子模块测试数据:
输入 预期的输出 
类别名称 类别说明  
不输入 不输入 商品类别名称不能为空 无效输入
日用品 不输入 日用品(类别添加成功) 有效输入
日用品 日常生活中的小物品
 日常生活中的小物品 有效输入
日用品 大于10个汉字的说明 错误 无效输入
大于五个字的名称 不输入 错误 无效输入
 表5.3添加商品类别模块测试数据
 编辑商品类别测试数据与表5.3添加商品类别模块测试数据类似
 (2)商品供应商、制造商管理模块测试数据与商品类别管理模块测试类似
 (3)商品信息录入、修改模块测试数据
 添加商品子模块测试数据:
输入 预期的输出 
商品名称 商品类别 商品条形码 商品供应商 商品制造商 商品说明 商品图片  
不输入 下拉列表中选择 不输入 下拉列表中选择 下拉列表中选择 不输入 下拉列表中选择 商品不能为空 无效输入
电话 下拉列表中选择 不输入 下拉列表中选择 下拉列表中选择 不输入 下拉列表中选择 商品条形码不能为空 无效输入
电话 下拉列表中选择 123 下拉列表中选择 下拉列表中选择 不输入 下拉列表中选择 商品添加成功 有效输入
电话 下拉列表中选择 大于13个数字 下拉列表中选择 下拉列表中选择 不输入 下拉列表中选择 无法输入 无效输入
电话 下拉列表中选择 123456 下拉列表中选择 下拉列表中选择 用于通信 下拉列表中选择 商品添加成功 有效输入
电话 下拉列表中选择 1234567 下拉列表中选择 下拉列表中选择 大于100个汉字的说明 下拉列表中选择 错误 无效输入
大于25个字的名称 下拉列表中选择 123 下拉列表中选择 下拉列表中选择 不输入 下拉列表中选择 错误 无效输入
表5.4 添加商品子模块测试数据
 编辑商品子模块测试数据与添加商品子模块测试数据类似
 §5.3.4 商品信息查询模块测试数据
 (1)按类别查询子模块测试数据:
 输入  预期的输出  
 商品类别  查询关键字  查询方式    
 日用品  不输入  精确/模糊查询  显示该类别所有商品  有效输入
 日用品  牙刷牙膏筒
   精确查询  牙膏牙刷筒  有效输入
 日用品  牙  精确查询  无此商品  无效输入
 日用品  牙  模糊查询  牙刷牙膏筒
 冷酸灵牙膏  有效输入
 日用平  2  精确/模糊查询  无此商品  无效查询
 表5.5 按类别查询子模块测试数据
 (2)按供应商查询子模块测试数据与按类别查询子模块测试数据类似
 (3)按商品销售排行查询子模块测试数据:
输入 预期的输出 
按销售排行查询 查询长度  
升/降 不输入 请输入长度 无效输入
升/降 10 显示结果 有效输入
升/降 0.5 请输入大于零的整数 无效输入
升/降 他 请输入数字 无效输入
 表5.6 按商品销售排行查询子模块测试数据
 (4)按商品名称查询子模块测试数据与按类别查询子模块测试数据类似
§5.3.5 商品库存维护模块测试数据
 (1)入库功能模块测试数据:
输入 预期的输出 
商品名称 入库数量 入库价格  
不输入 不输入 不输入 请输入商品名称 无效输入
牙膏牙刷筒 不输入 不输入 请填写入库数量 无效输入
牙膏牙刷筒 1000 不输入 请填写入库价格 无效输入
牙膏牙刷筒 1000 10 入库成功 有效输入
牙膏牙刷筒 10000(输入大于4位数) 10 无法输入 无效输入
牙膏牙刷筒 1000 哈 出错 无效输入
 表5.7 入库功能模块测试数据
 (2)出库功能模块测试数据类似入库功能模块测试数据
§5.4 测试结果及分析
 根据输入的要求,在输入有效时均能正常存入数据库,当输入无效时,也都有相应的错误提示信息。
 结论
 为了提高超市的提高工作效率、扩大服务范围、及时获取信息、减少决策失误、减少库存积压及提高资金周转等缺陷,该系统结合了现代先进的网络技术,提出了一套详细的设计方案和解决方案。设计采用了B/S结构。
 该系统的基本功能为:实现对商品信息的录入、查询、修改和维护以及根据商品信息生成商品采购单等功能,能起到及时总结每日经营的物品数量,反映消费者及市场对物品的需求量,预测市场并为超市进货管理人员提供必要的进货信息的作用。
 该系统还存在一些不足的地方,统计部分的运行时间长,因此在算法上还有需要改进的地方!
 总之,在这次设计的过程中,通过具体编写一个实际的软件产品,了解软件产品编制的全过程,大大提高了自己处理问题的能力和编制能力。虽然其间遇到很多困难,但收获也很大,Macromedia dreamweaver工具的熟悉,VBScript代码设计,超市销售管理系统的初步了解,数据库基本应用,软件工程的需求分析等等,理论与实践有机结合,掌握到过硬的专业知识,并在宏观上把握了这块领域的发展方向和美好的前景,也使我认识到软件行业的发展及现状。
参考文献
 [1] 邓文渊著. Dreamweaver MX 互动网站百宝箱 for ASP[M]. 中国铁道出版社. 2004.
 [2] [美]Joyce J.Evans等著. 盖江南译. 网页设计四合一宝典[M]. 电子工业出版社. 2002.2
 [3] 司玲玲、宋建成、范式民等著. 基于ASP和SQL Server 2000科技管理系统的研究[J]. 太原理工大学学报. 2004.3 第35卷第2期. 178-181页.
 [4] 董祥和,郭江鸿著. 图片到数据库存取的ASP实现[J]. 太原理工大学学报. 2004.3  第35卷第2期. 218-220.
 [5] 段卫华,陈春玲著. ASP技术在Web数据库中的应用. 电脑知识与技术[J]. 2004.5
 [6] 吴娟,程鹏,王涌著. 应用ASP实现W eb环境下数据的管理与发布[J]. 现代电力. 2001.2. 第18卷第1期. 71-78页。
 [7] 曹淑琴著. 基于ASP技术的网站建设[J]. 华北科技学院学报. 2003.3. 第5卷第1期. 44-45页.
 [8] 田炜著. 基于asp技术的信息管理系统的设计与实现[J]. 电子工程师. 2000. 第7期.
 [9] LIU Xiaoqian}, WU Min, CHEN Jiaxun著.  Distributed Knowledge Management in eLearning[J]. Computer Engineering. 2002.8.
 [10] XUE Ming, LI Hongyan. Managing User Interaction Forms on Web Pages: A Template- Base Approach[J]. 北京大学学报. 2004.5. 第40卷第3期. 473-479.
附录
1. 用户登陆关键代码如下:
<% '注销
if request.QueryString("Action")="CancelLogin" then
 session("User")=""
end if
'登录
If Request.Form("action")="UserLogin" Then
 Dim UserName,UserPass,SQLStr
 UserName=Request.Form("UserName")
 If UserName="" Then
  Call eMessage("用户名不能为空!")
 End If
 UserPass=Request.Form("Userpass")
 If UserPass="" Then
  Call eMessage("密码不能为空!")
 End If
 rS.Open "Select * from Admin where UserName='"&md5(UserName)&"'",conn,1,1
 If rS.eof and rS.bof then
  Call eMessage("该用户不存在!")
 End if
 If Md5(UserPass)<>rS("UserPass") then
  Call eMessage("密码错误!")
 end if
 '登录正确后设置会话变量(session)
 session("User")="Admin"
 Response.Redirect("SPCount.asp")
End If
%>
2. 密码修改关键代码如下:
if request.form("Action")="ChangePass" then
 UserName=session("UserName")
 if UserName="" then
  call eMessage("请先登录!")
 end if
 UserPass=request.form("UserPass")
 if UserPass="" then
  call eMessage("请输入原始密码!")
 end if
 NewPass=request.form("NewPass")
 if NewPass="" then
  call eMessage("请输入新密码!")
 end if
 NewPassA=request.form("NewPassA")
 if NewPass<>NewPassA then
  call eMessage("两次输入的密码不符!")
 end if
 rs.open "select * from Admin where UserName='"&md5(UserName)&"'",conn,1,1
  if rs("UserPass")<>md5(UserPass)then
   call emessage("原始密码不正确!")
  end if
 rs.close
 conn.execute "Update Admin set UserPass='"&Md5(NewPass)&"' where UserName='"&md5(UserName)&"'"
 call message("密码修改成功!")
end if
3.普通用户实现查询关键代码如下:
<%
SQLStr="Select * from LB"
rS.Open SQLStr,conn,1,1
%>
…………
 <%For i=1 to rS.RecordCount%>
 <a href="SPList.asp?ShowAction=ShowSPList&SPLBID=<%=rS(0)%>"><%=rS(1)%></a> |
<%rs.movenext
next
rS.close
%>

<%
SPLBID=request.querystring("SPLBID")
SQLStr="Select * from SP Where SPLBID="&SPLBID
rS.Open SQLStr,conn,1,1
%>
…………
<%For i=1 to rS.RecordCount%>
<a href="ViewSP.asp?SPID=<%=rS(0)%>"><%=rS(1)%></a> |
<%rs.movenext
next
rS.close
%>
4. 图片上传部分关键代码如下:
<%  '上传图片的实现(将图片处理成二进制)
dim formsize,formdata,bncrlf,divider,datastart,dataend,mydata,CID
formsize=request.totalbytes  ''取得客户端发过来的大小
formdata=request.binaryread(formsize)''把客户发过来的数据转成二进制作
bncrlf=chrB(13) & chrB(10)
divider=leftB(formdata,clng(instrb(formdata,bncrlf))-1)
datastart=instrb(formdata,bncrlf & bncrlf)+4
dataend=instrb(datastart+1,formdata,divider)-datastart
mydata=midb(formdata,datastart,dataend)''上面总共是取得图片的二进制数据
%>
<!--#include file="../Inc/Dataconn.asp" -->
<%   '将图片存进SQL
sql="select * from Images order by SPImageID desc"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql,conn,3,3
CID=rs("SPImageID")+1
rs.addnew
rs("image_data").appendchunk mydata    ''增加到数据库中
rs.update
set rs=nothing
set conn=nothing
response.redirect "index.asp"  '转到index页面
%>
5. 查看图片部分关键代码如下:
<img src="display.asp?id=<%=request("id")%>" border="1" align="absmiddle">
display.asp源代码如下:
 <!--#include file="../Inc/Dataconn.asp" -->
<%
id=request("id")
sql="select * from Images where SPImageID="&id
rs.open sql,conn,1,1
Response.ContentType="image/*"
Response.BinaryWrite rs("image_data").GetChunk(7500000)
rs.close
set rs=nothing
%>
6. 商品查询功能关键代码如下:
<%
'生成按类别查询的SQL语句
Call CheckAdmin
if request.form("Action")="SearchByLB" then
 SPLBID=request.form("SPLBID")
 SPName=request.form("SPName")
 SearchType=request.form("SearchType")
 if SearchType="MHCX" then
  SQLStr="Select SPID,SPName,SPLBID from SP where SPLBID="& SPLBID &" and SPName like '%"&SPName&"%'"
 elseif SearchType="JQCX" then
  SQLStr="Select SPID,SPName,SPLBID from SP where SPLBID="& SPLBID &" and SPName = '"&SPName&"'"
 end if
end if
if request.form("Action")="SearchByGYS" then
 SPGYSID=request.form("SPGYSID")
 SPName=request.form("SPName")
 SearchType=request.form("SearchType")
 if SearchType="MHCX" then
  SQLStr="Select SPID,SPName,SPLBID from SP where SPGYSID="& SPGYSID &" and SPName like '%"&SPName&"%'"
 elseif SearchType="JQCX" then
  SQLStr="Select SPID,SPName,SPLBID from SP where SPGYSID="& SPGYSID &" and SPName = '"&SPName&"'"
 end if
end if
if request.form("Action")="SearchBySPName" then
 SPName=request.form("SPName")
 SearchType=request.form("SearchType")
 if SearchType="MHCX" then
  SQLStr="Select SPID,SPName,SPLBID from SP where SPName like '%"&SPName&"%'"
 elseif SearchType="JQCX" then
  SQLStr="Select SPID,SPName,SPLBID from SP where SPName = '"&SPName&"'"
 end if
end if
'按商品销售排行搜索
if request.form("Action")="SearchBySellPH" then
 SortType=request.form("SortType")
 SellLength=request.form("SellLength")
 if SellLength="" then
  call emessage("请输入长度!")
 end if
 if IsNumeric(SellLength)=false then
  call emessage("请输入数字!")
 end if
 if Int(SellLength)<=0 then
  call emessage("请输入大于0的整数!")
 end if
 if SortType="SX" then  '升序
  SQLStr="Select SPID,SPName,SPLBID from SP where SPID In(Select top "& SellLength &" SPID from KC order by OutSL asc)"
 elseif SortType="JX" then '降序
  SQLStr="Select SPID,SPName,SPLBID from SP where SPID In(Select top "& SellLength &" SPID from KC order by OutSL desc)"
 end if
end if
%>
7. 商品库存维护关键代码如下:
商品查询(按名称模糊查询)实现源代码:
 if request.form("Action")="SearchSP" then
 SPName=Trim(request.form("SPName"))
 if SPName="" then
  call eMessage("请输入商品名称!")
 end if
 SQLStr="Select SPID,SPName from SP where SPName like '%"& SPName &"%'"
 rS.open SQLStr,conn,1,1
 if rS.eof and rS.bof then
  call eMessage("无相关商品!")
  IfHaveSP=false
 end if
  IfHaveSP=true
end if

 入库功能实现源代码:
  '商品入库
if request.Form("Action")="SaveSPINSL" then
 SPID=request.Form("SPID")
 KCDate=Now()
 KCBD="入库"
 InSL=request.Form("InSL")
 if InSL="0" or InSL="" then
  call eMessage("请填写入库数量!")
 end if
 SPPrice=request.Form("SPPrice")
 if SPPrice="0.00" or SPPrice="" then
  call eMessage("请填写入库价格!")
 end if
 SPTotalMoney=Cint(InSL)*Csng(SPPrice)
 Operator=session("User")
 if Operator="" then
  call eMessage("请先登录再进行操作!")
 end if
 SQLStr="Insert into KC(SPID,KCDate,KCBD,InSL,SPPrice,SPTotalMoney,Operator) values("&SPID&",'"&KCDate&"','"&KCBD&"',"&InSL&","&SPPrice&","&SPTotalMoney&",'"&Operator&"')"
 conn.Execute SQLStr
 Call message("入库成功!")
end if
 出库功能实现源代码:
'商品出库
if request.Form("Action")="SaveSPOutSL" then
 SPID=request.Form("SPID")
 KCDate=Now()
 KCBD="出库"
 OutSL=request.Form("OutSL")
 '判断是否填写了出库数量
 if OutSL="0" or OutSL="" then
  call eMessage("请填写出库数量!")
 end if
 if JudgeSPINKC(SPID)=false then
  call eMessage("该商品还没有入库,请先入库!")
 end if
 if GetSPKCSLBYSPID(SPID)< Cint(OutSL) then
  call eMessage("该商品库存数量不足!")
 end if
 SPPrice=request.Form("SPPrice")
 '判断是否填写了出库数量
 if SPPrice="0.00" or SPPrice="" then
  call eMessage("请填写出库价格!")
 end if
 SPTotalMoney=Cint(OutSL)*Csng(SPPrice)
 Operator=session("User")
 if Operator="" then
  call eMessage("请先登录再进行操作!")
 end if
 SQLStr="Insert into KC(SPID,KCDate,KCBD,OutSL,SPPrice,SPTotalMoney,Operator) values("&SPID&",'"&KCDate&"','"&KCBD&"',"&OutSL&","&SPPrice&","&SPTotalMoney&",'"&Operator&"')"
 conn.Execute SQLStr
 Call message("出库成功!")
end if
查询现有库存记录源代码:
  <%  '搜寻库存记录
  if request.Form("SearchKC")="SearchKCREC" then
    SPName=request.Form("SPName")
    SQLStr="Select * From KC where SPID in (select SPID from SP where SPName like '%"&SPName&"%') order by KCDate desc"
  else
    SQLStr="Select * From KC order by KCDate desc"
  end if
  rS.open SQLStr,conn,1,1
  for i=1 to rS.recordcount
  %>
用<%=rs(m)%> ‘m为数字,表示要数出的字段在记录集中的编号,从0开始数
…………
  <%rS.movenext
  next
  rS.close%>

8. 资源统计部分关键代码如下:
<%
 SQLStr="Select * from LB"
 rS.Open SQLStr,conn,1,1
 For i=1 to rS.RecordCount%>
  <tr>
    <td height="20" align="center" bgcolor="#FFFFFF" class="Txt"><%=rS(1)%></td>
    <td align="center" bgcolor="#FFFFFF" class="Txt"><%=GetSPCountBySPLBID(rS(0))%></td>
    <td align="center" bgcolor="#FFFFFF" class="Txt"><%=GetRKCKKCSLBySPLBID(rS(0),"RK")%></td>
    <td align="center" bgcolor="#FFFFFF" class="Txt"><%=GetRKCKKCSLBySPLBID(rS(0),"CK")%></td>
    <td align="center" bgcolor="#FFFFFF" class="Txt"><%=GetRKCKKCSLBySPLBID(rS(0),"RK")-GetRKCKKCSLBySPLBID(rS(0),"CK")%></td>
    <td bgcolor="#FFFFFF" class="Txt"> ¥:<%=GetRKCKKCSLBySPLBID(rS(0),"RKJE")%></td>
    <td bgcolor="#FFFFFF" class="Txt"> ¥:<%=GetRKCKKCSLBySPLBID(rS(0),"CKJE")%></td>
    </tr>
   <%
   rS.MoveNext
   Next
   rS.close
   %>
致谢
 终于完成了超市商品信息系统的全部设计过程,并使该系统达到可实际应用的阶段。
 在此期间,虽然自己付出了不少的汗水,但是,我也特别要感谢在此设计过程中给予帮助的指导老师,在他的细心指导和帮助下,我对系统开发的整个流程有了深刻地了解和系统地掌握。他不仅教会我很多知识,也提高了我的自学能力,在他的教学、指导与督促下,我的设计如今顺利完成。
 最后,我还向学校领导及所有关心和支持我毕业设计的朋友表示中心的感谢。
 


以上为本篇毕业论文范文(超市商品信息管理系统系统)毕业文档的介绍部分。
本论文在计算机论文栏目,由论文网(www.zjwd.net)整理,更多论文,请点论文范文查找

毕业论文降重 相关论文

收费专业论文范文
收费专业论文
汉语言文学论文
物理学论文
自动化专业论文
测控技术专业论文
历史学专业论文
机械模具专业论文
金融专业论文
电子通信专业论文
材料科学专业论文
英语专业论文
会计专业论文
行政管理专业论文
财务管理专业论文
电子商务国贸专业
法律专业论文
教育技术学专业论文
物流专业论文
人力资源专业论文
生物工程专业论文
市场营销专业论文
土木工程专业论文
化学工程专业论文
文化产业管理论文
工商管理专业论文
护理专业论文
数学教育专业论文
数学与应用数学专业
心理学专业论文
信息管理专业论文
工程管理专业论文
工业工程专业论文
制药工程专业论文
电子机电信息论文
现代教育技术专业
新闻专业论文
艺术设计专业论文
采矿专业论文
环境工程专业论文
西班牙语专业论文
热能与动力设计论文
工程力学专业论文
酒店管理专业论文
安全管理专业论文
交通工程专业论文
体育教育专业论文
教育管理专业论文
日语专业论文
德语专业论文
理工科专业论文
轻化工程专业论文
社会工作专业论文
乡镇企业管理
给水排水专业
服装设计专业论文
电视制片管理专业
旅游管理专业论文
物业管理专业论文
信息管理专业论文
包装工程专业论文
印刷工程专业论文
动画专业论文
环境艺术专业论文
信息计算科学专业
物流专业论文范文
人力资源论文范文
营销专业论文范文
工商管理论文范文
汉语言文学论文范文
法律专业论文范文
教育管理论文范文
小学教育论文范文
学前教育论文范文
财务会计论文范文

电子商务论文范文

上一篇:VCD租借管理系统 下一篇:自动售货机VHDL程序与仿真

最新论文

精品推荐

毕业论文排版

热门论文


本站简介 | 联系方式 | 论文改重 | 免费获取 | 论文交换

本站部分论文来自网络,如发现侵犯了您的权益,请联系指出,本站及时确认删除 E-mail:229120615@qq.com

毕业论文范文-论文范文-论文同学网(www.zjwd.net)提供计算机论文毕业论文,毕业论文范文,毕业设计,论文范文,毕业设计格式范文,论文格式范文

Copyright@ 2010-2024 zjwd.net 毕业论文范文-论文范文-论文同学网 版权所有