《超市管理系统(共53页).doc》由会员分享,可在线阅读,更多相关《超市管理系统(共53页).doc(53页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上软件工程课程设计报告( 2014 - 2015 年度第 一 学期)课程名称: 软件工程课程设计 题 目: 小型超市管理系统 院 系:计算机与信息技术学院班 级: 软件工程 组 号: 组 长: 洛佳琪 组 员:刘雅、刘一清、王雪瑶指导教师: 杨陟卓 设计周数: 4周 小组成绩: 日期:2014 年 8月26日专心-专注-专业软件工程课程设计任务书一、目的、要求通过软件开发的实践训练,进一步掌握软件工程的方法和技术,提高软件开发的实际能力,培养工程设计能力和综合分析、解决问题的能力。具体如下:l 学习和实践在分析和设计计算机应用系统所需要的知识,包括面向对象的系统分析与设
2、计,编码和测试方面的知识;l 熟悉自动化的软件开发工具Rational Rose 2003等,并将其运用于软件开发的全过程;l 进一步加强和提高软件工程文档的编写能力;l 培养协作能力和团队精神。二、任务分配任务负责人参与人备注需求分析洛佳琪洛佳琪总体设计刘一清洛佳琪,刘雅,刘一清详细设计刘雅洛佳琪,刘雅系统实现与测试王雪瑶洛佳琪,王雪瑶三、设计成果要求l 建立系统分析与设计模型;l 初步建立系统原型,实现关键的功能;l 编写课程设计报告。指导教师:杨陟卓 日 期: 2014 年 8 月 26 日软件工程课程设计成绩评定一、 指导教师评语二、 成绩学号姓名成绩备注洛佳琪刘雅刘一清王雪瑶 指导教
3、师: 杨陟卓 日 期:2014 年 8 月 26 日摘要:本系统实现一个超市管理系统的基本功能,包括营业员进行商品录入和收银业务;超市经理对商品销售进行控制,管理进货事项和商品库存;管理员对员工信息进行增、删、改、查,管理员工操作权限,管理客户销售权限;顾客可以在销售系统里查询商品信息和会员积分。系统利用Java平台技术进行开发,实现超市管理系统的动态管理,使得对信息的管理更加及时、高效,提高了效率。同时还对系统的开发原理、功能特点和设计方案进行了介绍。关键词:超市管理 数据库 管理 Java1 课程设计的目的与要求通过软件开发的实践训练,进一步掌握软件工程的方法和技术,提高软件开发的实际能力
4、,培养工程设计能力和综合分析、解决问题的能力。具体如下:(1) 学习和实践在分析和设计计算机应用系统所需要的知识,包括面向对象的系统分析与设计,编码和测试方面的知识;(2) 熟悉自动化的软件开发工具Rational Rose 2003,并将其运用于软件开发的全过程;(3) 进一步加强和提高软件工程文档的编写能力;(4) 培养协作能力和团队精神。2 设计正文2.1 概述2. 1.1 课题题目:小型超市管理系统2. 1.2 系统的主要目标本系统目标是实现小型超市管理系统所需的各种基本功能,包括营业员商品录入和收银业务;超市经理商品销售控制、管理进货和商品库存;管理员对员工信息进行增、删、改、查,管
5、理员工操作权限,管理客户销售权限;顾客可以在销售系统里查询商品信息和会员积分等功能。2. 1.3 系统的开发环境及运行环境:操作系统: Windows XP Pro SP2建模工具: Rational Rose 2003数据库系统:SQL Server2005开发工具: Eclipse2.2 系统需求分析小型超市管理系统主要满足来自四方面的需求,这四个方面分别是营业员、超市经理、顾客和管理员,也即是四个对象。(1)营业员主要有商品录入和收银业务两部分功能。商品录入:根据超巿业务特点制定相关功能,可以通过输入唯一编号、扫描条形码、商品名称等来实现精确或模糊的商品扫描录入。该扫描录入方法可以充分保
6、证各种电脑操作水平层次的人员均能准确快速地进行商品扫描录入。收银业务:通过扫描条形码或者直接输入商品名称(对于同类多件商品采用一次录入加数量的方式)自动计算本次交易的总金额。在顾客付款后,自动计算找零,同时打印交易清单(包括交易的流水账号、每类商品的商品名、数量、该类商品的总金额、交易的时间、负责本次收银的员工号)。如果顾客是本店会员并持有本人会员卡,则在交易前先扫描会员卡,并对所购物品全部实行95折优惠,并将所购物品的总金额累计到该会员的总消费金额中。 会员卡的有效期限为一年,满一年未续卡者,该会员卡将被注销。(2)超市经理主要有商品销售控制,进货管理和库存管理三部分功能。销售管理: 商品正
7、常销售、促销与限量、限期及禁止销售控制。 综合查询各种销售明细记录、各地收银员收银记录以及交结账情况等。 按多种方式统计生成销售排行榜,灵活察看和打印商品销售日、月、年报表。进货管理: 根据销售情况及库存情况,自动制定进货计划(亦可手工制定修改),可以避免盲目进货造成商品积压。 按计划单有选择性地进行自动入库登记。 综合查询打印计划进货与入库记录及金额。库存管理: 综合查询库存明细记录。 库存状态自动告警提示。如库存过剩、少货、缺货等。软件为您预警,避免库存商品积压损失和缺货。 库存自动盘点计算。(3)管理员主要有基本信息管理和员工操作权限管理三部分。基本信息管理:对员工、会员信息进行增、删、
8、改、查。员工操作权限管理:一般员工只能登陆系统查看个人信息及签到,其余权限受限制;营业员还可以登陆收银系统。(4)会员主要有会员积分查询。会员积分查询:是会员的顾客查询自己积分数并兑换相应礼品。2.1.1 用例图 图2-1 小型超市管理系统用例图用例图说明:(1) 系统的外部角色有:会员用户、营业员用户、员工用户、超市经理和管理员。(2)系统主要用例的文档描述:收银业务用例:营业员用户和顾客用户可见的功能,包含了会员业务和结账两个用例功能。 员工操作权限管理用例:管理员用户和员工用户可见的功能,这个用例进一步分为三个用例:签到权限用例、查询个人信息权限用例和登陆收银系统权限用例。基本信息管理用
9、例:管理员用户可见的功能,实现员工、会员信息的管理功能,包含了员工基本信息管理和会员基本信息管理两个用例。商品销售控制用例:超市经理用户可见的功能,实现商品销售的控制功能,包含了正常销售控制、促销与限量、限期销售控制、禁止销售控制和查询明细五个用例。进货管理用例:超市经理用户可见的功能,包含了自动制定进货计划、自动入库登记、查询计划进货和查询入库记录及金额四个用例。库存管理用例:超市经理用户可见的功能,包含了自动盘点计算、查询库存明细、库存状态自动报警三个用例。(3)系统用例之间的关系:收银业务用例与会员业务、结账两用例之间是包含关系。员工操作权限管理用例与签到权限、查询个人信息权限和登陆收银
10、系统权限三用例之间是包含关系。基本信息管理用例与员工基本信息管理、会员基本信息管理两个用例之间是包含关系。商品销售控制用例与正常销售控制、促销与限量、限期销售控制、禁止销售控制和查询明细五个用例之间是包含关系。进货管理用例与自动制定进货计划、自动入库登记、查询计划进货和查询入库记录及金额四个用例之间是包含关系。库存管理用例与自动盘点计算、查询库存明细、库存状态自动报警三个用例之间是包含关系。(4) 系统关键用例的正常事件流图和异常事件流图 表2-1 结账用例的正常事件流图和异常事件流图用例名称结账参与者营业员、顾客描述营业员、顾客结账启动点击“结账”按钮前置条件商品录入完成主事件流用户系统1.
11、系统自动计算出商品价格2.顾客付款3.系统将价款和货款比对后找零4.系统将实际收到价款打入超市账户中异常流异常流货款无法进入超市账户系统货款无法成功转入超市账户,系统给出提示,要求重新进行转入或要求管理员维修系统异常网络连接超时或系统功能损坏 表2-2 进货管理用例的正常事件流图和异常事件流图用例名称进货管理用例参与者超市经理用户描述超市经理管理进货事项启动进入进货管理界面前置条件用户成功登录后置条件如果该用例成功,数据库中将增加商品信息。否则,系统维持现状主事件流用户系统1.用户进入界面,登陆成功2.根据销售情况单及库存情况单,自动制定进货计划3.按计划有选择性地进行自动入库登记4.系统综合
12、查询打印计划进货与入库记录及金额异常流异常流制定进货计划失败系统销售情况单及库存情况单错误,系统给出错误提示,并要求进行修改后重新给出 2.2.2 类图图2-2 小型超市管理系统类图类图说明:(1)BaseUser类是一个系统角色用户的基类,主要方法有两个:modifyPWD() 用于修改用户的密码;loginCheck() 用于用户登录验证。(2)Admin类继承自BaseUser类。(3)Staff类继承自BaseUser类,主要方法有:STAdd() 用于添加员工;STDel() 用于删除员工;STUpdate() 用于更新员工信息;STSel() 用于查询员工信息。(4)manager
13、类继承自BaseUser类,主要方法有:MAAdd() 用于添加经理;MADel() 用于删除经理;MAUpdate() 用于更新经理信息;MASel() 用于查询经理信息。(5)VIP Member类继承自BaseUser类,主要方法有:VIPAdd() 用于添加经理;VIPDel() 用于删除经理;VIPUpdate() 用于更新经理信息;VIPSel() 用于查询经理信息。(6)Good类是一个商品类,主要方法有:GOAdd() 用于增加商品;GODel() 用于删除商品。(7) Sell类是一个销售类,主要方法有:GODel() 用于删除商品。 (8)Replenish类是一个进货类,
14、主要方法有: 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 设计问题域子系统本系统目标是实现
15、小型超市管理系统所需的各种基本功能,分为前台和后台,共有五大模块,分别为:营业员模块,顾客模块,超市经理模块,管理员模块和公有模块。这五个模块包含了营业员进行商品录入和收银业务;超市经理对商品销售进行控制,管理进货事项和商品库存;管理员对员工信息进行增、删、改、查,管理员工操作权限,管理客户销售权限;顾客可以在销售系统里查询商品信息和会员积分等基本功能。(1) 总体设计图小型超市管理系统总体设计图(2)各模块功能功能模块包含子功能模块功能管理员模块客户管理子模块删除,添加,更改用户及用户信息员工管理子模块删除,添加,更改员工及员工信息超市经理模块商品价格更改,管理进货事项和商品库存营业员模块商
16、品录入和收银业务会员模块查询会员积分,管理个人信息公共模块登陆界面,企业介绍及超市活动信息2.3.2 设计数据管理子系统(1)数据库表序号数据库表数据表存储的内容1staff存储员工信息2member存储会员信息3commodity存储商品信息4supplier存储供应商信息5storage存储仓库信息6manufacturer存储厂商信息7product存储生产信息8supply存储供应信息9procure存储采购信息10store存储存储信息11purchase存储购买信息(2) 数据表之间的关系 数据表之间的关系图(3) 数据库表结构 1)员工表Staff的详细数据字段:Staff员工信
17、息表序号字段名字段类型说明备注1sta.noChar员工编号关键字2sta.nameChar员工姓名3sta.sexChar员工性别4sta.addChar员工住址5sta.telChar员工电话6sta.wagChar员工工资7sta.IDChar员工身份证号 2)会员表member的详细数据字段:Member会员信息表序号字段名字段类型说明备注1mem.noChar会员卡号关键字2mem.nameChar会员姓名3mem.sexChar会员性别4mem.IDChar会员身份证号5mem.addDate会员地址6mem.telDate会员电话 3)商品表commodity的详细数据字段 co
18、mmodity 商品员信息表序号字段名字段类型说明备注1com.noChar商品编号关键字2com.nameChar商品名称3com.numChar商品单位4com.priChar商品价格com.typeChar商品种类 4)供应商supplier的详细数据字段supplier供应商信息表序号字段名字段类型说明备注1sup.noChar供应商编号关键字2sup.nameChar供应商名称3sup.telChar供应商电话4sup.addChar供应商地址5sup.posChar供应商邮编6sup.manChar供应商联系人 5)仓库storage的详细数据字段Storage仓库信息表序号字段名
19、字段类型说明备注1sto.noChar仓库编号关键字2sto.areaChar仓库面积3sto.typeChar仓库类别4sto.addChar仓库地址 6)厂商manufacturer的详细字段manufacturer厂商信息表序号字段名字段类型说明备注1man.noChar厂商编号关键字2man.nameChar厂商名称3man.telChar厂商电话4man.posChar厂商邮编5man.addChar厂商地址6man.manChar厂商联系人 2.3.3 设计人机交互子系统(1)用户分类本系统的用户可分为四类:1)管理员用户;2)会员用户;3)员工用户;4)超市经理用户。(2)用户描
20、述1)管理员用户的描述:管理员用户在整个小型超市管理系统中起到管理和维护的作用,对会员和员工的信息进行管理和维护等职责。2)会员用户的描述:会员用户在本系统中具有管理自己信息的权限,查看自己积分情况及超市会员优惠的权限。3)员工用户的描述:员工在本系统中具有修改自己的信息,查看商品价格及库存情况的权限。 4)超市经理用户的描述: 超市经理有商品销售控制,进货管理和库存管理的权限,他可以管理库 存,控制进货,更改商品价格等。(3)设计命令层次1)系统的人机交互子系统的内容和准则:本小型超市管理系统的人机交互子系统在根据不同的用户身份登陆到不同的页面,然后按照不同的用户只能进行用户权限内的操作,其
21、结构图如下:2)通过采用树形结构,细化命令的组织方式,如下:2.4 详细设计小型超市管理系统是实现管理员管理员工与会员基本信息、员工登陆系统以及超市经理管理进货、库存、商品销售的一个平台,整个学生选课系统共分为5个大模块:管理员模块,会员模块,员工模块,超市经理模块和公有模块,其中复杂的方法和模块的详细设计流程图如下。 (1) 系统用户登录流程图 图4-1 系统用户登录流程图(2)营业员收银业务流程图 图4-2 营业员收银业务流程图(3)管理员添加员工流程图 图4-3管理员添加员工流程图(4)超市经理控制限量销售流程图 图4-4 超市经理控制限量销售流程图(5)超市经理管理进货流程图 图4-5
22、 超市经理管理进货流程图(6)超市经理管理库存流程图 图4-6 超市经理管理库存流程图2.5 系统实现本系统采用了三层架构来实现,即分为用户界面层(UI)、业务逻辑层(BLL)和数据访问层(DAL),用户界面层是展示给用户的界面,方便用户与系统进行交互;业务逻辑层是对系统业务实体的封装,完成系统业务功能;数据访问层直接与数据库打交道,为业务逻辑层提供底层的数据库操作。 登录功能实现登录界面是使用者在使用此软件时需要输入自已的账号和密码,从而使用自已的权限来管理超市的运行。小超市登录界面如4-1所示。 图4-1 小超市管理系统登录界面模块核心代码:public class Login exten
23、ds Frame implements ActionListener,WindowListener /登陆界面 public int screanWidth,screanHeight; String idin=null; String keyin=null; String passwordD=null; public static String persontyD=null; MenuBar menubar; Menu menu; MenuItem quet,help; Label id,key; TextField idtf,keytf; Box boxV1,boxV2,boxV3,base
24、Box,boxx; Button enterB; Login() setTitle(超市管理系统登陆界面); Toolkit tool=getToolkit(); Dimension dim=tool.getScreenSize(); screanWidth=dim.width; screanHeight=dim.height; setBounds(dim.width/3,dim.height/3,320,215); menubar=new MenuBar(); menu=new Menu(功能); help=new MenuItem(帮助); quet=new MenuItem(退出); q
25、uet.setShortcut(new MenuShortcut(KeyEvent.VK_E); quet.addActionListener(new ActionListener() /匿名类实例控制public void actionPerformed(ActionEvent p)System.exit(0); ); menu.add(help); menu.add(quet); menubar.add(menu); setMenuBar(menubar); id=new Label(请输入帐号:,Label.RIGHT); key=new Label(请输入密码:,Label.RIGHT
26、); idtf=new TextField(10); keytf=new TextField(10); keytf.setEchoChar(*); enterB=new Button(登陆); boxV1=Box.createVerticalBox(); boxV1.add(Box.createVerticalStrut(35); boxV1.add(id); boxV1.add(Box.createVerticalStrut(15); boxV1.add(key); boxV1.add(Box.createVerticalStrut(15); boxV2=Box.createVertical
27、Box(); boxV2.add(Box.createVerticalStrut(35); boxV2.add(idtf); boxV2.add(Box.createVerticalStrut(15); boxV2.add(keytf); boxV2.add(Box.createVerticalStrut(15); baseBox=Box.createHorizontalBox(); baseBox.add(Box.createHorizontalStrut(25); baseBox.add(boxV1); baseBox.add(Box.createHorizontalStrut(5); b
28、aseBox.add(boxV2); baseBox.add(Box.createHorizontalStrut(70); boxV3=Box.createHorizontalBox(); boxV3.add(Box.createHorizontalStrut(125); boxV3.add(enterB); boxV3.add(Box.createHorizontalStrut(125); boxx=Box.createVerticalBox(); boxx.add(baseBox); boxx.add(Box.createVerticalStrut(15); boxx.add(boxV3)
29、; boxx.add(Box.createVerticalStrut(70); add(boxx); enterB.addActionListener(this); addWindowListener(this); setResizable(false); setVisible(true);public void actionPerformed(ActionEvent e)Connection con;Statement sql;ResultSet rs;if (e.getSource()=enterB)idin=idtf.getText();keyin=keytf.getText(); tr
30、y Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch (ClassNotFoundException f) System.out.println(+f); trycon=DriverManager.getConnection(jdbc:odbc:q,);sql=con.createStatement();rs=sql.executeQuery(SELECT * FROM password where ID=+idin+);while(rs.next()passwordD=rs.getString(2);persontyD=rs.getStri
31、ng(3);con.close();catch (SQLException g)System.out.println(g); if (keyin.equals(passwordD) View2 frame=new View2(); this.setVisible(false); else JOptionPane.showMessageDialog(this, 帐户或密码错误n 请重新输入,提示,JOptionPane.WARNING_MESSAGE); public void windowActivated(WindowEvent o)validate();public void window
32、Deactivated(WindowEvent o)setBounds(screanWidth/3,screanHeight/3,320,215);validate();public void windowClosing(WindowEvent o)dispose();public void windowClosed(WindowEvent o)System.exit(0);public void windowIconified(WindowEvent o)public void windowDeiconified(WindowEvent o)setBounds(screanWidth/3,s
33、creanHeight/3,320,215); validate();public void windowOpened(WindowEvent o)4.2 销售界面功能介绍该功能是此系统的最关键的模块,是消费者直接使用的功能。消费者可以根据已看到的商,在搜索栏中打入商品的编号,进行查询商品的信息,然后可以依椐自已的需要购买。最后单击提交,购买的商品就记录到系统的数据库中。销售的主界面如图4-2所示:图 4-2 销售的主界面4.2.1 搜索商品的信息 消费者可根据自已所需要的商品编号,在销售功能中搜索,查看商品的信息无误后,确定是否购买。如搜索001号商品,查看它的信息,如图4-3所示。图4-3
34、 搜索001号商品的信息4.2.2 购买商品在确定自已需要的商品后,然后就是购买商品,消费者可以按“购买”键进行购买物品,购买一份就单击一次“购买”键,购买物品的信息显示在购物信息框中,最后单击“提交”,消费者所购买的物品就作为一个账单号存储在数据库中。如购买004、005、006、008、010和011号商品时,购买信息如图4-4下: 图4-4 购买信息当购买人不想购买这些商品时,可以点击窗口左下角的清除按钮,来清除刚才购买的商品,数据库中也不会有此记录。此外,本系统是每购买一件商品向数据库提交一次记录,当未点击提交按钮之前,若要结束此窗口进程,我们在代码中嵌入了一段删除当前帐单的数据库记录
35、代码,以达到没有误提交的操作。4.2.3 模块的核心代码 销售界面的实现public class View2 extends JFrame implements ActionListener /销售界面String num=null,name=null,time=null,add=null,t1=null,t2=null,t3=null;int price=0;int n1,n2,ap,n3; private JPanel sM=new JPanel(); /supermarket面板private JButton pS=new JButton(销售界面),new JButton(销售管理),
36、 new JButton(商品管理),new JButton(权限管理);/personty 按钮 private JTextArea goodsShow=new JTextArea(), searchShow=new JTextArea(); /文本区 private JScrollPane jsp=new JScrollPane(goodsShow); /滚动区域 设定内容为 商品显示的文本区private JTextField numSearch=new JTextField(),showGoods=new JTextField(); /商品查询/显示商品 private JButton
37、 searchGoods=new JButton(搜索),buyGoods=new JButton(购买), clean=new JButton(清空), ok=new JButton(提交),print=new JButton(打印并提交); /查询按钮private JLabel goodsInformation=new JLabel(商品编码,JLabel.CENTER),new JLabel(商品名称,JLabel.CENTER), new JLabel(商品价格,JLabel.CENTER),new JLabel(生产日期,JLabel.CENTER),new JLabel(生产地,
38、JLabel.CENTER) ;private JLabel goodsI=new JLabel(商品编码,JLabel.CENTER),new JLabel(商品名称,JLabel.CENTER), new JLabel(商品价格,JLabel.CENTER),new JLabel(生产日期,JLabel.CENTER),new JLabel(生产地,JLabel.CENTER) ; private JLabel allPrice=new JLabel(商品总价:n ,JLabel.LEFT),label1=new JLabel(商品信息 ,JLabel.RIGHT),label2=new JLabel(购物信息 ,JLabel.RIGHT); public View2()sM.setLayout(null);for(int i=0;i4;i+)pSi.setBounds(550+i*110,50,100,22);sM.add(pSi);pSi.addActionListener(this); jsp.setBounds(100,180,800,500); goodsShow.setLineWrap(true) numSearch.setBounds(100,50,150,22); searchGoods.setBounds(260,50,60,22); searchG