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

下载本文档

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

文档简介

序号:10学号:11416230常州大学课程设计课程名称:《面向对象程序设计(JAVA)》题目:企业销售管理系统姓名:`````````学院:信息科学和工程学院专业班级:```````指导教师:``````设计时间:年12月24日年1月11日目录任务书系统功效分析········································03系统组成············································03正文系统分析功效模块·········································04功效步骤图·······································06数据库设计··········································07系统具体设计连接数据库·······································08主界面···········································08修改、添加、删除模块·····························10查询、打印、登录模块·····························14系统使用说明···········································21日志···················································22心得体会···············································22参考文件···············································23致谢···················································23一、任务书(一)、系统功效分析本系统用于对企业销售进行管理,包含职员基础信息表、商品信息表和职员销售信息表,关键功效包含:数据表统计添加、删除、修改和浏览。对职员基础情况、商品和销售相关信息查询。报表打印输出。系统退出。(二)、系统组成依据系统功效分析,给出系统参考处理方案。整个系统功效经过菜单实现,包含数据库、表单、菜单、报表和主程序等多个部分,具体为:后台数据库销售管理数据库:1.职员基础信息表(职员编号,职员名,年纪,性别,部门,职务)。2.商品信息表(商品编号,商品名称,商品单价)。3.职员销售信息表(职员编号,商品编号,商品数目,应付金额,用户付款,找回金额)。二、正文系统分析:企业销售管理系统关键实现功效为:和数据库连接,实施对职员基础信息表、商品信息表、职员销售信息表查询、修改、添加、删除等功效实现。和对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<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+"%'"); 效果以下:正确查找:输入商品编号:04,显示结果以下:模糊查找:输入商品编号:0,显示结果以下:七、打印模块:打印信息表关键将修改好数据输出称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)日志:课程设计第一天:进行整体布局构思,创建职员信息表、商品信息表、职员销售信息表连接数据库,实现多个方

温馨提示

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

评论

0/150

提交评论