课程设计报告(本科)课程:学号:12104310671210431065姓名:班级:2012级计算机软件一班教师:时间:2014.06计算机科学与技术系设计名称:小型仓库管理系统设计内容、目的与要求:随着社会发展和人们生活水平、质量的提高,资源管理和派发日益显得重要和突出,从而仓库应之而出。如何更高效地管理仓库资源,成了仓库管理中的当务之急。本仓库管理系统主要对小型仓库而提出的软件管理系统,让用户可以通过本系统进行便捷和高效管理仓库。使用JAVA和SQLSERVER2005开发小型仓库管理系统,对小型仓库的信息资源(商品、客户和供应商)、仓库物质动态(出库和进库)和基本的日常信息(仓库盘点和操作记录等)记录、管理和查询,并提供权限管理。本系统共分为个模块:基础信息管理、出入库管理、查询统计和系统管理。计划与进度安排:2014年05月10号~2014年05月19号:完成基本设计思路。2014年05月20号~2014年05月29号:查找资料、分析例题并作出基本构思。2014年05月30号~2014年06月16号:完成程序设计、调试和修改。2014年06月17号~2014年06月19号:修改并完成课程设计报告。设计过程、步骤(可加页):一开发与应用:本系统主要采用MyEclipse和SQLSERVER2005编程开发应用于PC机。二程序结构图:三实体ER图:四部分建表和程序:1.1系统中所用到的部分基本信息表及用途表名用途dbo.tb_gysinfo供应商信息表tb_spinfo商品信息表dbo.tb_khinfo客户信息表dbo.tb_kucun库存信息表用于库存盘点tb_userlist操作员信息表用于登录程序。。。。。。。。。。。。。1.2系统中所用到的部分类及用途类名用途JXCFrame.java系统主程序,程序的开始位置Dao.java用于连接数据库和信息获取Login.java系统登录界面KuCunPanDian.java库存盘点RuKuChaXun.java入口查询。。。。。。。。。。。1.3系统中所用到的主要方法及用途方法名用途createFrameButton为内部窗体添加Action的方法Dao连接数据库和获取信息Login()设计系统登录界面GysXiuGaiPanel()供应商信息添加GysTianJiaPanel()供应商信息修改与删除。。。。。。。。。。。。2.1.1供应商信息表(dbo.tb_gysinfo)2.1.2商品信息表(Dao.java)2.1.3库存信息表用于库存盘点(dbo.tb_kucun)2.2.1系统主程序(JXCFrame.java)部分代码publicJXCFrame(){frame=newJFrame(小型仓库管理系统);//获取对象frameframe.getContentPane().setBackground(newColor(170,188,120));//对对象frame的容器设置背景颜色frame.addComponentListener(newFrameListener());frame.getContentPane().setLayout(newBorderLayout());//对对象frame的容器设置???frame.setBounds(100,100,753,600);//对对象frame的窗体设置出现的位置和大小frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//对对象frame的窗体设置关闭方式backLabel=newJLabel();backLabel.setVerticalAlignment(SwingConstants.TOP);//标签内容垂直方向的对齐方式backLabel.setHorizontalAlignment(SwingConstants.CENTER);//标签内容水平方向的对齐方式updateBackImage();//更新或初始化背景图片desktopPane=newJDesktopPane();desktopPane.add(backLabel,newInteger(Integer.MIN_VALUE));frame.getContentPane().add(desktopPane);JTabbedPanenavigationPanel=createNavigationPanel();//创建导航标签面板frame.getContentPane().add(navigationPanel,BorderLayout.NORTH);frame.setVisible(true);}2.2.2连接数据库(Dao)部分代码publicclassDao{protectedstaticStringdbClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver;protectedstaticStringdbUrl=jdbc:sqlserver://localhost:1433;+DatabaseName=db_JXC;SelectMethod=Cursor;protectedstaticStringdbUser=sa;protectedstaticStringdbPwd=;protectedstaticStringsecond=null;publicstaticConnectionconn=null;static{try{if(conn==null){Class.forName(dbClassName).newInstance();conn=DriverManager.getConnection(dbUrl,dbUser,dbPwd);}}catch(Exceptionee){ee.printStackTrace();}}privateDao(){}//读取所有客户信息publicstaticListgetKhInfos(){Listlist=findForList(selectid,khnamefromtb_khinfo);returnlist;}2.2.3设计系统登录界面(Login())部分代码publicLogin(){setTitle(小型仓库管理系统);//窗体名finalJPanelpanel=newLoginPanel();//定义一个LoginPanel函数规定的面板panel.setLayout(null);//设置面板为绝对布局getContentPane().add(panel);//向窗体添加面板setBounds(300,200,panel.getWidth(),panel.getHeight());//设置窗体位置,大小来于LoginPanel函数传递userLabel=newJLabel();//用于提示用户输入的标签userLabeluserLabel.setText(用户名:);//对其命名userLabel.setBounds(100,115,200,18);//用户名:的位置和大小panel.add(userLabel);//向??中添加userLabel标签finalJTextFielduserName=newJTextField();//申请文本栏userNameuserName.setBounds(150,115,200,18);//文本栏userName的位置和大小panel.add(userName);//向??中添加userName文本栏passLabel=newJLabel();passLabel.setText(密码:);passLabel.setBounds(100,150,200,18);panel.add(passLabel);finalJPasswordFielduserPassword=newJPasswordField();userPassword.addKeyListener(newKeyAdapter(){publicvoidkeyPressed(finalKeyEvente){if(e.getKeyCode()==10)login.doClick();}});2.3.1为内部窗体添加Action的方法(createFrameButton)部分代码privateJButtoncreateFrameButton(StringfName,Stringcname){//为内部窗体添加Action的方法StringimgUrl=res/ActionIcon/+fName+.png;//查找图片1StringimgUrl_roll=res/ActionIcon/+fName+_roll.png;//查找图片1StringimgUrl_down=res/ActionIcon/+fName+_down.png;//查找图片1Iconicon=newImageIcon(imgUrl);Iconicon_roll=null;if(imgUrl_roll!=null)icon_roll=newImageIcon(imgUrl_roll);Iconicon_down=null;if(imgUrl_down!=null)icon_down=newImageIcon(imgUrl_down);Actionaction=newopenFrameAction(fName,cname,icon);JButtonbutton=newJButton(action);button.setMargin(newInsets(0,0,0,0));button.setHideActionText(true);button.setFocusPainted(false);button.setBorderPainted(false);button.setContentAreaFilled(false);if(icon_roll!=null)button.setRolloverIcon(icon_roll);if(icon_down!=null)button.setPressedIcon(icon_down);returnbutton;}结果与分析(可以加页):本小型仓库管理系统辅助管理仓库,对小型仓库的信息资源(商品、客户和供应商)、仓库物质动态(出库和进库)和基本的日常信息(仓库盘点和操作记录等)记录、管理和查询功能,提高了工作效率,完善了业务管理,为业主及客人提供了更快捷服务。本系统具有以下特点:1.整个系统数据库连接,可以进行数据备份、还原等操作。2.整个系统采用权限分级制度,更为有效的保护数据安全。3.本系统提供密码登录,未授予登录名和密码的用户无法登录。4.系统数据库中的表满足BCNF,冗余度低,效率高。5.一般用户有查询、插入、更新、删除的权力,而管理员不仅拥有这些权力,还有添加删除用户、密码维护等权力。6.利用数据库可以一次性添加大量数据,且方便对数据进行复制修改。本系统存在以下问题:1.本小型仓库管理系统功能较为单一。2.界面交互处理的不够友好。3.本系统并为指定什么类型出库,所以数据、实体的属性处理的不够好。系统运行截图:1.系统登录:2.基础信息管理:3.出入库管理:4.查询统计:5.系统管理:设计体会与建议:管帅:通过这次课程设计使我了解到我有很多的不足,在程序调试的时候常常会因为几个错误而弄得心烦,这说明我对知识的掌握还不够牢,在程序设计的过程中也暴露出了我的诸多弊端,借这次课程设计的机会我会认真的加以改正,多多看书多去图书馆学习,同时应该增强自己的实践能力,为以后的学习打下坚实的基础。张绍壮:在这次的设计过程中,我学到的不仅是知识,还有合作的可贵。由于这次设计涉及到数据库,我学到了不少编程工具与数据库连接的知识,对数据库的操作有了进一步的了解。这次设计对我的综合能力是一次很好的锻炼,但是我必须承认自己的能力和知识水平还不够,今后我的学习道路还是很漫长的。附录:部分源代