当前位置: 首页 > news >正文

基于web的超市管理系统设计与实现

博主介绍:专注于Java vue  .net  php phython  小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作

☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟
我的博客空间发布了1000+毕设题目 方便大家学习使用
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人
 

2.1项目背景

该公司是一家经营各种百货商品的大型超市。公司有流通部、财务部、仓储部、人事部五个主要部门,各部门的主要职责和功能分别为:

流通部:主要负责商品的购进和销售,负责开拓市场和产品的检验。

财务部:处理各种财务事务,如各种往来帐务、工资核算、成本核算等。

仓储部:商品的进出库和各种配件的保管及进出库。

人事部:主要负责公司员工的人事档案及业绩考核等。

公司的管理,在管理机构上采用的是树状结构,每一层都存在一定的权限,层次越高权限越大。具体结构如下图。2.2系统规划

在系统的初期规划阶段,我们从企业目前的实际情况及当前市场势出发,围绕信息资源的综合利用这一主线。确定系统的基本建设原则是:领导参与、可靠性、可扩充性、实用性、安全性、简易操作性、业务重组等组成。

经过科学的、系统的规划和论述,我们制定了信息系统的目标:以先进成熟的计算机和数据库技术为主要手段,建成覆盖公司内部各部门的管理信息系统,以做到市场、销售、采购、人事方面的信息可以及时正确地得到反映,为经营决策提供有力的信息保证。实现公司的管理现代化、信息资源化和决策科学化。

围绕上述目标,我们进行了详细的系统分析并制定了系统实施的方案。

2.3系统分析

2.3.1系统需求分析

由于本系统设计针对该超市的具体情况,因此用户需求的目的是通过该企业的需求调查,从中总结出企业对管理信息系统的需求,然后根据这些需求设计出系统的方案。

需求收集和分析是数据库设计的第一阶段。需求分析定义了软件产品的各种用户需求如功能、性能等,需求分析是否透彻、完整、正确是软件项目成败的关键。这一阶段收集到的基础数据是下一步设计概念结构的基础。

从数据库设计的角度考虑,需求分析阶段的目标是:对现实世界要处理的对象(组织、部门、企业等)进行详细调查,在了解原系统的概况,确定新系统功的过程中,收集支持系统目标的基础数据及其处理,最重要的就是建立用户数据模型。无论是采取哪种开发策略,都需要访问用户、记录需求,并根据这些需求建立数据模型的原型,这样的模型标识了需要在数据库中存储的内容和它们的结构及相互关系。进行数据建模要求既要有一定的行业知识,又要精通建模的方法和技巧[4]

需求分析阶段的任务是:

(1)了解组织机构情况,调查这个组织由哪些部门组成。各部的职责是什么,为分析信息流程准备。

(2)了解各部门的业务活动情况。调查各部门输入和使用什么数据,如何加工处理这些数据,输出什么信息,输出到什么部门,输出结果的格式是什么。

(3)确定新系统的边界。确定哪些功能由计算机完成或将来准让计算机完成,哪些活动由人工完成。由计算机完成的功能就是系统应该实现的功能。

2.3.2 系统功能

我们把收集到的数据整理组合在总控模块、基本资料模块、销售管理模块、进货管理模块四个主要的功能模块。每个功能模块的功能是:

总控模块包括操作员管理、权限管理、系统数据管理、系统设置管理等。它为整个系统提供安全保障。

基本资料模块有客户资料包括客户资料的管理和存储,员工资料包括员工资料录入和维护,商品资料包括商品资料的存储和编辑,供应商资料的存储和编辑。

销售管理模块包括货单的录入和维护;对销售情况进行统计;对商品的零售和批发进行管理和付款的计算机操作等

进货管理模块包括进货资料录入和维护;采购订单的录入和维护和付款的计算机的操作等。

上述四个子系统从原材料采购、到商品入库管理,再到出库销售的信息都能得到及时的获取和处理,力争使整个过程的每个关键环节的信息都能得到及时获取和处理系统的网络结构如图

