商品库存管理系统课程设计_第1页
商品库存管理系统课程设计_第2页
商品库存管理系统课程设计_第3页
商品库存管理系统课程设计_第4页
商品库存管理系统课程设计_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目 录引言2一、系统分析2(一)选题的背景2(二)系统需求分析3(三)系统的开发及功能描述4(四)系统逻辑模型5二、系统设计6(一)系统总体结构设计6(二)数据库设计6(三)系统功能模块的详细设计7三、系统实现11四、系统开发总结16参考文献16附 录171引言随着我国市场经济的蓬勃发展和人们对物质水平需求的增加,各行各业都处于一个飞速发展的时期,行业的快速发展必然导致各企业之间的竞争更加激烈,为了使自己的企业在竞争中能够站稳脚跟,不被激烈的竞争环境所压倒,必然要求企业加强对自身的管理,提高企业的经营效率。本库存管理系统的开发主要包括前端应用程序以及后台数据库的建立和维护两个方面。经过分析,我

2、选用myeclipse来开发系统,利用其提供的各种面向对象的开发工具,来操纵数据库。本论文正文分为五部分。第一部分介绍了开发库存管理系统的必要性以及如何开发,并简要概述了myeclipse和SQL Server 2000。第二部分介绍系统开发前的准备,包括系统的需求说明及系统总体结构设计和详细设计。第三部分并着重阐述了系统主要功能模块的具体实现。第四部分是系统开发的后期工作,讲到了该系统的不完善之处及本次系统开发过程中一些切身的感受与想法,是我做这次课程设计的心得体会1、 系统分析(一)选题的背景企业的库存物资管理往往是很复杂、很繁琐的。由于所掌握的物资种类众多,订货、管理、发放的渠道各有差异

3、,各个企业之间的管理体制不尽相同,各类统计报表繁多,因此仓库的库存管理必须编制一套库存管理信息系统,实现计算机化操作,而且必须根据企业的具体情况制定相应的方案。 由于超市的行业特殊性,产品种类繁多,业务量巨大,若仍然采用人工记账的方式,必然不能满足企业的需求,企业需要利用计算机来进行库存管理,因此需要构造一个库存管理系统。一个完整的企业物资供应管理系统应包括采购计划管理,合同收托管理、仓库库存管理、定额管理、统计管理、财务管理等模块。其中仓库的库存管理是整个物资供应管理系统的核心。因此有必要开发一套独立的库存管理系统来提高企业工作效率, 而所使用的这套库存管理系统是企业生产经营管理活动中的核心

4、,此系统必须可以用来控制合理的库存费用、适时适量的库存数量,使企业生产活动效率最大化。通过对这些情况的仔细调查,我开发了下面的仓库库存管理系统。(二)系统需求分析 系统需求分析就是在用户需求调研的基础上,确定系统的总体结构方案,完成相应的需求分析报告。在确定系统的总体结构方案过程中,包括确定应用程序的结构、系统开发环境和开发工具的选择。1.应用程序结构确定 从用户应用角度来看,可把应用程序系统的组成部分分成数据存储层、业务处理层和界面表示层等3个层次,而应用程序结构可归纳为:集中式应用程序结构、单机板应用程序结构、多层服务器应用程序结构、浏览器服务器应用程序结构、客户机服务器应用程序结构等5种

5、类型。 本库存管理系统就采用了单机版应用程序结构,将数据库和应用程序置于一台机器上,这样更加节约成本,适合中小规模的超市使用。用户可以轻松将其拷贝到其他计算机上,可以同时运行程序。2.确定系统开发环境 由于大多数公司内部使用的计算机平台都是基于Windows环境的。为了降低系统成本,应最大程度地利用现有的资源、兼容现有的环境,可确定使用下面的开发环境: 数据库:Microsoft SQL Server 2000; 前端开发工具:myeclipse;3开发工具的选择可视化程序设计是一种全新的程序设计方法,全面采用面向对象的程序设计技术,使用事件驱动机制进行程序设计。利用可视化开发工具可以快速、高

6、效地开发应用程序。可视化的开发工具很多。myeclipse是集成开发环境,是目前最流行的 Windows 平台应用程序开发环境。它是把代码的编写、程序的调试、编译、运行以及其他的相关操作都集成在一起的“编程工具”。 作用是程序员通过它这个平台,利用编程语言来写程序,调试,运行。SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统。该版本继承了SQL Server 7.0 版本的优点同时又比它增加了许多更先进的功能,具有使用方便,可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Micro

