




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、目 錄一、 設(shè)計目的2二、 功能介紹21、 系統(tǒng)功能要求22、 其他要求2三、 程序流程31、 數(shù)據(jù)庫設(shè)計32、 應(yīng)用程序設(shè)計4四、 設(shè)計步驟61、 連接數(shù)據(jù)庫類dbconnect62、 用戶登錄面板63、 應(yīng)用程序功能81. 查詢?nèi)?2. 條件查詢93. 個人信息顯示144. 添加信息155. 刪除信息186. 修改密碼217. 注銷22五、 設(shè)計總結(jié)23六、 參考資料23一、 設(shè)計目的通過課程設(shè)計,使學(xué)生提高理論聯(lián)系實際解決實際問題的能力;也使學(xué)生對基于面向?qū)ο蟮睦碚撨M(jìn)行系統(tǒng)設(shè)計過程中的諸多具體問題有感性的認(rèn)識和深入的理解;進(jìn)而提高學(xué)生的學(xué)習(xí)興趣為其將來順利進(jìn)入畢業(yè)環(huán)節(jié)作必要的準(zhǔn)備。由教
2、師布置課程設(shè)計的題目與思路,學(xué)生每56人一個題目,按照教師給出的思路和計劃進(jìn)度安排獨(dú)立完成課程設(shè)計,最后每人提交一份課程設(shè)計報告。二、 功能介紹(一)系統(tǒng)功能要求:(1)具有新用戶注冊功能。(2)具有注冊用戶登錄功能。(3)具有學(xué)生學(xué)籍的錄入功能。(4)具有數(shù)據(jù)查詢功能,可以實現(xiàn)查詢?nèi)啃畔⒑桶礂l件執(zhí)行查詢。(5)具有按條件刪除數(shù)據(jù)功能。(二)其它要求:(1)只能使用java語言,采用面向?qū)ο蠓椒ㄟM(jìn)行設(shè)計,要求源程序要有適當(dāng)?shù)淖⑨?,使程序容易閱讀。(2)程序必須與數(shù)據(jù)庫進(jìn)行通信。(3)系統(tǒng)必須是圖形用戶界面的形式并連接數(shù)據(jù)庫。(4)學(xué)生可根據(jù)自身情況酌情增加新功能(視情況可另外加分)。(5)獨(dú)
3、立完成課程設(shè)計,并完成課程設(shè)計報告,報告應(yīng)記錄設(shè)計的過程,尤其是分析/設(shè)計/實現(xiàn)過程中的決策。三、 程序流程1、 數(shù)據(jù)庫設(shè)計1.admin表的設(shè)計表1 admin表2.student_info表的設(shè)計表2 student_info表2、應(yīng)用程序設(shè)計1.程序功能表視圖圖1 功能視圖2.程序流程圖圖2 流程圖四、 設(shè)計步驟1. 設(shè)計連接數(shù)據(jù)庫類dbconnect。功能說明:該類主要用于數(shù)據(jù)庫的連接。方法:public static connection getconnect();方法實現(xiàn):public static connection getconnect() throws exceptions
4、tring driver = com.mysql.jdbc.driver;string url = jdbc:mysql:/localhost:3306/student;string user = root;string password = root;class.forname(driver);return drivermanager.getconnection(url,user,password);2. 設(shè)計歡迎使用面板功能說明:顯示用戶登錄歡迎界面,當(dāng)用戶選擇不同類型用戶登錄時,設(shè)置不同的下一頁面顯示信息。方法:public void loginbutton_actionperforme
5、d(actionevent e); 效果展示:圖3 歡迎界面方法實現(xiàn):public void loginbutton_actionperformed(actionevent e)if(e.getsource()=adminloginbutton)flag = true;user = 管理員;else if(e.getsource()=userloginbutton)flag = false;user = 普通;this.settitle(學(xué)生學(xué)籍管理系統(tǒng)-+user+用戶登錄);logininfo.settext(歡迎+user+用戶登錄);setinfo();3. 設(shè)計用戶登錄面板功能說明:
6、該面板主要用于填寫用戶登錄信息,并根據(jù)用戶登錄信息查詢數(shù)據(jù)庫。點(diǎn)擊提交按鈕,查詢數(shù)據(jù)庫,若數(shù)據(jù)庫中有該用戶信息并且輸入密碼正確,則登錄成功,否則提示錯誤。點(diǎn)擊重置按鈕則清空文本框,點(diǎn)擊返回則返回上一級歡迎面板。方法:public void submit_actionperformed(actionevent e); public void cancel_actionperformed(actionevent e); public void back_actionperformed(actionevent e);效果展示:圖4 填寫登錄信息方法實現(xiàn):/點(diǎn)擊提交按鈕public void subm
7、it_actionperformed(actionevent e) throws exceptionconnection = dbconnect.getconnect();statement = connection.createstatement();string textfield = jtextfield.gettext().tostring();string password = jpasswordfield.gettext().tostring();string select = null;if(flag = true)select = select password from ad
8、min where username = +textfield+;elseselect = select password from student_info where sno = +textfield+;rs = statement.executequery(select);if(rs.next()&rs.getstring(password).equals(password)username = textfield;jtextfield.settext();jpasswordfield.settext();showinfo();elsejoptionpane.showmessagedia
9、log(this, 用戶名或密碼錯誤,請重新輸入);jpasswordfield.settext();rs.close();/點(diǎn)擊重置按鈕public void cancel_actionperformed(actionevent e)jtextfield.settext();jpasswordfield.settext();/點(diǎn)擊返回按鈕public void back_actionperformed(actionevent e)this.settitle(歡迎使用學(xué)生學(xué)籍管理系統(tǒng));jtextfield.settext();jpasswordfield.settext();try welc
10、ome(); catch (exception e1) / todo auto-generated catch blocke1.printstacktrace();4. 設(shè)計應(yīng)用程序功能1. 查詢?nèi)?功能說明:當(dāng)該用戶是管理員用戶的時候,該用戶具有查詢?nèi)繉W(xué)生信息和全部管理員信息的權(quán)限,當(dāng)該用戶是普通學(xué)生用戶時,只有查詢?nèi)繉W(xué)生信息的功能。在查詢?nèi)繕?biāo)簽下,點(diǎn)擊學(xué)生信息或管理員信息按鈕,程序就會將所有查詢信息顯示在右下角的表格里。方法:public void jbuttonqurryall_ationperformed(actionevent e);效果展示圖5 查詢?nèi)繉W(xué)生信息圖6 查詢?nèi)?/p>
11、部管理員信息方法實現(xiàn):public void jbuttonqurryall_actionperformed(actionevent e)if(e.getsource()=jbuttonqurryallad)selectflag = true;jtable.setmodel(jtableinfo.tablemodelad);jtableinfo.setcolumnwidth(jtable);qurrystring = select username, name, sex, people, age, dept from admin;else if(e.getsource()=jbuttonqur
12、ryallst)selectflag = false;jtable.setmodel(jtableinfo.tablemodelst);jtableinfo.setcolumnwidth(jtable);qurrystring = select sno, sname, sex, people, age, sid, address, dept, sclass, inscore from student_info;try cnt = setjtableinfo(); catch (exception e1) / todo auto-generated catch blocke1.printstac
13、ktrace();if(jcomboboxquery.isenabled() jcomboboxquery.setenabled(false);if(jcomboboxcon.isenabled()jcomboboxcon.setenabled(false);if(jbuttonupdateinfo.isenabled() jbuttonupdateinfo.setenabled(false);if(jlabelqurryvalue.isvisible() jlabelqurryvalue.setvisible(false);if(jtextfieldquery.isvisible() jte
14、xtfieldquery.setvisible(false);if(jbuttonqueryok.isenabled() jbuttonqueryok.setenabled(false);2. 條件查詢功能說明:當(dāng)該用戶是管理員用戶的時候,該用戶具有按條件查詢學(xué)生信息和管理員信息的權(quán)限,當(dāng)該用戶是普通學(xué)生用戶時,只有按條件查詢學(xué)生信息的功能。在條件查詢標(biāo)簽下,點(diǎn)擊學(xué)生信息或管理員信息按鈕,之后在查詢條件下拉列表里選擇要查詢的條件并填寫相應(yīng)的值之后點(diǎn)擊查詢按鈕,在面板的右下角的表格中就會顯示查詢結(jié)果,若沒有記錄則給出提示。方法:public void jbuttonqurryprt_action
15、performed(actionevent e); public void jbuttonqueryok_actionperformed(actionevent e); public void jcomboboxquery_actionperformed(actionevent e);效果展示:圖7 按條件查詢學(xué)生信息成功圖8 按條件查詢管理員信息成功圖9 沒有符合條件的信息方法實現(xiàn):/search as conditionpublic void jbuttonqurryprt_actionperformed(actionevent e)jcomboboxquery.removeallitem
16、s();jcomboboxcon.removeallitems();if(e.getsource()=jbuttonqurryprtst)selectflag = false;jtable.setmodel(jtableinfo.tablemodelst);for(int i = 0; i cbxstringst.length; i +)jcomboboxquery.additem(cbxstringsti);else if(e.getsource()=jbuttonqurryprtad)selectflag = true;jtable.setmodel(jtableinfo.tablemod
17、elad);for(int i = 0; i cbxstringad.length; i +)jcomboboxquery.additem(cbxstringadi);jtableinfo.setcolumnwidth(jtable);jtableinfo.setjtableempty(jtable);if(jbuttonupdateinfo.isenabled() jbuttonupdateinfo.setenabled(false);if(!jcomboboxquery.isenabled() jcomboboxquery.setenabled(true);if(!jbuttonquery
18、ok.isenabled() jbuttonqueryok.setenabled(true);/查詢按鈕事件處理public void jbuttonqueryok_actionperformed(actionevent e)if(jtextfieldquery.isenabled() &jtextfieldquery.isvisible()&(jtextfieldquery.gettext().tostring() = null|jtextfieldquery.gettext().tostring().equals() joptionpane.showmessagedialog(this,
19、請輸入查詢的值);elseif(selectflag)jtable.setmodel(jtableinfo.tablemodelad);jtableinfo.setcolumnwidth(jtable);qurrystring = select username, name, sex, people, age, dept from admin where ;if(jcomboboxquery.getselectedindex()=0)qurrystring += username = +jtextfieldquery.gettext()+;else if(jcomboboxquery.gets
20、electedindex()=1)qurrystring += name like %+jtextfieldquery.gettext().tostring()+%;else if(jcomboboxquery.getselectedindex()=2)qurrystring +=age ;if(jcomboboxcon.getselectedindex()=0)qurrystring += +jtextfieldquery.gettext()+;else if(jcomboboxcon.getselectedindex()=1)qurrystring += +jtextfieldquery.
21、gettext()+;else qurrystring += =+jtextfieldquery.gettext()+;else if(jcomboboxquery.getselectedindex()=3)qurrystring += dept = +jtextfieldquery.gettext()+;else if(jcomboboxquery.getselectedindex()=4)if(jcomboboxcon.getselectedindex()=0)qurrystring += sex = 男;else qurrystring += sex = 女;else qurrystri
22、ng += people = +jtextfieldquery.gettext()+;try cnt = setjtableinfo(); catch (exception e1) / todo auto-generated catch blocke1.printstacktrace();elsejtable.setmodel(jtableinfo.tablemodelst);jtableinfo.setcolumnwidth(jtable);qurrystring = select sno, sname, sex, people, age, sid, address, dept, sclas
23、s, inscore from student_info where ;if(jcomboboxquery.getselectedindex()=0)qurrystring += sno = +jtextfieldquery.gettext()+;else if(jcomboboxquery.getselectedindex()=1)qurrystring += sname like %+jtextfieldquery.gettext().tostring()+%;else if(jcomboboxquery.getselectedindex()=2)qurrystring +=age ;if
24、(jcomboboxcon.getselectedindex()=0)qurrystring += +jtextfieldquery.gettext()+;else if(jcomboboxcon.getselectedindex()=1)qurrystring += +jtextfieldquery.gettext()+;else qurrystring += =+jtextfieldquery.gettext()+;else if(jcomboboxquery.getselectedindex()=3)qurrystring += dept = +jtextfieldquery.gette
25、xt()+;else if(jcomboboxquery.getselectedindex()=4)if(jcomboboxcon.getselectedindex()=0)qurrystring += sex = 男;else qurrystring += sex = 女;else if(jcomboboxquery.getselectedindex()=5)qurrystring += people = +jtextfieldquery.gettext()+;else if(jcomboboxquery.getselectedindex()=6)qurrystring += address
26、 = +jtextfieldquery.gettext()+;else if(jcomboboxquery.getselectedindex()=7)qurrystring += sclass = +jtextfieldquery.gettext()+;else qurrystring +=inscore ;if(jcomboboxcon.getselectedindex()=0)qurrystring += +jtextfieldquery.gettext()+;else if(jcomboboxcon.getselectedindex()=1)qurrystring += +jtextfi
27、eldquery.gettext()+;else qurrystring += =+jtextfieldquery.gettext()+;try cnt = setjtableinfo(); catch (exception e1) / todo auto-generated catch blocke1.printstacktrace();if(cnt = 0) joptionpane.showmessagedialog (this, 沒有符合條件的信息);/jcomboboxquery 第一個下拉列表事件public void jcomboboxquery_actionperformed(a
28、ctionevent e)jtextfieldquery.settext();if(jcomboboxquery.getselectedindex() = 2|jcomboboxquery.getselectedindex() = 4|jcomboboxquery.getselectedindex() = 8)jcomboboxcon.setenabled(true);if(jcomboboxquery.getselectedindex() = 4)jcomboboxcon.removeallitems();for(int i = 0; i cbxstringsexcon.length; i
29、+)jcomboboxcon.additem(cbxstringsexconi);if(jlabelqurryvalue.isvisible() jlabelqurryvalue.setvisible(false);if(jtextfieldquery.isvisible() jtextfieldquery.setvisible(false);elseif(!jlabelqurryvalue.isvisible() jlabelqurryvalue.setvisible(true);if(!jtextfieldquery.isvisible() jtextfieldquery.setvisib
30、le(true);jcomboboxcon.removeallitems();for(int i = 0; i cbxstringcon.length; i +)jcomboboxcon.additem(cbxstringconi);elseif(!jlabelqurryvalue.isvisible() jlabelqurryvalue.setvisible(true);if(!jtextfieldquery.isvisible() jtextfieldquery.setvisible(true);jcomboboxcon.setenabled(false);3. 個人信息顯示功能說明:主要
31、顯示個人信息,當(dāng)用戶點(diǎn)擊個人信息標(biāo)簽下的顯示信息按鈕時,在面板的右下角顯示用戶個人信息方法:public void jbuttonupdate_actionperformed(actionevent e);效果展示:圖10 顯示當(dāng)前用戶信息方法實現(xiàn):/show own infopublic void jbuttonupdate_actionperformed(actionevent e)if(flag)jtable.setmodel(jtableinfo.tablemodelad);jtableinfo.setcolumnwidth(jtable);qurrystring = select u
32、sername, name, sex, people, age, dept from admin where username = +username+;selectflag = true;elsejtable.setmodel(jtableinfo.tablemodelst);jtableinfo.setcolumnwidth(jtable);selectflag = false;qurrystring = select sno, sname, sex, people, age, sid, address, dept, sclass, inscore from student_info wh
33、ere sno = +username+;try cnt = setjtableinfo(); catch (exception e1) / todo auto-generated catch blocke1.printstacktrace();if(jcomboboxquery.isenabled() jcomboboxquery.setenabled(false);if(jcomboboxcon.isenabled() jcomboboxcon.setenabled(false);if(jbuttonupdateinfo.isenabled() jbuttonupdateinfo.sete
34、nabled(false);if(jlabelqurryvalue.isvisible() jlabelqurryvalue.setvisible(false);if(jtextfieldquery.isvisible() jtextfieldquery.setvisible(false);if(jbuttonqueryok.isenabled() jbuttonqueryok.setenabled(false);4. 添加信息功能說明:主要用于添加學(xué)生記錄和管理員。當(dāng)點(diǎn)擊添加信息標(biāo)簽下的學(xué)生記或管理員用戶時,在面板右下角的表格中就會有一個空行,在空行中填寫你要添加的記錄,點(diǎn)擊添加按鈕,若數(shù)據(jù)
35、庫中沒有該學(xué)號的學(xué)生或用戶名唯一,則會提示添加成功,否則提示添加失敗方法:public void jbuttonadd_actionperformed(actionevent e); public void jbtuuonupdateinfo_actionperformed(actionevent e);效果展示:圖11 添加學(xué)生記錄成功圖12 添加管理員用戶失敗方法實現(xiàn):/add infopublic void jbuttonadd_actionperformed(actionevent e)if(e.getsource()=jbuttonaddst)selectflag = false;j
36、table.setmodel(jtableinfo.tablemodelst);jtableinfo.setjtableempty(jtable);jtableinfo.setcolumnwidth(jtable);defaulttablemodel tablemodel = (defaulttablemodel)jtable.getmodel();tablemodel.addrow(new objectnull, null, null, null, null, null, null, null, null, null);else if(e.getsource()=jbuttonaddad)s
37、electflag = true;jtable.setmodel(jtableinfo.tablemodelad);jtableinfo.setjtableempty(jtable);jtableinfo.setcolumnwidth(jtable);defaulttablemodel tablemodel = (defaulttablemodel)jtable.getmodel();tablemodel.addrow(new objectnull,null,null,null,null,null);if(jcomboboxquery.isenabled()jcomboboxquery.set
38、enabled(false);if(jcomboboxcon.isenabled()jcomboboxcon.setenabled(false);if(!jbuttonupdateinfo.isenabled() jbuttonupdateinfo.setenabled(true);if(jlabelqurryvalue.isvisible() jlabelqurryvalue.setvisible(false);if(jtextfieldquery.isvisible() jtextfieldquery.setvisible(false);if(jbuttonqueryok.isenable
39、d() jbuttonqueryok.setenabled(false);/添加信息public void jbuttonupdateinfo_actionperformed(actionevent e)qurrystring = insert into ;if(selectflag)qurrystring += admin values(;admin ad = new admin();ad.setusername(string)jtable.getvalueat(0, 0);ad.setname(string)jtable.getvalueat(0, 1);ad.setsex(string)
40、jtable.getvalueat(0, 2);ad.setpeople(string)jtable.getvalueat(0, 3);if(jtable.getvalueat(0, 4)!=null)ad.setage(integer.parseint(string)jtable.getvalueat(0, 4);ad.setdept(string)jtable.getvalueat(0, 5);ad.setpassword(string)jtable.getvalueat(0, 0);if(ad.getsex()!= null&!ad.getsex().equals()&!ad.getse
41、x().equals(男)&!ad.getsex().equals(女)joptionpane.showmessagedialog(this, 性別只能為男或女);elseboolean fg = false;qurrystring +=ad.getusername()+, +ad.getname()+, +ad.getsex()+, +ad.getpeople()+, +ad.getage()+, +ad.getdept()+, +ad.getpassword()+);try statement.executeupdate(qurrystring); catch (sqlexception
42、e1) fg = true;joptionpane.showmessagedialog(this, 用戶已存在或性別為空);if(!fg)joptionpane.showmessagedialog(this, 添加成功);elsequrrystring += student_info values(;student st = new student();st.setsno(string)jtable.getvalueat(0, 0);st.setname(string)jtable.getvalueat(0, 1);st.setsex(string)jtable.getvalueat(0, 2
43、);st.setpeople(string)jtable.getvalueat(0, 3);if(jtable.getvalueat(0, 4)!=null)st.setage(integer.parseint(string)jtable.getvalueat(0, 4);st.setsid(string)jtable.getvalueat(0, 5);st.setaddress(string)jtable.getvalueat(0, 6);st.setdept(string)jtable.getvalueat(0, 7);st.setclass(string)jtable.getvaluea
44、t(0, 8);if(jtable.getvalueat(0, 9)!=null)st.setinscore(integer.parseint(string)jtable.getvalueat(0, 9);st.setpassword(string)jtable.getvalueat(0, 0);if(st.getsex()!=null& !st.getsex().equals() & !st.getsex().equals(男)& !st.getsex().equals(女)joptionpane.showmessagedialog(this, 性別只能為男或女);elseboolean f
45、g = false;qurrystring += st.getsno()+, +st.getname()+, +st.getsex()+, +st.getpeople()+, +st.getage()+, +st.getsid()+, +st.getaddress()+, +st.getdept()+, +st.getsclass()+, +st.getinscore()+, +st.getpassword()+);try statement.executeupdate(qurrystring); catch (sqlexception e1) fg = true;joptionpane.sh
46、owmessagedialog(this, 已有該學(xué)號的學(xué)生記錄或性別為空);if(!fg)joptionpane.showmessagedialog(this, 添加成功);5. 刪除記錄功能說明:主要用于刪除學(xué)生記錄和管理員用戶。在表格中選擇你要刪除的信息后,當(dāng)點(diǎn)擊刪除信息標(biāo)簽下的學(xué)生信息或管理員信息時,應(yīng)用程序就會提示你是否真的要刪除你選擇的信息,若點(diǎn)是,則應(yīng)用程序會刪除你要刪除的信息,點(diǎn)擊其他則取消刪除。方法:public jbottondelete_actionperformed(actionevent e);效果展示:圖13 刪除學(xué)生信息圖14 刪除管理員用戶成功方法實現(xiàn):/delete infopublic void jbuttondelete_actionperformed(actionevent e) throws exceptionstring sql = null;boolean isright = true;int selectrows = jtable.getselectedrows().length;defaulttablemodel tablemodel = (defaulttablemodel)jtable.getm
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆廣西玉林、柳州市化學(xué)高一下期末聯(lián)考試題含解析
- 樓盤抽紅包活動方案
- 永裕公司團(tuán)建活動方案
- 殘聯(lián)書香中國活動方案
- 案場訂房砸金蛋活動方案
- 殘疾護(hù)理活動方案
- 民法知識進(jìn)校園活動方案
- 沈陽行學(xué)?;顒臃桨?/a>
- 沈陽國際家博會活動方案
- CJJT259-2016 城鎮(zhèn)燃?xì)庾詣踊到y(tǒng)技術(shù)規(guī)范
- 病案首頁填寫及質(zhì)控要求
- 18 設(shè)計緊急避難路線圖(教案)人美版(北京)(2012)美術(shù)三年級下冊
- 園林綠化移樹合同
- 排球大單元計劃教學(xué)設(shè)計-高一上學(xué)期體育與健康人教版
- 企業(yè)員工健康促進(jìn)計劃的設(shè)計與實施
- 玻璃粉燒工藝
- 云計算和邊緣計算在工業(yè)互聯(lián)網(wǎng)中的融合
- 普通高中物理課程標(biāo)準(zhǔn)解讀
- 成人失禁相關(guān)性皮炎的預(yù)防與護(hù)理-護(hù)理團(tuán)標(biāo)
- 臨時用電線路的接地與絕緣
評論
0/150
提交評論