3.系统的详细设计

我们对系统的需求及功能进行了总体的分析,得出了系统的总体目标。本节将围绕系统的总体目标和所做的分析进行详细的设计。系统的设计主要包括输入\输出设计(I\O设计)、模块功能设计、处理过程设计三部分。

3.1输入/输出设计(I/O设计)

系统输入/输出(I/O)设计是在系统设计中很容易被忽视的环节,又是一个很重要的环节,它对于用户和今后系统使用的方便和安全可靠性来说都是非常重要的。一个好的输入系统设计可以为用户和系统双方带来良好的工作环境,一个好的输出系统可以为管理者提供简洁、明了、实用的管理和控制信息。下面分别对这两方面讨论。

输入设计包括输入方式设计、用户界面设计。在本系统中,输入几乎都是采用键盘输入,键盘输入与用户界面设计是紧密联系在一起的。设计时。我们本着方便用户的原则,主要采用了以下措施:

(1) 注意保证各个模块的输入格式一致,方便用户使用不同的模块。

(2) 严格的检错措施。尽量减少用户的输入,以减少出错羁旅;对用户的输入内容,作空格、非法字符等检验。

(3) 使用菜单方式,使得条例清晰、逻辑性强。

(4) 关键性的强调和警告:对于数据库的更新、删除及用户登录等操作,利用提问的方式来帮助用户进一步来帮助用户进一步确认操作的有效性。

下图是商品资料子系统的界面,采用的是带有菜单和工具栏的窗体。

系统的输出方式采用的是报表输出

3.2模块功能设计

模块功能的设计主要是根据数据流程图,把一个子系统构造成具有层次的模块化结构,生成模块结构图。这里的模块结构组织比前面的子系统划分详细得多,它是对每一个子系统进行进一步的分解,直至具体功能的模块。然后将各模块联系起来。

绘出的模块结构图如下所示:(1)总控模块

总控模块的主要功能操作员管理、权限管理、系统数据管理、系统设置管理等。它为整个系统提供安全保障

(2) 基本资料       。

基本资料模块主要有员工模块、供应商模块、商品模块、客户模块四部分组成:

员工模块,包括员工资料子模块和编辑员工资料子模块。

员工资料模块:包括员工资料的查询、修改、增加和删除。其中员工资料查询的条件是员工代码、员工姓名、籍贯、年龄和入职时间等

编辑员工资料模块:包括员工代码、员工姓名、手机号码、籍贯、年龄、学历、入职时间和身份证号码等的编辑。

供应商模块,包括供应商资料子模块和编辑供应商资料子模块。

供应商资料模块:包括供应商资料的查询、修改、增加、删除和打印。其中供应商资料查询的条件是代码、联系人、名称、联系电话、经营产品、地址和电子邮件等

编辑供应商模块:包括供应商代码、联系人、联系电话、经营商品、名称、地址、电子邮件的录入和重置。

商品模块,包括商品资料子模块和编辑商品资料子模块。

商品资料模块:包括商品资料的查询、修改、增加、删除和打印。其中商品资料的增加包括主类、次类、条形码、进价、售价、有效期等的录入。商品资料的查询条件是货物代码、条形码、名称、规格、产地、售价和类别等

编辑商品资料模块:包括商品资料代码、主类、次类、条形码、进价、批价等

客户模块,包括客户资料子模块和编辑客户资料子模块。

客户资料模块:包括客户资料的查询、修改、增加、删除和打印。其中客户资料的查询包括名称、联系人、联系电话、手机号码和电子邮件等。

编辑客户资料模块:包括客户名称、联系人、联系电话、电子邮件等的录入。

(3)销售管理模块

销售管理模块包括零售子模块和批发子模块

零售子模块:包括商品的购物和结账。其中商品的购物通过商品编码的输入,系统自动生成产品的基本信息。商品的结账是通过顾客的预付款自动生成差额。如下图所示