7、soft Windows 2000 的大型多处理器的服务器等多种平台使用。经分析,本库存管理系统选用myeclipse来设计界面,选用SQL Server 2000来建立后台数据库。(三)系统的开发及功能描述1.开发方法的选择信息系统的开发是一项比较复杂的工作,因此我们必须选用科学有效的开发方法。本系统的开发采用了生命周期法。在系统设计时遵循系统调查研究、系统分析、系统设计和系统实施四个主要阶段进行设计,而在具体的设计上,则通过在系统的使用及对系统了解的不断加深中,对某一部分或几部分进行重新分析、设计、实施,使系统逐步完善。2.系统功能描述及系统安全性本库存管理系统是一套对货品入库、出库、库存

8、进行全面管理的系统。在管理内容上,它的主要功能包括:进货管理:进行填写货品信息,货品采购入库,入库单据的填写和修改最低库存量。 出货管理:进行货品出库,出货单据的填写和获取采购员信息。信息查询:货品信息查询,库存信息查询,入库、出库单据查询,日报表、月报表查询。统计报表:完整的日报表、月报表统计查询功能,每张单据每次业务金额都可以清楚地反映。系统管理:身份验证,修改本人密码,注册用户,修改删除用户。由于库存管理系统包含比较重要的信息,因此,在系统设计时除了注重用户的需求,还要保证系统的安全性和一致性,体现如下:(1)安全性:本系统中共分为三类不同的用户,分别具有不同的权限。(2)一致性:系统的

9、数据要保证一致性、准确性,当某一数据库中记录发生改变时,与之相关联的数据库也随之变化。(四)系统逻辑模型本系统的逻辑模型以系统流图为主要描述工具。我们用不同的符号代表这四个元素:表示数据流;表示文件(数据存储);表示加工;出货结果出货管理进货管理采购员表仓库信息表 操作员个人信息表客户信息表采购员表查询结果修改结果修改要求信息查询操作员个人信息表密码用户编号用户编号密码数据维护信息查询系统管理员仓库管理员进货管理身份验证身份验证操作员个人信息表系统管理员库存管理系统出货管理进货结果月报表统计报表统计统计结果采购员表库存信息表表货品信息表表库存信息表表日报表经理身份验证用户编号密码信息查询经理货

10、品信息表库存信息表入库单出库单信息查询查询结果日报表月报表操作员个人信息表图1-2库存管理系统的第二层图二、系统设计(一)系统总体结构设计1.系统功能分析本库存管理系统需要完成的功能有:(1)库存管理的各种信息的输入,包括入库、出库、货品信息的输入等。 (2)库存管理的各种信息的查询、修改和维护。 (3)入库单、出库单的生成,日报表、月报表的生成。 (4)在货品库存中加入所允许的最低库存字段,对所有库存物资实现监控和报警。 2系统功能模块图根据系统功能分析,画出系统功能模块图如下:库存管理系统身份验证注册用户修改删除用户修改密码信息查询报表统计进货管理出货管理系统管理入库单填写填写货品信息修改

11、最低库存出库单填写获取采购员信息日报表月报表库存查询货品查询报表查询(二)数据库设计数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。1. 数据库概念结构设计货品采购仓库客户存储订购采购员n1mnn1货品编号规格型号单位货品名称客户编号客户名称仓库名称负责人联系电话采购员编号采购的货品类别图2-2库存管理系统ER图(三)系统功能模块的详细设计本库存管理系统是本着用户操作界面友好、清晰、易学易用的原则进行设计的。1身份验证模块的设计库存管理系统用户编号:密码:退出登陆图2-3用户登录模块界面设计 该模块的流程图如图2-4所示:是否用

12、户登 录是否为合法用户?否选择身份判断用户类型进入系统开 始结 束此外,对一个完整的系统而言,用户是应该可以修改自己的密码的,因此系统中应该具有修改密码的功能,提高数据的安全性。请输入新密码请确认新密码确认取消图2-5修改密码界面设计2系统主界面的实现 系统管理删除报表查询修改信息退出系统图2-6主界面(admin)设计修改密码进货管理出货管理报表统计图2-7主界面(仓管)设计修改密码信息查询退出系统图2-8主界面(经理)设计 3进货管理模块的实现 进货管理模块包括填写货品信息、入库单、修改最低库存三个子模块。(1)填写货品信息填写货品信息货品编号货品名称单位货品类别规格型号颜色确定取消(2)

