JAVA课程设计企业销售管理系统.docx

上传人:b****9 文档编号:23415269 上传时间:2023-05-16 格式:DOCX 页数:24 大小:728.33KB
下载 相关 举报
JAVA课程设计企业销售管理系统.docx_第1页
第1页 / 共24页
JAVA课程设计企业销售管理系统.docx_第2页
第2页 / 共24页
JAVA课程设计企业销售管理系统.docx_第3页
第3页 / 共24页
JAVA课程设计企业销售管理系统.docx_第4页
第4页 / 共24页
JAVA课程设计企业销售管理系统.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

JAVA课程设计企业销售管理系统.docx

《JAVA课程设计企业销售管理系统.docx》由会员分享,可在线阅读,更多相关《JAVA课程设计企业销售管理系统.docx(24页珍藏版)》请在冰豆网上搜索。

JAVA课程设计企业销售管理系统.docx

JAVA课程设计企业销售管理系统

序号:

 10 

学号:

 11416230 

常州大 学

课程设计

 

课 程名称:

   《面向对象程序设计(JAVA)》 

题 目:

企业销售管理系统   

姓名:

    `````````   

学 院:

信息科学与工程学院 专业班级:

```````

指 导教师:

 ``````       

 

设计时间:

2012 年12月 24日~2013 年 1月 11日

1.任务书

a)系统功能分析········································03

b)系统组成············································03

2.正文

a)系统分析

i.功能模块·········································04

ii.功能流程图·······································06

b)数据库设计··········································07

c)系统详细设计

i.连接数据库·······································08

ii.主界面···········································08

iii.修改、添加、删除模块·····························10

iv.查询、打印、登录模块·····························14

3.系统使用说明···········································21

4.日记···················································22

5.心得体会···············································22

6.参考文献···············································23

7.致谢···················································23

 

一、任务书

(一)、系统功能分析

本系统用于对企业销售进行管理,涉及员工基本信息表、商品信息表和员工销售信息表,主要功能包括:

●数据表记录的添加、删除、修改和浏览。

●对员工基本情况、商品和销售相关信息的查询.

●报表打印输出。

●系统退出。

(二)、系统组成

根据系统的功能分析,给出系统的参考解决方案。

整个系统功能通过菜单实现,包括数据库、表单、菜单、报表和主程序等几个部分,具体为:

后台数据库

销售管理数据库:

1.员工基本信息表(员工编号,员工名,年龄,性别,部门,职务).

2.商品信息表(商品编号,商品名称,商品单价)。

3.员工销售信息表(员工编号,商品编号,商品数目,应付金额,顾客付款,找回金额)。

 

二、正文

(1)系统分析:

企业销售管理系统主要实现的功能为:

与数据库连接,实行对员工基本信息表、商品信息表、员工销售信息表的查询、修改、添加、删除等功能的实现。

以及对3张表的信息进行输出打印,打印保存成XLS格式。

功能模块如下:

查询功能:

 

添加功能:

修改功能:

删除功能:

程序结构流程图:

 

 

(2)数据库设计:

 按照规范设计的方法,考虑数据库及其管理系统开发的全过程,将数据库设计分为以下六个阶段:

 ·需求分析

 ·概念结构设计

 ·逻辑结构设计

 ·物理结构设计

· 数据库实施

·数据库运行和维护 

基本要求

在mysql软件基础上,利用应用系统开发为企业销售管理设计数据库和建立相应的数据库.创建4个表格,分别为sellInfo,staffInfo,goodsInfo,以及登录所需的password表格。

信息要求,处理要求,安全性和完整性要求,数据流图,数据字典,数据项之间应有的联系必须表示出来,用数据依赖表示即可逻辑结构设计必须:

说明各个关系模式所属的范式,如果不是BC或3NF范式,

 

 

 

(3)系统的详细设计:

一、连接数据库:

importjava。

sql。

*;

