毕业设计(论文)
题
目录
前言................................................................................................................................2摘要................................................................................................................................3
第一章绪论..................................................................................................................4
1.1社会背景.........................................................................................................41.2超市背景.........................................................................................................4
第二章开发及运行环境.............................................................................................5
2.1JSP语言概述..................................................................................................52.2JSP环境的搭建..............................................................................................52.3MySQL数据库...............................................................................................5
第三章系统分析........................................................................................................6
3.1用户工作流程分析......................................................................................63.2性能需求分析.................................................................................................63.3功能需求分析...................................................................................................63.4可行性分析.......................................................................................................73.4.1技术分析....................................................................................................73.4.2经济分析....................................................................................................73.4.3操作分析....................................................................................................8
第四章系统概要设计.................................................................................................8
4.1设计思想..........................................................................................................84.2设计原则..........................................................................................................8
第五章系统详细设计..................................................................................................9
5.1超市仓库管理系统E-R图.............................................................................95.2各模块E—R图...............................................................................................9
5.2.1管理员的实体图及属性........................................................................9
5.2.2库存表实体及属性..........................................................................................10
5.2.3出库表的实体及属性..........................................................................10
5.2.4操作记录实际及属性..........................................................................11
5.3功能模块详细设计及算法............................................................................11
5.4系统模块设计................................................................................................11
5.4.1.系统登录模块......................................................................................11
5.4.2.库存管理模块.....................................................................................13
第六章系统测试运行................................................................................................21
第七章总结................................................................................................................21
第八章参考文献.......................................................................................................21.目:
前言
没有比信息化大背景下的自动化管理更能提高生产力提高效率的。而利用计算机实现自动化管理是时代的需要。如今的超市规模日益壮大相应的各种信息量也随之增多,以往的超市仓库操作方式运营机构已逐渐不能适应如此多的信息量带来的压力。超市需要处理大量的库存信息,还要时刻更新产品的销售信息,不断添加商品信息。商店自动化的产品管理在欧美等国家早已经实现,也是零售业管理的基础。它最主要的特点是能够实时的和准确的控制店内的销售情况。如果可以能够实时掌握销售流程及销售情况,则可以有效地加速商品的周转率并提高服务质量,而且可以减少产品售价不符等所产生的问题。顾客的消费要求的是希望在超市购物中能基本上都能购得所需的商品,并且还要既保证商品质量还要享受优质,方便的服务。
摘要
随着小超市规模的发展不断扩大,商品数量急剧增加,有关商品的各种信息量也成倍增长。超市时时刻刻都需要对商品各种信息进行统计分析。而大型的超市管理系统功能过于强大而造成操作繁琐降低了小超市的工作效率。
超市管理系统是市场上最流行的超市上常用的系统之一,它主要包含以下几个模块:
本文系统的分析了软件开发的背景以过程;首先介绍了软件的开发环境,其次介绍了本软件的详细设计过程:数据库的设计、各个模块的设计和实现,以及具体界面的设计和功能。
关键词:超市仓库管理系统
第一章绪论
1.1社会背景
超市已经成为人们生活中必不可少的一部分,所以对超市仓库的管理已成为迫在眉睫的事情。所以小型超市管理系统就应运而生了。
随着现代科学技术的迅猛发展,社会的进步,计算机技术已经渗透到各个领域,成为各行业必不可少的工具,特别是Internet技术的推广和信息高速公路的建立,使IT产业在市场竞争中越发显示出其独特的优势,步入信息化时代,有巨大的数据信息等待加工处理和传输,这使得对书数据库的进一步开发和利用显得尤为迫切。
作为国内市场的一些中小型超市,它们在信息化过程中的步伐要落后于大中型超市,国内的一些中小型超市大多由人力管理,因而出现了很多不足,例如:管理效率低、劳动强度大、信息处理速度低而且准确率也不够令人满意。为了提高超市仓库管理效率、减轻劳动强度、提高信息处理速度和准确度。因此我们选择来设计一个小型超市管理系统的方案。让计算机对仓库进行自动管理,超市管理员可以在计算机上直接实现仓库的信息管理,并能够在一定的程度上实现自动化,所以小型超市仓库管理系统的开发就显得十分重要。
1.2超市仓库背景
在我国超市形成在20世纪90年代初期,现在已经成为我国零售业的一种重要形态,为国民经济的发展发挥了重要的作用。而超市的仓库管理也显得尤为。超市仓库就是库存货物的地方,它的存在对每个超市的发展有着至关重要的作用,一个超市的成败很大一部分就与仓库有关。
在人们的日常生活中,超市所销售的物品接近人们的琐碎的生活,它的这中特性也注定了超市仓库的库存量不但大而且品种类型复杂,以前虽然人工记录比较慢但也可以满足超市正常营业的需要,但随着人们生活的水平的提高,先前的模式已不能满足正常的运营了。其经营管理也变得愈加复杂,早期的售货员站柜台的形式早已不能满足现有销售也的发展,这样就迫切地需要引入新的管理技术。
超市形态的高速发展,其经营管理也变得愈加复杂,日常所需要处理的数据
量也逐渐增大,商业运转的中间环节也越来越多,原始的人工管理已无法应对这复杂的市场。为此,在选题过程中,我选择了小型仓库管理系统设计题目,依靠现代化的计算机信息处理技术来管理超市仓库,从而节省了大量的人力、物力,改善了员工的工作条件,减轻了劳动强度,并且能够快速反映出商品的进、销、存等状况和各种反馈信息分析,使管理人员快速对市场的变化做出相应的决策,加快超市经营管理效率。
第二章开发运行环境
2.1JSP语言概述
JSP(javaserverpages)是由SunMicrosystems公司倡导、许多公司可一起建立的一种动态网页技术标准。JSP技术有点类似于ASP技术,他是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag)从而形成JSP文件(*.jsp)。
2.2JSP环境的搭建
(1)安装JDK,配置环境变量
Path:D:\ProgramFiles\Java\jdk1.6.0\bin;
ClassPath:D:\ProgramFiles\Java\jdk1.6.0\jre\lib\rt.jar;.;
(2)安装Tomcat,配置环境变量
Java_Home:D:\ProgramFiles\Java\jdk1.6.0
Tomcat_Home:D:\apache-tomcat-6.0.18
(3)在webapps、ROOT\WEB-INF下建一个classes文件夹,若要建一些包,如果包名找不到,则需在JDK环境变量中加D:\apache-tomcat-6.0.18\ROOT\WEB-INFclasses\即可。
2.3MySQL数据库
MySQL是一个小型关系型数据库管理系统,开发者是瑞典MySQLAB公司。前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开发源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
MySQL的特征
(1)使用C和C++编写,并使用多种编译器进行测试,保证了源代码的可移植性
(2)支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统
(3)为多种编译语言提供API。这些编程语言包括C、C++、Eiffel、Java、Perl、PHP、
Python、Ruby和Tel等
(4)支持多线程,充分利用CPU资源
(5)优化的SQL查询算法,有效的提高查询速度
(6)既能作为一个单独的应用程序应用在客户服务器网络环境中,也能作为一个库嵌入在其他的软件中提供多种语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名
(7)提供TCP/IP、ODBC和JDBC等多种数据库连接途径
(8)提供用于管理、检查、优化数据库等多种数据库连接途径
(9)可以处理拥有上千万条记录的大型数据库
第三章系统需求分析
3.1用户工作流程分析
仓库管理系统主要对货物的入库出库、生成报表、货物查询、盘点统计等关键功能优化创新,使其操作方便便于管理。
3.2性能需求分析
(1)硬件环境
处理器:Intel(R)core(TM)i3CPU
内存:2G
硬盘空间:
(2)软件环境
操作环境:window2007
数据库:MySQL
3.3功能需求分析
超市仓库管理系统,以其强大的功能性要求,系统实现了用户登陆管理、货物查询等基本功能要求,系统具体功能分析如下:
登录功能:用户登录系统。
查询功能:用户登陆后查询仓库货物存量。
录入功能:向仓库中添加货物以及货物的基本信息
3.4可行性分析
3.4.1技术可行性
本系统采用JSP+JavaBean+Servlet及MySql平台,由于Java的强大功能是对系统的开发容易了很多,特别是基于Jsp的网页形式的开发使Dreamweaver的优势得以发挥。
3.4.2经济可行性
因为通过网络传递销售信息可以不受距离的限制,因此可以借阅许多的人力和物力,方便管理,由此可以减少不必要的开支,同时该系统可以提高超市的销售效率,即提高了超市的经济效益,所以从经济上完全是可行的。
1.超市有能力承担系统开发费用
开发新系统的工作是一项间距复杂的工作,它的投资主要是人力和物力的投资。对于本系统的开发者来说,其主要投资还是在人力和物力两个方面。如果是企业自己安排人手开发系统的话,其主要的投资还是在人力资源上,从系统的业务需求调查到系统的分析编码制作都是需要巨大的人力投入的。软件企业作为一个简短的高科技产业,其员工要求都比一般企业的要求要高,而且对系统开发及软件产业了解比较多,所以在自我开发管理系统的过程中,企业自己比较容易安排人手,这样就可以为企业借阅大部分的额外开支。同时软件就其它产品来说,属于高端行业,无论是产品的价格还是质量都比较高,而经营产品的经销商或者是商家都要求有雄厚的资金支持。所以,在系统的开发过程中,企业完全有能力承担开发费用。
2.新系统将为企业带来经济效益
管理系统是一个信息化、智能化和先进管理理念的集合体。而管理是一个动态过程,在其运行过程中要采取多项措施。所以在管理中获得经济效益是一个综
合效益,要对它进行直接定量的分析是比较困难的。一般新系统带来的经济效益是简介的,其最主要的表现就是减少了企业管理费用和人力开支。而其它一些繁琐的食物都通过新系统来加以分析解决,不仅节省了大量的时间,还为企业的各项决策提供了宝贵的资料,为企业带来巨大的经济效益。
3.4.3操作可行性
本系统采用基于Windows的图形用户界面,而该系统是大家熟悉的操作系统,对于那些有一般的计算机知识的人员就可以轻松上手。而整个超市管理系统采用最友好的交互界面,简介明了,不需要对数据库进行深入的了解。
由此,该系统的操作是可行的,有必要开发该系统。
综合以上三方面,该系统具有很高的开发可行性,无论是从技术上或者经济上还是操作上。因此,可以设计该系统的数据流程图,建立数据字典。业务流程图
第四章系统概要设计
4.1设计思想
(1)系统分成几个相对独立的模块,但这些模块都进行集中式管理。
(2)分层的模块化程序设计思想,整个系统采用模块化结构设计。作为应用程序有较强的可操作性和扩展性。
(3)合理的数据流设计,在应用系统设计中,相对独立的模块间以数据流相互连接,使各模块间的耦合性较低,方便系统运行,提高系统安全性。
4.2设计原则
为了使本系统功能齐全完备,操作简便,最大限度的提高软件的质量,从而满足用户的实际需要,在设计开发过程中遵循了如下原则:
(1)合法性原则:依据产品核算系统的工作规定以及要求,参照核算实际的工作情况,进行诸如产品进货、销售等工作。
(2)实用性原则:适合产品信息管理工作的实际需求,并能够处理一些特殊情况的要求,此外,尽可能预留空间,以便扩充功能。
(3)准确性原则:对输入的相关资料建立检错机制,及时报错,使用户能够及时准确的输入合法资料(如:类型匹配,长度不超限等)。
(4)易操作原则:要求设计的系统功能齐全,界面友好,操作方便,必要的地方进行提示。
(5)源程序可读性原则:为了便于其他设计,维护人员读懂代码或以后的代码修改,软件升级维护,即可能做好代码注释工作。
(6)优化原则:为了达到优化的目的,合理的运用窗口,菜单,对象等的继承,自定义用户对象,事件,函数,减少不必要的重复性代码,使程序简介明了,也方便了将来的维护。
(7)安全性原则:可以为该系统的用户设置用户权限。
第五章系统详细设计
5.1超市仓库管理系统E-R图
如下
我所设计的程序只包含其中的几个子模块
5.2、详细设计各个模块E—R图
5.2.1管理员的实体图及属性
管理员信息
ID密码验证码
图4.1管理员的实体及属性
5.2.2库存表实体及属性
库存表
数量名称价格
图4.2订单实体及属性
5.2.3出库表的实体及属性出库表
名称
时间
商品名称金额类型
5.2.4操作记录实际及属性操作记录
登陆管理
发件删除修改
图4.4.6操作记录实体及属性
5.3功能模块详细设计及算法
通过深入研究任务书,搜集、查阅与课题相关的资料,在总体设计阶段该系统预设计系统登录、商品入库、商品查询、商品更改、删除等几个功能模块。个模块又包含多项子功能:
1、统登录模块需要包含完成根据提供的用户名、初始密码进行登录验证如果成功则进入系统,否则提示无法登录。
2、商品入库模块需要包含完成根据商品编号的首字母来进行商品的分类如果输入的商品在数据库中存在,则给出已有的信息,可以修改数量;如果输的商品不存在,则需要输入全部信息。
3、商品查询模块需要包含完成商品查询,分类列出数据库里全部的商品信息。
4、分组模块需包括对报名信息按项目进行分库、分组等功能项。
5、商品更改、删除模块要包括完成商品更改,当商品售出对数量进行修改或对其他信息进行修改,商品删除,商品数量为0则进行删除。
5.4系统模块设计
5.4.1.系统登录模块
功能:本模块的主要功能是对用户身份进行,验证只有系统的合法用户才能进入系统。其窗体如下图:
在进行系统登录过程中,登录模块将调用数据库里的用户清单,并对账号和密码进行验证,只有输入了正确的账号和密码后,系统登录才会成功。并在输入了错误的或者是不存在的账户和密码时,系统会给出出错信息提示,指明登录过程中的错误输入或者错误操作,以便用户进行正确的登录。
实现代码如下:
classCLoginDlg:publicCDialog
{
//Construction
public:
CLoginDlg(CWnd*pParent=NULL);//standardconstructor
~CLoginDlg();
//DialogData
//{{AFX_DATA(CLoginDlg)
enum{IDD=IDD_LOGIN_DIALOG};
CEditm_control_username;
CEditm_control_password;
intcount;
intseconds;
CSMButtonm_ok;
CSMButtonm_cancel;
CStringm_Pwd;
CStringm_UserName;
COLORREFm_clrText;
COLORREFm_clrBkgnd;
CBrushm_brBkgnd;
CBrushm_brControlBkgnd1;
CBrushm_brControlBkgnd2;
protected:
virtualvoidDoDataExchange(CDataExchange*pDX);//DDX/DDVsupport
virtualvoidOnOK();
afx_msgBOOLOnEraseBkgnd(CDC*pDC);
afx_msgHBRUSHOnCtlColor(CDC*pDC,CWnd*pWnd,UINTnCtlColor);
afx_msgvoidOnTimer(UINTnIDEvent);
virtualBOOLOnInitDialog();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
voidCLoginDlg::OnOK()
{UpdateData(TRUE);
if(m_UserName==""){
MessageBox("请输入用户名");
return;}
if(m_Pwd==""){
MessageBox("请输入密码");
return;}
//定义CUsers对象,用于从表Users中读取数据
CUsersuser;
user.GetData(m_UserName);
//如果读取的数据与用户输入数据不同,则返回
if(user.GetPwd()!=m_Pwd)
{if(count
{MessageBox("用户信息不正确,无法登录!");
count++;
m_Pwd.Empty();
m_control_password.SetFocus();
UpdateData(FALSE);}
else
{
MessageBox("你可能是非法用户
",MB_OK|MB_ICONHAND);
exit(0);}}else{KillTimer(0);CDialog::OnOK();}}!","警告
5.4.2.库存管理模块
功能:本模块的主要功能是商品信息的查询和更新,库存信息的查询和更新。查询商品信息:主要功能查询商品的明细信息,和它的库存信息
添加商品信息:主要功能添加新进的商品。
修改商品信息:主要功能是修改商品的信息,包括他的库存数量。删除商品信息:主要功能是删除不再销售的商品信息。
输入项、输出项:本模块的数据输入项主要是商品编号。
窗体如下:
代码实现如下:
voidCStoreHouseManDlg::Refresh_Data()
{
UpdateData(TRUE);
CStringcSource;
cSource="SELECTSid,SnameAS仓库单位,MemoAS备注";
cSource+="FROMStorehouseORDERBYSname";
m_adodc.SetRecordSource(cSource);
m_adodc.Refresh();
//设置表格列宽度
_variant_tvIndex;
vIndex=long(0);
m_datagrid.GetColumns().GetItem(vIndex).SetWidth(0);
vIndex=long(1);
m_datagrid.GetColumns().GetItem(vIndex).SetWidth(100);
vIndex=long(2);
m_datagrid.GetColumns().GetItem(vIndex).SetWidth(420);
}
voidCStoreHouseManDlg::OnAddButton()
{
//TODO:Addyourcontrolnotificationhandlercodehere
UpdateData(TRUE);
//打开编辑对话框
CStoreHouseEditDlgdlg;
dlg.cSid="";
if(dlg.DoModal()==IDOK)
Refresh_Data();
}
voidCStoreHouseManDlg::OnModiButton()
{
//TODO:Addyourcontrolnotificationhandlercodehere
if(m_adodc.GetRecordset().GetEof())
{
MessageBox("请选择要修改的记录");
return;
}
UpdateData(TRUE);
CStoreHouseEditDlgdlg;
dlg.cSid=m_datagrid.GetItem(0);//记录编号
dlg.m_Sname=m_datagrid.GetItem(1);//仓库名称
dlg.m_Memo=m_datagrid.GetItem(2);//备注信息
if(dlg.DoModal()==IDOK)
Refresh_Data();
}
voidCStoreHouseManDlg::OnDelButton()
{
//TODO:Addyourcontrolnotificationhandlercodehere
if(m_adodc.GetRecordset().GetEof())
{
MessageBox("请选择要删除的记录");
return;
}
CStringSid;
Sid=m_datagrid.GetItem(0);
CStoreInobj;
if(obj.HaveStore(Sid)==1)
{
MessageBox("此仓库信息出现在入库单中,不能删除");
return;
}
CTakeOutobj1;
if(obj1.HaveStore(Sid)==1)
{
MessageBox("此仓库信息出现在出库单中,不能删除");
return;
}
CProInStoreobj2;
if(obj2.HaveStore(Sid)==1)
{
MessageBox("此仓库信息出现在库存产品信息中,不能删除");
return;
}
if(MessageBox("是否删除当前记录","请确定",MB_YESNO)==IDYES)
{
CStorehousesh;
sh.sql_delete(Sid);
Refresh_Data();
}
}
BOOLCStoreHouseManDlg::OnInitDialog()
{
CDialog::OnInitDialog();
//TODO:Addextrainitializationhere
Refresh_Data();
returnTRUE;
}//returnTRUEunlessyousetthefocustoacontrol//EXCEPTION:OCXPropertyPagesshouldreturnFALSE
在Dreamweaver操作环境下设计出主要的登陆界面采用超链接的方式跟其
它的两个模块连接起来
入库模块
这是网页形式的代码
入库单
数据库的连接以及值传递的代码
Stringuser="scott";
Stringpassword="tang";
Stringurl="jdbc:oracle:thin:@127.0.0.1:1521:orcl";
Connectioncon=null;
ResultSetrs2=null;
Statementstmt2=null;
try{Class.forName("oracle.jdbc.driver.OracleDriver");}
catch(ClassNotFoundExceptione){
out.print("connectionerror:"+e);
}
try{con=DriverManager.getConnection(url,user,password);
PreparedStatementstmt=con.prepareStatement("insertintocangku2values(?,?,?)");
%>
编号
货物名称
数量
返回首页面
出库模块
这是网页形式的代码
出库单
Stringuser="scott";
Stringpassword="tang";
Stringurl="jdbc:oracle:thin:@127.0.0.1:1521:orcl";
Connectioncon=null;
ResultSetrs2=null;
Statementstmt2=null;
try{Class.forName("oracle.jdbc.driver.OracleDriver");}
catch(ClassNotFoundExceptione){
out.print("connectionerror:"+e);
}
try{con=DriverManager.getConnection(url,user,password);
PreparedStatementstmt=con.prepareStatement("insertintoproductvalues(?,?,?,?)");
%>
rs2.close();
stmt2.close();
}catch(SQLExceptione){
out.print("sqlerror:"+e);
}
%>
返回登录界面
第六章程序测试
软件系统的开发经历了需求分析、设计和编程三个阶段,为了改进软件质量并尽量避免错误的产生,应该对系统的分析、设计和编程过程进行审核与测试。由于分析、设计和编程都是人来完成的,人在工作中难免会犯各种各样的错误,这就需要我们对软件系统进行测试,找出可能存在的错误。系统在投入使用之前必须进行严格的测试,测试的内容包括功能测试、性能测试、可用性测试、客户端兼容性测试、安全测试等。我们可以根据测试及时发现问题并提出解决方案,便于系统的维护与升级。
本系统设计过程中,主要是采用了单元测试方式,针对每一个模块中的每一个方法进行测试,主要通过给局部变量赋初值,然后是打印测试的结果。经过初步测试,系统在服务器端和客户端均基本上能正常运行。
第七章总结
在此次设计当中认我认识到开发一项好的软件不是一件简单的事情,若想自己开发的软件得到利用,那么必须要充分了解市场需要,不断的寻找现存软件出现的种种问题,然后才能设计出实用型的软件。
其次,在设计中我了解了,在开发一个项目时一定要先做好规划,按照软件的开发过程,详细地写好每一个必要的文档。
由于开发者能力有限,加上时间仓促,本系统难免会出现一些不足之处,我们深表歉意,如发现还有其它问题,希望老师批评指正。
第八章参考文献
[1]
社,2005
[2]
[3]
[4]
[5]
[6]
[7]王珊.数据库系统概论.高教出版社,1987方逵.JSP编程技术与应用北京:高等教育出版社1991武延军黄飞跃.精通JSP编程技术北京:人民邮电出版社,2001杨俊生.JSP开发技术.北京:清华大学出版社,2011埃克尔.Java编程思想.北京:机械工业出版社,2007霍斯特曼.JAVA核心技术卷.北京:机械工业出版社,2008王丙义.数据库原理与VisualFoxpro应用.北京:中国铁道出版
毕业设计(论文)
题
目录
前言................................................................................................................................2摘要................................................................................................................................3
第一章绪论..................................................................................................................4
1.1社会背景.........................................................................................................41.2超市背景.........................................................................................................4
第二章开发及运行环境.............................................................................................5
2.1JSP语言概述..................................................................................................52.2JSP环境的搭建..............................................................................................52.3MySQL数据库...............................................................................................5
第三章系统分析........................................................................................................6
3.1用户工作流程分析......................................................................................63.2性能需求分析.................................................................................................63.3功能需求分析...................................................................................................63.4可行性分析.......................................................................................................73.4.1技术分析....................................................................................................73.4.2经济分析....................................................................................................73.4.3操作分析....................................................................................................8
第四章系统概要设计.................................................................................................8
4.1设计思想..........................................................................................................84.2设计原则..........................................................................................................8
第五章系统详细设计..................................................................................................9
5.1超市仓库管理系统E-R图.............................................................................95.2各模块E—R图...............................................................................................9
5.2.1管理员的实体图及属性........................................................................9
5.2.2库存表实体及属性..........................................................................................10
5.2.3出库表的实体及属性..........................................................................10
5.2.4操作记录实际及属性..........................................................................11
5.3功能模块详细设计及算法............................................................................11
5.4系统模块设计................................................................................................11
5.4.1.系统登录模块......................................................................................11
5.4.2.库存管理模块.....................................................................................13
第六章系统测试运行................................................................................................21
第七章总结................................................................................................................21
第八章参考文献.......................................................................................................21.目:
前言
没有比信息化大背景下的自动化管理更能提高生产力提高效率的。而利用计算机实现自动化管理是时代的需要。如今的超市规模日益壮大相应的各种信息量也随之增多,以往的超市仓库操作方式运营机构已逐渐不能适应如此多的信息量带来的压力。超市需要处理大量的库存信息,还要时刻更新产品的销售信息,不断添加商品信息。商店自动化的产品管理在欧美等国家早已经实现,也是零售业管理的基础。它最主要的特点是能够实时的和准确的控制店内的销售情况。如果可以能够实时掌握销售流程及销售情况,则可以有效地加速商品的周转率并提高服务质量,而且可以减少产品售价不符等所产生的问题。顾客的消费要求的是希望在超市购物中能基本上都能购得所需的商品,并且还要既保证商品质量还要享受优质,方便的服务。
摘要
随着小超市规模的发展不断扩大,商品数量急剧增加,有关商品的各种信息量也成倍增长。超市时时刻刻都需要对商品各种信息进行统计分析。而大型的超市管理系统功能过于强大而造成操作繁琐降低了小超市的工作效率。
超市管理系统是市场上最流行的超市上常用的系统之一,它主要包含以下几个模块:
本文系统的分析了软件开发的背景以过程;首先介绍了软件的开发环境,其次介绍了本软件的详细设计过程:数据库的设计、各个模块的设计和实现,以及具体界面的设计和功能。
关键词:超市仓库管理系统
第一章绪论
1.1社会背景
超市已经成为人们生活中必不可少的一部分,所以对超市仓库的管理已成为迫在眉睫的事情。所以小型超市管理系统就应运而生了。
随着现代科学技术的迅猛发展,社会的进步,计算机技术已经渗透到各个领域,成为各行业必不可少的工具,特别是Internet技术的推广和信息高速公路的建立,使IT产业在市场竞争中越发显示出其独特的优势,步入信息化时代,有巨大的数据信息等待加工处理和传输,这使得对书数据库的进一步开发和利用显得尤为迫切。
作为国内市场的一些中小型超市,它们在信息化过程中的步伐要落后于大中型超市,国内的一些中小型超市大多由人力管理,因而出现了很多不足,例如:管理效率低、劳动强度大、信息处理速度低而且准确率也不够令人满意。为了提高超市仓库管理效率、减轻劳动强度、提高信息处理速度和准确度。因此我们选择来设计一个小型超市管理系统的方案。让计算机对仓库进行自动管理,超市管理员可以在计算机上直接实现仓库的信息管理,并能够在一定的程度上实现自动化,所以小型超市仓库管理系统的开发就显得十分重要。
1.2超市仓库背景
在我国超市形成在20世纪90年代初期,现在已经成为我国零售业的一种重要形态,为国民经济的发展发挥了重要的作用。而超市的仓库管理也显得尤为。超市仓库就是库存货物的地方,它的存在对每个超市的发展有着至关重要的作用,一个超市的成败很大一部分就与仓库有关。
在人们的日常生活中,超市所销售的物品接近人们的琐碎的生活,它的这中特性也注定了超市仓库的库存量不但大而且品种类型复杂,以前虽然人工记录比较慢但也可以满足超市正常营业的需要,但随着人们生活的水平的提高,先前的模式已不能满足正常的运营了。其经营管理也变得愈加复杂,早期的售货员站柜台的形式早已不能满足现有销售也的发展,这样就迫切地需要引入新的管理技术。
超市形态的高速发展,其经营管理也变得愈加复杂,日常所需要处理的数据
量也逐渐增大,商业运转的中间环节也越来越多,原始的人工管理已无法应对这复杂的市场。为此,在选题过程中,我选择了小型仓库管理系统设计题目,依靠现代化的计算机信息处理技术来管理超市仓库,从而节省了大量的人力、物力,改善了员工的工作条件,减轻了劳动强度,并且能够快速反映出商品的进、销、存等状况和各种反馈信息分析,使管理人员快速对市场的变化做出相应的决策,加快超市经营管理效率。
第二章开发运行环境
2.1JSP语言概述
JSP(javaserverpages)是由SunMicrosystems公司倡导、许多公司可一起建立的一种动态网页技术标准。JSP技术有点类似于ASP技术,他是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag)从而形成JSP文件(*.jsp)。
2.2JSP环境的搭建
(1)安装JDK,配置环境变量
Path:D:\ProgramFiles\Java\jdk1.6.0\bin;
ClassPath:D:\ProgramFiles\Java\jdk1.6.0\jre\lib\rt.jar;.;
(2)安装Tomcat,配置环境变量
Java_Home:D:\ProgramFiles\Java\jdk1.6.0
Tomcat_Home:D:\apache-tomcat-6.0.18
(3)在webapps、ROOT\WEB-INF下建一个classes文件夹,若要建一些包,如果包名找不到,则需在JDK环境变量中加D:\apache-tomcat-6.0.18\ROOT\WEB-INFclasses\即可。
2.3MySQL数据库
MySQL是一个小型关系型数据库管理系统,开发者是瑞典MySQLAB公司。前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开发源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
MySQL的特征
(1)使用C和C++编写,并使用多种编译器进行测试,保证了源代码的可移植性
(2)支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统
(3)为多种编译语言提供API。这些编程语言包括C、C++、Eiffel、Java、Perl、PHP、
Python、Ruby和Tel等
(4)支持多线程,充分利用CPU资源
(5)优化的SQL查询算法,有效的提高查询速度
(6)既能作为一个单独的应用程序应用在客户服务器网络环境中,也能作为一个库嵌入在其他的软件中提供多种语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名
(7)提供TCP/IP、ODBC和JDBC等多种数据库连接途径
(8)提供用于管理、检查、优化数据库等多种数据库连接途径
(9)可以处理拥有上千万条记录的大型数据库
第三章系统需求分析
3.1用户工作流程分析
仓库管理系统主要对货物的入库出库、生成报表、货物查询、盘点统计等关键功能优化创新,使其操作方便便于管理。
3.2性能需求分析
(1)硬件环境
处理器:Intel(R)core(TM)i3CPU
内存:2G
硬盘空间:
(2)软件环境
操作环境:window2007
数据库:MySQL
3.3功能需求分析
超市仓库管理系统,以其强大的功能性要求,系统实现了用户登陆管理、货物查询等基本功能要求,系统具体功能分析如下:
登录功能:用户登录系统。
查询功能:用户登陆后查询仓库货物存量。
录入功能:向仓库中添加货物以及货物的基本信息
3.4可行性分析
3.4.1技术可行性
本系统采用JSP+JavaBean+Servlet及MySql平台,由于Java的强大功能是对系统的开发容易了很多,特别是基于Jsp的网页形式的开发使Dreamweaver的优势得以发挥。
3.4.2经济可行性
因为通过网络传递销售信息可以不受距离的限制,因此可以借阅许多的人力和物力,方便管理,由此可以减少不必要的开支,同时该系统可以提高超市的销售效率,即提高了超市的经济效益,所以从经济上完全是可行的。
1.超市有能力承担系统开发费用
开发新系统的工作是一项间距复杂的工作,它的投资主要是人力和物力的投资。对于本系统的开发者来说,其主要投资还是在人力和物力两个方面。如果是企业自己安排人手开发系统的话,其主要的投资还是在人力资源上,从系统的业务需求调查到系统的分析编码制作都是需要巨大的人力投入的。软件企业作为一个简短的高科技产业,其员工要求都比一般企业的要求要高,而且对系统开发及软件产业了解比较多,所以在自我开发管理系统的过程中,企业自己比较容易安排人手,这样就可以为企业借阅大部分的额外开支。同时软件就其它产品来说,属于高端行业,无论是产品的价格还是质量都比较高,而经营产品的经销商或者是商家都要求有雄厚的资金支持。所以,在系统的开发过程中,企业完全有能力承担开发费用。
2.新系统将为企业带来经济效益
管理系统是一个信息化、智能化和先进管理理念的集合体。而管理是一个动态过程,在其运行过程中要采取多项措施。所以在管理中获得经济效益是一个综
合效益,要对它进行直接定量的分析是比较困难的。一般新系统带来的经济效益是简介的,其最主要的表现就是减少了企业管理费用和人力开支。而其它一些繁琐的食物都通过新系统来加以分析解决,不仅节省了大量的时间,还为企业的各项决策提供了宝贵的资料,为企业带来巨大的经济效益。
3.4.3操作可行性
本系统采用基于Windows的图形用户界面,而该系统是大家熟悉的操作系统,对于那些有一般的计算机知识的人员就可以轻松上手。而整个超市管理系统采用最友好的交互界面,简介明了,不需要对数据库进行深入的了解。
由此,该系统的操作是可行的,有必要开发该系统。
综合以上三方面,该系统具有很高的开发可行性,无论是从技术上或者经济上还是操作上。因此,可以设计该系统的数据流程图,建立数据字典。业务流程图
第四章系统概要设计
4.1设计思想
(1)系统分成几个相对独立的模块,但这些模块都进行集中式管理。
(2)分层的模块化程序设计思想,整个系统采用模块化结构设计。作为应用程序有较强的可操作性和扩展性。
(3)合理的数据流设计,在应用系统设计中,相对独立的模块间以数据流相互连接,使各模块间的耦合性较低,方便系统运行,提高系统安全性。
4.2设计原则
为了使本系统功能齐全完备,操作简便,最大限度的提高软件的质量,从而满足用户的实际需要,在设计开发过程中遵循了如下原则:
(1)合法性原则:依据产品核算系统的工作规定以及要求,参照核算实际的工作情况,进行诸如产品进货、销售等工作。
(2)实用性原则:适合产品信息管理工作的实际需求,并能够处理一些特殊情况的要求,此外,尽可能预留空间,以便扩充功能。
(3)准确性原则:对输入的相关资料建立检错机制,及时报错,使用户能够及时准确的输入合法资料(如:类型匹配,长度不超限等)。
(4)易操作原则:要求设计的系统功能齐全,界面友好,操作方便,必要的地方进行提示。
(5)源程序可读性原则:为了便于其他设计,维护人员读懂代码或以后的代码修改,软件升级维护,即可能做好代码注释工作。
(6)优化原则:为了达到优化的目的,合理的运用窗口,菜单,对象等的继承,自定义用户对象,事件,函数,减少不必要的重复性代码,使程序简介明了,也方便了将来的维护。
(7)安全性原则:可以为该系统的用户设置用户权限。
第五章系统详细设计
5.1超市仓库管理系统E-R图
如下
我所设计的程序只包含其中的几个子模块
5.2、详细设计各个模块E—R图
5.2.1管理员的实体图及属性
管理员信息
ID密码验证码
图4.1管理员的实体及属性
5.2.2库存表实体及属性
库存表
数量名称价格
图4.2订单实体及属性
5.2.3出库表的实体及属性出库表
名称
时间
商品名称金额类型
5.2.4操作记录实际及属性操作记录
登陆管理
发件删除修改
图4.4.6操作记录实体及属性
5.3功能模块详细设计及算法
通过深入研究任务书,搜集、查阅与课题相关的资料,在总体设计阶段该系统预设计系统登录、商品入库、商品查询、商品更改、删除等几个功能模块。个模块又包含多项子功能:
1、统登录模块需要包含完成根据提供的用户名、初始密码进行登录验证如果成功则进入系统,否则提示无法登录。
2、商品入库模块需要包含完成根据商品编号的首字母来进行商品的分类如果输入的商品在数据库中存在,则给出已有的信息,可以修改数量;如果输的商品不存在,则需要输入全部信息。
3、商品查询模块需要包含完成商品查询,分类列出数据库里全部的商品信息。
4、分组模块需包括对报名信息按项目进行分库、分组等功能项。
5、商品更改、删除模块要包括完成商品更改,当商品售出对数量进行修改或对其他信息进行修改,商品删除,商品数量为0则进行删除。
5.4系统模块设计
5.4.1.系统登录模块
功能:本模块的主要功能是对用户身份进行,验证只有系统的合法用户才能进入系统。其窗体如下图:
在进行系统登录过程中,登录模块将调用数据库里的用户清单,并对账号和密码进行验证,只有输入了正确的账号和密码后,系统登录才会成功。并在输入了错误的或者是不存在的账户和密码时,系统会给出出错信息提示,指明登录过程中的错误输入或者错误操作,以便用户进行正确的登录。
实现代码如下:
classCLoginDlg:publicCDialog
{
//Construction
public:
CLoginDlg(CWnd*pParent=NULL);//standardconstructor
~CLoginDlg();
//DialogData
//{{AFX_DATA(CLoginDlg)
enum{IDD=IDD_LOGIN_DIALOG};
CEditm_control_username;
CEditm_control_password;
intcount;
intseconds;
CSMButtonm_ok;
CSMButtonm_cancel;
CStringm_Pwd;
CStringm_UserName;
COLORREFm_clrText;
COLORREFm_clrBkgnd;
CBrushm_brBkgnd;
CBrushm_brControlBkgnd1;
CBrushm_brControlBkgnd2;
protected:
virtualvoidDoDataExchange(CDataExchange*pDX);//DDX/DDVsupport
virtualvoidOnOK();
afx_msgBOOLOnEraseBkgnd(CDC*pDC);
afx_msgHBRUSHOnCtlColor(CDC*pDC,CWnd*pWnd,UINTnCtlColor);
afx_msgvoidOnTimer(UINTnIDEvent);
virtualBOOLOnInitDialog();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
voidCLoginDlg::OnOK()
{UpdateData(TRUE);
if(m_UserName==""){
MessageBox("请输入用户名");
return;}
if(m_Pwd==""){
MessageBox("请输入密码");
return;}
//定义CUsers对象,用于从表Users中读取数据
CUsersuser;
user.GetData(m_UserName);
//如果读取的数据与用户输入数据不同,则返回
if(user.GetPwd()!=m_Pwd)
{if(count
{MessageBox("用户信息不正确,无法登录!");
count++;
m_Pwd.Empty();
m_control_password.SetFocus();
UpdateData(FALSE);}
else
{
MessageBox("你可能是非法用户
",MB_OK|MB_ICONHAND);
exit(0);}}else{KillTimer(0);CDialog::OnOK();}}!","警告
5.4.2.库存管理模块
功能:本模块的主要功能是商品信息的查询和更新,库存信息的查询和更新。查询商品信息:主要功能查询商品的明细信息,和它的库存信息
添加商品信息:主要功能添加新进的商品。
修改商品信息:主要功能是修改商品的信息,包括他的库存数量。删除商品信息:主要功能是删除不再销售的商品信息。
输入项、输出项:本模块的数据输入项主要是商品编号。
窗体如下:
代码实现如下:
voidCStoreHouseManDlg::Refresh_Data()
{
UpdateData(TRUE);
CStringcSource;
cSource="SELECTSid,SnameAS仓库单位,MemoAS备注";
cSource+="FROMStorehouseORDERBYSname";
m_adodc.SetRecordSource(cSource);
m_adodc.Refresh();
//设置表格列宽度
_variant_tvIndex;
vIndex=long(0);
m_datagrid.GetColumns().GetItem(vIndex).SetWidth(0);
vIndex=long(1);
m_datagrid.GetColumns().GetItem(vIndex).SetWidth(100);
vIndex=long(2);
m_datagrid.GetColumns().GetItem(vIndex).SetWidth(420);
}
voidCStoreHouseManDlg::OnAddButton()
{
//TODO:Addyourcontrolnotificationhandlercodehere
UpdateData(TRUE);
//打开编辑对话框
CStoreHouseEditDlgdlg;
dlg.cSid="";
if(dlg.DoModal()==IDOK)
Refresh_Data();
}
voidCStoreHouseManDlg::OnModiButton()
{
//TODO:Addyourcontrolnotificationhandlercodehere
if(m_adodc.GetRecordset().GetEof())
{
MessageBox("请选择要修改的记录");
return;
}
UpdateData(TRUE);
CStoreHouseEditDlgdlg;
dlg.cSid=m_datagrid.GetItem(0);//记录编号
dlg.m_Sname=m_datagrid.GetItem(1);//仓库名称
dlg.m_Memo=m_datagrid.GetItem(2);//备注信息
if(dlg.DoModal()==IDOK)
Refresh_Data();
}
voidCStoreHouseManDlg::OnDelButton()
{
//TODO:Addyourcontrolnotificationhandlercodehere
if(m_adodc.GetRecordset().GetEof())
{
MessageBox("请选择要删除的记录");
return;
}
CStringSid;
Sid=m_datagrid.GetItem(0);
CStoreInobj;
if(obj.HaveStore(Sid)==1)
{
MessageBox("此仓库信息出现在入库单中,不能删除");
return;
}
CTakeOutobj1;
if(obj1.HaveStore(Sid)==1)
{
MessageBox("此仓库信息出现在出库单中,不能删除");
return;
}
CProInStoreobj2;
if(obj2.HaveStore(Sid)==1)
{
MessageBox("此仓库信息出现在库存产品信息中,不能删除");
return;
}
if(MessageBox("是否删除当前记录","请确定",MB_YESNO)==IDYES)
{
CStorehousesh;
sh.sql_delete(Sid);
Refresh_Data();
}
}
BOOLCStoreHouseManDlg::OnInitDialog()
{
CDialog::OnInitDialog();
//TODO:Addextrainitializationhere
Refresh_Data();
returnTRUE;
}//returnTRUEunlessyousetthefocustoacontrol//EXCEPTION:OCXPropertyPagesshouldreturnFALSE
在Dreamweaver操作环境下设计出主要的登陆界面采用超链接的方式跟其
它的两个模块连接起来
入库模块
这是网页形式的代码
入库单
数据库的连接以及值传递的代码
Stringuser="scott";
Stringpassword="tang";
Stringurl="jdbc:oracle:thin:@127.0.0.1:1521:orcl";
Connectioncon=null;
ResultSetrs2=null;
Statementstmt2=null;
try{Class.forName("oracle.jdbc.driver.OracleDriver");}
catch(ClassNotFoundExceptione){
out.print("connectionerror:"+e);
}
try{con=DriverManager.getConnection(url,user,password);
PreparedStatementstmt=con.prepareStatement("insertintocangku2values(?,?,?)");
%>
编号
货物名称
数量
返回首页面
出库模块
这是网页形式的代码
出库单
Stringuser="scott";
Stringpassword="tang";
Stringurl="jdbc:oracle:thin:@127.0.0.1:1521:orcl";
Connectioncon=null;
ResultSetrs2=null;
Statementstmt2=null;
try{Class.forName("oracle.jdbc.driver.OracleDriver");}
catch(ClassNotFoundExceptione){
out.print("connectionerror:"+e);
}
try{con=DriverManager.getConnection(url,user,password);
PreparedStatementstmt=con.prepareStatement("insertintoproductvalues(?,?,?,?)");
%>
rs2.close();
stmt2.close();
}catch(SQLExceptione){
out.print("sqlerror:"+e);
}
%>
返回登录界面
第六章程序测试
软件系统的开发经历了需求分析、设计和编程三个阶段,为了改进软件质量并尽量避免错误的产生,应该对系统的分析、设计和编程过程进行审核与测试。由于分析、设计和编程都是人来完成的,人在工作中难免会犯各种各样的错误,这就需要我们对软件系统进行测试,找出可能存在的错误。系统在投入使用之前必须进行严格的测试,测试的内容包括功能测试、性能测试、可用性测试、客户端兼容性测试、安全测试等。我们可以根据测试及时发现问题并提出解决方案,便于系统的维护与升级。
本系统设计过程中,主要是采用了单元测试方式,针对每一个模块中的每一个方法进行测试,主要通过给局部变量赋初值,然后是打印测试的结果。经过初步测试,系统在服务器端和客户端均基本上能正常运行。
第七章总结
在此次设计当中认我认识到开发一项好的软件不是一件简单的事情,若想自己开发的软件得到利用,那么必须要充分了解市场需要,不断的寻找现存软件出现的种种问题,然后才能设计出实用型的软件。
其次,在设计中我了解了,在开发一个项目时一定要先做好规划,按照软件的开发过程,详细地写好每一个必要的文档。
由于开发者能力有限,加上时间仓促,本系统难免会出现一些不足之处,我们深表歉意,如发现还有其它问题,希望老师批评指正。
第八章参考文献
[1]
社,2005
[2]
[3]
[4]
[5]
[6]
[7]王珊.数据库系统概论.高教出版社,1987方逵.JSP编程技术与应用北京:高等教育出版社1991武延军黄飞跃.精通JSP编程技术北京:人民邮电出版社,2001杨俊生.JSP开发技术.北京:清华大学出版社,2011埃克尔.Java编程思想.北京:机械工业出版社,2007霍斯特曼.JAVA核心技术卷.北京:机械工业出版社,2008王丙义.数据库原理与VisualFoxpro应用.北京:中国铁道出版