水電管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計說明書_第1頁
水電管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計說明書_第2頁
水電管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計說明書_第3頁
水電管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計說明書_第4頁
水電管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計說明書_第5頁
已閱讀5頁,還剩35頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 數(shù)據(jù)庫課程設(shè)計說 明 書學(xué) 院、系:軟件學(xué)院專 業(yè):網(wǎng)絡(luò)工程學(xué) 生 姓 名: 學(xué) 號: 設(shè) 計 題 目:水電管理系統(tǒng) 起 迄 日 期: 2011年5月30日 2011年6月17日指 導(dǎo) 教 師: 2010 年 6月 17 日一 背景資料:隨著科學(xué)科技的不斷發(fā)展,人們的生活方式正在發(fā)生著日新月異的變化,生活更趨于智能化,便捷化,手機,電腦,互聯(lián)網(wǎng)這些科技發(fā)展的成果,則完全改變了我們的生活方式。人造衛(wèi)星,航天器,航天飛機,更是把人類的文明提升到了更高的深度和廣度,而這些成就,卻離不開計算機科學(xué)時代的基礎(chǔ)軟件!社會發(fā)展越來越快,水電力需求量旺盛,加強有序用水和電管理,確保電力和水力的有效供應(yīng)。隨著

2、各個公寓居住條件的不斷改善,越來越多的電器,如空調(diào)、電腦、電熱設(shè)備、飲水機等正逐步走進公寓,公寓用電量越來越大。傳統(tǒng)所采用的定時、限量的用電管理模式受到挑戰(zhàn),供電是否適應(yīng)時代要求已經(jīng)關(guān)系到生活環(huán)境的質(zhì)量問題。為了給住戶提供一個符合時代發(fā)展的生活環(huán)境,使公寓服務(wù)向社會化發(fā)展,急需開發(fā)一套安全、合理的用電用水管理系統(tǒng)。由于各種原因,設(shè)計這個系統(tǒng)。通過這個系統(tǒng)中,方便供水和電的公司及時掌握跟蹤客戶的用電和用水情況,實現(xiàn)實時管理,在充分利用現(xiàn)有電力和水力資源的基礎(chǔ)上,做好計劃用電、優(yōu)化用電、加強有序用電、提高電能和水能效益等提供技術(shù)支持。對沒有及時繳納電費和水費的住戶給予警告和通知其快點繳納費用。為此

3、,我將用java實現(xiàn)水電管理系統(tǒng)的設(shè)計!二 設(shè)計的目的:本課程設(shè)計采用面向?qū)ο笳Z言及關(guān)系型數(shù)據(jù)庫完成題目的設(shè)計。本課程設(shè)計將面向?qū)ο蟪绦蛟O(shè)計、數(shù)據(jù)庫原理及應(yīng)用課程相結(jié)合,論聯(lián)系實際,分析解決實際問題的能力。從而提高我們的實踐編程的能力。具體如下: 1.進一步學(xué)習(xí)面向?qū)ο蟪绦蛟O(shè)計語言,關(guān)系型數(shù)據(jù)庫基礎(chǔ)知識2.培養(yǎng)面向?qū)ο蟪绦蛟O(shè)計、模塊化程序設(shè)計的方法和能力3.了解軟件的編制過程及各環(huán)節(jié)的具體內(nèi)容4.提高程序調(diào)試技巧、軟件設(shè)計能力和代碼規(guī)范化等素質(zhì)5.分析問題、解決問題以及實際運用能力三需求分析: 本系統(tǒng)實現(xiàn)如下功能:1、查詢功能:訪問數(shù)據(jù)庫,查詢用戶有關(guān)信息。如用戶的姓名、樓號、單元、房間號、手

4、機、帳號、電表型號、水表型號、電費、水費等。2、添加功能:訪問數(shù)據(jù)庫,添加用戶的以上信息。3、刪除功能:訪問數(shù)據(jù)庫,刪除用戶信息,賬戶信息。4、關(guān)閉功能:退出水電管理系統(tǒng)。5、系統(tǒng)總體框架圖: 登錄界面輸入用戶名和密碼 主對話框 實現(xiàn)查詢功能實現(xiàn)添加功能實現(xiàn)刪除功能實現(xiàn)關(guān)閉功能四、總體設(shè)計: 1.經(jīng)以上分析可以把此系統(tǒng)分為五個模塊: 第一個模塊:登錄模塊,此模塊用來實現(xiàn)系統(tǒng)管理員的登錄,也就是進入此系統(tǒng)的權(quán)限。 第二個模塊:查詢模塊,此模塊可分為兩部分用戶信息部分,賬號信息部分又因為賬號信息部分又依賴于用戶信息部分,所以此兩部分又是一個統(tǒng)一的整。體。 第三個模塊:添加模塊,此模塊分為兩部分,用