publicclass Connection1{

 Connection connect;

ﻩprivate String dbDriver="com。

mysql。

jdbc。

Driver”; //加载数据库驱动

privateStringurl="jdbc:

mysql:

//localhost:

3306/sell?

true&characterEncoding=utf-8”;//地址 

 /**Createsa newinstanceofconnectJdbc*/

public ConnectiongetConnection(){

  try {

Class.forName(dbDriver)。

newInstance();

ﻩconnect=DriverManager。

getConnection(url,"root","123456”);

}catch(Exceptionex){

       System.out.println("数据库加载失败”);

}

 returnconnect;

ﻩ}

 

二、主界面:

View.java

首先在主界面的panel里显示数据库中的数据,以商品信息表为例。

ﻩJTabletable;

JScrollPane jscrollpane;//申明滚动面板变量

TableModel myTable= newDefaultTableModel();

ﻩConnection1db= newConnection1();

ﻩConnectioncon=db。

getConnection();//连接到数据库

Statement ps;

try {

ﻩﻩps=con.createStatement();

ResultSetrs;

ﻩﻩﻩrs=ps。

executeQuery("select*fromgoodsInfo");//在sell表格中执行查询

ﻩResultSetMetaDatametaData;

ﻩmetaData=rs。

getMetaData();//得到数据库元数据

int number=metaData。

getColumnCount();//得到数据库中表的列的个数

ﻩﻩVectorcolumnNames=new Vector();//调用Vector类,生成可自动增长的数组对象列

ﻩVector rows =newVector();//对象行

ﻩﻩfor(intnum=0;num<number; num++) {

ﻩﻩcolumnNames。

addElement(metaData.getColumnLabel(num + 1));

ﻩ}//循环生成

ﻩwhile(rs。

next()){

ﻩﻩVectornewRow=new Vector();/* for循环,将结果集中一行数据放到newRow矢量中*/

ﻩﻩfor (int i=1; i〈= number; i++){

ﻩﻩﻩnewRow。

addElement(rs.getObject(i));

ﻩﻩ}/*将上面的矢量newRow作为矢量rows中的一个元素,这样rows中的一个元素就代表结果集中的一行数据 */

ﻩrows。

addElement(newRow);//增长行

ﻩﻩmyTable=newDefaultTableModel(rows, columnNames);//在表格中加载数据

ﻩﻩﻩ}

}catch(SQLExceptionex){

ﻩﻩ}

ﻩﻩtable=newJTable(myTable);

ﻩjscrollpane =newJScrollPane(table);

jscrollpane。

setViewportView(table);

jscrollpane.revalidate();

ﻩjPanel3。

setLayout(newBorderLayout());

ﻩjPanel3.add(jscrollpane,BorderLayout。

CENTER);

ﻩﻩjPanel3.setVisible(true);

效果如下:

 

三、修改模块:

首先对所需修改的员工信息进行查询,并显示在修改界面上,关键代码如下:

Connection1db =newConnection1();

ﻩConnectioncon=db。

getConnection();//连接数据库

ﻩﻩStringsql = ”select*fromsellInfo”;

ﻩStatement ps= con。

createStatement();

ﻩResultSetrs= ps.executeQuery(sql);//查询

ﻩﻩwhile(rs。

next()){

ﻩﻩif(rs。

getString(”员工编号").equals(jTextField1。

getText())){

ﻩﻩﻩ//匹配该员工的信息;

ﻩﻩﻩnum1=rs。

getString(”员工编号”);

ﻩﻩﻩnum2=rs。

getString("商品编号”);

ﻩﻩnum3 =rs。

getInt(”商品数目”);

ﻩprice1=rs.getInt(”应付金额(元)");

ﻩﻩﻩprice2 =rs。

getInt("顾客付款(元)");

ﻩﻩprice3 =rs。

getInt("找回金额(元)”);

ﻩﻩ}

ﻩ}

ﻩﻩjTextField2.setText(num1);

ﻩjTextField3。

setText(num2);

ﻩjTextField4.setText("” +num3);

jTextField5.setText(""+price1);

ﻩjTextField6.setText("”+price2);

ﻩﻩjTextField7。

setText(”"+price3);//在修改界面上显示该员工销售的信息

ﻩ}

然后在对修改界面上的信息进行修改,并返回保存至数据库,关键代码如下:

Stringsql=”update sellInfoset员工编号='”+num1 + "',商品编号='"+num2+"’,商品数目=” +num3+ ",应付金额(元)="+price1+”,顾客付款(元)=”+ price2+",找回金额(元)="+price3 +” where员工编号=’”+num1+”’”;

try{

ﻩﻩps=con.createStatement();

ﻩﻩﻩps。

executeUpdate(sql);//数据更新

ﻩ}catch (SQLExceptione) {

e。

printStackTrace();

ﻩ}

效果如下:

 

四、删除模块:

首先对用户输入的员工编号或者员工名称进行查找,当数据库中由此数据时,显示该数据,并请求用户是否确定删除,运用sql语句中的delete,以员工基本信息为例,关键代码如下:

Statementps=con。

createStatement();

ﻩﻩResultSetrs=ps.executeQuery(sql);

ﻩﻩwhile(rs。

next()){

ﻩif(rs。

getString("员工编号”).equals(jTextField1.getText())

ﻩﻩﻩ||rs.getString(”员工名").equals(jTextField2.getText()))ﻩ{

ﻩnum1=rs。

getString(”员工编号");

ﻩﻩﻩnum2=rs.getString(”员工名”);

ﻩﻩﻩi=rs.getInt("年龄");

ﻩﻩnum3 = rs。

getString("性别”);

ﻩnum4 =rs。

getString(”部门”);

ﻩﻩﻩﻩnum5= rs.getString(”职务”);

ﻩﻩﻩ}

ﻩ}

ﻩﻩ}

ﻩﻩints=JOptionPane.showConfirmDialog(null,"确定要删除此数据吗?

\t\n员工编号:

”+jTextField1。

getText()+”\t\n”+"员工名:

”+num2+"\t\n”

ﻩﻩﻩ+”年龄:

 ”+i + ”(岁)"+"\t\n" + "性别:

"+num3+”\t\n”

ﻩﻩ+"部门:

” +num4+ ”\t\n”+”职务:

”+num5+”\t”);//显示对话框是否确定删除

ﻩif(s==0){

ﻩﻩﻩStringjk =jTextField1。

getText();

ﻩStringjk1= jTextField2。

getText();

ﻩﻩStringsql1=”delete fromstaffInfo where员工编号='”+jk

ﻩ+”’or员工名='”+jk1+”'”;

ﻩﻩﻩStatementps1;

ﻩﻩtry{

ps1 = con。

createStatement();

ﻩps1.execute(sql1);//执行删除

ﻩﻩﻩﻩ}catch(SQLExceptione){

ﻩﻩﻩ//TODOAuto—generatedcatchblock

ﻩe。

printStackTrace();

ﻩﻩ}

ﻩ效果如下:

 

五、添加模块:

添加数据到数据库主要用的是sql中的insert语句,在数据中增加所需数据,这期间要特别注意语句中的变量与引号的问题,以员工销售表为例,关键代码如下:

Stringnum1 = jTextField1。

getText();

Stringnum2= jTextField2.getText();

ﻩﻩintii=Integer.valueOf(jTextField3。

getText());

ﻩintprice1= Integer。

valueOf(jTextField4。

getText());

int price2= Integer。

valueOf(jTextField5。

getText());

ﻩintprice3=Integer.valueOf(jTextField6。

getText());

ﻩﻩStringsql= "insertintosellInfovalues('"+ num1 +”','"+num2

ﻩﻩﻩﻩ+”',’"+ ii+"',’” + price1+”’,'” +price2 +"','”+price3

ﻩﻩ+”’)”;

ﻩﻩﻩﻩPreparedStatement ps=con。

prepareStatement(sql);

ﻩﻩps.executeUpdate();//执行并更新语句

 

效果如下:

 

 

六、查询模块:

查询方式主要有两种:

一是精确查找,通过用户所输入的编号,名称进行查找;二是模糊查找,通过用户所输入的模糊信息进行查找,输出所有符合的结果.

1。

精确查找关键代码如下:

ﻩStringsql="select*fromgoodsInfo";

ﻩﻩStringnum1=null, name= null;

ﻩintnum2=0;

ﻩﻩﻩStatementps=con.createStatement();

ﻩﻩResultSetrs= ps。

executeQuery(sql);

ﻩwhile(rs。

next()){

ﻩﻩﻩif(rs。

getString("商品编号”).equals(jTextField1.getText())

||rs。

getString("商品名称").equals(jTextField2。

getText())){

ﻩﻩnum1= rs。

getString(”商品编号");

ﻩﻩﻩﻩname=rs。

getString("商品名称");

ﻩﻩﻩnum2= rs。

getInt(”商品单价(元)”);

ﻩﻩﻩﻩ}

ﻩﻩﻩ}

2.模糊查询关键代码如下:

Stringnum1=jTextField3.getText(),num2=jTextField4.getText(), num3= jTextField5。

getText();

ﻩﻩif(num1。

equals("”) &&num2。

equals(”")&&num3。

equals("")){

ﻩﻩGoodsInfogi= newGoodsInfo();

ﻩﻩgi。

getGoodsInfo();//如果全部为空,则显示所有数据

ﻩ} elseif(!

num1。

equals(null)||!

num2。

equals(null)ﻩ|| !

num3。

equals(null)){

ﻩﻩStatementps;

ﻩﻩps =con.createStatement();

ﻩﻩResultSetrs;

ﻩrs=ps。

executeQuery(”select*fromgoodsInfowhere 商品编号 like’"+num1+"%’and商品名称 like'”+num2+ "%’and 商品单价(元)like'”+num3+"%'”);

 

效果如下:

精确查找:

输入商品编号:

201204,显示结果如下:

模糊查找:

输入商品编号:

20120,显示结果如下:

 

七、打印模块:

打印信息表主要将修改好的数据输出称excel的形式,保存在电脑里,以staffInfo为例,

String[]title={ "员工编号”,”员工名",”年龄”,"性别","部门”,”职务”};//准备设置excel工作表的标题

ﻩﻩStringfilePath =”D:

\\staffInfo.xls”;// 输出的excel的路径

OutputStreamos=new FileOutputStream(filePath);// 创建Excel工作薄

WritableWorkbookwwb =Workbook.createWorkbook(os);

ﻩﻩ//添加第一个工作表并设置第一个Sheet的名字

WritableSheetsheet=wwb。

createSheet(”员工基本信息表",0);

ﻩLabellabel=null;

ﻩﻩfor(inti=0; i〈title.length;i++) {

ﻩ//Label(x,y,z)其中x代表单元格的第x+1列,第y+1行,单元格的内容是y//在Label对象的子对象中指明单元格的位置和内容

ﻩlabel=newLabel(i,0,title[i]);//将定义好的单元格添加到工作表中

ﻩsheet。

addCell(label);

ﻩ}

ﻩStatementstmt=con.createStatement();

ﻩResultSetresult=stmt.executeQuery("select *fromstaffInfo");//查询表中的所有数据

ﻩﻩﻩintx=0;

ﻩwhile (result。

next()) { //从数据库中取得数据

ﻩﻩﻩx++;//控制行数

ﻩﻩfor(inty=0;y〈title.length;y++){// 获得列数

ﻩﻩﻩlabel = newLabel(y,x, result.getString(y+1));

ﻩﻩ//x代表行, y代表列,通过rst。

getString()设置单元格内容

ﻩsheet。

addCell(label);//将内容加到execl中去

ﻩ}

ﻩﻩ}

ﻩwwb。

write();//写入数据

ﻩwwb.close();//关闭文件

 

保存效果如下:

 

关键代码如下:

OutPutExloe1= new OutPutExl();

ﻩoe1.OutPutExlstaff();

JOptionPane。

showMessageDialog(null, "输出打印员工基本信息表成功!

保存在D:

staffInfo");

 

八、登陆界面:

Login.Java

首先连接数据库,并判断用户所输的用户名,密码是否正确,如果匹配则让其通过,否则提示用户名与密码不匹配,请重新输入。

判断方法queryUser语句如下:

booleanqueryUser(StringuserName,Stringpass){

Connection1db=newConnection1();

ﻩ Connectioncon=db。

getConnection();

ﻩ Stringsql=”select*frompasswordwhere Username='”+userName +”’and Password=’"+pass+”’";

ﻩ 

try{

ﻩStatement ps=con。

createStatement();

ﻩﻩResultSetrs=ps。

executeQuery(sql);ﻩ

if(rs。

next()){

ﻩﻩif(rs。

getString("Username”)。

equals(userName)&&rs.getString(”Password”).equals(pass))

ﻩreturntrue;

ﻩelse

ﻩreturnfalse;

ﻩﻩ}else 

ﻩﻩreturn false;

登录如下:

 

(4)系统的使用说明:

设备支持:

推荐配置:

Windows7,512内存。

数据库:

MySQL Server 5.0。

软件支持:

MyEclipse编写。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 历史学

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

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