小型超市管理系统设计与实现 - 图文

更新时间:2024-05-25 04:18:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

呼伦贝尔学院

计算机科学与技术学院

本科生毕业论文(设计)

题 目:小型超市管理系统设计与实现 学生姓名: 班智斌 学 号: 2008121604 专业班级: 信息管理与信息系统(本) 指导教师: 田文武

完成时间: 2012年5月10日

目 录

摘要......................................................................................................................................... I Abstract ............................................................................................................................... II 第一章 绪论...........................................................................................................................1 1.1系统开发背景...............................................................................................................1 1.2系统解决的主要问题 ..................................................................................................2 1.3开发环境介绍...............................................................................................................3 1.3.1 VB.NET介绍........................................................................................................3 1.3.2 Access 2003介绍..............................................................................................3 第二章 系统分析 ..................................................................................................................5 2.1可行性分析...................................................................................................................5 2.1.1技术可行性分析..................................................................................................5 2.1.2市场可行性分析..................................................................................................5 2.2系统需求分析...............................................................................................................5 2.2.1需求获取模式......................................................................................................5 2.2.2性能要求..............................................................................................................6 2.2.3数据要求..............................................................................................................7 第三章 系统概要设计 ..........................................................................................................8 3.1系统整体设计...............................................................................................................8

3.1.1系统结构设计......................................................................................................8 3.1.2系统模块结构......................................................................................................9 3.2系统数据库设计 ........................................................................................................ 11 3.2.1数据库设计理念................................................................................................ 11 3.2.2数据库概念设计................................................................................................12 3.2.3数据库逻辑设计................................................................................................13 3.2.4数据库结构设计................................................................................................15 第四章 系统详细设计 ........................................................................................................16 4.1登录验证模块.............................................................................................................16 4.2后台管理员模块 ........................................................................................................18 4.3前台售货员模块 ........................................................................................................30 第五章 系统测试 ................................................................................................................37 第六章 总结与展望 ............................................................................................................38 参考文献...............................................................................................................................39 致谢.......................................................................................................................................40

摘要

超市管理系统现在已是超市管理必不可少的一部分,它提供的信息对于超市的决策者和管理者来说都是至关重要的。

本文简要分析了系统开发的背景、超市管理系统的发展现状,描述了系统需要解决的主要问题和系统的整体情况,该系统由基础信息管理、采购信息管理、库存信息管理、柜存信息管理、销售管理和数据库维护等六大模块组成。同时,对系统的需求分析和架构设计进行了详细描述,并对部分有代表性的模块的详细设计和实现进行了描述。系统设计的目标是简化商品销售及商品管理的工作量,提高超市工作效率、降低成本,方便超市人员的管理,满足与用户及时沟通需要。

关键词 超市管理;采购;库存;柜存;销售

I

Abstract

The supermarket management system has now is an indispensable part of supermarket management, it provides information for policymakers and managers to supermarket are all very important.

This paper briefly analyzes the development background, supermarket system management system development present situation, describes the system needs to solve the main problems and the whole situation of system, the system of basic information management, procurement information management, inventory information management, ark save information management, sales management and database maintenance and so on six big module. At the same time, to the demand analysis of the system and structure design is described in detail, and some typical module design and implementation of the detailed were described. System design goal is to simplify the commodity sale and commodities management work and enhance the supermarket work efficiency, reduce cost, convenient supermarket of management personnel, meet with the user to communication needs.

Keywords Supermarket management ; Purchasing ; Inventory ; Put the ark ; sales

II

第一章 绪论

1.1系统开发背景

21世纪,超市的竞争也进入到了一个全新的领域,竞争已不再是原有意义上的竞争,而是技术的竞争、管理的竞争、人才的竞争。技术的提升和管理的升级是超市业的竞争核心。如何在激烈的竞争中扩大销售额、降低经营成本、扩大经营规模,成为超市营业者努力追求的目标。比如具有相同的基本业务流程:超市是核心,通过从制造商或批发商处取得商品,通过商场流转,再销售给顾客,从中赚取商品进销差价的利润,这也是商业生存的本质。

目前超市管理系统已经在社会市场中得到了广泛的应用,超市管理需要现代化,只有合理地运用信息化的管理,才能在市场竞争中立于不败。同时超市作为当今国内销售商品最广、数量最多、人流最多的一种市场,有种类繁多的商品信息和其他信息需要处理,而对于这些信息的管理有很多缺陷。根据调查得知,以前对信息管理的主要方式是基于文本、表格等纸介质,对于各种商品的购、销、存情况的统计和核实等往往人工检查进行。数据信息处理量大,容易出错,而且数据繁多,容易丢失、不易整理。总的来说,缺乏系统、规范的信息管理手段。另外,尽管有的超市已经使用信息化管理,但并没有发挥它的真正效力,资源闲置比较突出。

随着超市商品数量急剧增加,有关商品的各种信息量也成倍增长。销售人员不可能准确的记住每一种商品的价格,管理人员也很难做到每天将每种商品库存进行清点,超市时时刻刻需要对商品各种信息进行统计分析,还要做每天的报表、月报表、年报表,从而分析当月当年财务状况,与此同时,尽管商品需求量加大,种类也随之增多了,但是针对服务对象的特点,有些商品成为畅销品,有些商品成为滞销品,而且随着时间的,各种商品的销售状况也不同,比如春季学习用品类商品会增多,夏季零卖水果冷饮类会增多等等,超市管理员需要根据不同销售状况来决定商品采购计划,并且要对库存较多的商品采取一定措施,以此来做到仓库优化。以往的手动人工的模式在超市业务管理和人员管理上造成了很多不便,随着信息化水平的提高,传统的管理方法必然被以计算机为基础的信息管理所取代。

