立体库入库货位分配管理系统--软件综合课程设计_第1页
立体库入库货位分配管理系统--软件综合课程设计_第2页
立体库入库货位分配管理系统--软件综合课程设计_第3页
立体库入库货位分配管理系统--软件综合课程设计_第4页
立体库入库货位分配管理系统--软件综合课程设计_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

1、沈阳航空航天大学课 程 设 计 报 告课程设计名称:软件综合课程设计课程设计题目:立体库入库货位分配管理系统 院(系):计算机学院专 业:计算机科学与技术 班 级:学 号: 姓 名:指导教师:说明:结论(优秀、良好、中等、及格、不及格)作为相关教环节考核必要依据;格式不符合要求;数据不实,不予通过。报告和电子数据必须作为实验现象重复的关键依据。沈阳航空航天大学课程设计报告 学术诚信声明 本人声明:所呈交的报告(含电子版及数据文件)是我个人在导师指导下独立进行设计工作及取得的研究结果。尽我所知,除了文中特别加以标注或致谢中所罗列的内容以外,报告中不包含其他人己经发表或撰写过的研究结果,也不包含其

2、它教育机构使用过的材料。与我一同工作的同学对本研究所做的任何贡献均己在报告中做了明确的说明并表示了谢意。报告资料及实验数据若有不实之处,本人愿意接受本教学环节“不及格”和“重修或重做”的评分结论并承担相关一切后果。 本人签名: 日期: 年 月 日沈阳航空航天大学课程设计任务书课程设计名称软件综合课程设计专业计算机科学与技术学生姓名班级学号题目名称立体库入库货位分配管理系统起止日期2016年12月19日起至2017年1月13日止课设内容和要求:一、课程设计内容:立体库就是实现生产储存自动化的一个典型的体现,自动化立体库的货物存放方式也采用标准化方式,根据不同的规格的货位和货物自身规格,设计货物入

3、库的货位分配管理。具体实现功能如下:(1) 维护货物入库的任务,其中包括货物代码,货物名称,入库数量;(2) 根据当前货位的存放状态,分解入库任务,形成入库工作流;(3) 入库的原则采用就近入库;(4) 入库任务分解异常定义;(5) 对失败任务进行自动提醒,提示失败原因。2、 课程设计要求: 1.界面设计要优化,直观,大方,美观; 2.采用面向兑现程序设计方法; 3.用数据库保存各项信息; 4.独立完成系统的设计、编码和调试工作并通过指导老师的检查; 5.按课程设计规范撰写课程设计报告。教研室审核意见: 教研室主任签字:指导教师(签名)年月日学 生(签名)年月日课程设计总结:通过此次课程设计,

4、使我更加扎实的掌握了有关编码方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。我认为,在这学期的课设中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在编码过程中,我学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这对于将来也有很大的帮助。以后,不管有多苦,我想我都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。回顾起此课程设计,至今我仍

5、感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。目 录沈阳航空航天大学I学术诚信声明21 需求分析71.1 立体库入库货位分配管理系统设计背景71.2 题目的理解71.3 应完成的功能71.4 采用的工具72 设

6、计概要82.1数据库表属性概要说明82.2 数据库E-R图82.2 系统的功能模块层次图83 详细设计93.1 数据库表结构详细说明93.2 功能模块详细说明103.2.1货位管理103.2.2货位列表103.2.3货物列表103.2.4立体库入库列表103.2.5入库任务104 调试分析125 用户手册135.1 项目首页135.2 货位添加135.3 入库任务145.3.1 入库货物信息录入145.3.1 入库货位确定145.3.1 入库操作成功155.4 货位列表155.5 货物列表155.6 入库列表166 结束语17参考文献18附 录(关键部分程序清单)191 需求分析1.1 立体库

7、入库货位分配管理系统设计背景随着现代工业的快速发展,传统的仓储方式日益不能满足生产和流通的需要,自动化立体仓库得到越来越多的应用。面对成千上万的货格,立体仓库的货位分配优化已成为提高存取效率、降低成本的关键。1.2 题目的理解立体库入库货位分配管理系统的设计,是对立体库货位进行一个数据化的管理,让系统可以通过货位存储情况、货位距离等信息自动的为入库货物选取最合适的货位进行储存,设计的这个管理系统,相对于传统管理模式,毫无疑问会大大提高仓库的运作效率,自动化程度,以及管理水平,为降低经营成本,提高效益,减少差错,节省人力。1.3 应完成的功能功能一 :对货物的信息(货号、货名、类别、规格、入库量

8、和生产厂家)的添加、查询的操作。功能二 :对立体库货位的信息(货位号、规格、距离、剩余容量和货位状态)的添加、查询的操作。功能三 :根据当前货位的存放状态,分解入库任务,形成入库工作流。功能四 :入库原则采用就进入库。功能五 :入库任务分解异常定义,对失败的任务进行自动提醒,提示失败原因。功能六 :对立体库货物存放货位信息的查询操作。1.4 采用的工具MyEclipse、Mysql数据库、Navicat for Mysql数据库可视化工具等。2 设计概要2.1数据库表属性概要说明立体库入库货位分配管理系统中主要包含两个实体类:货物类主要由货物编号、货物名、货物类型、货物规格、货物数量、生产厂家

