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

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

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

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

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

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

序号:

10

学号:

********

常州大学

课程设计

 

课程名称:

《面向对象程序设计(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.*;

publicclassConnection1{

Connectionconnect;

privateStringdbDriver="com.mysql.jdbc.Driver";//加载数据库驱动

privateStringurl="jdbc:

mysql:

//localhost:

3306/sell?

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

/**CreatesanewinstanceofconnectJdbc*/

publicConnectiongetConnection(){

try{

Class.forName(dbDriver).newInstance();

connect=DriverManager.getConnection(url,"root","123456");

}catch(Exceptionex){

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

}

returnconnect;

}

 

二、主界面:

View.java

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

JTabletable;

JScrollPanejscrollpane;//申明滚动面板变量

TableModelmyTable=newDefaultTableModel();

Connection1db=newConnection1();

Connectioncon=db.getConnection();//连接到数据库

Statementps;

try{

ps=con.createStatement();

ResultSetrs;

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

ResultSetMetaDatametaData;

metaData=rs.getMetaData();//得到数据库元数据

intnumber=metaData.getColumnCount();//得到数据库中表的列的个数

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

Vectorrows=newVector();//对象行

for(intnum=0;num

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

}//循环生成

while(rs.next()){

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

for(inti=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";

Statementps=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="updatesellInfoset员工编号='"+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="deletefromstaffInfowhere员工编号='"+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());

intprice2=Integer.valueOf(jTextField5.getText());

intprice3=Integer.valueOf(jTextField6.getText());

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

+"','"+ii+"','"+price1+"','"+price2+"','"+price3

+"')";

PreparedStatementps=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=newFileOutputStream(filePath);//创建Excel工作薄

WritableWorkbookwwb=Workbook.createWorkbook(os);

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

WritableSheetsheet=wwb.createSheet("员工基本信息表",0);

Labellabel=null;

for(inti=0;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

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

//x代表行,y代表列,通过rst.getString()设置单元格内容

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

}

}

wwb.write();//写入数据

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

 

保存效果如下:

 

关键代码如下:

OutPutExloe1=newOutPutExl();

oe1.OutPutExlstaff();

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

保存在D:

staffInfo");

 

八、登陆界面:

Login.Java

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

判断方法queryUser语句如下:

booleanqueryUser(StringuserName,Stringpass){

Connection1db=newConnection1();

Connectioncon=db.getConnection();

Stringsql="select*frompasswordwhereUsername='"+userName+"'andPassword='"+pass+"'";

try{

Statementps=con.createStatement();

ResultSetrs=ps.executeQuery(sql);

if(rs.next()){

if(rs.getString("Username").equals(userName)&&rs.getString("Password").equals(pass))

returntrue;

else

returnfalse;

}else

returnfalse;

登录如下:

 

(4)系统的使用说明:

设备支持:

推荐配置:

Windows7,512内存。

数据库:

MySQLServer5.0。

软件支持:

MyEclipse编写。

 

(5)日志:

课程设计第一天:

进行整体的布局构思,创建员工信息表、商品信息表、员工销售信息表连接数据库,实现

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

当前位置:首页 > 初中教育 > 理化生

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

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