随着管理信息化进程的进步,市场上出现了很多超市管理系统,但大型的超

第1页 共40页

市管理系统,功能过于强大而造成操作繁琐降低了小超市的工作效率,而且很多超市的实际情况也不允许它像大型超市那样投入大量资金进行信息化建设。

基于这些问题,有必要建立一个超市管理信息系统,使超市商品购、销、存的处理工作规范化、系统化、程序化,避免超市商品管理的随意性,提高信息处理的速度和准确性,能够及时、准确、 有效的对各种商品的购、销、存进行统计和整理。因此,开发一款小型超市管理系统就具有了现实意义。

1.2系统解决的主要问题

通过该系统的设计,主要解决以下问题:

第一是能够处理超市的日常业务,包括进、销、存管理,商品采购、供销商厂商的管理、销售情况统计报表、员工信息管理的情况统计等。

第二是能够模拟实现前台营业员的pos机扫描收银与手工收银同时进行,在输入商品号时随即显示商品全部信息,时时更新数据库信息。

第三是能满足超市管理对信息的需求,及时准确地收集处理与经营有关的各种信息,并能将其分类整理。

第四是提高集中管理水平,充分利用计算机系统处理大量数据的能力,将各个供销商供给的同类商品集中管理起来,使管理工作规范化,以提高其应变能力。

第五是为了提高管理工作效率,本系统要具有信息传递快捷,海量记忆能力和高速处理能力,可以大大提高业务管理中的工作效率。使管理人员能从大量数字工作中解脱出来,通过系统自动生成的日报表、月报表等,对每类商品在特定的时间段的销售进行对比,并结合赢利等经济效益进行分析,集中做好分析和决策工作。

第六是解决超市库存管理现阶段的问题,使库存成本降低,提高利润。有效地控制库存成本是超市经营业绩提高的关键。

第七是满足超市人事管理的个性化需要。日后,超市人事资源发生改变,能够方便添加和修改模块,不需要重新购买其他人事管理类系统就可以满足新需求。

第八是信息化进程接轨,方便各级管理者查看到超市的整体情况,超市员工可以通过该系统查询和提交相关信息,提高超市管理的综合性,服务性。

第九是从当前和长远利益考虑,保证系统可以随着业务的不断扩展而扩充,

第2页 共40页

保护已有的投资。

第十是整体系统按结构化设计,每个模块可以独立运行使用,某些模块可以选择已商品化的部分软件产品,在硬件配置时,配置要合理,要尽量降低系统成本。

1.3开发环境介绍

本系统数据库使用Access,程序采用Visual Studio.NET开发环境。它继承了以往Visual Studio的风格,成为.NET平台下最为优秀的高度集成的可视化开发环境。

1.3.1 VB.NET介绍

VB.net是Visual Basic.net的简称。VB.net是微软最新平台技术,是.net framework SDK的一种语言。VB.net和VC#.net在功能上没有区别。编译以后生成的可执行文件被称为Assembly,即程序集。

其特点是:⑴真正成为面向对象以及支持继承性的语言;⑵窗体设计器支持可视化继承,并且包含了许多新的特性,比如自动改变窗体大小、资源本地化支持、数据类工具内在支持XML数据;⑶直接建立在.NET的框架结构上,因此开发人员可以充分利用所有.NET平台特性,也可以与其他的.NET语言交互;⑷为Windows应用程序提供了XCOPY部署,开发者不再需要为DLL的版本问题担忧。

其优势是:⑴代码托管。被托管的代码享受.net framework提供的安全保障和垃圾回收机制,但是这也同时表明,你的程序被框在.net framework里面了;⑵强大的面向对象特性。现在VB7已经是一个完全的面向对象程序;⑶功能强大,程序界面更标准;⑷程序代码结构化更强,开发环境舒适体贴。

1.3.2 Access 2003介绍

Access 2003是一个前后台结合的“软件”。也就是说它既拥有用户界面;也拥有逻辑、流程处理,即VBA语言;又可以存储数据,即在“表”中存储数据。而所有这些都存储在一个MDB格式的文件中(当然,也可以是MDE等格式)。因此Access具有快速开发的优点。Access 2003是微软公司推出的Office 2003组件之一,与低版本的Access数据管理系统相比,Access 2003着重加强了在因特网上进行数据交流的功能,同时它还继承了以往界面清晰,操作简单等诸多

第3页 共40页

优点。

Access 2003数据库包含7种对象:表、查询、窗体、报表、Web页、宏和模块。与其它的数据库系统不同的是:它的每一个对象都不能独立保存,而只能作为Access中的一部分。它本身即可自动完成对各种文件的管理工作。

Access2003就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。Access 2003 的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于 Excel 的电子表格,可以使数据库一目了然。

Microsoft Access 2003的功能: 1.数据库窗口

Access2003的“数据库”窗口提供了下列用于查看和处理数据库对象的功能。

使用对象栏:在“对象”栏中可查看数据库对象,新的“对象”栏的纵向排列方式更易于使用。

2.数据使用和数据库设计

自动更正字段重命名产生的错误:“名称自动更正”功能可自动更正在为窗体、报表、表、查询、字段、文本框或其他控件重命名时产生的错误。

3.窗体和报表

组合文本框和其他控件:使用“格式”菜单中的“组合”命令,可以将窗体或报表上的相关文本框和其他控件组合。

为文本框和其他控件定义条件格式规则:使用“格式”菜单中的“条件格式”命令,可以定义字体颜色、字体大小、控件背景颜色和其他可视信息,这些内容可以为在窗体中输入数据的用户提供反馈。

4.工具栏、菜单栏和快捷菜单