5、戶信息的添加,賬戶信息的添加,因為賬戶信息有依賴于用戶信息的部分,所以在添加信息時,應(yīng)該先添加用戶信息,后添加賬戶信息。否則添加信息不能成功。這一點特別重要! 第四個模塊:刪除模塊,此模塊也包括兩部分,用戶信息的刪除,賬戶信息的刪除,因為賬戶信息部分有依賴用戶信息的部分,所以根據(jù)數(shù)據(jù)庫的相關(guān)知識,刪除有關(guān)信息時,應(yīng)該先刪除賬戶信息部分,后刪除用戶信息部分。 第五個模塊:退出系統(tǒng)模塊,此模塊用來實現(xiàn)退出系統(tǒng)功能。2.數(shù)據(jù)庫的設(shè)計: (1) 系統(tǒng)管理員用真確的用戶名和密碼登錄 (2) 查詢用戶信息: 1查詢用戶信息:輸入真確的用戶號碼 2查詢帳戶信息:輸入真確的帳號號碼 (3) 添加用戶信息: 1

6、首先輸入真確的用戶信息:包括用戶號碼、姓名、樓號、單元號、門牌號、用戶手機。 2接著輸入真確的帳戶信息:包括用戶的賬單號、電表型號、水表型號、電費、水費、付費日期。 (4)刪除用戶信息: 1刪除用戶信息:輸入正確的用戶號碼 2刪除賬戶信息:輸入正確的賬號密碼(5)數(shù)據(jù)分析: 經(jīng)過調(diào)查分析知,數(shù)據(jù)處理過程中涉及到兩個實體:用戶和賬單,各實體應(yīng)該具有以下屬性: 用戶(用戶編號,姓名,樓號,單元號,門牌號,手機號) 系統(tǒng)管理員(用戶名,密碼) 賬單(賬單號,電表型號,水表型號,電費,水費,交費日期)由于一個用戶對應(yīng)一張賬單,所以用戶和賬單是一對一的關(guān)系。因此完整的數(shù)據(jù)庫e-r圖為 client用戶信

7、息表:表中列名數(shù)據(jù)類型可否為空說明用戶號charnot null(主鍵)用戶編號姓名char null 用戶姓名樓號char null用戶所在樓單元charnull用戶所在單元門牌號charnull用戶的門牌號手機charnull用戶的手機accounting賬單信息:表中列名數(shù)據(jù)類型可否為空說明賬單號charnot null(主鍵)賬單編號 電表型號char null 電表的類型 水表型號charnull水表的類型電費charnull用電的費用 水費charnull用水的費用交費日期charnull交費的時間系統(tǒng)管理員登錄表:表中列名數(shù)據(jù)類型可否為空說明用戶名charnot null(主鍵)

8、登錄系統(tǒng)的管理員 密碼char not null 驗證是否符合授權(quán)3.數(shù)據(jù)表的實現(xiàn): 管理員信息表: 用戶信息表:賬單信息表:用戶信息與賬單信息表的e-r圖:1. 用戶 賬單對應(yīng) 在sql sever2000實現(xiàn)的關(guān)系表聯(lián)系:五、詳細設(shè)計: 1.登錄模塊:登錄界面:核心代碼:import java.sql.*;import java.io.ioexception;import java.io.printwriter;import java.sql.drivermanager;import java.awt.borderlayout;import java.awt.color;import ja

9、va.awt.container;import java.awt.flowlayout;import java.awt.gridlayout;import java.awt.event.actionevent;import java.awt.event.actionlistener;import javax.swing.*;import javax.swing.jpasswordfield;class mainframe extends jframe implements actionlistener jpasswordfield jp = new jpasswordfield(); conn

10、ection con;resultset rs;/定義一個結(jié)果集對象 statement st;/語句對象(可以接收和執(zhí)行一條sql語句)jpanel panel_d3=new jpanel();jbutton button=new jbutton(ok);jlabel label1=new jlabel(用戶名);jlabel label3=new jlabel( 密碼 );jtextfield text3=new jtextfield(10);jtextfield text1=new jtextfield(10);jbutton ok=new jbutton(確定);mainframe()

