华联超市进销存管理系统Java期末课程设计 精品.docx

上传人:b****3 文档编号:5430470 上传时间:2022-12-16 格式:DOCX 页数:71 大小:339.42KB
下载 相关 举报
华联超市进销存管理系统Java期末课程设计 精品.docx_第1页
第1页 / 共71页
华联超市进销存管理系统Java期末课程设计 精品.docx_第2页
第2页 / 共71页
华联超市进销存管理系统Java期末课程设计 精品.docx_第3页
第3页 / 共71页
华联超市进销存管理系统Java期末课程设计 精品.docx_第4页
第4页 / 共71页
华联超市进销存管理系统Java期末课程设计 精品.docx_第5页
第5页 / 共71页
点击查看更多>>
下载资源
资源描述

华联超市进销存管理系统Java期末课程设计 精品.docx

《华联超市进销存管理系统Java期末课程设计 精品.docx》由会员分享,可在线阅读,更多相关《华联超市进销存管理系统Java期末课程设计 精品.docx(71页珍藏版)》请在冰豆网上搜索。

华联超市进销存管理系统Java期末课程设计 精品.docx

华联超市进销存管理系统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

开户银行

mail

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模板 > 国外设计风格

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1