使用自定义菜单和工具栏:展开菜单显示所有的命令,选择要添加到自定义菜单的命令。Access2003允许调整菜单和工具栏,以便只将常用的命令和工具栏按钮显示出来。

第4页 共40页

第二章 系统分析

2.1可行性分析

2.1.1技术可行性分析

随着计算机使用的频繁,软件编程技术的不断增加,功能的不断加强,信息管理技术的不断成熟,信息安全的不断完善以及开发工具的日益进步,采用计算机系统来管理超市信息,其要求数据的采集、更新能够完整、准确和及时。所以开发通用的超市管理系统已经完全可以做到。

2.1.2市场可行性分析

超市形态具有种种优点,但目前仍存在零售业共有的落后的一面,比如: ⑴不能有效的管理每种商品; ⑵收款结算速度慢; ⑶容易出现营业差错; ⑷不宜进行商品调价; ⑸缺乏时时分析功能等。

随着经济高速发展,超市的经营管理也愈加复杂,早期的售货员站柜台的形式早已不能满足现有销售业的发展,新的管理技术随之产生。

2.2系统需求分析

根据对用户需求的调查,为满足用户的基本需要本系统共需设计基础信息管理、采购信息管理、库存信息管理、柜存信息管理、销售管理和数据库维护等六大模块,各模块联系密切,在新商品进入超市前是先把商品收录在商品目录表中,然后管理员从商品目录表中选择本超市需要的商品,以便下订单订货,在商品根据订单要求到货后,管理员进行入库和上柜,在入库时只有管理员下过订单的货物方可入库,而在上柜中分为新货上柜和原有货物上柜两种,待商品上柜完成后进行销售,在顾客对购买的商品不满意时也可进行退货,除此定期管理员可以对后台数据库进行备份和还原。

2.2.1需求获取模式

l.用户需求从提出到实现,是一个从无到有、从抽象到具体的过程。在这

第5页 共40页

个过程中,系统完成何种业务功能,系统包含哪些用户,分别为其提供哪些功能,在很大程度取决于用户能否系统的、完整的提出需求,这是需求获取阶段的一个重要问题。

2.需求获取的过程需要深入用户业务流程,体会用户业务实现的过程,整个过程需要用户的积极配合和参与,用户能否积极进行配合和参与,也是需求获取阶段的重要问题。

3.克服需求的二义性。需求二义性问题在以往的需求获取中经常发生,二义性可能会导致如下结果:用户认为是A,需求获取人员认为是B,设计人员设计完成后变成了C。所以需求书写的二义性问题也是在需求获取阶段需要重点关注的问题之一。

4.需求是驱动整个软件开发的基础,稳定的需求对于系统开发非常重要,如果需求经常变化,将对软件开发的进度和质量控制产生破坏性的影响,如何应对不断变化的需求、控制用户需求变更是需求阶段必须面对的问题。

2.2.2性能要求

系统的架构设计应具满足结构简洁层次清晰,重用性好,易扩展、保证数据安全的目标。且应具有高可伸缩性,满足企业未来发展。

1.可用性好

作为一个商业系统,系统应能提供全天候服务的能力。虽然本系统不需要做到每天24小时正常运行的能力,但因为随时有顾客买东西,数据随时会更新,所以要求系统具有较高的即时响应能力。除了一年内几次系统升级需要短暂停止服务外,系统应具有提供持续服务能力,即使断网等因素出现,也尽量不影响超市销售。

2.安全性高

从设计之初,安全性就是设计人员考虑的关键问题。在系统的相应界面做了授权和验证机制,安全通信能力等,以保证数据安全,防止非法用户使用系统。

3.系统结构简洁,层次清晰

设计一个结构简洁的框架,明确各个组件的作用和各层次的关系,是系统架构设计的重要目标。清晰的层次可以提高系统的灵活性,且易于学习,易于掌握,可大大方便系统的后期升级和维护。

第6页 共40页

4.易操作性

本系统是超市管理系统,直接供企业用户使用,而非计算机专业人员。本系统应该适用于不同水平的使用者,包括企业各级人员,同时系统不应太复杂和烦琐,因此要求系统的操作尽可能简单易行。

5.重用性好

可重用的软件组件可以避免不必要的重复开发工作,减少代码维护量,减少系统冗余。所有组件在设计时都应尽量减少对其应用环境和条件的假设,而应设计的尽量通用。可充用的组件更容易发现其中存在的问题,从而提高系统架构的质量。

6.易扩展

对于像超市管理这样的系统,其业务模式是在不断发展变化中的,因此系统的设计要足够灵活,充分利用面向对象技术的优势,使系统容易满足各种变化,为未来系统升级可能带来的影响做准备。比如:以后用户需要将安有本系统的计算机与打印机连接,在顾客到超市时给顾客打出本周或本月本店商品的价格情况,以便顾客更好的进行选择,如此只需要设计人员编出一个调用数据库商品信息并打印的界面,随后加入到原系统即可,其它模块不会受到影响。

2.2.3数据要求

经过调查,超市管理系统所涉及的实体及主要属性有:

1.商品(商品号、商品名、类别号、类别名、单位、价格、生产日期、保质期)

2.员工(编号、姓名、登录名、登录密码、电话、密码问题、密码答案、用户类别)

3.供应商(供应商编号、供应商名、地址、联系人、电话、银行帐号) 4.库存(编号、库存数量) 5.柜存(编号、柜存数量)

根据实体及其属性,经过分析可以得出如下实体联系:

1、商店中的所有用户(员工)可以销售多种商品,每种商品可由不同用户(员工)销售;

2、每个供货商可以供应多种不同商品,每种商品可由多个供应商供应;

第7页 共40页