13、入库单 入库单凭证编号货品编号数量库别进货单价入库时间确定取消采购人编号制单人(3)修改最低库存修改最低库存货品编号最低库存确定取消 4出库管理模块的实现出库管理包括填写出库单,获取采购员信息两个子模块。(1)出库单出库单凭证编号货品编号数量库别出货单价出库时间确定取消客户编号制单人(2)获取采购员信息获取采购员信息货品编号搜索的信息:确定搜索5.报表统计模块的实现本系统的报表分为日报表和月报表,日报表在添加入库单和出库单时就已经自动添加进数据库中的日报表了,所以在此只需再手动添加月报表。三、系统实现系统实现包括用户需求实现,系统界面实现和数据库实现三方面。1用户登录界面用户通过该界面登录进入

14、系统。图3-1系统登录界面 3.1 系统管理修改密码界面 以下是注册用户界面:系统管理员注册用户界面注册前数据库中操作员个人信息表如图3-7:注册前的操作员个人信息表数据库 注册用户成功界面:系统管理员修改删除用户界 删除报表界面如下图:系统管理员删除报表界面 3.2 进货管理 仓库管理员填写入库单界面如下图:仓库管理员填写入库单界面 界面自动跳转到如下图:仓库管理员填写入库单界面仓库管理员填写货品信息界面入库单填写的信息会自动加入入库单数据库,并且更改库存信息表和日报表中的相关信息。未添加信息前的入库单入库单未添加前的库存信息表 填写完入库单的图如下: 四、系统开发总结此次库存管理系统开发让

15、我学习到很多知识,现总结如下:u 系统开发的过程中,我深刻体会到了以前上课老师经常提起的一个问题,那就是:一个系统开发的过程中编码不是最重要的,重要的是对系统进行分析以及建立恰当的系统模型。u 在该库存管理系统设计中,从系统的实用性出发,我能够在开发该系统时站在用户的角度看问题,本着用户操作界面友好、清晰、易学易用的原则进行设计。总之,这次的系统开发,实现了我自己动手完成一个系统开发的目标,也学习到很多东西,不只是实践经验,还有一些做事的道理:在工作时,要尽量把要遇到的问题考虑周全,提前做好准备,那样就不会在遇到问题时有措手不及的感觉。参考文献:1 梅玫: 物资库存的计算机管理,黑龙江科技信息

16、,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开发技术大全,

17、 清华大学出版社, 2009年. 10欧立奇,康祥顺,马煜编著,java案例开发集锦 , 电子工业出版社 ,2005年.11 邝孔武,王晓敏编著,信息系统分析与设计,清华大学出版社,1999年.12 史济民:软件工程-原理、方法与应用,高等教育出版社,2002年. 13 薛华成:管理信息系统,清华大学出版社,1999年. 14 张金城:管理信息系统,北京大学出版社,2004年.15马士华:供应链管理,机械工业出版社,2000年.16李玉良,邵新宇:CPFR供应链库存管理技术的新趋势,机械设计与制造工程,2001年第30卷第3期.附 录 源代码:import tongji.*;import da

18、njuchaxun.*;import javax.swing.ImageIcon;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JFrame;import javax.swing.JButton;import java.awt.Rectangle;public class Danjuchaxun extends JFrame private static final long serialVersionUID = 1L;ImageIcon beijing = new ImageIcon(pic/da

19、njuchaxunbeijing.jpg);private JPanel jContentPane = null; private JButton jButton = null;private JButton jButton1 = null;private JButton jButton2 = null;private JButton jButton3 = null;private JButton jButton4 = null;private JButton jButton5 = null;private JButton jButton6 = null;private JButton jBu

20、tton7 = null;private JButton jButton8 = null;private JButton jButton9 = null;private JButton jButton10 = null;private JButton jButton11 = null;/private JButton jButton12 = null;private JButton jButton13 = null;JLabel backgroundall = new JLabel(beijing);/* * This is the default constructor */public D

