版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
常州大學(xué)課程設(shè)計(jì)PAGEPAGE2第2頁共23頁序號(hào):10學(xué)號(hào):11416230常州大學(xué)課程設(shè)計(jì)課程名稱:《面向?qū)ο蟪绦蛟O(shè)計(jì)(JAVA)》題目:企業(yè)銷售管理系統(tǒng)姓名:`````````學(xué)院:信息科學(xué)與工程學(xué)院專業(yè)班級(jí):```````指導(dǎo)教師:``````設(shè)計(jì)時(shí)間:2012年12月24日2013年1月11日目錄任務(wù)書系統(tǒng)功能分析········································03系統(tǒng)組成············································03正文系統(tǒng)分析功能模塊·········································04功能流程圖·······································06數(shù)據(jù)庫設(shè)計(jì)··········································07系統(tǒng)詳細(xì)設(shè)計(jì)連接數(shù)據(jù)庫·······································08主界面···········································08修改、添加、刪除模塊·····························10查詢、打印、登錄模塊·····························14系統(tǒng)使用說明···········································21日記···················································22心得體會(huì)···············································22參考文獻(xiàn)···············································23致謝···················································23修改功能:保存退出修改功能修改其他修改數(shù)目修改編號(hào)修改名稱查詢數(shù)據(jù)保存退出修改功能修改其他修改數(shù)目修改編號(hào)修改名稱查詢數(shù)據(jù)刪除功能:刪除功能查詢數(shù)據(jù)確定刪除保存退出刪除功能查詢數(shù)據(jù)確定刪除保存退出程序結(jié)構(gòu)流程圖:企業(yè)銷售管理系統(tǒng)企業(yè)銷售管理系統(tǒng)員工基本信息表商品信息表員工銷售信息表查詢修改添加刪除查詢修改添加添加修改刪除輸出打印系統(tǒng)退出(2)數(shù)據(jù)庫設(shè)計(jì): 按照規(guī)范設(shè)計(jì)的方法,考慮數(shù)據(jù)庫及其管理系統(tǒng)開發(fā)的全過程,將數(shù)據(jù)庫設(shè)計(jì)分為以下六個(gè)階段:·需求分析·概念結(jié)構(gòu)設(shè)計(jì)·邏輯結(jié)構(gòu)設(shè)計(jì)·物理結(jié)構(gòu)設(shè)計(jì)·數(shù)據(jù)庫實(shí)施·數(shù)據(jù)庫運(yùn)行和維護(hù)基本要求在mysql軟件基礎(chǔ)上,利用應(yīng)用系統(tǒng)開發(fā)為企業(yè)銷售管理設(shè)計(jì)數(shù)據(jù)庫和建立相應(yīng)的數(shù)據(jù)庫。創(chuàng)建4個(gè)表格,分別為sellInfo,staffInfo,goodsInfo,以及登錄所需的password表格。信息要求,處理要求,安全性和完整性要求,數(shù)據(jù)流圖,數(shù)據(jù)字典,數(shù)據(jù)項(xiàng)之間應(yīng)有的聯(lián)系必須表示出來,用數(shù)據(jù)依賴表示即可邏輯結(jié)構(gòu)設(shè)計(jì)必須:說明各個(gè)關(guān)系模式所屬的范式,如果不是BC或3NF范式,(3)系統(tǒng)的詳細(xì)設(shè)計(jì):連接數(shù)據(jù)庫:importjava.sql.*;publicclassConnection1{ Connectionconnect; privateStringdbDriver="com.mysql.jdbc.Driver";//加載數(shù)據(jù)庫驅(qū)動(dòng)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("數(shù)據(jù)庫加載失敗");} returnconnect; }主界面:View.java首先在主界面的panel里顯示數(shù)據(jù)庫中的數(shù)據(jù),以商品信息表為例。 JTabletable; JScrollPanejscrollpane;//申明滾動(dòng)面板變量 TableModelmyTable=newDefaultTableModel(); Connection1db=newConnection1(); Connectioncon=db.getConnection();//連接到數(shù)據(jù)庫 Statementps; try{ ps=con.createStatement(); ResultSetrs; rs=ps.executeQuery("select*fromgoodsInfo");//在sell表格中執(zhí)行查詢 ResultSetMetaDatametaData; metaData=rs.getMetaData();//得到數(shù)據(jù)庫元數(shù)據(jù) intnumber=metaData.getColumnCount();//得到數(shù)據(jù)庫中表的列的個(gè)數(shù) VectorcolumnNames=newVector();//調(diào)用Vector類,生成可自動(dòng)增長的數(shù)組對(duì)象列 Vectorrows=newVector();//對(duì)象行 for(intnum=0;num<number;num++){ columnNames.addElement(metaData.getColumnLabel(num+1)); }//循環(huán)生成 while(rs.next()){ VectornewRow=newVector();/*for循環(huán),將結(jié)果集中一行數(shù)據(jù)放到newRow矢量中*/ for(inti=1;i<=number;i++){ newRow.addElement(rs.getObject(i)); }/*將上面的矢量newRow作為矢量rows中的一個(gè)元素,這樣rows中的一個(gè)元素就代表結(jié)果集中的一行數(shù)據(jù)*/ rows.addElement(newRow);//增長行 myTable=newDefaultTableModel(rows,columnNames);//在表格中加載數(shù)據(jù) } }catch(SQLExceptionex){ } table=newJTable(myTable); jscrollpane=newJScrollPane(table); jscrollpane.setViewportView(table); jscrollpane.revalidate(); jPanel3.setLayout(newBorderLayout()); jPanel3.add(jscrollpane,BorderLayout.CENTER); jPanel3.setVisible(true);效果如下:三、修改模塊:首先對(duì)所需修改的員工信息進(jìn)行查詢,并顯示在修改界面上,關(guān)鍵代碼如下:Connection1db=newConnection1(); Connectioncon=db.getConnection();//連接數(shù)據(jù)庫 Stringsql="select*fromsellInfo"; Statementps=con.createStatement(); ResultSetrs=ps.executeQuery(sql);//查詢 while(rs.next()){ if(rs.getString("員工編號(hào)").equals(jTextField1.getText())){ //匹配該員工的信息; num1=rs.getString("員工編號(hào)"); num2=rs.getString("商品編號(hào)"); num3=rs.getInt("商品數(shù)目"); price1=rs.getInt("應(yīng)付金額(元)"); price2=rs.getInt("顧客付款(元)"); price3=rs.getInt("找回金額(元)"); } } jTextField2.setText(num1); jTextField3.setText(num2); jTextField4.setText(""+num3); jTextField5.setText(""+price1); jTextField6.setText(""+price2); jTextField7.setText(""+price3);//在修改界面上顯示該員工銷售的信息 }然后在對(duì)修改界面上的信息進(jìn)行修改,并返回保存至數(shù)據(jù)庫,關(guān)鍵代碼如下:Stringsql="updatesellInfoset員工編號(hào)='"+num1+"',商品編號(hào)='"+num2+"',商品數(shù)目="+num3+",應(yīng)付金額(元)="+price1+",顧客付款(元)="+price2+",找回金額(元)="+price3+"where員工編號(hào)='"+num1+"'"; try{ ps=con.createStatement(); ps.executeUpdate(sql);//數(shù)據(jù)更新 }catch(SQLExceptione){ e.printStackTrace(); }效果如下:四、刪除模塊:首先對(duì)用戶輸入的員工編號(hào)或者員工名稱進(jìn)行查找,當(dāng)數(shù)據(jù)庫中由此數(shù)據(jù)時(shí),顯示該數(shù)據(jù),并請(qǐng)求用戶是否確定刪除,運(yùn)用sql語句中的delete,以員工基本信息為例,關(guān)鍵代碼如下:Statementps=con.createStatement(); ResultSetrs=ps.executeQuery(sql); while(rs.next()){ if(rs.getString("員工編號(hào)").equals(jTextField1.getText()) ||rs.getString("員工名").equals(jTextField2.getText())) { num1=rs.getString("員工編號(hào)"); num2=rs.getString("員工名"); i=rs.getInt("年齡"); num3=rs.getString("性別"); num4=rs.getString("部門"); num5=rs.getString("職務(wù)"); } } } ints=JOptionPane.showConfirmDialog(null,"確定要?jiǎng)h除此數(shù)據(jù)嗎?\t\n員工編號(hào):"+jTextField1.getText()+"\t\n"+"員工名:"+num2+"\t\n" +"年齡:"+i+"(歲)"+"\t\n"+"性別:"+num3+"\t\n" +"部門:"+num4+"\t\n"+"職務(wù):"+num5+"\t");//顯示對(duì)話框是否確定刪除 if(s==0){ Stringjk=jTextField1.getText(); Stringjk1=jTextField2.getText(); Stringsql1="deletefromstaffInfowhere員工編號(hào)='"+jk +"'or員工名='"+jk1+"'"; Statementps1; try{ ps1=con.createStatement(); ps1.execute(sql1);//執(zhí)行刪除 }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } 效果如下:五、添加模塊:添加數(shù)據(jù)到數(shù)據(jù)庫主要用的是sql中的insert語句,在數(shù)據(jù)中增加所需數(shù)據(jù),這期間要特別注意語句中的變量與引號(hào)的問題,以員工銷售表為例,關(guān)鍵代碼如下: 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();//執(zhí)行并更新語句效果如下:六、查詢模塊:查詢方式主要有兩種:一是精確查找,通過用戶所輸入的編號(hào),名稱進(jìn)行查找;二是模糊查找,通過用戶所輸入的模糊信息進(jìn)行查找,輸出所有符合的結(jié)果。1.精確查找關(guān)鍵代碼如下: Stringsql="select*fromgoodsInfo"; Stringnum1=null,name=null; intnum2=0; Statementps=con.createStatement(); ResultSetrs=ps.executeQuery(sql); while(rs.next()){ if(rs.getString("商品編號(hào)").equals(jTextField1.getText())||rs.getString("商品名稱").equals(jTextField2.getText())){ num1=rs.getString("商品編號(hào)"); name=rs.getString("商品名稱"); num2=rs.getInt("商品單價(jià)(元)"); } }2.模糊查詢關(guān)鍵代碼如下:Stringnum1=jTextField3.getText(),num2=jTextField4.getText(),num3=jTextField5.getText(); if(num1.equals("")&&num2.equals("")&&num3.equals("")){ GoodsInfogi=newGoodsInfo(); gi.getGoodsInfo();//如果全部為空,則顯示所有數(shù)據(jù) }elseif(!num1.equals(null)||!num2.equals(null) ||!num3.equals(null)){ Statementps; ps=con.createStatement(); ResultSetrs; rs=ps.executeQuery("select*fromgoodsInfowhere商品編號(hào)like'"+num1+"%'and商品名稱like'"+num2+"%'and商品單價(jià)(元)like'"+num3+"%'"); 效果如下:精確查找:輸入商品編號(hào):201204,顯示結(jié)果如下:模糊查找:輸入商品編號(hào):20120,顯示結(jié)果如下:七、打印模塊:打印信息表主要將修改好的數(shù)據(jù)輸出稱excel的形式,保存在電腦里,以staffInfo為例,String[]title={"員工編號(hào)","員工名","年齡","性別","部門","職務(wù)"};//準(zhǔn)備設(shè)置excel工作表的標(biāo)題 StringfilePath="D:\\staffInfo.xls";//輸出的excel的路徑 OutputStreamos=newFileOutputStream(filePath);//創(chuàng)建Excel工作薄 WritableWorkbookwwb=Workbook.createWorkbook(os); //添加第一個(gè)工作表并設(shè)置第一個(gè)Sheet的名字 WritableSheetsheet=wwb.createSheet("員工基本信息表",0); Labellabel=null; for(inti=0;i<title.length;i++){ //Label(x,y,z)其中x代表單元格的第x+1列,第y+1行,單元格的內(nèi)容是y//在Label對(duì)象的子對(duì)象中指明單元格的位置和內(nèi)容 label=newLabel(i,0,title[i]);//將定義好的單元格添加到工作表中 sheet.addCell(label); } Statementstmt=con.createStatement(); ResultSetresult=stmt.executeQuery("select*fromstaffInfo");//查詢表中的所有數(shù)據(jù) intx=0; while(result.next()){//從數(shù)據(jù)庫中取得數(shù)據(jù) x++;//控制行數(shù) for(inty=0;y<title.length;y++){//獲得列數(shù) label=newLabel(y,x,result.getString(y+1)); //x代表行,y代表列,通過rst.getString()設(shè)置單元格內(nèi)容 sheet.addCell(label);//將內(nèi)容加到execl中去 } } wwb.write();//寫入數(shù)據(jù) wwb.close();//關(guān)閉文件保存效果如下:關(guān)鍵代碼如下:OutPutExloe1=newOutPutExl(); oe1.OutPutExlstaff(); JOptionPane.showMessageDialog(null,"輸出打印員工基本信息表成功!保存在D:staffInfo");八、登陸界面:Login.Java首先連接數(shù)據(jù)庫,并判斷用戶所輸?shù)挠脩裘艽a是否正確,如果匹配則讓其通過,否則提示用戶名與密碼不匹配,請(qǐng)重新輸入。判斷方法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)系統(tǒng)的使用說明:設(shè)備支持:推薦配置:Windows7,512內(nèi)存。數(shù)據(jù)庫:MySQLServer5.0。軟件支持:MyEclipse編寫。(5)日志:課程設(shè)計(jì)第一天:進(jìn)行整體的布局構(gòu)思,創(chuàng)建員工信息表、商品信息表、員工銷售信息表連接數(shù)據(jù)庫,實(shí)現(xiàn)多種方式驗(yàn)證登錄。第二天:創(chuàng)建主界面,將數(shù)據(jù)庫里的表格信息出現(xiàn)在客戶端上。主要是panel的運(yùn)用。第三天:進(jìn)行簡單的語句查詢,調(diào)試編碼問題—中文亂碼,并設(shè)置滾動(dòng)面板。通過網(wǎng)上查找了解
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《紙飛機(jī)》教學(xué)實(shí)踐的突破與創(chuàng)新
- 浙江省杭州市山海聯(lián)盟2024-2025學(xué)年八年級(jí)上學(xué)期期中考試語文試題(B卷)
- 5.1延續(xù)文化血脈-(教學(xué)設(shè)計(jì)) 2024-2025學(xué)年統(tǒng)編版道德與法治九年級(jí)上冊(cè)
- 創(chuàng)新初中體育教案2024年版
- 三角形分類全解析:2024年教學(xué)新方法
- 七年級(jí)下冊(cè)期末語文測(cè)試卷(B卷)
- 探究2024:八年級(jí)上冊(cè)物理教案全新設(shè)計(jì)
- 《理想的翅膀》課件:2024年助力小微企業(yè)轉(zhuǎn)型升級(jí)
- 2024年多媒體課件評(píng)分標(biāo)準(zhǔn):助力教育現(xiàn)代化
- 第45屆世界技能大賽全國選拔賽汽車噴漆項(xiàng)目技術(shù)工作文件
- 大學(xué)生辯論賽評(píng)分標(biāo)準(zhǔn)表
- 診所污水污物糞便處理方案及周邊環(huán)境
- 江蘇開放大學(xué)2023年秋《馬克思主義基本原理 060111》形成性考核作業(yè)2-實(shí)踐性環(huán)節(jié)(占過程性考核成績的30%)參考答案
- 《我是班級(jí)的主人翁》的主題班會(huì)
- 酒店安全設(shè)施及安全制度
- 近代化的早期探索與民族危機(jī)的加劇 單元作業(yè)設(shè)計(jì)
- 租賃機(jī)械設(shè)備施工方案
- 屋面融雪系統(tǒng)施工方案
- 二年級(jí)家長會(huì)語文老師課件
- 結(jié)構(gòu)加固改造之整體結(jié)構(gòu)加固教學(xué)課件
- 教堂安全風(fēng)險(xiǎn)分級(jí)管控體系方案全套資料(2019-2020新標(biāo)準(zhǔn)完整版)
評(píng)論
0/150
提交評(píng)論