3、一个库存可以存放多批订单商品,每批订单商品都在一个库存; 4、一个柜存可以存放多批订单商品,每批订单商品都在一个柜存。 本次设计的超市管理系统的总体目标是以科学的管理方法为基础,与商品流通信息化接轨,结合商品销售的自身特点,建立一套具有商业企业经营特色的、覆盖超市企业主要业务功能、人机协调的管理系统,实现对商品流转管理、库存管理、柜存管理、人员管理等实时查询、修改、删除、分析的综合性管理信息系统,及时反映企业的经济活动状态和所需的各种商情信息,为超市管理者提供良好的决策支持环境,成为超市管理人员的有力助手,提高超市的经济效益。

第三章 系统概要设计

此次开发的超市管理系统主要包括数据库的建立和维护以及应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、安全性好的库。而对于后者则要求应用程序功能完备,易使用及维护等特点。经过系统分析情况,不断修正和改进,直到形成用户满意的可行系统。系统架构必须从各个方面满足实际需求,这是架构的设计目标。同时在设计与开发的过程中严格遵守架构的特殊约束,从而保证可以实现架构设计的目标。

针对以上的现实要求和设想,基于Access数据库开发工具进行该系统的设计。在系统设计时,考虑到系统的安全性、可靠性、和实用性,设计了用户登录窗口,以防非法人员进入系统,保证了系统的安全性和可靠性。另外系统的基础信息管理、采购信息管理、库存信息管理、柜存信息管理、销售信息管理等功能,使系统更具有实用性,更易于使用和管理。

3.1系统整体设计

3.1.1系统结构设计

本系统是能完成具有商品销售跟管理两方面功能的超市管理系统。按照功能模块划分该系统包括三大模块:

1.登录验证模块 完成登录、密码找回。 2.后台管理员模块

完成基础信息管理(商品目录信息、员工信息、供应商信息)、采购信息管

第8页 共40页

理(订货单查询、订货单添加、订货单修改、订货单删除)、库存管理(库存查询、库存添加、库存修改、库存删除)、柜存管理(柜存查询、柜存添加、柜存修改、柜存删除)、销售管理(销售查询、退货查询、每日结算)、数据库维护(数据库备份、数据库还原、密码修改)帮助等功能。

3.前台售货员模块

完成销售管理(售货、退货、每日结算)、密码修改、帮助等功能。

3.1.2系统模块结构

该系统的整体结构图,如图3-1所示:

图3-1 整体结构图

基础信息管理结构图,如图3-2所示:

图3-2 基础信息管理结构图

本模块所包含的三个子模块分别具有查询、添加、修改、删除功能。 采购信息管理结构图,如图3-3所示:

第9页 共40页

图3-3 采购信息管理结构图

库存管理结构图,如图3-4所示:

图3-4 库存管理结构图

柜存管理结构图,如图3-5所示:

图3-5 柜存管理结构图

管理员模块销售管理结构图,如图3-6所示:

图3-6 销售管理(管理员)结构图

售货员模块销售管理结构图,如图3-7所示:

第10页 共40页

图3-7 销售管理(售货员)结构图

数据库维护结构图,如图3-8所示:

图3-8 数据库维护结构图

3.2系统数据库设计

3.2.1数据库设计理念

在系统的数据库设计中,首先要对系统分析得到的数据字典中的数据存储进行分析,分析各数据存储之间的关系。采用E-R图的方法进行数据结构分析。

数据库是指系统中数据的仓库和为解决特定问题以一定的组织方式存储在一起的相关的数据集合。数据库管理通常采用的数据模型有三种,即层次模型,网状模型和关系模型。因为关系数据库的性能最稳定,便于定义、维护数据和操作数据。关系数据库有专门的查询操作非常简单,引用了完整性和其他约束条件,可以很好的保护数据库。考虑到关系数据库的众多优点,所以,本系统亦采用关系数据库为数据模型。数据库设计是管理信息系统设计的重要组成部分。它的核心问题是如何从系统的观点出发建立一个数据模式,使其满足:

1.符合用户需求,即能正确的反映用户的工作环境。该环境包括用户需处理的所有数据并支持用户需进行的仍有加工。

2.数据组织合理,易操作、易维护、易理解。

为管理系统设计一个数据库系统通常包括:一是用户需求分析,收集和分析

第11页 共40页

用户需求是数据库系统设计中的基础,其目的是根据一个组织中高层领导和终端用户的需求,决定整个管理信息系统的目标、范围及应用性质。二是基本数据库的结构设计,基本数据库的结构设计要考虑数据库组织的合理性,主要包括:数据的基础程度、数据的稳定程度、数据的重要程度、数据的冗余程度。三是中间数据库结构的设计,所谓中间数据库是指为满足某个具体功能模块要求而从基础数据库中生成的临时工作库。四是与应用程序的接口,为了提高系统的稳定性和可维护性,通常要求数据的组织结构与应用程序之间保持相对独立性,要求在数据库设计时应尽可能为程序员提供透明的数据库接口,以利于他们调整和维护程序。

3.2.2数据库概念设计

概念设计是指在数据分析的基础上自底向上的建立整个系统的数据库概念结构,从用户的角度进行视图设计,然后将视图集成,最后对集成的结构分析优化得到最终结果。E-R模型是概念设计的有利工具。

下面是超市管理信息系统E-R图,如图3-9所示:

图3-9 系统E-R图

第12页 共40页

3.2.3数据库逻辑设计

本系统选用的是关系型数据库管理系统,因而在逻辑设计中的工作是将E-R模型所表示的概念结构转换为关系模型,并将关系模式进行规范化,最终可得到系统所需的关系表。

由系统E-R图转换成系统关系模型,因为牵扯表过多,以下只列出一部分: 1.用户表,如表3-1所示:

表3-1 用户表