21、anjuchaxun() super();initialize();/* * This method initializes this * return void */private void initialize() this.setBounds(233, 218, 156, 303);this.setContentPane(getJContentPane();this.setTitle(单据查询);this.setUndecorated(true);this.setResizable(false);this.getLayeredPane().add(backgroundall, new I

22、nteger(Integer.MIN_VALUE);backgroundall.setBounds(0, 0, beijing.getIconWidth(), beijing.getIconHeight();this.setVisible(true);/* * This method initializes jContentPane * return javax.swing.JPanel */private JPanel getJContentPane() if (jContentPane = null) jContentPane = new JPanel();jContentPane.set

23、Layout(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()

24、, 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);return jContentPane;/

25、* * This method initializes jButton * return javax.swing.JButton */private JButton getJButton() if (jButton = null) jButton = new JButton();jButton.setBounds(new Rectangle(8, 8, 140, 22);jButton.setText(进货单据查询);jButton.addActionListener(new java.awt.event.ActionListener() public void actionPerformed

26、(java.awt.event.ActionEvent e) new ChaxundanjuJH(););return jButton;/* * This method initializes jButton1 * return javax.swing.JButton */private JButton getJButton1() if (jButton1 = null) jButton1 = new JButton();jButton1.setBounds(new Rectangle(8, 30, 140, 22);jButton1.setText(出货单据查询);jButton1.addA

27、ctionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent e) new ChaxundanjuCH(););return jButton1;/* * This method initializes jButton2 * return javax.swing.JButton */private JButton getJButton2() if (jButton2 = null) jButton2 = new JButton();jButton2.

28、setBounds(new Rectangle(8, 52, 140, 22);jButton2.setText(退货出库单据查询);jButton2.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent e) new ChaxundanjuTHCK(););return jButton2;/* * This method initializes jButton3 * return javax.swing.JButton */pri

29、vate JButton getJButton3() if (jButton3 = null) jButton3 = new JButton();jButton3.setBounds(new Rectangle(8, 74, 140, 22);jButton3.setText(客户退货单据查询);jButton3.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent e) new ChaxundanjuTHRK(););return

30、 jButton3; This method initializes jButton4* return javax.swing.JButton */private JButton getJButton4() if (jButton4 = null) jButton4 = new JButton();jButton4.setBounds(new Rectangle(8, 96, 140, 22);jButton4.setText(库存调拨单据查询);jButton4.addActionListener(new java.awt.event.ActionListener() public void

31、 actionPerformed(java.awt.event.ActionEvent e) new ChaxundanjuDB();return jButton4;* This method initializes jButton5 * return javax.swing.JButton */private JButton getJButton5() if (jButton5 = null) jButton5 = new JButton();jButton5.setBounds(new Rectangle(8, 118, 140, 22);jButton5.setText(供货商统计);j

32、Button5.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent e) new TongjiGHS();return jButton5;* This method initializes jButton6 * return javax.swing.JButton */private JButton getJButton6() if (jButton6 = null) jButton6 = new JButton();jButto

33、n6.setBounds(new Rectangle(8, 140, 140, 22);jButton6.setText(客户统计);jButton6.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent e) new TongjiKH();return jButton6;* This method initializes jButton7 * return javax.swing.JButton */private JButton

34、 getJButton7() if (jButton7 = null) jButton7 = new JButton();jButton7.setBounds(new Rectangle(8, 162, 140, 22);jButton7.setText(库存统计);jButton7.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent e) new TongjiKC();return jButton7;/* * This meth

35、od initializes jButton8 * return javax.swing.JButton */private JButton getJButton8() if (jButton8 = null) jButton8 = new JButton();jButton8.setBounds(new Rectangle(8, 184, 140, 22);jButton8.setText(采购统计);jButton8.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.

36、awt.event.ActionEvent e) new TongjiCG();return jButton8;* This method initializes jButton9 * return javax.swing.JButton */private JButton getJButton9() if (jButton9 = null) jButton9 = new JButton();jButton9.setBounds(new Rectangle(8, 206, 140, 22);jButton9.setText(出货统计);jButton9.addActionListener(ne

37、w java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent e) new TongjiCH(););return jButton9; * This method initializes jButton10 return javax.swing.JButton private JButton getJButton10() if (jButton10 = null) jButton10 = new JButton();jButton10.setBounds(new Rectangle

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论