商品库存管理系统课程设计Word格式文档下载.docx
《商品库存管理系统课程设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《商品库存管理系统课程设计Word格式文档下载.docx(26页珍藏版)》请在冰豆网上搜索。
2.确定系统开发环境
由于大多数公司内部使用的计算机平台都是基于Windows环境的。
为了降低系统成本,应最大程度地利用现有的资源、兼容现有的环境,可确定使用下面的开发环境:
★数据库:
MicrosoftSQLServer2000;
★前端开发工具:
myeclipse;
3.开发工具的选择
可视化程序设计是一种全新的程序设计方法,全面采用面向对象的程序设计技术,使用事件驱动机制进行程序设计。
利用可视化开发工具可以快速、高效地开发应用程序。
可视化的开发工具很多。
myeclipse是集成开发环境,是目前最流行的Windows平台应用程序开发环境。
它是把代码的编写、程序的调试、编译、运行以及其他的相关操作都集成在一起的“编程工具”。
作用是程序员通过它这个平台,利用编程语言来写程序,调试,运行。
SQLServer2000是Microsoft公司推出的SQLServer数据库管理系统。
该版本继承了SQLServer7.0版本的优点同时又比它增加了许多更先进的功能,具有使用方便,可伸缩性好与相关软件集成程度高等优点,可跨越从运行MicrosoftWindows98的膝上型电脑到运行MicrosoftWindows2000的大型多处理器的服务器等多种平台使用。
经分析,本库存管理系统选用myeclipse来设计界面,选用SQLServer2000来建立后台数据库。
(三)系统的开发及功能描述
1.开发方法的选择
信息系统的开发是一项比较复杂的工作,因此我们必须选用科学有效的开发方法。
本系统的开发采用了生命周期法。
在系统设计时遵循系统调查研究、系统分析、系统设计和系统实施四个主要阶段进行设计,而在具体的设计上,则通过在系统的使用及对系统了解的不断加深中,对某一部分或几部分进行重新分析、设计、实施,使系统逐步完善。
2.系统功能描述及系统安全性
本库存管理系统是一套对货品入库、出库、库存进行全面管理的系统。
在管理内容上,它的主要功能包括:
进货管理:
进行填写货品信息,货品采购入库,入库单据的填写和修改最低库存量。
出货管理:
进行货品出库,出货单据的填写和获取采购员信息。
信息查询:
货品信息查询,库存信息查询,入库、出库单据查询,日报表、月报表查询。
统计报表:
完整的日报表、月报表统计查询功能,每张单据每次业务金额都可以清楚地反映。
系统管理:
身份验证,修改本人密码,注册用户,修改删除用户。
由于库存管理系统包含比较重要的信息,因此,在系统设计时除了注重用户的需求,还要保证系统的安全性和一致性,体现如下:
(1)安全性:
本系统中共分为三类不同的用户,分别具有不同的权限。
(2)一致性:
系统的数据要保证一致性、准确性,当某一数据库中记录发生改变时,与之相关联的数据库也随之变化。
(四)系统逻辑模型
本系统的逻辑模型以系统流图为主要描述工具。
我们用不同的符号代表这四个元素:
→表示数据流;
=表示文件(数据存储);
○表示加工;
图1-2 库存管理系统的第二层图
二、系统设计
(一)系统总体结构设计
1.系统功能分析
本库存管理系统需要完成的功能有:
(1)库存管理的各种信息的输入,包括入库、出库、货品信息的输入等。
(2)库存管理的各种信息的查询、修改和维护。
(3)入库单、出库单的生成,日报表、月报表的生成。
(4)在货品库存中加入所允许的最低库存字段,对所有库存物资实现监控和报警。
2.系统功能模块图
根据系统功能分析,画出系统功能模块图如下:
(二)数据库设计
数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。
1.数据库概念结构设计
图2-2 库存管理系统E-R图
(三)系统功能模块的详细设计
本库存管理系统是本着用户操作界面友好、清晰、易学易用的原则进行设计的。
1.身份验证模块的设计
图2-3 用户登录模块界面设计该模块的流程图如图2-4所示:
此外,对一个完整的系统而言,用户是应该可以修改自己的密码的,因此系统中应该具有修改密码的功能,提高数据的安全性。
图2-5 修改密码界面设计
2.系统主界面的实现
图2-6 主界面(admin)设计
图2-7 主界面(仓管)设计
图2-8 主界面(经理)设计
3.进货管理模块的实现
进货管理模块包括填写货品信息、入库单、修改最低库存三个子模块。
(1)填写货品信息
(2)入库单
(3)修改最低库存
4.出库管理模块的实现
出库管理包括填写出库单,获取采购员信息两个子模块。
(1)出库单
(2)获取采购员信息
5.报表统计模块的实现
本系统的报表分为日报表和月报表,日报表在添加入库单和出库单时就已经自动添加进数据库中的日报表了,所以在此只需再手动添加月报表。
三、系统实现
系统实现包括用户需求实现,系统界面实现和数据库实现三方面。
1.用户登录界面
用户通过该界面登录进入系统。
图3-1 系统登录界面3.1系统管理
修改密码界面以下是注册用户界面:
系统管理员注册用户界面
注册前数据库中操作员个人信息表如图3-7:
注册前的操作员个人信息表数据库注册用户成功界面:
系统管理员修改删除用户界删除报表界面如下图:
系统管理员删除报表界面3.2进货管理仓库管理员填写入库单界面如下图:
仓库管理员填写入库单界面界面自动跳转到如下图:
仓库管理员填写入库单界面
仓库管理员填写货品信息界面
入库单填写的信息会自动加入入库单数据库,并且更改库存信息表和日报表中的相
关信息。
未添加信息前的入库单
入库单未添加前的库存信息表填写完入库单的图如下:
四、系统开发总结
此次库存管理系统开发让我学习到很多知识,现总结如下:
◆系统开发的过程中,我深刻体会到了以前上课老师经常提起的一个问题,那就是:
一个系统开发的过程中编码不是最重要的,重要的是对系统进行分析以及建立恰当的系统模型。
◆在该库存管理系统设计中,从系统的实用性出发,我能够在开发该系统时站在用户的角度看问题,本着用户操作界面友好、清晰、易学易用的原则进行设计。
总之,这次的系统开发,实现了我自己动手完成一个系统开发的目标,也学习到很多东西,不只是实践经验,还有一些做事的道理:
在工作时,要尽量把要遇到的问题考虑周全,提前做好准备,那样就不会在遇到问题时有措手不及的感觉。
参考文献:
[1]梅玫:
《物资库存的计算机管理》,黑龙江科技信息,2009年7月25日.
[2]申冠楠,郭宗义《百货店商品的库存管理系统的设计与实现》,现代商业,2010年1月18日.
[3]刘志坚:
《中小制造企业库存管理系统的开发与设计》,中北大学,2009年4月25日.
[4][美]c.j.date:
《数据库系统导论(英文版第七版)》,机械工业出版社,2002年.
[5]邓良松:
《软件工程》,西安电子科技大学出版社,2004年.
[6]邓远志:
《数据库设计方法》,《南昌教育学院学报》,2005年第20卷第4期.
[7]萨师煊等编著,《数据库系统概论》,高等教育出版社,2000年.
[8]东方人华主编,《JSP范例入门与提高》,清华大学出版社,2003年.
[9]李佳,付强,丁宁等编著,《java开发技术大全》,清华大学出版社,2009年.
[10]欧立奇,康祥顺,马煜编著,《java案例开发集锦》,电子工业出版社,2005年.
[11]邝孔武,王晓敏编著,《信息系统分析与设计》,清华大学出版社,1999年.
[12]史济民:
《软件工程-原理、方法与应用》,高等教育出版社,2002年.
[13]薛华成:
《管理信息系统》,清华大学出版社,1999年.
[14]张金城:
《管理信息系统》,北京大学出版社,2004年.
[15]马士华:
《供应链管理》,机械工业出版社,2000年.
[16]李玉良,邵新宇:
《CPFR——供应链库存管理技术的新趋势》,机械设计与制造工程,2001年第30卷第3期.
附录
源代码:
importtongji.*;
importdanjuchaxun.*;
importjavax.swing.ImageIcon;
importjavax.swing.JLabel;
importjavax.swing.JPanel;
importjavax.swing.JFrame;
importjavax.swing.JButton;
importjava.awt.Rectangle;
publicclassDanjuchaxunextendsJFrame{
privatestaticfinallongserialVersionUID=1L;
ImageIconbeijing=newImageIcon("
pic/danjuchaxunbeijing.jpg"
);
privateJPaneljContentPane=null;
privateJButtonjButton=null;
privateJButtonjButton1=null;
privateJButtonjButton2=null;
privateJButtonjButton3=null;
privateJButtonjButton4=null;
privateJButtonjButton5=null;
privateJButtonjButton6=null;
privateJButtonjButton7=null;
privateJButtonjButton8=null;
privateJButtonjButton9=null;
privateJButtonjButton10=null;
privateJButtonjButton11=null;
//privateJButtonjButton12=null;
privateJButtonjButton13=null;
JLabelbackgroundall=newJLabel(beijing);
/**
*Thisisthedefaultconstructor
*/
publicDanjuchaxun(){
super();
initialize();
}
*Thismethodinitializesthis
*@returnvoid
privatevoidinitialize(){
this.setBounds(233,218,156,303);
this.setContentPane(getJContentPane());
this.setTitle("
单据查询"
this.setUndecorated(true);
this.setResizable(false);
this.getLayeredPane()
.add(backgroundall,newInteger(Integer.MIN_VALUE));
backgroundall.setBounds(0,0,beijing.getIconWidth(),beijing
.getIconHeight());
this.setVisible(true);
*ThismethodinitializesjContentPane
*@returnjavax.swing.JPanel
privateJPanelgetJContentPane(){
if(jContentPane==null){
jContentPane=newJPanel();
jContentPane.setLayout(null);
jContentPane.setOpaque(false);
jContentPane.add(getJButton(),null);
jContentPane.add(getJButton1(),null);
jContentPane.add(getJButton2(),null);
jContentPane.add(getJButton3(),null);
jContentPane.add(getJButton4(),null);
jContentPane.add(getJButton5(),null);
jContentPane.add(getJButton6(),null);
jContentPane.add(getJButton7(),null);
jContentPane.add(getJButton8(),null);
jContentPane.add(getJButton9(),null);
jContentPane.add(getJButton10(),null);
jContentPane.add(getJButton11(),null);
//jContentPane.add(getJButton12(),null);
jContentPane.add(getJButton13(),null);
}
returnjContentPane;
*ThismethodinitializesjButton
*@returnjavax.swing.JButton
privateJButtongetJButton(){
if(jButton==null){
jButton=newJButton();
jButton.setBounds(newRectangle(8,8,140,22));
jButton.setText("
进货单据查询"
jButton.addActionListener(newjava.awt.event.ActionListener(){
publicvoidactionPerformed(java.awt.event.ActionEvente){
newChaxundanjuJH();
}
});
returnjButton;
*ThismethodinitializesjButton1
privateJButtongetJButton1(){
if(jButton1==null){
jButton1=newJButton();
jButton1.setBounds(newRectangle(8,30,140,22));
jButton1.setText("
出货单据查询"
jButton1.addActionListener(newjava.awt.event.ActionListener(){
newChaxundanjuCH();
returnjButton1;
*ThismethodinitializesjButton2
privateJButtongetJButton2(){
if(jButton2==null){
jButton2=newJButton();
jButton2.setBounds(newRectangle(8,52,140,22));
jButton2.setText("
退货出库单据查询"
jButton2.addActionListener(newjava.awt.event.ActionListener(){
newChaxundanjuTHCK();
returnjButton2;
*ThismethodinitializesjButton3
privateJButtongetJButton3(){
if(jButton3==null){
jButton3=newJButton();
jButton3.setBounds(newRectangle(8,74,140,22));
jButton3.setText("
客户退货单据查询"
jButton3.addActionListener(newjava.awt.event.ActionListener(){
newChaxundanjuTHRK();
returnjButton3;
ThismethodinitializesjButton4
*@returnjavax.swing.JButton
privateJButtongetJButton4(){
if(jButton4==null){
jButton4=newJButton();
jButton4.setBounds(newRectangle(8,96,140,22));
jButton4.setText("
库存调拨单据查询"
jButton4.addActionListener(newjava.awt.event.ActionListener(){
newChaxundanjuDB();
returnjButton4;
}*ThismethodinitializesjButton5
privateJButtongetJButton5(){
if(jButton5==null){
jButton5=newJButton();
jButton5.setBounds(newRectangle(8,118,140,22));
jButton5.setText("
供货商统计"
jButton5.addActionListener(newjava.awt.event.ActionListener(){
newTongjiGHS();
returnjButton5;
}*ThismethodinitializesjButton6
privateJButtongetJButton6(){
if(jButton6==null){
jButton6=ne