JAVA课程设计-企业销售管理系统_第1页
JAVA课程设计-企业销售管理系统_第2页
JAVA课程设计-企业销售管理系统_第3页
JAVA课程设计-企业销售管理系统_第4页
JAVA课程设计-企业销售管理系统_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

常州大学课程设计PAGEPAGE2第2页共23页序号:10学号:11416230常州大学课程设计课程名称:《面向对象程序设计(JAVA)》题目:企业销售管理系统姓名:`````````学院:信息科学与工程学院专业班级:```````指导教师:``````设计时间:2012年12月24日2013年1月11日目录任务书系统功能分析········································03系统组成············································03正文系统分析功能模块·········································04功能流程图·······································06数据库设计··········································07系统详细设计连接数据库·······································08主界面···········································08修改、添加、删除模块·····························10查询、打印、登录模块·····························14系统使用说明···········································21日记···················································22心得体会···············································22参考文献···············································23致谢···················································23修改功能:保存退出修改功能修改其他修改数目修改编号修改名称查询数据保存退出修改功能修改其他修改数目修改编号修改名称查询数据删除功能:删除功能查询数据确定删除保存退出删除功能查询数据确定删除保存退出程序结构流程图:企业销售管理系统企业销售管理系统员工基本信息表商品信息表员工销售信息表查询修改添加删除查询修改添加添加修改删除输出打印系统退出(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<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(); 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<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=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)日志:课程设计第一天:进行整体的布局构思,创建员工信息表、商品信息表、员工销售信息表连接数据库,实现多种方式验证登录。第二天:创建主界面,将数据库里的表格信息出现在客户端上。主要是panel的运用。第三天:进行简单的语句查询,调试编码问题—中文乱码,并设置滚动面板。通过网上查找了解

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论