超市管理系统项目实训报告.docx
《超市管理系统项目实训报告.docx》由会员分享,可在线阅读,更多相关《超市管理系统项目实训报告.docx(85页珍藏版)》请在冰豆网上搜索。
超市管理系统项目实训报告
摘要
随着小型超市规模的发展不断扩大,商品数量急剧增加,有关商品的各种信息量也成倍增长,传统的人工记忆方式也慢慢的无法适应形势的变化。
随着信息技术的发展,计算机已被广泛的用于社会的各个领域,成为推动社会发展的技术动力。
而在计算机应用中,软件的作用十分突出,软件已经发展成为信息技术的核心,主导着信息产品的开发和信息技术市场的进一步的开拓。
软件产业已成为社会信息化进程中的一个战略性产业。
在软件技术的应用中软件的开发技术尤其是应用型软件产品的开发技术成了重中之重。
不断开发适应用户需求、市场需要的新型软件产品。
随着社会的发展,软件也在不断的更新换代。
由于有些超市里对商品的进货、售出及商品的基本信息等的一些繁琐处理都是通过手工进行记载并进行处理的,对商品信息的处理工作量特别大,不仅浪费大量的人力物力,而且还很容易出错,更重要的是为了方便顾客,超市需要时时刻刻对商品对各种信息进行统计分析。
一直以来人们使用传统人工的方式管理超市的各项工作,这种管理方式存在着许多缺点,如:
效率低、保密性差,另外时间一长,将产生大量的冗余文件和数据,这给查找、统计、更新和维护工作都带来了很大的困难。
然而大型的超市管理系统功能过于强大而造成操作繁琐降低了小超市的工作效率。
如果有这样一套完整的小型超市管理系统软件,只需点击几下鼠标就可完成所需操作,那样就会大大的提高超市员工的工作效率和管理水平,并能进一步提高超市的工作效率并使超市实施规范化管理。
鉴于小型超市管理中存在的诸多问题,我们在此次课程设计中以小型超市管理系统为研究课题,对此系统进行了全面的设计。
小型超市管理系统由商品管理模块、仓库管理模块、销售管理模块和会员管理模块四部分组成。
它的内容对于超市的销售人员和管理者乃至顾客来说都至关重要,所以小型超市管理系统应该能够为用户提供充足的信息和快捷的查询手段。
一个完整系统的设计,当然就离不开后台环境的支持,在此次设计中,我们主要以SQLsever2005数据库作为基础,实行此系统的开发。
关键字:
小型超市管理,商品销售,java版小超市管理系统,SQLsever2005数据库
第1章需求分析
1.1引言
1.1.1编写的目的:
使用超市管理系统的目的就是使用最少是的人力,来完成超市中的日常工作。
一个典型的超市管理系统,除了应该完成超市中必要的销售工作以外,还应该具有后台管理的功能。
1.1.2背景
说明:
待开发的软件系统的名称:
超市管理系统的设计与开发。
本项目的任务提出者:
南工院的计算机与软件学院
开发者:
软件1031王翠,钱敏,陆晓哲,蒋露露,钟宜星,吴杰
用户及实现该软件的计算中心或计算机网络:
Eclipse
该软件系统同其他系统或其他机构的基本的相互来往关系:
该系统与数据库SQLServer相连接。
和超市相关的就是货物仓库,因为随着超市规模的越来越大,销售商品是非常多的,他们并不能全部放在超市中,需要将他们暂时放在仓库中,所以对仓库的管理是非常有必要的。
为了使超市更加吸引客户,推出了会员优惠活动,通过使用会员卡能够享受商品的优惠价,所以在超市管理系统中还要能够对超市会员进行管理。
1.2任务概述
1.2.1目标
系统开发的总体任务是实现Java与SQLServer2005的组合应用,实现可以用的Java方式调用SQL的数据库,有一定的透明性。
超市管理系统需要完成的功能主要有:
a.商品各种信息的输入,包括商品基本信息,详细信息和简历等。
b.各种商品信息的查询。
c.各种商品信息的修改。
d.供应商信息的输入,查询,和修改等。
e.商品库的输入,查询,和关系性修改等。
f.商品库的关系模式的完整性实现。
g.商品供应商的输入,查询,和修改等。
h.系统管理的管理员的登入。
1.2.2运行环境
硬件环境:
略
软件环境:
SQLServer2005
Eclipce
1.2.3假定和约束
本档案管理系统软件是应用于中小超市的。
在功能上还可进一步实现安全防范、关于数据结构方面可能单一不能满足超市的一些数据提取分析的功能。
1.3.数据描述及数据需求分析
1.3.1数据字典
1.3.1.1、数据流条目
(1)进货信息=进货单号+供应商号+商品号+进货价+进货数量+进货日期+进货员工
(2)销售信息=销售单号+供应商号+商品编号+销售数量+销售日期
1.3.1.2、文件条目
(1)文件名:
职工清单
组成:
{职工编号+姓名+性别+联系电话+联系地址+邮箱地址}
组织:
按职工编号递增排列
(2)文件名:
商品清单
组成:
{商品编号+供应商+商品名称+批号+批准文号+计量单位+产地+单价+备注}
组织:
按商品编号递增排列
(3)文件名:
供货商清单
组成:
{供货商号+名称+联系人+联系电话+联系地址+邮政地址+开户银行+邮箱地址+银行帐号+备注}
组织:
按供货商编号递增排列
(3)文件名:
进货清单
组成:
{进货单号+商品编号+供货商号+进货价+数量+金额+进货日期+备注}
组织:
按进货单编号递增排列
(4)文件名:
销售清单
组成:
{销售单号+商品编号+销售数量+销售日期}
组织:
按销售单编号递增排列
(5)文件名:
库存清单
组成:
{商品编号+库存数量}
组织:
按商品编号递增排列
1.3.3、加工说明
(1)加工名:
1:
查询
加工逻辑:
根据要查询的库存信息,检索出库存信息明细表
输入流:
库存信息查询,发出库存信息请求
输出流:
库存信息清单,进货信息请求
(2)加工名:
1:
更新
根据进货信息或销售信息更新库存信息
输入流:
已进货信息,销售信息
输出流:
发出库存检索请求
(3)加工名:
2:
查询
根据要查询的销售信息,检索出销售信息明细表
输入流:
销售信息查询
输出流:
销售清单,销售单
(4)加工名:
2:
更新
加工逻辑:
根据销售信息更细销售清单
输入流:
前台销售信息,库存信息
输出流:
更新库存清单
1.3.2超市管理系统的数据需求
超市管理系统的数据需求包括如下几点:
数据录入和处理的准确性和实时性
数据的输入是否准确是数据处理的前提,错误的输入会导致系统输出的不正确和不可用,从而使系统的工作失去意义。
数据的输入来源是手工输入。
手工输入要通过系统界面上的安排系统具有容错性,并且对操作人员要进行系统的培训。
在系统中,数据的输入往往是大量的,因此系统要有一定的处理能力,以保证迅速的处理数据。
数据的一致性与完整性
由于超市产品销售管理的系统化、规范化、网络化和自动化,实现对商品入库和销售信息的集中统一的管理,所以如何保证这些数据的一致性,是系统必须解决的问题。
要解决这一问题,要有一定的人员维护数据的一致性,在数据录入处控制数据的去向,并且要求对数据库的数据完整性进行严格的约束。
对于输入的数据,要为其定义完整性规则,如果不能符合完整性约束,系统应该拒绝该数据。
数据的共享与独立性
整个超市管理系统的数据是共享的。
然而,从系统开发的角度上看,共享会给设计和调试带来困难。
因此,应该提供灵活的配置,使各个分系统能够独立运行,而通过人工干预的手段进行系统数据的交换。
这样,也能提供系统的强壮性。
1.4.功能分析
1.4.1功能划分
本系统有以下功能模块:
1)、系统设置。
2)、商品供应商信息管理。
3)、员工档案管理。
4)、商品信息管理。
5)、商品入库管理。
6)、销售管理。
7)、销售数据查询。
1.4.2功能描述
下面详细描述一下各个功能模块:
1.4.2.1系统设置
(1)添加删除用户:
只限于管理员操作。
管理员可以向里面添加和删除用户信息,也可修改用户密码。
(2)退出登录:
返回到登录界面,重新登录.
1.4.2.2商品供应商信息管理
(1)供应商信息的录入;
(2)供应商信息的修改;
(3)供应商信息的删除;
(4)供应商信息的查询;
1.4.2.3员工档案管理
实现员工档案的添加、删除、修改、查询的功能。
1.4.2.4商品信息管理
(1)商品信息的录入。
对商品的基本信息进行录入并保存。
(2)商品信息的修改:
在有商品进入时,修改商品的基本信息,更新商品的信息,使商品信息始终是最新的商品信息。
(3)商品信息的删除:
当商品没货时,又不准备再进相同的货时,可以将该商品的信息删除,保证信息库中无冗余的数据。
1.4.2.5商品入库管理
及时录入商品的入库信息,保证每种商品再入库信息种都有登记,做到商品的实际的量、种类和记录的量和种类相匹配。
1.4.2.6帮助
(1)帮助信息:
显示系统的详细帮助信息。
(2)关于系统:
主要是显示系统的一些信息。
1.5.性能需求
1.5.1数据精确度
A.要按照严格的数据格式输入,否则系统不给予响应进行处理。
B.查询时要保证查全率,所有相应域包含查询关键字的记录都应能查到。
因为通常有文件的记录会很多,所以本系统采用直接查询。
1.5.2适应性
满足小型超市使用的需求(记录量控制在1000项内)。
对前面提到的运行环境要求不应存在困难。
1.6.运行需求:
1.6.1硬件接口:
本系统不需要特定的硬件或硬件接口进行支撑。
1.6.2软件借口:
运行于Eclipse与SQLServer2005系统之下的。
第2章系统设计
2.1绘制用例图设计系统功能
超市管理系统是不对外开放的,它的所有操作用户都是超市内部人员、管理员和超级管理员。
对于销售人员来说,他的操作仅仅为前台销售,它的用例图如图3-1所示。
一般管理员和超级管理员的区别,就是超级管理员能对会员进行管理,而一般管理员只能够完成商品、仓库和后台销售统计等相关功能。
这里我们就以超级管理员为例绘制用例图,如图3-2所示。
2.2系统业务流程图
2.2.1系统登录流程图
功能:
本模块的主要功能是对用户身份进行,验证只有系统的合法用户才能进入系统。
在进行系统登录过程中,登录模块将调用数据库里的用户清单,并对账号和密码进行验证,只有输入了正确的账号和密码后,系统登录才会成功。
并在输入了错误的或者是不存在的账户和密码时,系统会给出出错信息提示,指明登录过程中的错误输入或者错误操作,以便用户进行正确的登录。
登陆用户界面如下:
系统登录模块流程图:
2.2.2进货管理流程图
功能:
该模块主要是实现进行进货信息查询功能。
进货信息查询:
该模块为超市提供整个超市的进货情况查询,也可以进行进货信息的明细查询,并以进货报表形式打印出来。
输入项、输出项:
该模块的输入项为超市的进货单,其中包括进货单的编号,商品的编号,供货商号,进货价,数量,金额进货日期,备注。
进货管理界面如下:
进货管理模块流程图:
2.2.3销售管理流程图
功能:
本模块的主要功能是把销售信息写入销售清单,同时对库存清单进行更新,以备用户将来对库存信息进行查询和打印,此外还可以对销售信息进行查询和盘点功能。
销售信息查询:
根据商品销售情况,按需要对销售情况进行查询。
在该查询模块中,可以按照商品的编号、销售日期等多种方式进行商品销售信息查询。
销售信息盘点:
可以按照需要对在一定时期内的销售情况进行盘点。
输入项、输出项:
本模块的数据输入项主要是商品的销售单号和商品编号。
其中还包括销售数量和销售日期。
该模块的界面如下;
销售管理模块流程图:
2.2.4库存管理流程图
功能:
本模块的主要功能是商品信息的查询和更新,库存信息的查询和更新。
查询商品信息:
主要功能查询商品的明细信息,和它的库存信息。
添加商品信息:
主要功能添加新进的商品。
修改商品信息:
主要功能是修改商品的信息,包括他的库存数量。
删除商品信息:
主要功能是删除不再销售的商品信息。
输入项、输出项:
本模块的数据输入项主要是商品编号。
库存管理模块的界面如下:
库存管理模块流程图:
2.2.5员工管理流程图
在系统开发中,为解决超市人员流动问题,在系统中增添了员工管理子模块,用来对超市的人员进行信息化管理,以此来提高员工的办事效率,节约人力资源。
新员工录入:
在超市招进新员工时,对其进行基本信息的存储,对员工信息进行基本的了解。
员工信息维护:
当员工信息发生变化,或者是员工离职,换岗对相关信息发生变化时,利用此子模块对其进行信息变更。
员工管理模块界面如下;
职工管理模块流程图:
2.2.6供货商管理流程图
在超市引进商品时,首先查询已有的供货商信息,然后按照供货商信息采购商品;或者从新的供货商那里引进新的商品,此时,要把新供货商信息添加到供货商清单中。
有时,不再从某一供货商那里采购商品时,此时要把供货商信息删掉。
当供货商信息有变化时,就需要对供货商信息进行维护等。
供货商信息管理模块流程图:
第3章数据库设计
在每个管理系统中都一定有储存机制,若单单以文件形式储存,查找和存储时速度比较缓慢,会降低系统的整体运行速度,一定要运用数据库的进行信息管理,所以我们的“小超市管理系统”运用了SQLServer2005数据库,存储其后台数据。
下面将介绍本系统的数据库设计。
3.1系统开发环境
超市管理系统的开发环境要求如下:
系统开发平台:
MyEclipse7.5。
.数据库管理系统软件:
SQLServer2005。
运行平台:
Windows2000/WindowsXP/Windows2003/WindowsVista。
java开发包:
JDK1.4以上。
分辨率:
800*600以上,推荐1024*768。
GUI开发包:
Siwing和AWT。
3.2文件夹组织结构
在编写代码之前,首先需要将系统中可能用到的文件夹创建好,这样方便系统开发工作,同时还可以十分有效地方便后期维护。
本系统的文件夹组织结构如图3-6所示
图3-1文件夹组织结构
3.3数据库概念结构设计
根据需求分析设计出E-R图如图3-2所示:
图3-2系统E-R图
本系统根据分析设计了4个实体,分别是商品信息实体,仓库信息实体,商品类别信息实体,用户信息实体。
因为在超市中,商品是按照商品类别进行分类的,通过对商品进行分类可以更容易的对商品进行操作。
因此可以单独定义一个商品类别表来保存类别编号和类别名称,当对商品进行操作时,可以直接使用商品编号。
商品类别信息实体E-R图如图3-3所示。
在超市管理系统中,操作最多的应该是商品对象,所以要建立商品信息表,在其中保存商品的相关信息,商品信息实体E-R图如图3-4所示。
图3-3管理员实体的E-R图
图3-4商品信息的E-R图
和超市相关的就是仓库,在仓库中可以存放商品,为了更清晰的了解仓库中存放那些商品,我们建立了仓库信息实体,他的E-R图,如图3-5所示。
在用户信息表中,包括3中用户,分别是会员,收银员和管理员,将他们统一放在一个用户表中。
他的E-R图如图3-6所示。
图3-5仓库的E-R
图3-6管理员实体的E-R
以下是各个实体之间的联系图,如图3-7所示
图3-7各个实体之间的联系图
3.4逻辑结构设计
逻辑设计的任务是根据DBMS的特征把概念结构转换为相应的逻辑结构。
概念设计所得到的E-R模型,是独立于DBMS的,这里的转换就是把表示概念结构的E-R图转换成关系模型的逻辑结构。
将图转换为规范的关系模式为:
密码表(用户名,密码,类型)
员工表(员工编号,员工姓名,性别,职务,联系方式,家庭住址)
商品表(商品编号,商品名称,种类,单价,单位,库存量,保质期,生产时间)
采购表(供货商号,商品编号,进货日期,商品名称,验收员,进货价,数量,金额)
入库表(商品编号,入库时间,商品厂家,数量)
销售表(商品编号,客户编号,销售日期,数量,商品名称,业务员,金额)
退货表(商品编号,商品名称,退货日期,退货数量,制单人,业务员,金额,客户编号)
所举例子如下:
表3-2商品信息数据项
表3-2用户信息数据项
Password表,其中存储的是用户的帐号、密码,用于登陆系统时确认身份。
此表设计如3-3表所示:
表3-3Password信息表
Goods表,其中存储的是商品的详细信息,作用是记录商品的信息及在本超市中的数量。
此表设计如3-4标所示。
表3-4Goods信息表
Information表,其中存储的是顾客在超市中的消费情况,其中有帐单号、商品代号、数量及总价,用来记录超市中销售情况,此表设计如3-5表所示。
表3-5Information信息表
第4章公共类设计
4.1数据库封装类
在具有数据库的操作的项目中,通常将数据库的类封装在一个类中,例如类中应该包括注册驱动器,连接数据库等操作。
代码如下:
packagelgcsgwxt;
importjava.sql.*;
publicclassDBAccess{
privatestaticfinalStringDRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver";
privatestaticfinalStringURL="jdbc:
sqlserver:
//localhost:
1433;DatabaseName=SuperMarket";
privatestaticfinalStringUSER="sa";
privatestaticfinalStringPASSWORD="123456";
publicstaticConnectiongetConnection(){//连接数据库
Connectionconn=null;
try{
Class.forName(DRIVER);
conn=DriverManager.getConnection(URL,USER,PASSWORD);
}catch(Exceptionex){
ex.printStackTrace();
}
returnconn;
}
}
上述代码中"com.microsoft.sqlserver.jdbc.SQLServerDriver";是用于SQLServer2005数据库的驱动串,而字符串URL,USER和PASSWORD是连接数据库的路径,用户名和密码。
本代码是通过conn对象调用的来连接数据库。
4.2创建表格对象
创建表格时,需要设置两个集合,它们分别表示表格头信息和表格中显示的具体信息。
该操作是固定的,所以可以单独创建一个类完成,代码如下:
ackagelgcsgwxt.dialog;
importjava.util.Vector;
importjavax.swing.*;
publicclassMytable{
publicstaticJTablemaketable(Vectorobj,Vectortitle){
JTabletable=newJTable();
table=newJTable(obj,title);
returntable;
}
}
上述代码中table=newJTable(obj,title);表示表格组建对象,并且这个对象需要两个参数,第一个参数用于生成表格内容的集合,第二个参数表示生成表格头信息的集合。
第5章:
商品管理模块
在超市管理模块中,进行操作最多的应该就是商品的对象,包括新增商品,进货,出货等等。
在本节中就对这些功能进行讲解:
5.1新增商品
在超市后台管理系统中,单击商品管理/新增商品的节点,将弹出新增商品表的界面该页面将会完成商品的添加,删除,页面如下:
5-1所示:
在该新增模块中,在左面的输入一些商品的信息,信息输入后,单击添加按钮,就会把你所增加的商品及信息添加到右边表格中,而“重置”和“删除”都是对表格的进行操作的。
当你“单击”提交时,你的商品将会商品的数据库中。
这里让我们来看看代码,如下所示:
packagelgcsgwxt.dialog;
importjava.awt.Frame;//省略其他导入
publicclassAddMerchandiseextendsJDialog{
privatestaticfinallongserialVersionUID=-957600377877923038L;
JPanelpanel1=newJPanel();
JLabeljLabel1=newJLabel();//省略其他标签的定义
JTextFieldjTextField1=newJTextField();//省略其他文本框组建的定义
JScrollPanejScrollPane1=newJScrollPane();//滚动面板
JTablejTable1=newJTable();
JTableHeaderjTableHeader1=jTable1.getTableHeader();
Vectorcolnames=newVector();//表头
Vectorcolnames1=newVector();//测试
Vectorcolnames2=newVector();//测试
//按钮的定义
JButtonjButton1=newJButton();
JButtonjButton2=newJButton();
JButtonjButton3=newJButton();
JButtonjButton4=newJButton();
JComboBoxjComboBox1=newJComboBox();
publicAddMerchandise(Frameowner,Stringtitle,booleanmodal){
super(owner,title,modal);
try{
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
jbInit();
pack();
}catch(Exceptionexception){
exception.printStackTrace();
}
}
publicAddMerchandise(){
this(newFrame(),"AddMerchandise",false);
this.setSize(900,480);
}
privatevoidjbInit()throwsException{
panel1.setLayout(null);
jLabel.setText(“商品编码:
”);//设置商品编码名称,大小和位置
jLabel.setBounds(newRectangle(15,10,85,26));//设置标签1的大小
//省略其他具体信息的标签
jComboBox.addItem(“生鲜类”);//设置下拉列表框中商品类别的名称
jComboBox.addItem(“食品类”);
jComboBox.addItem(“蔬菜类”