JAVA课程设计企业销售管理系统.docx
- 文档编号:12488560
- 上传时间:2023-04-19
- 格式:DOCX
- 页数:23
- 大小:725.52KB
JAVA课程设计企业销售管理系统.docx
《JAVA课程设计企业销售管理系统.docx》由会员分享,可在线阅读,更多相关《JAVA课程设计企业销售管理系统.docx(23页珍藏版)》请在冰豆网上搜索。
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。
*;
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 length;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)日志: 课程设计第一天: 进行整体的布局构思,创建员工信息表、商品信息表、员工销售信息表连接数据库,实现多种方式验证登录. 第二天:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 课程设计 企业 销售 管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)