批发子系统:包括商品的购物和结账。其中商品的购物通过商品编码和所需数量的输入,系统自动生成产品的基本信息。商品的结账是通过顾客的预付款自动生成差额

(4)进货管理子模块

进货管理子模块主要有订货管理模块、进货管理模块、付款模块三部分组成。

          

订货管理模块:包括订货单的新建、删除、存单、付款等。其中新建为通过订单号、供应商、订货时期、到货日期、总金额和定金的录入自动生成订户单。

进货管理模块:包括进货单的新建、删除、存单、付款等。其中新建为通过进货单号、供应商、进货时期、发票号码、总金额的录入自动生成进户单。

付款模块:包括付款单的新建、查单、打印等,其中新建为通过付款单号、发票号码、日期和发票金额的录入自动生成付款单。

4.系统实施

系统的实施主要包括数据库实施、程序设计、系统测试三个阶段。 

4.1数据库实施

数据库(Database),是按照数据结构来组织、存储和管理数据的仓库,是用于查询的大量数据的存储区域。使用数据库可以带来许多好处:如减少了数据的冗余度,从而大大地节省了数据的存储空间,实现数据资源的充分共享等等。此外,数据库技术还为用户提供了非常简便的使用手段,使用户易于编写有关数据库应用程序。特别是近年来推出的计算机关系数据库管理系统,操作直观,使用灵活,编程方便,功能强大,环境适应广泛,数据处理能力极强[7]

数据库的设计是指对一个给定的应用环境,构造数据库模式,建立数据库及其应用系统,满足各种用户需求。作为信息资源开发、管理和服务的一种有效的手段,数据库技术的应用已越来越广泛,从小型的单项事务处理系统到大型的信息系统大都用先进的数据库技术来保持系统数据的安全性、完整性和共享性[8]。对一个实际的系统来说,数据库表的设计在遵循数据库理论的同时,必须能用开发工具来实现用户在各方面提出的功能要求。

数据库的实施中有两个关键的问题:数据库的完整性和数据库的安全性。

数据库的完整性是指数据的正确性和相容性。数据库管理系统(DBMS)用一定的机制来检查数据库中的数据是否满足规定的条件——完整性约束条件,数据的约束条件是语义的体现,将作为模式的一部分存入数据库中

数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄漏、更改或破坏。在数据库系统中,大量的数据集中存放,而且为许多用户直接共享,是宝贵的信息资源,系统的安全保护措施就显得更为重要,它保护数据库防止恶意的破坏和非法的存取。

本系统包括数据库的安全和服务器的安全。采用管理员表示和鉴定的方法实现数据库的安全,此安全管理措施并不在前台开发工具中实现,而是在后台数据库中实现。在登录数据库时,系统让管理员户表示自己的身份,不同的管理员权限不同,系统进行核实,鉴别此管理员是否为合法用户,若是,系统进一步核实用户,通常要求用户输入口令,系统和对用户口令以鉴别用户身份。服务器的安全也是通过用户在登录服务器时输入合法的用户名和密码来实现的。这是一种简单可行的方法,实现起来比较方便。没有采用更加复杂的系统安全管理措施是因为本管理系统一般是应用在超市网中,采用安全管理措施主要是为了防止没有修改权限的用户无意间修改了数据,因此采用用户标识和鉴定的安全管理措施就能够保障数据库的安全性。

4.2程序设计

对任何一个计算机管理系统,程序设计是程序编码阶段的第1步。所谓程序设计阶段就是按照系统设计提供的模块说明书,用特定的程序语言把模块编写成可以运行的程序,使系统设计方案得以具体实施

我们在开发程序时,采用的是结构化程序设计方法,这种方法遵循模块化结构自顶向下扩展和逐步求精的准则进行设计的万法。这里所说的自顶向下的模块扩展原则,指的是将一个程序高度抽象成一个最简单的功能结构;为完成这个功能,进一步将其分解为若干个低层的模块,直到最低一层的每个模块都非常简单、功能很小、能够很容易地用程序语句实现为止。