9、等组成;货位类主要由货位编号、货位规格、货位距离、剩余容量、货位状态等组成。2.2 数据库E-R图图2.1 数据库E-R图货物和货位存在存入关系,一个货位如果容量允许可以存放多个货物,但一个货物只能存在一个货位当中。2.2 系统的功能模块层次图图2.2 系统功能模块层次图3 详细设计3.1 数据库表结构详细说明货物信息表(goods)属性名称属性类型长度属性含义idint10无实际含义,mysql数据库自动递增gidvarchar10货物信息编号,手工编写gnamevarchar50货物名称gtypevarchar50货物类别gsizeint10货物规格gnumint10货物数量gfromva

10、rchar100货物来源表3.1 货物信息表立体库货位信息表(location)属性名称属性类型长度属性含义lidint10立体库货位编号,mysql数据库自动递增lsizeint10立体库货位规格(容量)ldistancevarchar10立体库货位距离(离库入口远近)lfsizeint10立体库货位剩余容量lstatevarchar10立体库货物状态标记(保存0表示未满,保存1表示已满)表3.2 立体库货位信息表货物入库信息表(storage)属性名称属性类型长度属性含义sidint10入库编号,mysql数据库自动递增gidvarchar10入库货物信息编号lidvarchar10立体库

11、入库货位编号stimedatetime6入库时间(提交入库任务时,获得的入库)表3.3 货物入库信息表3.2 功能模块详细说明3.2.1货位管理本模块主要对立体库货位进行管理操作。立体库入库系统初步建立时,可以对货位进行添加操作;货位信息变更时,可以对货位进行修改操作;货位不需要时,可以对货位进行删除操作。3.2.2货位列表本模块是对立体库中所有货位的信息、剩余容量、状态等以列表的形式呈现出来,方便货位管理、入库任务后货位信息的验证。3.2.3货物列表本模块是对立体库中存入货物的信息以列表的形式呈现出来,方便货物管理及入库任务后货位信息的验证。3.2.4立体库入库列表本模块是对立体库中入库的货

12、物编号、货位编号、入库时间等以列表的形式呈现出来,方便货物管理及入库任务后信息的验证。3.2.5入库任务入库任务模块是该系统的核心模块。入库任务模块流程图如下:图3.1入库任务流程图此模块主要根据当前货位的存放状态,分解入库任务,形成入库工作流。首先,入库任务第一步录入存放货物信息,将货物信息存入数据库中:若保存成功返回保存成功信息提示页面;若保存失败返回保存失败提示页面;入库任务第二步,从数据库中查找剩余容量大于或等于货物总容量且距离最近的货位,并将其信息显示出来,若没有合适货位返回没有合适货位提示页面并将此货物信息从货物信息表中删除;入库操作第三步,确定将货物存入此货位,将入库信息存入入库

13、表中,若存入成功,修改货位信息表中此货位的剩余容量,跳转成功操作页面,若存入失败,返回存入货位失败提示页面并将此货物信息从货物信息表中删除。4 调试分析立体库入库管理系统要求入库的原则采用就近入库,这就要求进行入库操作时,要对货位进行筛选。在刚开始做时,货位的筛选靠一部分sql语句,一部分要靠获得值后进行遍历查找距离的最小值。在后来的了解中,知道了可以在sql语句中直接加个最小值的条件就直接获得了就近入库对货位的筛,这种操作方式非常简单易操作,还大大减少了程序的反应时间和代码的长度。最初立体库管理系统建立时,没有考虑到货位浪费的问题,只想着让一个货物存入库中就行了,这个货位不管剩余多少容量都将

14、不能存入货物,造成了资源的大量浪费。在实际情况中,只要这个货位可以容纳货物容量就能存入。为此,我在货位信息中添加了一个字段,用于保存货位剩余容量。每次入库筛选货位时,不再用以前的货位规格进行筛选,用剩余容量进行货位筛选;每次入库货物后,就会更新这个剩余容量。经过这次更改,使立体库入库管理更接近实际。5 用户手册5.1 项目首页立体库管理系统进入后的欢迎页面。5.2 货位添加立体库入库系统初步建立时,管理者可对货位进行添加操作。输入货位规格和货位距离,其中货位编号由数据库自动生成,初步添加时将货位剩余容量置为货位规格,并将货位状态设置为未满。5.3 入库任务5.3.1 入库货物信息录入输入将要存

