超市管理系统Word格式.docx
《超市管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《超市管理系统Word格式.docx(65页珍藏版)》请在冰豆网上搜索。
●初步建立系统原型,实现关键的功能;
●编写课程设计报告。
杨陟卓
日期:
2014年8月26日
《软件工程》课程设计成绩评定
一、指导教师评语
二、成绩
学号
姓名
成绩
2012242058
2012242054
2012242055
2012242082
指导教师:
杨陟卓
日期:
2014年8月26日
摘要:
本系统实现一个超市管理系统的基本功能,包括营业员进行商品录入和收银业务;
超市经理对商品销售进行控制,管理进货事项和商品库存;
管理员对员工信息进行增、删、改、查,管理员工操作权限,管理客户销售权限;
顾客可以在销售系统里查询商品信息和会员积分。
系统利用Java平台技术进行开发,实现超市管理系统的动态管理,使得对信息的管理更加及时、高效,提高了效率。
同时还对系统的开发原理、功能特点和设计方案进行了介绍。
关键词:
超市管理数据库管理Java
1课程设计的目的与要求
(1)学习和实践在分析和设计计算机应用系统所需要的知识,包括面向对象的系统分析与设计,编码和测试方面的知识;
(2)熟悉自动化的软件开发工具RationalRose2003,并将其运用于软件开发的全过程;
(3)进一步加强和提高软件工程文档的编写能力;
(4)培养协作能力和团队精神。
2设计正文
2.1概述
2.1.1课题题目:
小型超市管理系统
2.1.2系统的主要目标
本系统目标是实现小型超市管理系统所需的各种基本功能,包括营业员商品录入和收银业务;
超市经理商品销售控制、管理进货和商品库存;
顾客可以在销售系统里查询商品信息和会员积分等功能。
2.1.3系统的开发环境及运行环境:
操作系统:
WindowsXPProSP2
建模工具:
RationalRose2003
数据库系统:
SQLServer2005
开发工具:
Eclipse
2.2系统需求分析
小型超市管理系统主要满足来自四方面的需求,这四个方面分别是营业员、超市经理、顾客和管理员,也即是四个对象。
(1)营业员主要有商品录入和收银业务两部分功能。
商品录入:
根据超巿业务特点制定相关功能,可以通过输入唯一编号、扫描条形码、商品名称等来实现精确或模糊的商品扫描录入。
该扫描录入方法可以充分保证各种电脑操作水平层次的人员均能准确快速地进行商品扫描录入。
收银业务:
通过扫描条形码或者直接输入商品名称(对于同类多件商品采用一次录入加数量的方式)自动计算本次交易的总金额。
在顾客付款后,自动计算找零,同时打印交易清单(包括交易的流水账号、每类商品的商品名、数量、该类商品的总金额、交易的时间、负责本次收银的员工号)。
如果顾客是本店会员并持有本人会员卡,则在交易前先扫描会员卡,并对所购物品全部实行95折优惠,并将所购物品的总金额累计到该会员的总消费金额中。
会员卡的有效期限为一年,满一年未续卡者,该会员卡将被注销。
(2)超市经理主要有商品销售控制,进货管理和库存管理三部分功能。
销售管理:
商品正常销售、促销与限量、限期及禁止销售控制。
综合查询各种销售明细记录、各地收银员收银记录以及交结账情况等。
按多种方式统计生成销售排行榜,灵活察看和打印商品销售日、月、年报表。
进货管理:
根据销售情况及库存情况,自动制定进货计划(亦可手工制定修改),可以避免盲目进货造成商品积压。
按计划单有选择性地进行自动入库登记。
综合查询打印计划进货与入库记录及金额。
库存管理:
综合查询库存明细记录。
库存状态自动告警提示。
如库存过剩、少货、缺货等。
软件为您预警,避免库存商品积压损失和缺货。
库存自动盘点计算。
(3)管理员主要有基本信息管理和员工操作权限管理三部分。
基本信息管理:
对员工、会员信息进行增、删、改、查。
员工操作权限管理:
一般员工只能登陆系统查看个人信息及签到,其余权限受限制;
营业员还可以登陆收银系统。
(4)会员主要有会员积分查询。
会员积分查询:
是会员的顾客查询自己积分数并兑换相应礼品。
2.1.1用例图
图2-1小型超市管理系统用例图
用例图说明:
(1)系统的外部角色有:
会员用户、营业员用户、员工用户、超市经理和管理员。
(2)系统主要用例的文档描述:
①收银业务用例:
营业员用户和顾客用户可见的功能,包含了会员业务和结账两个用例功能。
②员工操作权限管理用例:
管理员用户和员工用户可见的功能,这个用例进一步分为三个用例:
签到权限用例、查询个人信息权限用例和登陆收银系统权限用例。
③基本信息管理用例:
管理员用户可见的功能,实现员工、会员信息的管理功能,包含了员工基本信息管理和会员基本信息管理两个用例。
④商品销售控制用例:
超市经理用户可见的功能,实现商品销售的控制功能,包含了正常销售控制、促销与限量、限期销售控制、禁止销售控制和查询明细五个用例。
⑤进货管理用例:
超市经理用户可见的功能,包含了自动制定进货计划、自动入库登记、查询计划进货和查询入库记录及金额四个用例。
⑥库存管理用例:
超市经理用户可见的功能,包含了自动盘点计算、查询库存明细、库存状态自动报警三个用例。
(3)系统用例之间的关系:
①收银业务用例与会员业务、结账两用例之间是包含关系。
②员工操作权限管理用例与签到权限、查询个人信息权限和登陆收银系统权限三用例之间是包含关系。
③基本信息管理用例与员工基本信息管理、会员基本信息管理两个用例之间是包含关系。
④商品销售控制用例与正常销售控制、促销与限量、限期销售控制、禁止销售控制和查询明细五个用例之间是包含关系。
⑤进货管理用例与自动制定进货计划、自动入库登记、查询计划进货和查询入库记录及金额四个用例之间是包含关系。
⑥库存管理用例与自动盘点计算、查询库存明细、库存状态自动报警三个用例之间是包含关系。
(4)系统关键用例的正常事件流图和异常事件流图
表2-1结账用例的正常事件流图和异常事件流图
用例名称
结账
参与者
营业员、顾客
描述
营业员、顾客结账
启动
点击“结账”按钮
前置条件
商品录入完成
主事件流
用户
系统
1.系统自动计算出商品价格
2.顾客付款
3.系统将价款和货款比对后找零
4.系统将实际收到价款打入超市账户中
异常流
货款无法进入超市账户
货款无法成功转入超市账户,系统给出提示,要求重新进行转入或要求管理员维修系统
异常
网络连接超时或系统功能损坏
表2-2进货管理用例的正常事件流图和异常事件流图
进货管理用例
超市经理用户
超市经理管理进货事项
进入进货管理界面
用户成功登录
后置条件
如果该用例成功,数据库中将增加商品信息。
否则,系统维持现状
1.用户进入界面,登陆成功
2.根据销售情况单及库存情况单,自动制定进货计划
3.按计划有选择性地进行自动入库登记
4.系统综合查询打印计划进货与入库记录及金额
制定进货计划失败
销售情况单及库存情况单错误,系统给出错误提示,并要求进行修改后重新给出
2.2.2类图
图2-2小型超市管理系统类图
类图说明:
(1)BaseUser类是一个系统角色用户的基类,主要方法有两个:
modifyPWD()用于修改用户的密码;
loginCheck()用于用户登录验证。
(2)Admin类继承自BaseUser类。
(3)Staff类继承自BaseUser类,主要方法有:
STAdd()用于添加员工;
STDel()用于删除员工;
STUpdate()用于更新员工信息;
STSel()用于查询员工信息。
(4)manager类继承自BaseUser类,主要方法有:
MAAdd()用于添加经理;
MADel()用于删除经理;
MAUpdate()用于更新经理信息;
MASel()用于查询经理信息。
(5)VIPMember类继承自BaseUser类,主要方法有:
VIPAdd()用于添加经理;
VIPDel()用于删除经理;
VIPUpdate()用于更新经理信息;
VIPSel()用于查询经理信息。
(6)Good类是一个商品类,主要方法有:
GOAdd()用于增加商品;
GODel()用于删除商品。
(7)Sell类是一个销售类,主要方法有:
(8)Replenish类是一个进货类,主要方法有:
GOAdd()用于增加商品。
(9)Stock类是一个库存类,主要方法有:
StockAdd()用于增加库存量;
StockDel()用于减少库存量;
StockSel()用于查询库存量;
StockUpdate()用于更新库存量。
2.2.3时序图
(1)营业员管理会员时序图
图2-3营业员管理会员时序图
(2)超市经理管理员工时序图
图2-4超市经理管理员工的时序图
2.2.3协作图
(1)营业员管理会员协作图
图2-5营业员管理会员协作图
(2)超市经理管理员工协作图
图2-6超市经理管理员工协作图
2.3系统总体设计
2.3.1设计问题域子系统
本系统目标是实现小型超市管理系统所需的各种基本功能,分为前台和后台,共有五大模块,分别为:
营业员模块,顾客模块,超市经理模块,管理员模块和公有模块。
这五个模块包含了营业员进行商品录入和收银业务;
顾客可以在销售系统里查询商品信息和会员积分等基本功能。
(1)总体设计图
小型超市管理系统总体设计图
(2)各模块功能
功能模块
包含子功能模块
功能
管理员模块
客户管理子模块
删除,添加,更改用户及用户信息
员工管理子模块
删除,添加,更改员工及员工信息
超市经理模块
商品价格更改,管理进货事项和商品库存
营业员模块
商品录入和收银业务
会员模块
查询会员积分,管理个人信息
公共模块
登陆界面,企业介绍及超市活动信息
2.3.2设计数据管理子系统
(1)数据库表
序号
数据库表
数据表存储的内容
1
staff
存储员工信息
2
member
存储会员信息
3
commodity
存储商品信息
4
supplier
存储供应商信息
5
storage
存储仓库信息
6
manufacturer
存储厂商信息
7
product
存储生产信息
8
supply
存储供应信息
9
procure
存储采购信息
10
store
存储存储信息
11
purchase
存储购买信息
(2)数据表之间的关系
数据表之间的关系图
(3)数据库表结构
1)员工表Staff的详细数据字段:
Staff员工信息表
字段名
字段类型
说明
sta.no
Char
员工编号
关键字
sta.name
员工姓名
sta.sex
员工性别
sta.add
员工住址
sta.tel
员工电话
sta.wag
员工工资
sta.ID
员工身份证号
2)会员表member的详细数据字段:
Member会员信息表
mem.no
会员卡号
mem.name
会员姓名
mem.sex
会员性别
mem.ID
会员身份证号
mem.add
Date
会员地址
mem.tel
会员电话
3)商品表commodity的详细数据字段
commodity商品员信息表
com.no
商品编号
com.name
商品名称
com.num
商品单位
com.pri
商品价格
com.type
商品种类
4)供应商supplier的详细数据字段
supplier供应商信息表
sup.no
供应商编号
sup.name
供应商名称
sup.tel
供应商电话
sup.add
供应商地址
sup.pos
供应商邮编
sup.man
供应商联系人
5)仓库storage的详细数据字段
Storage仓库信息表
sto.no
仓库编号
sto.area
仓库面积
sto.type
仓库类别
sto.add
仓库地址
6)厂商manufacturer的详细字段
manufacturer厂商信息表
man.no
厂商编号
man.name
厂商名称
man.tel
厂商电话
man.pos
厂商邮编
man.add
厂商地址
man.man
厂商联系人
2.3.3设计人机交互子系统
(1)用户分类
本系统的用户可分为四类:
1)管理员用户;
2)会员用户;
3)员工用户;
4)超市经理用户。
(2)用户描述
1)管理员用户的描述:
管理员用户在整个小型超市管理系统中起到管理和维护的作用,对会员和员工的信息进行管理和维护等职责。
2)会员用户的描述:
会员用户在本系统中具有管理自己信息的权限,查看自己积分情况及超市会员优惠的权限。
3)员工用户的描述:
员工在本系统中具有修改自己的信息,查看商品价格及库存情况的权限。
4)超市经理用户的描述:
超市经理有商品销售控制,进货管理和库存管理的权限,他可以管理库
存,控制进货,更改商品价格等。
(3)设计命令层次
1)系统的人机交互子系统的内容和准则:
本小型超市管理系统的人机交互子系统在根据不同的用户身份登陆到不同的页面,然后按照不同的用户只能进行用户权限内的操作,其结构图如下:
2)通过采用树形结构,细化命令的组织方式,如下:
2.4详细设计
小型超市管理系统是实现管理员管理员工与会员基本信息、员工登陆系统以及超市经理管理进货、库存、商品销售的一个平台,整个学生选课系统共分为5个大模块:
管理员模块,会员模块,员工模块,超市经理模块和公有模块,其中复杂的方法和模块的
详细设计流程图如下。
(1)系统用户登录流程图
图4-1系统用户登录流程图
(2)营业员收银业务流程图
图4-2营业员收银业务流程图
(3)管理员添加员工流程图
图4-3管理员添加员工流程图
(4)超市经理控制限量销售流程图
图4-4超市经理控制限量销售流程图
(5)超市经理管理进货流程图
图4-5超市经理管理进货流程图
(6)超市经理管理库存流程图
图4-6超市经理管理库存流程图
2.5系统实现
本系统采用了三层架构来实现,即分为用户界面层(UI)、业务逻辑层(BLL)和数据访问层(DAL),用户界面层是展示给用户的界面,方便用户与系统进行交互;
业务逻辑层是对系统业务实体的封装,完成系统业务功能;
数据访问层直接与数据库打交道,为业务逻辑层提供底层的数据库操作。
登录功能实现
登录界面是使用者在使用此软件时需要输入自已的账号和密码,从而使用自已的权限来管理超市的运行。
小超市登录界面如4-1所示。
图4-1小超市管理系统登录界面
模块核心代码:
publicclassLoginextendsFrameimplementsActionListener,WindowListener//登陆界面
{
publicintscreanWidth,screanHeight;
Stringidin=null;
Stringkeyin=null;
StringpasswordD=null;
publicstaticStringpersontyD=null;
MenuBarmenubar;
Menumenu;
MenuItemquet,help;
Labelid,key;
TextFieldidtf,keytf;
BoxboxV1,boxV2,boxV3,baseBox,boxx;
ButtonenterB;
Login()
{setTitle("
超市管理系统登陆界面"
);
Toolkittool=getToolkit();
Dimensiondim=tool.getScreenSize();
screanWidth=dim.width;
screanHeight=dim.height;
setBounds(dim.width/3,dim.height/3,320,215);
menubar=newMenuBar();
menu=newMenu("
功能"
help=newMenuItem("
帮助"
quet=newMenuItem("
退出"
quet.setShortcut(newMenuShortcut(KeyEvent.VK_E));
quet.addActionListener(newActionListener()//匿名类实例控制
{
publicvoidactionPerformed(ActionEventp){
System.exit(0);
}});
menu.add(help);
menu.add(quet);
menubar.add(menu);
setMenuBar(menubar);
id=newLabel("
请输入帐号:
"
Label.RIGHT);
key=newLabel("
请输入密码:
idtf=newTextField(10);
keytf=newTextField(10);
keytf.setEchoChar('
*'
enterB=newButton("
登陆"
boxV1=Box.createVerticalBox();
boxV1.add(Box.createVerticalStrut(35));
boxV1.add(id);
boxV1.add(Box.createVerticalStrut(15));
boxV1.add(key);
boxV2=Box.createVerticalBox();
boxV2.add(Box.createVerticalStrut(35));
boxV2.add(idtf);
boxV2.add(Box.createVerticalStrut(15));
boxV2.add(keytf);
baseBox=Box.createHorizontalBox();
baseBox.add(Box.createHorizontalStrut(25));
baseBox.add(boxV1);
baseBox.add(Box.createHorizontalStrut(5));
baseBox.add(boxV2);
baseBox.add(Box.createHorizontalStrut(70));
boxV3=Box.createHorizontalBox();
boxV3.add(Box.createHorizontalStrut(125));
boxV3.add(enterB);
boxx=Box.createVerticalBox();
boxx.add(baseBox);
boxx.add(Box.createVerticalStrut(15));
boxx.add(boxV3);
boxx.add(Box.createVerticalStrut(70));
add(boxx);
enterB.addActionListener(