字段名 编号 姓名 登录名 登录密码 电话 密码问题 密码答案 用户类别 数据类型 文本 文本 文本 文本 文本 文本 文本 文本 长度 6 10 20 20 15 20 20 10 备注 主键 2.供应商表,如表3-2所示:

表3-2 供应商表

字段名 供应商编号 供应商名 地址 联系人 电话 帐号 数据类型 文本 文本 文本 文本 文本 文本 长度 6 20 30 10 15 20 备注 主键 3.商品表,如表3-3所示:

表3-3 商品表

字段名 商品号 商品名 类别号 参考价格

数据类型 文本 文本 文本 数字 长度 6 20 6 双精度型 备注 主键 第13页 共40页

4.类别表,如表3-4所示:

表3-4 类别表

字段名 类别号 类别名 数据类型 文本 文本 长度 6 20 备注 主键 5.订货单表,如表3-5所示:

表3-5 订货单表

字段名 订单号 商品号 数量 单位 进价 生产日期 保质期 接受管理员 编号 供应商号 是否到货 是否付款 是否入库 数据类型 文本 文本 数字 文本 数字 日期 文本 文本 文本 文本 文本 文本 长度 6 6 长整型 6 双精度型 短日期 10 6 6 4 4 4 备注 主键 6.库存表,如表3-6所示:

表3-6库存表

字段名 编号 订单号 库存数量 数据类型 自动编号 文本 数字 长度 长整型 6 长整型 备注 主键 7.柜存表,如表3-7所示:

表3-7 柜存表

字段名 编号 订单号 柜存数量

数据类型 自动编号 文本 数字 长度 长整型 6 长整型 备注 主键 第14页 共40页

8.销售表,如表3-8所示:

表3-8 销售表

字段名 编号 订单号 商品号 售货员编号 数量 售价 销售日期 数据类型 自动编号 文本 文本 文本 数字 数字 日期 长度 长整型 6 6 6 长整型 双精度型 短日期 备注 主键 9.退货表,如表3-9所示:

表3-9 退货表

字段名 编号 商品号 数量 售价 售货员编号 退货员编号 销售日期 退货日期 数据类型 自动编号 文本 数字 数字 文本 文本 日期 日期 长度 长整型 6 长整型 双精度型 6 6 短日期 短日期 备注 主键 10.日清结算表,如表3-10所示:

表3-10 日清结算表

字段名 编号 售货员编号 销售总额 销售日期 是否交款 数据类型 自动编号 文本 数字 日期 文本 长度 长整型 6 双精度型 短日期 4 备注 主键 3.2.4数据库结构设计

本系统数据库具有商品表、订货单表、供应商表、类别表、用户表、库存表、柜存表、销售表、退货表、日清结算表,具体关系如图3-10所示:

第15页 共40页

图3-10 数据结构图

第四章 系统详细设计

本系统的所有模块都保持人性化的界面设计,采用统一的布局方式,简易化的操作界面,简单的操作流程,完善的功能设置,使用户能轻松熟练的使用,同时为了保证系统的整体数据安全性,设置了判断程序,在打开一个界面时必须单击该界面的退出按钮,方能操作其余界面,否则不允许用户对其他界面进行操作。

4.1登录验证模块

1.登陆界面,本界面是系统第一步的安全性控制,在验证登录者的登录名、密码、用户类别完全正确的情况下,方能进入相应的操作界面。如图4-1所示:

第16页 共40页

图4-1 登录界面

具体的数据流图,如图4-2所示:

图4-2 登录流程图

2.密码找回界面,此界面进入后需要先验证该登录用户是否存在,若存在显示相应的密码问题,在输入这确的答案后显示本用户密码,如不存在则提示输入错误。如图4-3所示:

第17页 共40页

图4-3 密码找回界面

4.2后台管理员模块

1.商品目录信息界面,本届面是查询、添加、修改、删除一体化的界面,其中商品号为主键不允许重复与修改,同时设有快速查询功能。如图4-4所示:

图4-4 商品目录信息界面

2.员工信息界面,本届面是查询、添加、修改、删除一体化的界面,其中编号为主键不允许重复与修改。如图4-5所示:

第18页 共40页

图4-5 员工信息界面

3.供应商信息界面,本届面是查询、添加、修改、删除一体化的界面,其中供应商号为主键不允许重复与修改。如图4-6所示:

图4-6 供应商信息界面

4.订货单查询界面如图4-7所示:

第19页 共40页

图4-7 订货单查询界面

5.订货单添加界面如图4-8所示:

图4-8 订货单添加界面

6.订货单修改界面,本界面在输入订单号后,会自动在数据库中查找相应的数据记录,从而显示相应的内容,并锁定订单号。如图4-9所示:

第20页 共40页

图4-9 订货单修改界面

7.库存查询界面,本界面设有快速查询功能,并会在所显示的商品库存数量不足20时,自动弹出提示框,询问用户是否进入订货单添加界面补订该商品。如图4-10所示:

图4-10 库存查询界面

具体代码如下:

Imports System.Data Imports System.Data.OleDb Public Class 库存查询

第21页 共40页

Dim conn As New OleDbConnection Dim cmd As New OleDbCommand Dim dv As New DataView

Dim daap As New OleDbDataAdapter Dim ds As New DataSet Dim i As Integer Sub bind()

If txt库存数量.Text < 20 Then