15、入立体库货物的信息。5.3.1 入库货位确定点击下一步,将确定将货物存入系统选择的立体库中。5.3.1 入库操作成功货物存入成功。5.4 货位列表显示所有货位信息列表。5.5 货物列表显示所有已经入库的货物信息列表。5.6 入库列表显示所有入库信息列表。6 结束语通过此次课程设计,使我更加扎实的掌握了有关编码方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。我认为,在这学期的课设中,不仅培养了独立思考、动手操作的能力,在各种其它能力上

16、也都有了提高。更重要的是,在编码过程中,我学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这对于将来也有很大的帮助。以后,不管有多苦,我想我都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务

17、,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。参考文献1 李芝兴,杨瑞龙. Java程序设计之网络编程M. 北京:清华大学出版社,20092 王珊. 数据库系统概论(第四版)M. 北京:高等教育出版社,20063 严蔚敏. 数据结构(C语言版)M. 北京:清华大学出版社,20115 牛力,傅韵. Visual C+.NET编程宝典M. 北京:电子工业出版社,2006 32 沈阳航空航天大学课程设计报告附 录(关键部分程序清单)Conn类:package com.storage.conn;/数据库连接类import java

18、.sql.Connection;import java.sql.DriverManager;public class conn public Connection getCon() try Class.forName(com.mysql.jdbc.Driver);String url = jdbc:mysql:/localhost:3306/storage?useUnicode=true&characterEncoding=utf-8;String user = root;String password = 123456;Connection conn = DriverManager.getC

19、onnection(url, user, password);System.out.println(conn.getMetaData().getURL();return conn; catch (Exception e) e.printStackTrace();return null;Goods实体类:package com.storage.model;/货物信息实体类public class goods private int id;private String gid;/货物编号private String gname;/货物名称private String gtype;/货物类型priv

20、ate String gsize;/货物规格private int gnum;/货物数量private String gfrom;/生产厂家public int getId() return id;public void setId(int id) this.id = id;public String getGid() return gid;public void setGid(String gid) this.gid = gid;public String getGname() return gname;public void setGname(String gname) this.gnam

21、e = gname;public String getGtype() return gtype;public void setGtype(String gtype) this.gtype = gtype;public String getGsize() return gsize;public void setGsize(String gsize) this.gsize = gsize;public int getGnum() return gnum;public void setGnum(int gnum) this.gnum = gnum;public String getGfrom() r

22、eturn gfrom;public void setGfrom(String gfrom) this.gfrom = gfrom;GoodsService类:package com.storage.service;/货物信息服务层,主要对数据库中货物信息表进行修改。import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;i

23、mport com.storage.model.goods;public class goodsService private Connection conn;private PreparedStatement pstmt;public goodsService() conn = new com.storage.conn.conn().getCon();public boolean addgoods(goods go) try pstmt = conn.prepareStatement(insert into goods+ (gid,gname,gtype,gsize,gnum,gfrom)

24、+ values(?,?,?,?,?,?);pstmt.setString(1, go.getGid();pstmt.setString(2, go.getGname();pstmt.setString(3, go.getGtype();pstmt.setString(4, go.getGsize();pstmt.setInt(5, go.getGnum();pstmt.setString(6, go.getGfrom();pstmt.executeUpdate();return true; catch (SQLException e) / TODO Auto-generated catch

25、blocke.printStackTrace();return false;public boolean delete(String gid) try pstmt = conn.prepareStatement(delete from goods where gid=?);pstmt.setString(1, gid);pstmt.executeUpdate();return true; catch (Exception e) e.getStackTrace();return false;public List querygoods() List list = new ArrayList();

26、try pstmt = conn.prepareStatement(select * from goods);ResultSet rs = pstmt.executeQuery();while (rs.next() goods goods = new goods();goods.setId(rs.getInt(1);goods.setGid(rs.getString(2);goods.setGname(rs.getString(3);goods.setGtype(rs.getString(4);goods.setGsize(rs.getString(5);goods.setGnum(rs.ge

27、tInt(6);goods.setGfrom(rs.getString(7);list.add(goods);return list; catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();return null;StoragesecondServlet类:package com.storage.servlet;/入库任务第二步操作,查找最符合条件的货位import java.io.IOException;import java.util.List;import javax.servlet.Ser

28、vletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import com.storage.model.location;import com.storage.service.locationService;public class storagesecondServlet extends

29、HttpServlet private static final long serialVersionUID = 1L;public storagesecondServlet() super();public void destroy() super.destroy(); / Just puts destroy string in log/ Put your code herepublic void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOExceptio

30、n doPost(request, response);public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException String gsize = (String) request.getSession().getAttribute(gsize);String gnum = (String) request.getSession().getAttribute(gnum);int size = Integer.parseInt(gsize);int num = Integer.parseInt(gnum);int fsize = size*num;List locs = new locationService().querybysize(fsize);if(locs.size() != 0)location loc0 = new location();loc0 = (location) locs.get(0);int ldistance0 = Integer.parseInt(loc0.getLdistance();for(int i = 1;i ldistance)

温馨提示

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

评论

0/150

提交评论