我们在选用开发工具时考虑到缩短开发周期,利用Visual Basic6.0来开发并设计超市企业管理信息系统的。具体设计程序见源程序清单。下面介绍一下本次程序设计时几个主要界面的部分程序以及遇到的一些问题及解决方法。

(1)主界面程序设计

超市企业管理信息系统包括总控管理子系统、销售管理子系统、进货管理子系统、基本资料管理子系统、等四个子系统,我们利用Visual Basic的命令(command)按钮将四大子系统挂接起来,每个子系统可以通过按钮来激活,用户可用鼠标、方向键、或回车键按动按钮来选取相应的子系统。这不但美化了用户界面,而且给用户操作带来了极大的方便。

(2)系统菜单程序设计

在每个子系统中各种功能模块基本完成后,就可利用菜单编辑器将子系统中各个功能模块程序挂接到菜单中,生成子系统主菜单程序。用户启动子系统后就可运行菜单程序,通过选取菜单项来调用相应的功能模块。

(3)系统安全性设计

系统软件的安全性对系统是否正常使用具有重要意义,为了实现超市MIS保密和安全性,在程序设计方面主要采用两个步骤:一是系统口令保密设计,二是数据库的安全性设计。系统口令设计:用户每次进入系统时,都要进行用户登录,只有输入正确的用户名和口令后,方可进入该子系统,为了防止非法用户。下图是用户登录界面。后面是用户登录的部分源程序和流程图。

部分源代码

Private Sub Command1_Click()

Dim mrc As ADODB.Recordset

txtsql = "select * from oper where 用户名= '" & Trim$(Text1.Text) & "'" & " And 口令= '" & Trim$(Text2.Text) + "'"

Set mrc = exesql(txtsql)

If mrc.RecordCount = 0 Then

      n = n + 1

    If n < 3 Then

       MsgBox "没有这个用户,继续登录", vbOKOnly + vbExclamation, "信息提示"

       Text1.Text = ""

       Text2.Text = ""

       Text1.SetFocus

    Else

       MsgBox "已登录失败三次,退出系统", vbOKOnly + vbExclamation, "信息提示"

           mrc.Close

       Unload Me

    End If

Else

   userlevel = Trim(mrc.Fields("级别"))

   mrc.Close

   Unload Me

   main.Show

 End If

End Sub

流程图

4.3系统测试

    在完成程序设计阶段的工作后,经程序员编码调试,就为系统的运行初步奠定了基础。要了解将要投入运行的系统是否能正确无误地工作,必须实行系统测试。测试的目的是确保系统程序能符合系统分析和设计阶段的功能要求,发现并排除系统程序中的错误。难以想象未经周密测试的系统冒强行投入运行,将会造成的严重后果。

4.3.1 测试目标

系统测试是从整个系统出发,考查设计是否合理。任何一个人在设计时都不可能把所有问题考虑周到,总是或多或少地发生差错。但对系统而言,就不能有差错,所以测试是非常重要的。可以说测试就是“寻找错误”,特别是寻找不经常出现的错误,尽量把系统中隐藏着的错误消灭在调试期间。此外还要对系统的容错能力、操作错误等进行测试。总之,通过测试要达到这样一个目的:寻找问题,纠正错误,提高系统技术能力,使系统早日投入运行[9]

4.3.2 测试步骤

系统测试实际上是按以下四个步骤来完成的:

l         测试每个单独的模块,保证它作为一个单元测试;

l         将模块加以集中或装配,形成一个完整的功能,整体测试包含检验

和组装这两重含义;

l         测试有效性要求,保证软件符合所有功能上和性能上的要求;

l         检验所有元素配合是否合理以及整个系统的性能和功能是否达到要求。

4.3.3 程序测试

