JAVA课程设计企业销售管理系统Word文档格式.docx
- 文档编号:17059644
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:21
- 大小:671.69KB
JAVA课程设计企业销售管理系统Word文档格式.docx
《JAVA课程设计企业销售管理系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《JAVA课程设计企业销售管理系统Word文档格式.docx(21页珍藏版)》请在冰豆网上搜索。
22
5.心得体会·
6.参考文献·
23
7.致·
一、任务书
(一)、系统功能分析
本系统用于对企业销售进行管理,涉及员工基本信息表、商品信息表和员工销售信息表,主要功能包括:
●数据表记录的添加、删除、修改和浏览。
●对员工基本情况、商品和销售相关信息的查询。
●报表打印输出。
●系统退出。
(二)、系统组成
根据系统的功能分析,给出系统的参考解决方案。
整个系统功能通过菜单实现,包括数据库、表单、菜单、报表和主程序等几个部分,具体为:
后台数据库
销售管理数据库:
1.员工基本信息表(员工编号,员工名,年龄,性别,部门,职务)。
2.商品信息表(商品编号,商品名称,商品单价)。
3.员工销售信息表(员工编号,商品编号,商品数目,应付金额,顾客付款,找回金额)。
二、正文
(1)系统分析:
企业销售管理系统主要实现的功能为:
与数据库连接,实行对员工基本信息表、商品信息表、员工销售信息表的查询、修改、添加、删除等功能的实现。
以及对3表的信息进行输出打印,打印保存成XLS格式。
功能模块如下:
查询功能:
查询功能
精确查找
模糊查找
编号查找
名称查找
编号模糊查找
名称模糊查找
数目模糊查找
金额模糊查找
其他模糊查找
添加功能:
修改功能:
删除功能:
查询数据
删除功能
保存退出
确定删除
程序结构流程图:
企业销售管理系统
员工基本信息表
商品信息表
员工销售信息表
查询
修改
添加
删除
输出打印
系统退出
(2)数据库设计:
按照规设计的方法,考虑数据库及其管理系统开发的全过程,将数据库设计分为以下六个阶段:
·
需求分析
概念结构设计
逻辑结构设计
物理结构设计
数据库实施
数据库运行和维护
基本要求
在mysql软件基础上,利用应用系统开发为企业销售管理设计数据库和建立相应的数据库。
创建4个表格,分别为sellInfo,staffInfo,goodsInfo,以及登录所需的password表格。
信息要求,处理要求,安全性和完整性要求,数据流图,数据字典,数据项之间应有的联系必须表示出来,用数据依赖表示即可逻辑结构设计必须:
说明各个关系模式所属的式,如果不是BC或3NF式,
(3)系统的详细设计:
一、连接数据库:
importjava.sql.*;
publicclassConnection1{
Connectionconnect;
privateStringdbDriver="
.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<
number;
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();
//连接数据库
Stringsql="
select*fromsellInfo"
Statementps=con.createStatement();
ResultSetrs=ps.executeQuery(sql);
//查询
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员工编号='
ps.executeUpdate(sql);
//数据更新
}catch(SQLExceptione){
e.printStackTrace();
四、删除模块:
首先对用户输入的员工编号或者员工名称进行查找,当数据库中由此数据时,显示该数据,并请求用户是否确定删除,运用sql语句中的delete,以员工基本信息为例,关键代码如下:
Statementps=con.createStatement();
).equals(jTextField1.getText())
||rs.getString("
员工名"
).equals(jTextField2.getText())){
i=rs.getInt("
年龄"
num3=rs.getString("
性别"
num4=rs.getString("
部门"
num5=rs.getString("
职务"
ints=JOptionPane.showConfirmDialog(null,"
确定要删除此数据吗?
\t\n员工编号:
"
+jTextField1.getText()+"
\t\n"
+"
员工名:
+num2+"
+"
年龄:
+i+"
(岁)"
性别:
部门:
+num4+"
职务:
+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());
insertintosellInfovalues('
'
+num2
+ii+"
+price2+"
+price3
)"
PreparedStatementps=con.prepareStatement(sql);
ps.executeUpdate();
//执行并更新语句
六、查询模块:
查询方式主要有两种:
一是精确查找,通过用户所输入的编号,名称进行查找;
二是模糊查找,通过用户所输入的模糊信息进行查找,输出所有符合的结果。
1.精确查找关键代码如下:
select*fromgoodsInfo"
Stringnum1=null,name=null;
intnum2=0;
Statementps=con.createStatement();
||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'
精确查找:
输入商品编号:
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;
title.length;
//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<
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
returnfa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 课程设计 企业 销售 管理 系统