华联超市进销存管理系统Java期末课程设计 精品.docx
- 文档编号:5430470
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:71
- 大小:339.42KB
华联超市进销存管理系统Java期末课程设计 精品.docx
《华联超市进销存管理系统Java期末课程设计 精品.docx》由会员分享,可在线阅读,更多相关《华联超市进销存管理系统Java期末课程设计 精品.docx(71页珍藏版)》请在冰豆网上搜索。
华联超市进销存管理系统Java期末课程设计精品
甘肃政法学院
Java课程设计报告
题目兰州华联超市进销管理系统
一.需求分析
企业进销存管理系统的主要工作,是对企业的进货、销售和库存以信息化的方式进行管理,最大限度的减少各个环境中可能出现的错误,有效减少盲目采购,降低采购成本、合理控制库存、减少资金占用并提高市场灵敏度,使企业能够合理安排进、销、存的每个关键步骤,替身企业市场竞争力。
针对经营管理中存在的问题,兰州华联超市对产品的进销存合理化提出了更高的要求。
通过实际调查,要求企业进销存管理系统具有以下功能。
◆界面设计美观大方,方便、快捷、操作灵活。
◆实现强大的进销存管理,包括基本信息、进货、销售和库存管理。
◆能够在不同的操作系统下运行,不局限于特定的平台。
◆提供数据库备份与恢复功能。
◆提供库存盘点功能。
◆提供技术支持的联系方式,可以使用邮件进行沟通,或者直接连接到技术网站。
二.分析与设计:
(1)功能模块划分:
本进销存管理系统划分为六个模块,分别为系统登陆模块,系统主窗体设计模块,进货单模块,销售单模块,库存盘点模块和数据库备份与恢复模块,
(2)数据库结构描述:
企业进销存管理系统需要使用数据库存储和管理进销存过程中的所有信息,本企业进销存管理系统使用SQLServer2000数据库系统作为后台数据库,数据库名称为db_database28。
其中包含了14张数据表﹑两个视图。
以下是系统主要涉及的六个数据库表:
1.供应商信息表:
主要用于存储供应商详细信息,其结构如下表所示:
tb_gysinfo供应商信息表
字段名称
数据类型
字段大小
是否主键
说明
id
varchar
32
主键
供应商编号
name
varchar
50
供应商名称
jc
varchar
20
供应商简称
address
varchar
100
供应商地址
bianma
varchar
10
邮政编码
tel
varchar
15
电话
fax
varchar
15
传真
lian
varchar
8
联系人
ltel
varchar
15
联系电话
yh
varchar
50
开户银行
varchar
50
电子信箱
2.商品信息表:
主要用于存储商品详细信息,其结构如下表所示;
tb_spinfo商品信息表
字段名称
数据类型
字段大小
是否主键
说明
id
varchar
32
主键
商品编号
spname
varchar
50
商品名称
jc
varchar
30
商品简称
cd
varchar
50
产地
dw
varchar
10
计量单位
gg
varchar
10
商品规格
bz
varchar
20
包装
ph
varchar
32
批号
pzwh
varchar
50
批准文号
memo
varchar
100
备注
gysname
varchar
50
供应商名称
3.入库主表:
主要用于存出入库单据信息,其结构如下表所示:
Tb_ru_ku_main入库主表
字段名称
数据类型
字段大小
是否主键
说明
rkID
vachar
32
主键
入库编号
pzs
float
8
品种数量
je
money
8
总计金额
ysjl
vachar
50
验收结论
gysname
vachar
100
供应商名称
rkate
datetime
8
入库时间
czy
vachar
30
操作员
jsr
vachar
30
经手人
jsfs
vachar
10
结算方式
4.入库明细:
主要用于存出入库详细信息,其结构如下表所示:
tb_ruku_detail入库明细表
字段名称
数据类型
字段大小
是否主键
说明
id
vachar
50
主键
流水号
rkID
vachar
30
入库编号
spid
vachar
50
商品编号
dj
money
8
单价
sl
float
8
数量
5.销售主表:
主要用于存储销售单据信息,其结构如下表所示:
tb_sell_main销售主表
字段名称
数据类型
字段大小
是否主键
说明
sellID
vachar
30
主键
销售编号
pzs
float
8
销售品种数
je
money
8
总计金额
ysjl
vachar
50
验收结论
khname
vachar
100
客户名称
xsdate
datetime
8
销售日期
czy
vachar
30
操作员
jsr
vachar
30
经手人
jsfs
vachar
10
结算方式
6.销售明细表:
主要用于存储销售详细信息,其结构如下表所示:
tb_sell_detail销售明细表
字段名称
数据类型
字段大小
是否主键
说明
id
vachar
50
主键
流水号
sellID
vachar
50
销售编号
spid
vachar
50
商品编号
dj
Money
8
销售单价
sl
float
8
销售数量
三.系统详细设计文档:
1.系统流程图:
(1)系统功能结构图:
(2)系统业务流程图:
(3)系统中的主要类及功能:
1.Item公共类:
Item公共类是对数据表最常用的ID和name属性的封装,属于swing列表,表格,下拉列表框等组件的赋值。
该类重写了toString()方法,在该方法中只输出name属性。
但是在获取组件的内容时,获取的是Item类的对象,从该对象中可以获取ID的属性,然后通过该属性到数据库中获取唯一的数据。
2.数据模型公共类:
数据模型公共类对应着数据库中不同的数据表,这些模型将被访问数据库的Dao类和程序中各个模块甚至各个组件使用,数据模型是对数据表所有字段的封装,它是纯粹的模型类,他也要重写toString()方法,另外还要重写hashCode()方法和equal()方法。
它主要用于存贮数据,并通过相应的getXXX()方法和setXXX()实现不同属性的访问原则。
3.Dao公共类:
Dao类实现了数据库的驱动,连接,关闭和多个操作数据库的方法,Dao类不需要创建对象,可以直接调用类中的所有数据库操作方法。
Dao类自定义的主要方法有getKhlnfo(Itemitem)方法,主要是获取客户信息,方法的返回值是tKhlnfo的对象,及客户信息的数据模型。
getGyslnfo(Itemitem)方法,主要是获取供应商信息,返回值是Gyslnfo类的对象,及供应商数据表的模型对象。
getSplnfo(Itemitem)方法,主要用于获取商品信息,返回值是Splnfo类的对象,及商品数据表的数据模型。
getLogin(Stringname,Stringpassword)方法《主要适用于判断登录用户的用户名与密码是否正确,返回值是boolean类型。
insertSelllnfo(TbSellMainsellMain)方法,主要是添加销售信息到数据库中。
restoreOrBackup(Stringsql)方法,此方法是设置数据库的模式为单用户连接模式,这样可以避免数据库恢复或备份时失败。
checkLogin(StringuserStr,StringpassStr)方法,用于判断登录用户与密码是否正确。
(2)各个模块实现方法描述:
1.系统登录模块
实现该模块的主要代码如下
packagecom.lzw.login;
importjava.awt.*;
importjava.awt.event.*;
importjava.sql.SQLException;
importjavax.swing.*;
importcom.lzw.MainFrame;
importcom.lzw.dao.Dao;
publicclassLoginDialogextendsJFrame{
privatestaticfinallongserialVersionUID=1L;
privateLoginPanelloginPanel=null;
privateJLabeljLabel=null;
privateJTextFielduserField=null;
privateJLabeljLabel1=null;
privateJPasswordFieldpasswordField=null;
privateJButtonloginButton=null;
privateJButtonexitButton=null;
privatestaticStringuserStr;
privateMainFramemainFrame;
/**
*@paramowner
*/
publicLoginDialog(){
try{
UIManager.setLookAndFeel(UIManager
.getSystemLookAndFeelClassName());
mainFrame=newMainFrame();
initialize();
}
catch(Exceptione){e.printStackTrace();
}
}
/**
*初始化loginPanel登录面板的方法
*
*@returncom.lzw.login.LoginPanel
*/
privateLoginPanelgetLoginPanel(){
if(loginPanel==null){
jLabel1=newJLabel();
jLabel1.setBounds(newRectangle(86,71,55,18));
jLabel1.setText("密 码:
");
jLabel=newJLabel();
jLabel.setText("用户名:
");
jLabel.setBounds(newRectangle(85,41,56,18));
loginPanel=newLoginPanel();
loginPanel.setLayout(null);
loginPanel.setBackground(newColor(0xD8DDC7));
loginPanel.add(jLabel,null);
loginPanel.add(getUserField(),null);
loginPanel.add(jLabel1,null);
loginPanel.add(getPasswordField(),null);
loginPanel.add(getLoginButton(),null);
loginPanel.add(getExitButton(),null);
}
returnloginPanel;
}
/**
*ThismethodinitializesuserField
*
*@returnjavax.swing.JTextField
*/
privateJTextFieldgetUserField(){
if(userField==null){
userField=newJTextField();
userField.setBounds(newRectangle(142,39,127,22));
}
returnuserField;
}
/**
*ThismethodinitializespasswordField
*
*@returnjavax.swing.JPasswordField
*/
privateJPasswordFieldgetPasswordField(){
if(passwordField==null){
passwordField=newJPasswordField();
passwordField.setBounds(newRectangle(143,69,125,22));
passwordField.addKeyListener(newjava.awt.event.KeyAdapter(){
publicvoidkeyTyped(java.awt.event.KeyEvente){
if(e.getKeyChar()=='\n')
loginButton.doClick();
}
});
}
returnpasswordField;
}
/**
*ThismethodinitializesloginButton
*
*@returnjavax.swing.JButton
*/
privateJButtongetLoginButton(){
if(loginButton==null){
loginButton=newJButton();
loginButton.setBounds(newRectangle(109,114,48,20));
loginButton.setIcon(newImageIcon(getClass().getResource(
"/res/loginButton.jpg")));
loginButton.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
try{
userStr=userField.getText();
StringpassStr=newString(passwordField.getPassword());
if(!
Dao.checkLogin(userStr,passStr)){
JOptionPane.showMessageDialog(LoginDialog.this,
"用户名与密码无法登录","登录失败",
JOptionPane.ERROR_MESSAGE);
return;
}
}catch(Exceptione1){
e1.printStackTrace();
}
MainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.setVisible(true);
mainFrame.getCzyStateLabel().setText(userStr);
setVisible(false);
}
});
}
returnloginButton;
}
/**
*ThismethodinitializesexitButton
*
*@returnjavax.swing.JButton
*/
privateJButtongetExitButton(){
if(exitButton==null){
exitButton=newJButton();
exitButton.setBounds(newRectangle(181,114,48,20));
exitButton.setIcon(newImageIcon(getClass().getResource(
"/res/exitButton.jpg")));
exitButton.addActionListener(newjava.awt.event.ActionListener(){
publicvoidactionPerformed(java.awt.event.ActionEvente){
System.exit(0);
}
});
}
returnexitButton;
}
/**
*界面初始化方法
*
*@returnvoid
*/
privatevoidinitialize(){
Dimensionsize=getToolkit().getScreenSize();
setLocation((size.width-296)/2,(size.height-188)/2);
setSize(296,188);
this.setTitle("系统登录");
setContentPane(getLoginPanel());
}
publicStringgetUserStr(){
returnuserStr;
}
}//@jve:
decl-index=0:
visual-constraint="10,10"
运行结果如下:
2.主窗体模块
主要实现代码如下:
packagecom.lzw;
importjava.awt.*;
importjava.util.Date;
importjavax.swing.*;
importjavax.swing.border.BevelBorder;
importcom.lzw.login.LoginDialog;
publicclassMainFrameextendsJFrame{
privatestaticfinallongserialVersionUID=1L;
privateJPanelframeContentPane=null;
privateMenuBarframeMenuBar=null;
privateToolBartoolBar=null;
privateDesktopPaneldesktopPane=null;
privateJPanelstatePanel=null;
privateJLabelstateLabel=null;
privateJLabelnameLabel=null;
privateJLabelnowDateLabel=null;
privateJSeparatorjSeparator1=null;
privatestaticJLabelczyStateLabel=null;
privateJSeparatorjSeparator2=null;
/**
*ThismethodinitializesjJToolBarBar
*
*@returnjavax.swing.JToolBar
*/
privateToolBargetJJToolBarBar(){
if(toolBar==null){
toolBar=newToolBar(getFrameMenuBar());
toolBar.setCursor(newCursor(Cursor.HAND_CURSOR));
}
returntoolBar;
}
/**
*初始化窗体菜单栏的方法
*
*@returnjavax.swing.JMenuBar
*/
protectedMenuBargetFrameMenuBar(){
if(frameMenuBar==null){
frameMenuBar=newMenuBar(getDesktopPane(),getStateLabel());
}
returnframeMenuBar;
}
/**
*ThismethodinitializesdesktopPane
*
*@returnjavax.swing.JDesktopPane
*/
privateDesktopPanelgetDesktopPane(){
if(desktopPane==null){
desktopPane=newDesktopPanel();
}
returndesktopPane;
}
/**
*ThismethodinitializesstatePanel
*
*@returnjavax.swing.JPanel
*/
privateJPanelgetStatePanel(){
if(statePanel==null){
GridBagConstraintsgridBagConstraints6=newGridBagConstraints();
gridBagConstraints6.gridx=2;
gridBagConstraints6.fill=GridBagConstraints.VERTICAL;
gridBagConstraints6.insets=newInsets(0,5,0,5);
gridBagConstraints6.gridy=0;
GridBagConstraintsgridBagConstraints4=newGridBagConstraints();
gridBagConstraints4.gridx=3;
gridBagConstraints4.gridy=0;
GridBagConstraintsgridBagConstraints3=newGridBagConstraints();
gridBagConstraints3.gridx=6;
gridBagConstraints3.fill=GridBagConst
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 华联超市进销存管理系统Java期末课程设计 精品 超市 进销存 管理 系统 Java 期末 课程设计