11、super(水電管理系統(tǒng)登錄);this.setbounds(400,70,500,450); this.setresizable(false);/ 參數(shù)為boolean類型,resizeable值為true時,表示在生成的窗體可以自由改變大??;resizeable值為false時,表示生成的窗體大小是由程序員決定的,用戶不可以自由改變該窗體的大小。borderlayout border=new borderlayout();this.setlayout(border);this.add(borderlayout.south,panel_d3);this.add(panel_d3);panel

12、_d3.setlayout(null);label1.setbounds(40,300,40,20);text1.setbounds(90,300,150,20);label3.setbounds(255,300,40,20);jp.setbounds(300,300,150,20);button.setbounds(235,330,70,30);panel_d3.add(label1);panel_d3.add(text1);panel_d3.add(label3);panel_d3.add(jp);panel_d3.add(button);button.addactionlistener(

13、this);this.setdefaultcloseoperation(jframe.exit_on_close);this.setvisible(true);public void actionperformed(actionevent e)if(e.getsource()=button) try class.forname(sun.jdbc.odbc.jdbcodbcdriver);joptionpane.showmessagedialog(null,數(shù)據(jù)庫加載成功); catch(classnotfoundexception ed) joptionpane.showmessagedial

14、og(null,數(shù)據(jù)庫加載失敗); try con = drivermanager.getconnection(jdbc:odbc:zsl,system,jsj); st=con.createstatement();joptionpane.showmessagedialog(null,數(shù)據(jù)庫連接成功); catch(sqlexception ew) joptionpane.showmessagedialog(null,數(shù)據(jù)庫連接失敗); string s1=text1.gettext().trim();string s2=jp.gettext().trim();string s = ;stri