程序测试是检验软件设计的最小单位一一一模块。程序测试主要包括程序语法检查和程序逻辑检查[5]。程序测试的方祛有:黑箱测试、数据测试、穷举测试、操作测试和模型测试五种。

l        黑箱测试(blank-box testing),就是不管程序内部是如何编制的,只是从外部根据       [PO(输入、处理和输出)图的要求对模块进行测试。黑箱测试主要是程序的语法检查,即 评价程序的模块功能。

l        数据测试(data testing),即用大量实际数据进行测试,数据类型要齐备,各种“值”“端点”都应调试到,是程序的逻辑检查。

l        操作调试(operating testing),即从操作到各种显示、输出应全面检查,看是否与设计要求一致[10]

在程序测试过程中,我们采用黑箱测试和数据测试相结合的方法。

4.3.4 功能测试

    在单个程序测试成功的基础上,就可以进行各种功能测试。功能测试是综合性测试,因为若干个程序组成一个功能,所以功能测试是将功能范围内所有程序按处理流程图的次序串联:起来进行综合测试, 功能测试是从处理流程的输入开始,直到最后执行打印程序为止。如果没有逻辑问题,就说明测试成功。

4.3.5 子系统测试

在各个功能测试成功的基础上就可以进行各个子系统的测试。每个子系统是由若干个功能所组成的。子系统设计成功与否,不仅取决于每个功能测试成功与否,还取决于按信息传递先后次序串联起来的功能测试成功与否因此,子系统测试是一种连接测试[6]

5.企业MIS 发展的前景

    企业竞争形态的变化、竞争环境的变化、学习型组织的出现、基于供应链的企业运作、战略联盟的形成等,使企业运作一刻也离不开信息系统的支持。随着各种管理理论的发展及相互融合的趋势,对企业信息化的研究与应用建设必将进一步得到重视和加强。对企业管理信息系统的发展趋势进行全方位的分析与研究,从多个视角把握管理信息系统的发展方向,对管理软件行业的健康发展及企业的信息化实践具有重要的指导意义。

大家点赞、收藏、关注、评论啦  其他的定制服务  下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 或者私信作者


http://www.mrgr.cn/news/28553.html

相关文章:

  • 使用 PyTorch 实现 AlexNet 进行 MNIST 图像分类
  • Conda环境、Ubuntu环境移植
  • 关于Unity使用LookAt时为什么不能旋转
  • 秃姐学AI系列之:样式迁移 + 代码实现
  • 安科瑞工业绝缘监测装置:保障煤矿井下6kV供电系统安全运行的关键应用——安科瑞 丁佳雯
  • Flink独立集群+Flink整合yarn
  • MySQL record 05 part
  • Go语言并发编程之select语句详解
  • Linux memcg lru lock提升锁性能
  • 【Python爬虫系列】_023.关于视频爬取
  • ​FullCalendar:强大的JavaScript事件日历
  • 【深度学习|可视化】如何以图形化的方式展示神经网络的结构、训练过程、模型的中间状态或模型决策的结果??
  • 【雅特力AT32】时钟配置-延时阻塞函数-软件定时器 时钟源与源码分析
  • SOMEIP_ETS_112: SD_Empty_Option
  • 【C++学习】 IO 流揭秘:高效数据读写的最佳实践
  • 火语言RPA流程组件介绍--浏览器页面操作
  • Qt多元素控件——QTableWidget
  • Go小专栏 第一期
  • PostgreSQL的表压缩
  • 【C++题解】1997. 孤独的素数
  • ChatGPT有三个快捷指令和三个模式,你知道吗?
  • 为了有了ReentrantLock还需要ReentrantReadWriteLock?
  • golang学习笔记25——golang 实现 MD5加密、RSA加密 和 Base64编码
  • c#visionpro开发 方法统计
  • 【蓝牙协议栈】精讲蓝牙PCM和URAT
  • 九、并查集-算法总结