版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
序號(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í)間:年12月24日年1月11日目錄任務(wù)書系統(tǒng)功效分析········································03系統(tǒng)組成············································03正文系統(tǒng)分析功效模塊·········································04功效步驟圖·······································06數(shù)據(jù)庫(kù)設(shè)計(jì)··········································07系統(tǒng)具體設(shè)計(jì)連接數(shù)據(jù)庫(kù)·······································08主界面···········································08修改、添加、刪除模塊·····························10查詢、打印、登錄模塊·····························14系統(tǒng)使用說(shuō)明···········································21日志···················································22心得體會(huì)···············································22參考文件···············································23致謝···················································23一、任務(wù)書(一)、系統(tǒng)功效分析本系統(tǒng)用于對(duì)企業(yè)銷售進(jìn)行管理,包含職員基礎(chǔ)信息表、商品信息表和職員銷售信息表,關(guān)鍵功效包含:數(shù)據(jù)表統(tǒng)計(jì)添加、刪除、修改和瀏覽。對(duì)職員基礎(chǔ)情況、商品和銷售相關(guān)信息查詢。報(bào)表打印輸出。系統(tǒng)退出。(二)、系統(tǒng)組成依據(jù)系統(tǒng)功效分析,給出系統(tǒng)參考處理方案。整個(gè)系統(tǒng)功效經(jīng)過(guò)菜單實(shí)現(xiàn),包含數(shù)據(jù)庫(kù)、表單、菜單、報(bào)表和主程序等多個(gè)部分,具體為:后臺(tái)數(shù)據(jù)庫(kù)銷售管理數(shù)據(jù)庫(kù):1.職員基礎(chǔ)信息表(職員編號(hào),職員名,年紀(jì),性別,部門,職務(wù))。2.商品信息表(商品編號(hào),商品名稱,商品單價(jià))。3.職員銷售信息表(職員編號(hào),商品編號(hào),商品數(shù)目,應(yīng)付金額,用戶付款,找回金額)。二、正文系統(tǒng)分析:企業(yè)銷售管理系統(tǒng)關(guān)鍵實(shí)現(xiàn)功效為:和數(shù)據(jù)庫(kù)連接,實(shí)施對(duì)職員基礎(chǔ)信息表、商品信息表、職員銷售信息表查詢、修改、添加、刪除等功效實(shí)現(xiàn)。和對(duì)3張表信息進(jìn)行輸出打印,打印保留成XLS格式。功效模塊以下:查詢功效:模糊查找正確查找查詢功效其它模糊查找金額模糊查找數(shù)目模糊查找名稱模糊查找編號(hào)模糊查找名稱查找編號(hào)查找模糊查找正確查找查詢功效其它模糊查找金額模糊查找數(shù)目模糊查找名稱模糊查找編號(hào)模糊查找名稱查找編號(hào)查找添加其它添加數(shù)目添加編號(hào)添加名稱添加功效添加功效:添加其它添加數(shù)目添加編號(hào)添加名稱添加功效修改功效:保留退出修改功效修改其它修改數(shù)目修改編號(hào)修更名稱查詢數(shù)據(jù)保留退出修改功效修改其它修改數(shù)目修改編號(hào)修更名稱查詢數(shù)據(jù)刪除功效:刪除功效查詢數(shù)據(jù)確定刪除保留退出刪除功效查詢數(shù)據(jù)確定刪除保留退出程序結(jié)構(gòu)步驟圖:企業(yè)銷售管理系統(tǒng)企業(yè)銷售管理系統(tǒng)職員基礎(chǔ)信息表商品信息表職員銷售信息表查詢修改添加刪除查詢修改添加添加修改刪除輸出打印系統(tǒng)退出(2)數(shù)據(jù)庫(kù)設(shè)計(jì): 根據(jù)規(guī)范設(shè)計(jì)方法,考慮數(shù)據(jù)庫(kù)及其管理系統(tǒng)開發(fā)全過(guò)程,將數(shù)據(jù)庫(kù)設(shè)計(jì)分為以下六個(gè)階段:·需求分析·概念結(jié)構(gòu)設(shè)計(jì)·邏輯結(jié)構(gòu)設(shè)計(jì)·物理結(jié)構(gòu)設(shè)計(jì)·數(shù)據(jù)庫(kù)實(shí)施·數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)基礎(chǔ)要求在mysql軟件基礎(chǔ)上,利用應(yīng)用系統(tǒng)開發(fā)為企業(yè)銷售管理設(shè)計(jì)數(shù)據(jù)庫(kù)和建立對(duì)應(yīng)數(shù)據(jù)庫(kù)。創(chuàng)建4個(gè)表格,分別為sellInfo,staffInfo,goodsInfo,和登錄所需password表格。信息要求,處理要求,安全性和完整性要求,數(shù)據(jù)流圖,數(shù)據(jù)字典,數(shù)據(jù)項(xiàng)之間應(yīng)有聯(lián)絡(luò)必需表示出來(lái),用數(shù)據(jù)依靠表示即可邏輯結(jié)構(gòu)設(shè)計(jì)必需:說(shuō)明各個(gè)關(guān)系模式所屬范式,假如不是BC或3NF范式,(3)系統(tǒng)具體設(shè)計(jì):連接數(shù)據(jù)庫(kù):importjava.sql.*;publicclassConnection1{ Connectionconnect; privateStringdbDriver="com.mysql.jdbc.Driver";//加載數(shù)據(jù)庫(kù)驅(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ù)庫(kù)加載失敗");} returnconnect; }主界面:View.java首先在主界面panel里顯示數(shù)據(jù)庫(kù)中數(shù)據(jù),以商品信息表為例。 JTabletable; JScrollPanejscrollpane;//申明滾動(dòng)面板變量 TableModelmyTable=newDefaultTableModel(); Connection1db=newConnection1(); Connectioncon=db.getConnection();//連接到數(shù)據(jù)庫(kù) Statementps; try{ ps=con.createStatement(); ResultSetrs; rs=ps.executeQuery("select*fromgoodsInfo");//在sell表格中實(shí)施查詢 ResultSetMetaDatametaData; metaData=rs.getMetaData();//得到數(shù)據(jù)庫(kù)元數(shù)據(jù) intnumber=metaData.getColumnCount();//得到數(shù)據(jù)庫(kù)中表列個(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ù)庫(kù) 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ù)庫(kù),關(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ù)庫(kù)中由此數(shù)據(jù)時(shí),顯示該數(shù)據(jù),并請(qǐng)求用戶是否確定刪除,利用sql語(yǔ)句中delete,以職員基礎(chǔ)信息為例,關(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("年紀(jì)"); 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" +"年紀(jì):"+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);//實(shí)施刪除 }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } 效果以下:五、添加模塊:添加數(shù)據(jù)到數(shù)據(jù)庫(kù)關(guān)鍵用是sql中insert語(yǔ)句,在數(shù)據(jù)中增加所需數(shù)據(jù),這期間要尤其注意語(yǔ)句中變量和引號(hào)問(wèn)題,以職員銷售表為例,關(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();//實(shí)施并更新語(yǔ)句效果以下:六、查詢模塊:查詢方法關(guān)鍵有兩種:一是正確查找,經(jīng)過(guò)用戶所輸入編號(hào),名稱進(jìn)行查找;二是模糊查找,經(jīng)過(guò)用戶所輸入模糊信息進(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):04,顯示結(jié)果以下:模糊查找:輸入商品編號(hào):0,顯示結(jié)果以下:七、打印模塊:打印信息表關(guān)鍵將修改好數(shù)據(jù)輸出稱excel形式,保留在電腦里,以staffInfo為例,String[]title={"職員編號(hào)","職員名","年紀(jì)","性別","部門","職務(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("職員基礎(chǔ)信息表",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ù)庫(kù)中取得數(shù)據(jù) x++;//控制行數(shù) for(inty=0;y<title.length;y++){//取得列數(shù) label=newLabel(y,x,result.getString(y+1)); //x代表行,y代表列,經(jīng)過(guò)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,"輸出打印職員基礎(chǔ)信息表成功!保留在D:staffInfo");八、登陸界面:Login.Java首先連接數(shù)據(jù)庫(kù),并判定用戶所輸用戶名,密碼是否正確,假如匹配則讓其經(jīng)過(guò),不然提醒用戶名和密碼不匹配,請(qǐng)重新輸入。判定方法queryUser語(yǔ)句以下: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)使用說(shuō)明:設(shè)備支持:推薦配置:Windows7,512內(nèi)存。數(shù)據(jù)庫(kù):MySQLServer5.0。軟件支持:MyEclipse編寫。(5)日志:課程設(shè)計(jì)第一天:進(jìn)行整體布局構(gòu)思,創(chuàng)建職員信息表、商品信息表、職員銷售信息表連接數(shù)據(jù)庫(kù),實(shí)現(xiàn)多個(gè)方
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 西藏農(nóng)牧學(xué)院《食品加工類綜合技能訓(xùn)練》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024版?zhèn)}儲(chǔ)質(zhì)押貸款協(xié)議書3篇
- 二零二五年度房地產(chǎn)投資信托基金資金監(jiān)管合同3篇
- 無(wú)錫城市職業(yè)技術(shù)學(xué)院《供應(yīng)商履約與合同管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024版標(biāo)準(zhǔn)勞務(wù)合作安全合同范本版B版
- 二零二五版國(guó)際貿(mào)易融資貸款定金合同范本3篇
- 二零二五年油氣田開發(fā)井筒工程技術(shù)服務(wù)與地質(zhì)風(fēng)險(xiǎn)及安全監(jiān)控協(xié)議3篇
- 二零二五年度蟲害防治與生態(tài)農(nóng)業(yè)園合作服務(wù)協(xié)議2篇
- 2024房地產(chǎn)委托銷售合同
- 2024版特許經(jīng)營(yíng)合同范本:獨(dú)家授權(quán)經(jīng)營(yíng)協(xié)議
- 春季餐飲營(yíng)銷策劃
- 文化沖突與民族認(rèn)同建構(gòu)-洞察分析
- 企業(yè)會(huì)計(jì)機(jī)構(gòu)的職責(zé)(2篇)
- 《疥瘡的防治及治療》課件
- Unit4 What can you do Part B read and write (說(shuō)課稿)-2024-2025學(xué)年人教PEP版英語(yǔ)五年級(jí)上冊(cè)
- 2025年MEMS傳感器行業(yè)深度分析報(bào)告
- 《線控底盤技術(shù)》2024年課程標(biāo)準(zhǔn)(含課程思政設(shè)計(jì))
- 學(xué)校對(duì)口幫扶計(jì)劃
- 倉(cāng)庫(kù)倉(cāng)儲(chǔ)安全管理培訓(xùn)課件模板
- 風(fēng)力發(fā)電場(chǎng)運(yùn)行維護(hù)手冊(cè)
- 河道旅游開發(fā)合同
評(píng)論
0/150
提交評(píng)論