15、ng sql=select key from people where name=+s1+ ;tryrs=st.executequery(sql); if(rs.next() system.out.print(s2);system.out.println(s2); s=rs.getstring(1); s.trim();system.out.print(s); system.out.println(s); if(s.equals(s2)=true) joptionpane.showmessagedialog(null,登錄成功!); mainframe1 p=new mainframe1();

16、else joptionpane.showmessagedialog(null,你輸入的密碼或用戶名錯誤!);else joptionpane.showmessagedialog(null,你輸入的密碼或用戶名錯誤!);catch(exception ex) joptionpane.showmessagedialog(null,抱歉,程序出現(xiàn)異常!);system.out.println(ex.getmessage(); try st.close(); con.close(); catch(sqlexception e1 ) joptionpane.showmessagedialog(null

17、,數(shù)據(jù)庫關(guān)閉失敗了!); 2.系統(tǒng)主界面:3.查詢模塊:核心代碼:class mainframe1 extends jframe implements actionlistenerconnection con;statement st;jbutton a=new jbutton(查詢);jbutton b=new jbutton(添加);jbutton c=new jbutton(刪除); jmenubar bar=new jmenubar();jmenu menu=new jmenu(選項);jmenuitem item4=new jmenuitem(退出);gridlayout grid=

18、new gridlayout(1,1,40,40);/gridlayout(int rows,int cols,int hgap,int vgap),rows - 行數(shù),cols - 列數(shù),hgap - 水平間距,vgap - 垂直間距 mainframe1()super(歡迎進入水電管理系統(tǒng));this.setbounds(400,70,500,500);/this.setbounds(x, y, width, height),移動組件并調(diào)整其大小,由x,y指定左上角的位置,由width和height指定大小this.setlayout(null);container con=this.ge

19、tcontentpane();con.setlayout(null); a.setbounds(65,250,80,50); b.setbounds(215,250,80,50); c.setbounds(365,250,80,50); con.add(a);con.add(b);con.add(c); this.setdefaultcloseoperation(jframe.exit_on_close);a.addactionlistener(this);b.addactionlistener(this);c.addactionlistener(this);item4.addactionli

20、stener(this); menu.add(item4);bar.add(menu);this.setjmenubar(bar);this.setvisible(true);public void actionperformed(actionevent e)if(e.getsource()=a)select a1=new select();a1.setvisible(true);else if(e.getsource()=b)insert a2=new insert();a2.setvisible(true);else if(e.getsource()=c)delete a3=new del

21、ete();a3.setvisible(true);else if(e.getsource()=item4) dispose();system.exit(0);/this.setdefaultcloseoperation(jframe.exit_on_close); class select extends jframe implements actionlistener connection con;resultset rs;resultset rs2; statement st; statement st2;string cno,cname,building,unit,room,cellp

22、hone;string accountno,powerno,waterno,poweraccount,wateraccount,paymentdate;string s1,s2;jbutton button =new jbutton(查詢); jlabel label1=new jlabel(請輸入客戶號碼);jlabel label2=new jlabel(姓名);jlabel label3=new jlabel( 樓號);jlabel label4=new jlabel(單元);jlabel label5=new jlabel(門牌號碼);jlabel label6=new jlabel(

23、手機);jlabel label7=new jlabel(賬單號);jlabel label8=new jlabel(電表型號);jlabel label9=new jlabel(水表型號);jlabel label10=new jlabel(電費);jlabel label11=new jlabel(水費);jlabel label12=new jlabel(交費日期);jlabel label13=new jlabel();jlabel label14=new jlabel();jlabel label15=new jlabel();jlabel label16=new jlabel();

24、jtextfield text3=new jtextfield(10); jtextfield text4=new jtextfield(10);jtextfield text5=new jtextfield(10);jtextfield text6=new jtextfield(10);jtextfield text7=new jtextfield(10);jtextfield text8=new jtextfield(10);jtextfield text9=new jtextfield(10);jtextfield text10=new jtextfield(10);jtextfield

25、 text11=new jtextfield(10);jtextfield text12=new jtextfield(10);jtextfield text13=new jtextfield(10);jtextfield text14=new jtextfield(10);jtextfield text15=new jtextfield(10);jtextfield text16=new jtextfield(10);gridlayout grid=new gridlayout(5,5,0,0);select()super(水電管理系統(tǒng)查詢);this.setbounds(200,70,80

26、0,600);this.setdefaultcloseoperation(jframe.hide_on_close);button.addactionlistener(this);container con=this.getcontentpane();con.setlayout(grid);con.add(label2);con.add(text3); con.add(label3); con.add(text4);con.add(label4);con.add(text5);con.add(label5);con.add(text6);con.add(label6);con.add(text

27、7);con.add(label7);con.add(text8);con.add(label8);con.add(text9);con.add(label9);con.add(text10);con.add(label10);con.add(text11);con.add(label11);con.add(text12);con.add(label12);con.add(text13); con.add(label15); con.add(label16);con.add(label1); con.add(text16); con.add(button); public void actio

28、nperformed(actionevent e)if(e.getsource()=button) tryclass.forname(sun.jdbc.odbc.jdbcodbcdriver);joptionpane.showmessagedialog(null,數(shù)據(jù)庫加載成功); catch(classnotfoundexception ed) joptionpane.showmessagedialog(null,數(shù)據(jù)庫加載失敗); try con = drivermanager.getconnection(jdbc:odbc:zsl,system,jsj); st = con.create

29、statement(resultset.type_scroll_sensitive,resultset.concur_read_only); st2 = con.createstatement(resultset.type_scroll_sensitive,resultset.concur_read_only);joptionpane.showmessagedialog(null,數(shù)據(jù)庫連接成功);catch(sqlexception ew) joptionpane.showmessagedialog(null,數(shù)據(jù)庫連接失敗); s1=text16.gettext();system.out.

30、println(ok1); string sql=select o,cname,building,unit,room,cellphone, + accountno,powerno,waterno,poweraccount,wateraccount,paymentdate + from client,accounting where o=o and o=+s1+;system.out.println(sql); try rs=st.executequery(sql);int count=0;if(rs.next()system.out.println(ok4); cno = rs.getstri

31、ng(cno);system.out.println(cno); cname = rs.getstring(cname); building=rs.getstring(building); unit = rs.getstring(unit)+unit; system.out.println(unit); room=rs.getstring(room)+room; cellphone=rs.getstring(cellphone); system.out.println(cellphone); accountno=rs.getstring(accountno); system.out.print

32、ln(accountno); powerno=rs.getstring(powerno); system.out.println(powerno); waterno=rs.getstring(waterno); system.out.println(waterno); poweraccount=rs.getstring(poweraccount); system.out.println(poweraccount); wateraccount=rs.getstring(wateraccount); system.out.println(wateraccount); paymentdate=rs.

33、getstring(paymentdate); system.out.println(paymentdate); +count;if(count=0) joptionpane.showmessagedialog(null,對不起,沒有您要查找的用戶信息!);else system.out.println(顯示了);text16.settext(cno);text3.settext(cname);text4.settext(building);text5.settext(unit);text6.settext(room);text7.settext(cellphone);text8.settex

34、t(accountno);text9.settext(powerno);text10.settext(waterno);text11.settext(poweraccount);text12.settext(wateraccount);text13.settext(paymentdate); system.out.println(找到了); catch(exception ex) joptionpane.showmessagedialog(null,抱歉,程序出現(xiàn)異常!);system.out.println(ex.getmessage(); try st.close(); con.close

35、(); catch(sqlexception e1 ) joptionpane.showmessagedialog(null,數(shù)據(jù)庫關(guān)閉失敗了!); 4.添加模塊: 核心代碼:class insert extends jframe implements actionlistenerjlabel label1=new jlabel(請輸入客戶號碼);jlabel label2=new jlabel(姓名);jlabel label3=new jlabel( 樓號);jlabel label4=new jlabel(單元);jlabel label5=new jlabel(門牌號碼);jlabel

36、 label6=new jlabel(手機);jlabel label7=new jlabel(請輸入賬戶號);jlabel label8=new jlabel(客戶號碼);jlabel label9=new jlabel(電表型號);jlabel label10=new jlabel( 水表型號);jlabel label11=new jlabel(電費);jlabel label12=new jlabel(水費);jlabel label13=new jlabel(交費日期);jlabel a=new jlabel();jlabel b=new jlabel();jlabel c=new

37、jlabel();jlabel d=new jlabel();jlabel e=new jlabel();jlabel f=new jlabel();jlabel g=new jlabel();jlabel a1=new jlabel();jlabel a2=new jlabel();jlabel a3=new jlabel();jlabel a4=new jlabel();jtextfield text3=new jtextfield(10);jtextfield text4=new jtextfield(10);jtextfield text5=new jtextfield(10);jte

38、xtfield text6=new jtextfield(10);jtextfield text7=new jtextfield(10);jtextfield text8=new jtextfield(10);jtextfield text9=new jtextfield(10);jtextfield text10=new jtextfield(10);jtextfield text11=new jtextfield(10);jtextfield text12=new jtextfield(10);jtextfield text13=new jtextfield(10);jtextfield

39、text14=new jtextfield(10);jtextfield text15=new jtextfield(10);jtextfield text16=new jtextfield(10);jtextfield text17=new jtextfield(10);jtextfield text18=new jtextfield(10);jtextfield text19=new jtextfield(10);jtextfield text20=new jtextfield(10);jtextfield text21=new jtextfield(10);jtextfield text

40、22=new jtextfield(10);jtextfield text23=new jtextfield(10);jtextfield text24=new jtextfield(10);jtextfield text25=new jtextfield(10);jtextfield text26=new jtextfield(10);jtextfield text27=new jtextfield(10);jtextfield text28=new jtextfield(10);jtextfield text29=new jtextfield(10);jtextfield text30=n

41、ew jtextfield(10);jbutton button =new jbutton(客戶信息插入); jbutton button2 =new jbutton(電費信息插入); gridlayout grid=new gridlayout(9,4,0,0);connection con;connection con2,con3,con4,con5,con6;resultset rs;resultset rs2,rs3,rs4,rs5,rs6; statement st4,st5,st6,st3,st; statement st2;string s1,s2,s3,s4,s5,s6;ins

42、ert()super(添加數(shù)據(jù));this.setbounds(400,70,500,500);this.setdefaultcloseoperation(jframe.hide_on_close);button.addactionlistener(this);button2.addactionlistener(this);container con=this.getcontentpane();con.setlayout(grid);con.add(a); con.add(label1); con.add(text3);con.add(b);con.add(label2);con.add(te

43、xt4); con.add(label3); con.add(text5);con.add(label4);con.add(text6);con.add(label5);con.add(text7);con.add(label6);con.add(text8); con.add(button);con.add(c); con.add(d); con.add(label7); con.add(text9); con.add(e); con.add(label8);con.add(text10);con.add(label9);con.add(text11);con.add(label10);co

44、n.add(text12); con.add(label11); con.add(text13); con.add(label12); con.add(text14); con.add(label13); con.add(text15); con.add(f); con.add(g); con.add(button2);public void actionperformed(actionevent e)if(e.getsource()=button) tryclass.forname(sun.jdbc.odbc.jdbcodbcdriver);joptionpane.showmessagedialog(null,數(shù)據(jù)庫加載成功); catch(classnotfoundexception ed) joptionpane.showmessagedialog(null,數(shù)據(jù)庫加載失敗); try con = drivermanager.getconnection(jdbc:odbc:zsl,system,jsj); st = con.createstatement();joptionpane.showmessagedialog(null,數(shù)據(jù)庫連接成功);catch(sqlexception ew)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論