JAVA课程设计汇本仓库管理系统.docx
《JAVA课程设计汇本仓库管理系统.docx》由会员分享,可在线阅读,更多相关《JAVA课程设计汇本仓库管理系统.docx(13页珍藏版)》请在冰豆网上搜索。
JAVA课程设计汇本仓库管理系统
课程设计报告
(本科)
课程:
Java
学号:
姓名:
班级:
教师:
时间:
2014.11-2014.12
计算机学院
设计名称:
仓库管理系统
设计内容、目的与要求:
随着社会发展和人们生活水平、质量的提高,资源管理和派发日益显得重要和突出,从而仓库应之而出。
如何更高效地管理仓库资源,成了仓库管理中的当务之急。
本仓库管理系统主要对小型仓库而提出的软件管理系统,让用户可以通过本系统进行便捷和高效管理仓库。
使用JAVA和SQLSERVER2005开发小型仓库管理系统,对小型仓库的信息资源(商品、客户和供应商)、仓库物质动态(出库和进库)和基本的日常信息(仓库盘点和操作记录等)记录、管理和查询,并提供权限管理。
本系统共分为个模块:
基础信息管理、出入库管理、查询统计和系统管理。
计划与进度安排:
2014年11月10号~2014年11月19号:
完成基本设计思路。
2014年11月20号~2014年11月29号:
查找资料、分析例题并作出基本构思。
2014年11月30号~2014年12月16号:
完成程序设计、调试和修改。
2014年12月17号~2014年12月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("仓库管理系统");//获取对象frame
frame.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();//用于提示用户输入的标签userLabel
userLabel.setText("用户名:
");//对其命名
userLabel.setBounds(100,115,200,18);
//"用户名:
"的位置和大小
panel.add(userLabel);//向?
?
中添加userLabel标签
finalJTextFielduserName=newJTextField();//申请文本栏userName
userName.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";//查找图片1
StringimgUrl_roll="res/ActionIcon/"+fName+"_roll.png";//查找图片1
StringimgUrl_down="res/ActionIcon/"+fName+"_down.png";//查找图片1
Iconicon=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.系统管理:
设计体会与建议:
通过这次课程设计使我了解到我有很多的不足,在程序调试的时候常常会因为几个错误而弄得心烦,这说明我对知识的掌握还不够牢,在程序设计的过程中也暴露出了我的诸多弊端,借这次课程设计的机会我会认真的加以改正,多多看书多去图书馆学习,同时应该增强自己的实践能力,为以后的学习打下坚实的基础。
在这次的设计过程中,我学到的不仅是知识,还有合作的可贵。
由于这次设计涉及到数据库,我学到了不少编程工具与数据库连接的知识,对数据库的操作有了进一步的了解。
这次设计对我的综合能力是一次很好的锻炼,但是我必须承认自己的能力和知识水平还不够,今后我的学习道路还是很漫长的。
在这次课程设计的过程中,感受到坚持的重要性。
做事情不能轻言谈放弃,虽然过程不顺利,与想象中相去甚远。
但是只要我们能坚持,朝着自己既定的目标前进,就一定会走到终点。
一点小小的挫折实际上是在为最后的美景做铺垫,当我们守得云开见月明的时候,就会发现,沿途的曲折其实是在考验我们的目标是否坚定。
坚持下来,我们会收获丰硕的果实。
谢雅洁:
课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。
在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。
学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。