If MsgBox(\该货物库存数量不足20件,是否补充商品?\MsgBoxResult.Ok Then

o = txt商品号.Text Me.Close()

添加订货单.MdiParent = 管理员界面 添加订货单.Show()

管理员界面.ToolStripLabel1.Text = \添加订货单\ 添加订货单.txt商品号.Text = o 添加订货单.txt订单号.Focus() End If End If End Sub

Private Sub 库存查询_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

conn.ConnectionString = \超市管理系统.mdb\

cmd.Connection = conn

cmd.CommandText = \订货单表.订单号, 订货单表.商品号, 商品表.商品名, 商品表.类别号, 类别表.类别名, 库存表.库存数量, 订货单表.单位, 订货单表.进价, 供应商表.供应商名 FROM (类别表 INNER JOIN 商品表 ON 类别表.类别号 = 商品表.类别号) INNER JOIN ((供应商表 INNER JOIN 订货单表 ON 供应商表.供应商号 = 订货单表.供应商号) INNER JOIN 库存表 ON 订货单表.订单号 = 库存表.订单号) ON 商品表.商品号 = 订货单表.商品号 ORDER BY 订货单表.订单号;\ conn.Open()

daap.SelectCommand = cmd daap.Fill(ds, \库存表\

dg.DataSource = ds.Tables(\库存表\ dv = ds.Tables(\库存表\

Dim dtkey() As DataColumn = {ds.Tables(0).Columns(\订单号\ ds.Tables(0).PrimaryKey = dtkey dg.DataSource = ds.Tables(0) If dv.Count = 0 Then

MsgBox(\暂无可操作数据!\ Return End If i = 0

txt订单号.Text = ds.Tables(0).Rows(i).Item(\订单号\

第22页 共40页

txt商品号.Text = ds.Tables(0).Rows(i).Item(\商品号\ txt商品名.Text = ds.Tables(0).Rows(i).Item(\商品名\ txt类别号.Text = ds.Tables(0).Rows(i).Item(\类别号\ txt类别名.Text = ds.Tables(0).Rows(i).Item(\类别名\ txt库存数量.Text = ds.Tables(0).Rows(i).Item(\库存数量\ txt单位.Text = ds.Tables(0).Rows(i).Item(\单位\ txt进价.Text = ds.Tables(0).Rows(i).Item(\进价\

txt供应商名.Text = ds.Tables(0).Rows(i).Item(\供应商名\ conn.Close() Call bind() End Sub

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click i = 0

txt订单号.Text = ds.Tables(0).Rows(i).Item(\订单号\ txt商品号.Text = ds.Tables(0).Rows(i).Item(\商品号\ txt商品名.Text = ds.Tables(0).Rows(i).Item(\商品名\ txt类别号.Text = ds.Tables(0).Rows(i).Item(\类别号\ txt类别名.Text = ds.Tables(0).Rows(i).Item(\类别名\ txt库存数量.Text = ds.Tables(0).Rows(i).Item(\库存数量\ txt单位.Text = ds.Tables(0).Rows(i).Item(\单位\ txt进价.Text = ds.Tables(0).Rows(i).Item(\进价\

txt供应商名.Text = ds.Tables(0).Rows(i).Item(\供应商名\ Call bind() End Sub

Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click

If i = 0 Then

MsgBox(\已经到达第一条记录\ Else

i = i - 1

txt订单号.Text = ds.Tables(0).Rows(i).Item(\订单号\ txt商品号.Text = ds.Tables(0).Rows(i).Item(\商品号\ txt商品名.Text = ds.Tables(0).Rows(i).Item(\商品名\ txt类别号.Text = ds.Tables(0).Rows(i).Item(\类别号\ txt类别名.Text = ds.Tables(0).Rows(i).Item(\类别名\ txt库存数量.Text = ds.Tables(0).Rows(i).Item(\库存数量\ txt单位.Text = ds.Tables(0).Rows(i).Item(\单位\ txt进价.Text = ds.Tables(0).Rows(i).Item(\进价\

txt供应商名.Text = ds.Tables(0).Rows(i).Item(\供应商名\ Call bind() End If End Sub

Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

第23页 共40页

Button7.Click

If i = ds.Tables(0).Rows.Count - 1 Then MsgBox(\已经到达最后一条记录\ Else

i = i + 1

txt订单号.Text = ds.Tables(0).Rows(i).Item(\订单号\ txt商品号.Text = ds.Tables(0).Rows(i).Item(\商品号\ txt商品名.Text = ds.Tables(0).Rows(i).Item(\商品名\ txt类别号.Text = ds.Tables(0).Rows(i).Item(\类别号\ txt类别名.Text = ds.Tables(0).Rows(i).Item(\类别名\ txt库存数量.Text = ds.Tables(0).Rows(i).Item(\库存数量\ txt单位.Text = ds.Tables(0).Rows(i).Item(\单位\ txt进价.Text = ds.Tables(0).Rows(i).Item(\进价\

txt供应商名.Text = ds.Tables(0).Rows(i).Item(\供应商名\ Call bind() End If End Sub

Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click

i = ds.Tables(0).Rows.Count - 1

txt订单号.Text = ds.Tables(0).Rows(i).Item(\订单号\ txt商品号.Text = ds.Tables(0).Rows(i).Item(\商品号\ txt商品名.Text = ds.Tables(0).Rows(i).Item(\商品名\ txt类别号.Text = ds.Tables(0).Rows(i).Item(\类别号\ txt类别名.Text = ds.Tables(0).Rows(i).Item(\类别名\ txt库存数量.Text = ds.Tables(0).Rows(i).Item(\库存数量\ txt单位.Text = ds.Tables(0).Rows(i).Item(\单位\ txt进价.Text = ds.Tables(0).Rows(i).Item(\进价\

txt供应商名.Text = ds.Tables(0).Rows(i).Item(\供应商名\ Call bind() End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Me.Close() 空白界面.Show()

管理员界面.ToolStripLabel1.Text = \请选择操作界面!\ a = 1 End Sub

Private Sub dg_RowEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dg.RowEnter Try

Dim row As Integer row = e.RowIndex If Not row = -1 Then

第24页 共40页

txt订单号.Text = dg.Rows(e.RowIndex).Cells(0).Value txt商品号.Text = dg.Rows(e.RowIndex).Cells(1).Value txt商品名.Text = dg.Rows(e.RowIndex).Cells(2).Value txt类别号.Text = dg.Rows(e.RowIndex).Cells(3).Value txt类别名.Text = dg.Rows(e.RowIndex).Cells(4).Value txt库存数量.Text = dg.Rows(e.RowIndex).Cells(5).Value txt单位.Text = dg.Rows(e.RowIndex).Cells(6).Value txt进价.Text = dg.Rows(e.RowIndex).Cells(7).Value txt供应商名.Text = dg.Rows(e.RowIndex).Cells(8).Value Call bind()

添加订货单.MdiParent = 管理员界面 添加订货单.Show() End If

Catch ex As Exception End Try End Sub

Private Sub txt订单号新_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txt订单号新.TextChanged

dv.RowFilter = \订单号 like '%\订单号新.Text & \ If dv.Count = 0 Then

MsgBox(\此商品不存在,请重新输入!\库存\ txt订单号新.Text = \ End If End Sub

Private Sub txt商品名新_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txt商品名新.TextChanged

dv.RowFilter = \商品名 like '%\商品名新.Text & \ If dv.Count = 0 Then

MsgBox(\此商品不存在,请重新输入!\库存\ txt商品名新.Text = \ End If End Sub

End Class

8.库存添加界面,本界面进入前,系统会自动进行选择查询,只显示已到货但未入库的订单商品。如图4-11所示:

第25页 共40页

图4-11 库存添加界面

9.柜存查询界面,本界面设有快速查询功能,并会在所显示的商品柜存数量不足5时,自动弹出提示框,询问用户是否进入柜存添加界面补充该商品。如图4-12所示:

图4-12 柜存查询界面

10.柜存添加界面,本界面的商品上柜分为两类:一是已有商品上柜,在输入该批商品的订单号时会自动搜索该数据并显示相应内容,用户只需输入上柜数量即可;二是新增商品上柜,当输入订单号时在柜存表中找不到该商品的数据记

第26页 共40页

录,系统会提示是否进行新货上柜,选择是后在库存中搜索该数据并显示相应内容,用户需要输入售价和上柜数量。如图4-13所示:

图4-13 柜存添加界面

11.销售查询界面,本界面设有快速查询功能。如图4-14所示:

图4-14 销售查询界面

12.退货查询界面,如图4-15所示:

第27页 共40页

图4-15 退货查询界面

13.每日结算界面(管理员),本界面管理员在选择售货员后,会把本日该售货员所销售的所有商品显示出来,并给出销售总额,与售货员所上交的金额一致后点交款结束本日的销售工作。如图4-16所示:

图4-16 每日结算(管理员)界面

14.数据库备份界面,如图4-17所示:

第28页 共40页

图4-17 数据备份界面

15.数据库还原界面,如图4-18所示:

图4-18 数据还原界面

16.密码修改界面,本界面进入后会直接显示该用户的密码问题,待用户的问题答案回答正确后方能进行密码修改,在修改密码时两次输入的新密码必须完全一样。如图4-19所示:

第29页 共40页

图4-19 密码修改界面

4.3前台售货员模块

1.销售界面,本界面是在顾客将所选商品拿到前台结账时,售货员输入商品的商品号,系统自动搜索该商品的相应信息并显示,售货员需要自行输入购买数量点击销售该记录会暂存,以此将顾客所选的全部商品录入,在录入过程中合计会随之累加,当全部录入完毕,在实收出输入顾客所付的金额,单击付款系统自动算出找零数值并显示,待对该顾客的全部服务完成后点击清空,会清空所有暂存信息,以便为下一位顾客服务。如图4-20所示:

图4-20销售界面

第30页 共40页

具体代码如下:

Imports System.Data Imports System.Data.OleDb Public Class 售货

Dim conn As New OleDbConnection(\超市管理系统.mdb\

Dim cmd柜存 As New OleDbCommand(\订货单表.订单号, 订货单表.商品号, 商品表.商品名, 商品表.类别号, 类别表.类别名, 柜存表.柜存数量, 订货单表.单位, 销售表.售价, 供应商表.供应商名 FROM ((类别表 INNER JOIN 商品表 ON 类别表.类别号 = 商品表.类别号) INNER JOIN ((供应商表 INNER JOIN 订货单表 ON 供应商表.供应商号 = 订货单表.供应商号) INNER JOIN 柜存表 ON 订货单表.订单号 = 柜存表.订单号) ON 商品表.商品号 = 订货单表.商品号) INNER JOIN 销售表 ON (订货单表.订单号 = 销售表.订单号) AND (商品表.商品号 = 销售表.商品号) ORDER BY 订货单表.订单号;\

Dim cmd销售 As New OleDbCommand(\销售表.商品号, 商品表.商品名, 销售表.数量, 销售表.售价, 用户表.姓名,销售表.销售日期 FROM 商品表 INNER JOIN (用户表 INNER JOIN 销售表 ON 用户表.编号 = 销售表.售货员号) ON 商品表.商品号 = 销售表.商品号;\

Dim cmd销售人员 As New OleDbCommand(\姓名 from 用户表 where 用户类别='售货员'\conn)

Dim daap柜存 As New OleDbDataAdapter(cmd柜存) Dim daap销售 As New OleDbDataAdapter(cmd销售)

Dim daap销售人员 As New OleDbDataAdapter(cmd销售人员) Dim dv柜存 As New DataView Dim dv销售 As New DataView Dim ds As New DataSet

Private Sub 售货_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

daap柜存.Fill(ds, \柜存表\ daap销售.Fill(ds, \销售表\ daap销售人员.Fill(ds, \用户表\

Cmb销售人员.DataSource = ds.Tables(\用户表\ Cmb销售人员.DisplayMember = \姓名\ ds.Tables(\销售表\

dv柜存 = ds.Tables(\柜存表\ dv销售 = ds.Tables(\销售表\ dg.DataSource = dv柜存 dg1.DataSource = dv销售

Dim keycolum() As DataColumn = {ds.Tables(\柜存表\编号\ ds.Tables(\柜存表\ Cmb销售人员.Text = yhm Label11.Text = yhbh Txt实收.Text = 0 End Sub

Private Sub Txt货号_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Txt商品号.TextChanged

dv柜存.RowFilter = \商品号 like '%\商品号.Text & \

第31页 共40页

If Txt商品号.Text.Length = 4 Then If dv柜存.Count = 0 Then

MsgBox(\此货号不存在,请重新输入!\销售\ Txt商品号.Text = \ Label5.Text = \ Lab单价.Text = \ Txt数量.Text = \ Txt商品号.Focus()

Else : Label5.Text = dv柜存.Item(0).Item(\商品名\ Lab单价.Text = dv柜存.Item(0).Item(\售价\ Label7.Text = dv柜存.Item(0).Item(\订单号\ End If Else

Label5.Text = \ Lab单价.Text = \ Txt实收.Text = \ Lab找零.Text = \ Txt数量.Text = \ End If

If Txt商品号.Text.Length > 4 Then

MsgBox(\此货号不存在,请重新输入!\销售\ Txt商品号.Text = \ Label5.Text = \ Lab单价.Text = \ Txt数量.Text = \ Txt商品号.Focus() End If End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim dr As DataRow

If Txt数量.Text.Length = \

MsgBox(\购买数量不能为空,请重新输入。\MsgBoxStyle.OkOnly, \警告\

ElseIf Val(Txt数量.Text) = 0 Then

MsgBox(\购买数量不能为0,请重新输入。\MsgBoxStyle.OkOnly, \警告\

Else : Dim i As Integer = MsgBox(\确认,去付款\确认\ If i = 1 Then

dr = ds.Tables(\销售表\ dr.Item(\商品号\商品号.Text dr.Item(\商品名\ dr.Item(\售价\单价.Text dr.Item(\数量\数量.Text)

第32页 共40页

dr.Item(\姓名\销售人员.Text dr.Item(\销售日期\ ds.Tables(\销售表\

Lab合计.Text = Val(Lab合计.Text) + Lab单价.Text * Val(Txt数量.Text) Txt商品号.Text = \ Txt数量.Text = \ Label7.Text = \ Label5.Text = \ Lab单价.Text = \ Txt商品号.Focus() Else

ds.Tables(\销售表\ End If End If

Txt实收.Text = 0 End Sub

Private Sub Txt实收_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Txt实收.KeyPress If e.KeyChar = ChrW(13) Then

Lab找零.Text = Val(Txt实收.Text) - Val(Lab合计.Text) End If End Sub

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

If Txt实收.Text = \

MsgBox(\请您输入实收金额!\警告\

ElseIf Txt实收.Text < Lab合计.Text Then

MsgBox(\您付款的金额不足!\警告\

Txt实收.Text = 0 Txt实收.Focus() Else

Dim i As Integer = MsgBox(\确认付款?\付款\ If i = 1 Then Dim b As Integer

For b = 0 To ds.Tables(\销售表\ Dim cmd As New OleDbCommand conn.Open()

cmd.Connection = conn

cmd.CommandText = \销售表(订单号,商品号,售货员号,数量,售价,总价,销售日期) values ('\柜存表\订单号\销售表\商品号\销售表\数量\销售表\售价\

第33页 共40页

Val(ds.Tables(\销售表\售价\* Val(ds.Tables(\销售表\数量\& \

cmd.ExecuteNonQuery()

cmd.CommandText = \柜存表 set 柜存数量=柜存数量-'\销售表\数量\订单号='\柜存表\订单号\

cmd.ExecuteNonQuery() conn.Close() Next

Txt商品号.Text = \ Txt数量.Text = \ Label7.Text = \ Txt数量.Text = \ Label5.Text = \ Lab单价.Text = \ Txt商品号.Focus()

Lab找零.Text = Val(Txt实收.Text) - Val(Lab合计.Text) Else

ds.Tables(\销售表\ End If End If End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Me.Close() 空白界面.Show()

售货员界面.ToolStripLabel1.Text = \请选择操作界面!\ a = 1 End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

ds.Tables(\销售表\

dv销售 = ds.Tables(\销售表\ dg1.DataSource = dv销售 Lab合计.Text = \ Lab找零.Text = \ Txt实收.Text = \ Txt商品号.Focus() End Sub

End Class

2.退货界面,本界面首先需要输入退货商品的商品号、出售该商品的售货员名、销售日期,点击确定后进入数据库查找相应的数据记录,如果有显示退货界

第34页 共40页

面,没有则弹出提示框。在进入退后界面工作人员只需输入退货数量和退货原因即可。如图4-21所示:

图4-21 退货界面

3.每日结算界面(售货员),本界面是售货员工作一天后,查看本日本人的所有销售情况,并直接给出销售总额以便向管理员交款。如图4-22所示:

图4-22 每日结算(售货员)界面

4.密码修改界面,本界面进入后会直接显示该用户的密码问题,待用户的问题答案回答正确后方能进行密码修改,在修改密码时两次输入的新密码必须完全一样。如图4-23所示:

第35页 共40页

图4-23 密码修改界面

第36页 共40页

本文来源:https://www.bwwdw.com/article/j2b7.html

Top