學(xué)生信息管理系統(tǒng)java課程設(shè)計(jì)報(bào)告含源代碼_第1頁
學(xué)生信息管理系統(tǒng)java課程設(shè)計(jì)報(bào)告含源代碼_第2頁
學(xué)生信息管理系統(tǒng)java課程設(shè)計(jì)報(bào)告含源代碼_第3頁
學(xué)生信息管理系統(tǒng)java課程設(shè)計(jì)報(bào)告含源代碼_第4頁
學(xué)生信息管理系統(tǒng)java課程設(shè)計(jì)報(bào)告含源代碼_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、. . . .  JAVA程序設(shè)計(jì) 課程設(shè)計(jì)報(bào)告 課 題: 學(xué)生信息管理系統(tǒng) 姓 名:學(xué) 號:同組:專業(yè)班級:指導(dǎo)教師:設(shè)計(jì)時(shí)間:  評閱意見:     評定成績: 指導(dǎo)老師簽名: 年 月 日     目 錄一、系統(tǒng)描述21、需要實(shí)現(xiàn)的功能32、設(shè)計(jì)目的3二、分析與設(shè)計(jì)31、功能模塊劃分32、數(shù)據(jù)庫結(jié)構(gòu)描述43、系統(tǒng)詳細(xì)設(shè)計(jì)文檔64、各個(gè)模塊的實(shí)現(xiàn)方法描述95、測試數(shù)據(jù)與期望結(jié)果11三、系統(tǒng)測試16四、心得體會23五、參考文獻(xiàn)24六、附錄24一、系統(tǒng)描述1、需現(xiàn)的功

2、能1.1、錄入學(xué)生基本信息的功能學(xué)生基本信息主要包括:學(xué)號、年齡、出生地、專業(yè)、班級總學(xué)分,在插入時(shí),如果數(shù)據(jù)庫已經(jīng)存在該學(xué)號,則不能再插入該學(xué)號。1.2、修改學(xué)生基本信息的功能在管理員模式下,只要在表格中選中某個(gè)學(xué)生,就可以對該學(xué)生信息進(jìn)行修改。1.3、查詢學(xué)生基本信息的功能可使用 “”對已存有的學(xué)生資料進(jìn)行查詢。1.4、刪除學(xué)生基本信息的功能 在管理員模式下,只要選擇表格中的某個(gè)學(xué)生,就可以刪除該學(xué)生。1.5、用戶登陸用不同的登錄權(quán)限可以進(jìn)入不同的后臺界面,從而實(shí)現(xiàn)權(quán)限操作。1.6、用戶登陸信息設(shè)置可以修改用戶登陸密碼2、設(shè)計(jì)目的學(xué)生信息管理系統(tǒng)是一個(gè)教育單位不可缺少的部分。一個(gè)功能齊全、

3、簡單易用的信息管理系統(tǒng)不但能有效地減輕學(xué)校相關(guān)工作人員的工作負(fù)擔(dān),它的容對于學(xué)校的決策者和管理者來說都至關(guān)重要。所以學(xué)生信息管理系統(tǒng)應(yīng)該能夠?yàn)橛脩籼峁┏渥愕男畔⒑涂旖莸牟樵兪侄?。但一直以來人們使用傳統(tǒng)人工的方式管理文件檔案、統(tǒng)計(jì)和查詢數(shù)據(jù),這種管理方式存在著許多缺點(diǎn),如:效率低、性差、人工的大量浪費(fèi);另外時(shí)間一長,將產(chǎn)生大量的文件和數(shù)據(jù),這對于查找、更新和維護(hù)都帶來了不少困難。隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識,它已進(jìn)入人類社會的各個(gè)領(lǐng)域并發(fā)揮著越來越重要的作用。作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對學(xué)校的各類信息進(jìn)行管理,具有手工管理無法比擬的優(yōu)點(diǎn)。例如:

4、檢索迅速、查詢方便、效率高、可靠性好、存儲量大、性好、壽命長、成本低等。這些優(yōu)點(diǎn)能夠極提高學(xué)校信息管理的效率,也是一個(gè)單位科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。本系統(tǒng)是將現(xiàn)代化的計(jì)算機(jī)技術(shù)和傳統(tǒng)的教學(xué)、教務(wù)工作相結(jié)合,按照學(xué)院的工作流程設(shè)計(jì)完成的。通過一個(gè)簡化的學(xué)生信息管理系統(tǒng),使學(xué)生信息管理工作系統(tǒng)化、規(guī)化、自動化,從而達(dá)到提高學(xué)生信息管理效率的目的。二、分析與設(shè)計(jì)1、功能模塊劃分學(xué)生信息管理系統(tǒng)瀏覽學(xué)生信息查詢學(xué)生信息添加學(xué)生信息修改學(xué)生信息刪除學(xué)生信息普通學(xué)生(用戶)模塊班委(管理員)模塊瀏覽學(xué)生信息查詢學(xué)生信息學(xué)生管理登陸管理修改登陸密碼顯示登陸用戶圖1 功能模塊劃分圖2、數(shù)據(jù)庫結(jié)

5、構(gòu)描述2.1、數(shù)據(jù)庫E-R模型 登錄用戶管理賬號密碼職位圖2 登錄用戶管理E-R圖學(xué) 生總學(xué)分出生地年齡專業(yè)性別XX學(xué)號班級圖3 實(shí)體學(xué)生E-R圖2.2、數(shù)據(jù)庫關(guān)系模型二維表表1 學(xué)生表(student)字段數(shù)據(jù)類型說明stuIdnvarchar(30)學(xué)號stuNamenvarchar(30)stuSexnvarchar(30)性別stuAgeint年齡stuJgnvarchar(30)籍貫stuZynvarchar(30)專業(yè)classIdnvarchar(30)班號stuSoursenumeric(5,2)總學(xué)分圖4 錄入數(shù)據(jù)后的學(xué)生表表2 登陸權(quán)限表(login)字段數(shù)據(jù)類型說明use

6、rIdnvarchar(30)用戶名(賬號),即登陸Idpasswordnvarchar(30)登陸密碼positionnvarchar(30)職位,如班委,普通學(xué)生圖5 錄入數(shù)據(jù)后的登陸權(quán)限表3、系統(tǒng)詳細(xì)設(shè)計(jì)文檔3.1、系統(tǒng)執(zhí)行流程圖進(jìn)度條(閃屏)用戶登陸登陸驗(yàn)證falsetrue班委(管理員)界面普通學(xué)生界面查詢添加修改刪除查詢顯示班委(管理員 )普通學(xué)生(用戶)退出退出系統(tǒng)結(jié)束結(jié)束退出系統(tǒng)truefalsefalsetrue修改用戶登陸密碼顯示登陸用戶信息圖6 系統(tǒng)執(zhí)行流程圖3.2、類的劃分表3 學(xué)生信息查詢類類名類的成員屬性與方法說明StuQuery.javaJPanel jp1定義一

7、個(gè)面板JLabel jp1_jl1定義兩個(gè)標(biāo)簽JTextField jp1_jtf1定義一個(gè)文本輸入框utton jp1_1,jp1_2,jp1_3定義三個(gè)按鈕JTable jtb定義一個(gè)表JScrollPane jsp定義一個(gè)滾動面板,用于存放表TableModel tm自定義一個(gè)表模型,用于更新表數(shù)據(jù)public StuQuery(Frame Main,String title ,boolean model)構(gòu)造方法,通過傳遞三個(gè)參數(shù),實(shí)現(xiàn)對話super(Main,title,model)調(diào)用父類的構(gòu)造方法,實(shí)現(xiàn)模式對話public void actionPerformed(ActionE

8、vent arg0)事件響應(yīng)方法表4 修改學(xué)生信息類類名類的成員屬性與方法說明UpdateStu.javaJLabel jl1,jl2,jl3,jl4,jl5,jl6,jl7,jl8定義八個(gè)標(biāo)簽,用于設(shè)置數(shù)據(jù)庫表的字段名JTextField jtf1,jtf2,jtf3,jtf4,jtf5,jtf6,jtf7,jtf8定義八個(gè)文本框,用于接收表的各字段值utton 1,2,3定義三個(gè)按鈕,用于事件響應(yīng)public void addView()這是修改學(xué)生界面的函數(shù)封裝public AddStu(Frame Main,String title,boolean model)構(gòu)造方法,通過傳遞三個(gè)參

9、數(shù),實(shí)現(xiàn)對話super(Main,title,model)調(diào)用父類的構(gòu)造方法,實(shí)現(xiàn)模式對話public UpdateStu(Frame Main,String title,TableModel tm,int rowNo,boolean model)因?yàn)橐薷男畔ⅲ敲幢仨氁@得所選中的那一行的所有信息,把它們添加到文本框作為默認(rèn)值,因此構(gòu)造方法還應(yīng)添加一個(gè)參數(shù)即傳遞一個(gè)模型tm,并傳遞所選中的行號rowpublic void actionPerformed(ActionEvent e)事件響應(yīng)方法表5 修改管理人員信息類類名類的成員屬性與方法說明UpdateLogin.javaJLabel j

10、l1,jl2,jl3定義三個(gè)標(biāo)簽,即用戶名,密碼,職位JTextField jtf1,jtf2,jtf3定義三個(gè)文本框,對應(yīng)三個(gè)標(biāo)簽的值utton 1,2,3定義三個(gè)按鈕,用于事件響應(yīng)JTable jtb定義一個(gè)表格,用于顯示登陸用戶信息PurViewModel pvm自定義登陸用戶信息的數(shù)據(jù)更新模型public void upView()這是修改賬戶信息權(quán)限的界面函數(shù)的封裝public UpdateLogin(Frame Main,String title,PurViewModel pvm,int rowNo,boolean model)因?yàn)橐薷男畔?,那么必須要獲得所選中的那一行的所有信息

11、,把它們添加到文本框作為默認(rèn)值,因此構(gòu)造方法還應(yīng)添加一個(gè)參數(shù)即傳遞一個(gè)模型tm,并傳遞所選中的行號rowsuper(Main,title,model)調(diào)用父類的構(gòu)造方法,實(shí)現(xiàn)模式對話public void actionPerformed(ActionEvent e)事件響應(yīng)方法表6表模式-更新數(shù)據(jù)類名類的成員屬性與方法說明TableModel.javaVector rowData,row,column定義表格所需要的集合(表,行,列)ResultSet rs定義一個(gè)記錄集,用于接收從數(shù)據(jù)庫返回來的記錄集SqlConn conn定義一個(gè)用于連接數(shù)據(jù)庫的對象,SqlConn是連接數(shù)據(jù)庫的類publ

12、ic TableModel(String sql)構(gòu)造方法,并傳一個(gè)SQL語句,實(shí)現(xiàn)查詢操作public String getColumnName(int column)這是一個(gè)重寫的方法,用于設(shè)置表的列名public int getColumnCount()得到數(shù)據(jù)模型記錄集的列數(shù)public int getRowCount()得到數(shù)據(jù)模型記錄集的行數(shù)public Object getValueAt(int arg0, int arg1)得到數(shù)據(jù)模型記錄集某行某列的值4、各個(gè)模塊的實(shí)現(xiàn)方法描述說明:此處只包含了個(gè)人完成的模塊的實(shí)現(xiàn)方法描述4.1、學(xué)生信息查詢學(xué)生信息查詢窗口,采用了基于管理窗

13、口,即主界面的對話框?qū)崿F(xiàn),實(shí)現(xiàn)方法如下:1)定義查詢所需要的面板和組件。2)調(diào)用父類的構(gòu)造方法,實(shí)現(xiàn)模式對話。3)進(jìn)行學(xué)生信息查詢。4.2、修改管理人員信息修改管理人員信息的界面,通過模式對話,即繼承JDialog對話框來實(shí)現(xiàn)的,實(shí)現(xiàn)方法如下:1)定義修改學(xué)生信息的相關(guān)組件。2)加載數(shù)據(jù)庫,獲得選中的那一行的所有信息。3)把組件添加到窗體。4)調(diào)用父類的構(gòu)造方法,實(shí)現(xiàn)模式對話。5)調(diào)用修改用戶權(quán)限信息的界面的方法。6)修改管理人員信息。7)調(diào)用數(shù)據(jù)庫連接,并設(shè)置操縱更新的sql語句。4.3、修改學(xué)生信息修改學(xué)生信息的界面,通過模式對話,即繼承JDialog對話框來實(shí)現(xiàn),實(shí)現(xiàn)方法如下:1)定義修

14、改學(xué)生信息的相關(guān)組件。2)加載數(shù)據(jù)庫,獲得選中的那一行的所有信息。3)把組件添加到窗體。4)調(diào)用父類的構(gòu)造方法,實(shí)現(xiàn)模式對話。5)調(diào)用修改學(xué)生信息的界面的方法。6)修改學(xué)生信息。7)完成相應(yīng)功能。4.4、更新數(shù)據(jù)這是一個(gè)表模型,用于數(shù)據(jù)更新,實(shí)現(xiàn)方法如下:1)定義表格所需要的集合。2)定義一個(gè)記錄集,用于接收從數(shù)據(jù)庫返回來的記錄集。3)定義一個(gè)用于連接數(shù)據(jù)庫的對象。4)設(shè)置表格的列名。5)創(chuàng)建表的記錄集。6)調(diào)用數(shù)據(jù)庫連接。7)設(shè)置表的列名,并得到表的列數(shù)和行數(shù)。8)得到某行某列的值。5、測試數(shù)據(jù)與期望結(jié)果5.1、學(xué)生信息查詢數(shù)據(jù)測試與期望結(jié)果數(shù)據(jù)測試與期望結(jié)果如下圖:圖7為學(xué)生登錄后的最初界

15、面;圖8為學(xué)生查看所有信息界面;圖9為全部學(xué)生的信息記錄(此處同時(shí)運(yùn)用到了TableModel類);圖10則是實(shí)現(xiàn)了此處的查詢功能,測試數(shù)據(jù)為: :肖立本 期望結(jié)果將顯示以下數(shù)據(jù):學(xué)號:904325 :肖立本 性別:男 年齡:23 出生地: 專業(yè):信息管理 班級:9040303 總學(xué)分:542.5圖7 學(xué)生信息管理系統(tǒng)圖8 學(xué)生信息管理系統(tǒng)-顯示記錄圖9 學(xué)生信息管理系統(tǒng)-顯示所有信息圖10 學(xué)生信息管理系統(tǒng)-學(xué)生信息查詢5.2、修改管理人員數(shù)據(jù)測試與期望結(jié)果數(shù)據(jù)測試與期望結(jié)果如下圖:圖11將顯示出所有管理人員信息。此處測試的數(shù)據(jù)為: 賬號1:admin 密碼1:admin 職位1:班委 賬號

16、2:user 密碼2:user 職位2:普通學(xué)生圖12是彈出的修改密碼窗口。此處可將密碼admin修改為其它值。圖11 顯示所有管理人員信息圖12 修改管理人員信息窗口5.3、修改學(xué)生信息數(shù)據(jù)測試與期望結(jié)果數(shù)據(jù)測試與期望結(jié)果如下圖:圖13為全部學(xué)生的信息記錄(此處同時(shí)運(yùn)用到了TableModel類);圖14是彈出的修改學(xué)生信息窗口: 測試數(shù)據(jù):明輝 期望結(jié)果:可修改、性別、年齡、出生地、專業(yè)、班級和總學(xué)分。圖13 學(xué)生信息管理系統(tǒng)-顯示所有信息圖14 修改學(xué)生信息窗口三、系統(tǒng)測試1、系統(tǒng)啟動界面圖15 系統(tǒng)啟動界面2、用戶登錄界面圖16 用戶登錄界面3、班委(管理員)界面,即具有完全權(quán)限的用戶

17、后臺界面圖17 管理員界面4、班委(管理員)界面子菜單項(xiàng)顯示圖18 管理員界面子菜單-系統(tǒng)界面圖19 管理員界面子菜單-學(xué)生管理界面圖20 管理員界面子菜單-系統(tǒng)設(shè)置界面5、學(xué)生信息查詢界面圖21 學(xué)生信息查詢6、學(xué)生信息查詢結(jié)果顯示圖22 學(xué)生信息查詢顯示7、添加學(xué)生信息界面在沒有輸入學(xué)號或者,以與某一項(xiàng)時(shí),會彈出一個(gè)對話框進(jìn)行提示,如沒有輸入學(xué)號時(shí):圖23 添加學(xué)生信息8、修改學(xué)生信息界面(學(xué)號是主鍵,灰色顯示,即不可更改)圖24 修改學(xué)生信息9、顯示所有學(xué)生信息圖25 顯示所有信息10、當(dāng)沒有選中一行的時(shí)候,不能修改和刪除,并彈出提示警告框圖26 修改和刪除警告框圖11、刪除文件時(shí)的確認(rèn)

18、對話框(點(diǎn)擊確認(rèn)時(shí)會刪除,點(diǎn)擊取消,則返回主界面)圖27 刪除學(xué)生確認(rèn)對話框12、顯示所有登陸用戶信息圖28 顯示登錄用戶信息示意圖13、修改用戶登陸密碼,選中某個(gè)用戶進(jìn)行修改圖29 修改用戶登錄密碼界面示意圖14、關(guān)閉用戶記錄,即不顯示所有用戶信息圖30 關(guān)閉用戶記錄示意圖15、關(guān)閉學(xué)生記錄圖31 關(guān)閉學(xué)生記錄示意圖16、退出系統(tǒng)確認(rèn)對話框只有確認(rèn)時(shí)才會退出系統(tǒng),否則返加主界面圖32 退出系統(tǒng)17、普通學(xué)生登陸后的界面(即不能對學(xué)生信息進(jìn)行添加,修改和刪除以與用戶密碼修改,對應(yīng)的這幾項(xiàng)灰色顯示,不可點(diǎn)擊)圖33 學(xué)生登錄界面(1)圖34 學(xué)生登錄界面(2)四、心得體會這次為期一周的課程設(shè)計(jì)讓

19、我對java有了新的認(rèn)識,首先我接觸了很多上課見過但沒有實(shí)際用過的類和方法,讓我對編程有了許多新的思想。 大一學(xué)了C語言、C+等,雖然當(dāng)時(shí)學(xué)的還不錯(cuò),由于學(xué)的都是入門知識,所以自己做的程序只能實(shí)現(xiàn)一定的功能,和自己平時(shí)用的軟件相差很大。這學(xué)期剛開課學(xué)java,雖然知道這是一門很有用的語言,但是卻感覺沒什么新鮮感,它的跨平臺特性也只是聽聽,根本沒有認(rèn)識,由于平時(shí)學(xué)習(xí)不刻苦,也沒有時(shí)間靜下心來寫過java代碼,當(dāng)?shù)弥詈笃谀┳詈笠恢軐⑦M(jìn)行java課程設(shè)計(jì),才靜下心來開始研究java,結(jié)合以前的編程知識,做起了自己的程序。與此同時(shí),我們也在進(jìn)行數(shù)據(jù)庫課程設(shè)計(jì),和這個(gè)系統(tǒng)相類似,做起來比較熟

20、練,同時(shí)想通過做課程設(shè)計(jì)將數(shù)據(jù)庫和java更好的結(jié)合運(yùn)用起來,感覺這樣才能夠更貼近實(shí)際應(yīng)用。 這次課程設(shè)計(jì)使我對java的跨平臺性有了進(jìn)一步認(rèn)識,同時(shí)加深了課堂上所學(xué)到的知識。雖然這是第三次課程設(shè)計(jì),并且自己也有了兩年的上機(jī)實(shí)驗(yàn),但我不得不說這一次課程設(shè)計(jì)是前兩次以與任何一節(jié)上機(jī)實(shí)驗(yàn)課都不可比的。在課程設(shè)計(jì)這一段時(shí)間,使我收獲了很多在上機(jī)課上無法學(xué)習(xí)到的知識,尤其是需求分析和eclipse熟練的使用。因?yàn)檫@一部分知識的不熟練,在程序設(shè)計(jì)過程中遇到了不少困難,但通過老師的指導(dǎo)和一次又一次的指導(dǎo)、改寫、調(diào)試,將這些困難都解決了,心中的喜悅感油然而生。為了能使程序更加的完善,更加人性化,我也利用了不

21、少的課余時(shí)間,查找了各方面的資料,看到一個(gè)小型系統(tǒng)能夠展示在電腦屏幕上時(shí),感覺自己這段時(shí)間的付出是非常值得的,也使我對java產(chǎn)生了更濃厚的興趣,對自己的學(xué)習(xí)以與將來的工作都是有很大的幫助的。整個(gè)課程設(shè)計(jì)過程讓我的java知識得到了應(yīng)用,體驗(yàn)了程序員編程時(shí)的喜怒哀樂,知識、心智,得到全方位提升,收獲頗豐。五、參考文獻(xiàn)著作文獻(xiàn):1 海廷.Java語言程序設(shè)計(jì)教程.:清華大學(xué).20122 印杰,斌,玉強(qiáng).Java編程案例精解.:電子工業(yè).20053 何梅.java編程實(shí)例系列叢書.:清華大學(xué),20024 昭.二級Java語言程序設(shè)計(jì)教程.:中國水利水電,20065 文靖.Java程序設(shè)計(jì)基礎(chǔ)與上機(jī)

22、指導(dǎo).:清華大學(xué),2006 六、附錄1、功能:這是學(xué)生信息查詢窗口,采用基于管理窗口,即主界面的對話框?qū)崿F(xiàn)package .View;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;import .Tools.MyFont;publicclassStuQueryextends JDialog implements ActionListener/定義查詢所需要的面板和組件JPanel jp1;JLabel jp1_jl1;JT

23、extField jp1_jtf1;utton jp1_1,jp1_2,jp1_3;JTable jtb;JScrollPane jsp;TableModel tm;public StuQuery(Frame Main,String title ,boolean model)/調(diào)用父類的構(gòu)造方法,實(shí)現(xiàn)模式對話super(Main,title,model);jp1=new JPanel();jp1_jl1=new JLabel("請輸入:");jp1_jl1.setFont(MyFont.f1);jp1_jtf1=new JTextField(15);jp1_1=new ut

24、ton("查 詢->");jp1_1.setFont(MyFont.f1);jp1_1.addActionListener(this);jp1_2=new utton("清 除");jp1_2.setFont(MyFont.f1);jp1_2.addActionListener(this);jp1_3=new utton("顯示所有記錄");jp1_3.setFont(MyFont.f1);jp1_3.addActionListener(this);jp1.add(jp1_jl1);jp1.add(jp1_jtf1);jp1.a

25、dd(jp1_1);jp1.add(jp1_2);jp1.add(jp1_3);jtb=new JTable();jsp=new JScrollPane(jtb);this.add(jp1,"North");this.add(jsp,"Center");this.setSize(600,400);this.setVisible(true);Overridepublicvoid actionPerformed(ActionEvent arg0) / TODO Auto-generated method stub/如果點(diǎn)擊了查詢按鈕if(arg0.getSo

26、urce()=jp1_1)/獲取文本框的值String stuName=jp1_jtf1.getText().trim();/其中trim()是去掉文本框前面可能有的空格,但不能去掉字符串中的空格String sql="select * from student where stuName='"+stuName+"'"/調(diào)用模型tm=new TableModel(sql);jtb.setModel(tm);elseif(arg0.getSource()=jp1_2)jp1_jtf1.setText("");elseif

27、(arg0.getSource()=jp1_3)tm=new TableModel(null);jtb.setModel(tm);2、功能:這是一個(gè)表模型,用于更新數(shù)據(jù)package .View;import.SqlConnection.*;/引入數(shù)據(jù)庫連接的包import java.sql.*;import java.util.*;import javax.swing.table.AbstractTableModel;import .SqlConnection.SqlConn;publicclassTableModelextends AbstractTableModel /定義表格所需要的集

28、合VectorrowData,row,column;/定義一個(gè)記錄集,用于接收從數(shù)據(jù)庫返回來的記錄集ResultSet rs;/定義一個(gè)用于連接數(shù)據(jù)庫的對象SqlConn conn;public TableModel(String sql)if(sql=null)sql="select * from student"/設(shè)置表格的列名column=newVector();column.add("學(xué)號");column.add("");column.add("性別");column.add("年齡"

29、);column.add("出生地");column.add("專業(yè)");column.add("班級");column.add("總學(xué)分");/創(chuàng)建表的記錄集rowData=newVector();/調(diào)用數(shù)據(jù)庫連接conn=new SqlConn();rs=conn.sqlQuery(sql);try while(rs.next()row=newVector();row.add(rs.getString(1);row.add(rs.getString(2);row.add(rs.getString(3);row.

30、add(rs.getString(4);row.add(rs.getString(5);row.add(rs.getString(6);row.add(rs.getString(7);row.add(rs.getString(8);rowData.add(row); catch (Exception e) e.printStackTrace();/ TODO: handle exceptionOverride/設(shè)置表的列名public String getColumnName(int column) / TODO Auto-generated method stubreturn (String

31、)this.column.get(column);Override/得到的列數(shù)publicint getColumnCount() / TODO Auto-generated method stubreturnthis.column.size();/得到的行數(shù)Overridepublicint getRowCount() / TODO Auto-generated method stubreturnthis.rowData.size();Override/得到某行某列的值public Object getValueAt(int arg0, int arg1) / TODO Auto-gener

32、ated method stubreturn (Vector)this.rowData.get(arg0).get(arg1);3、 功能:這是修改管理人員信息的界面,通過模式對話(即繼承JDialog對話框)來實(shí)現(xiàn)package .View;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;import .SqlConnection.SqlConn;import .Tools.MyFont;publicclassUpdate

33、Loginextends JDialog implements ActionListener /定義修改學(xué)生信息的相關(guān)組件JLabel jl1,jl2,jl3;JTextField jtf1,jtf2,jtf3;utton 1,2,3;/這是修改賬戶信息權(quán)限的界面函數(shù)的封裝publicvoidupView()/加載數(shù)據(jù)庫,獲得選中的那一行的所有信息jl1=new JLabel("賬 號:");/因?yàn)橘~號是主鍵,設(shè)置文本框不可編輯的同時(shí),一般也設(shè)置標(biāo)簽灰色顯示,以區(qū)別其他標(biāo)簽 jl1.setEnabled(false);jl1.setBounds(20, 20, 60, 25

34、);jl1.setFont(MyFont.f1);jl2=new JLabel("密 碼:");jl2.setFont(MyFont.f1);jl2.setBounds(250, 20, 60, 25);jl3=new JLabel("職 位:");jl3.setEnabled(false);jl3.setFont(MyFont.f1);jl3.setBounds(20, 60, 60, 25);jtf1=new JTextField(20);/由于賬號是主鍵,因此不能修改,即設(shè)置障礙曙jtf1不可編輯jtf1.setEnabled(false);jtf

35、1.setBounds(70, 20, 130, 25);jtf2=new JTextField(20);jtf2.setBounds(300, 20, 130, 25);jtf3=new JTextField(20);jtf3.setEnabled(false);jtf3.setBounds(70, 60, 130, 25);1=new utton("修 改");1.setFont(MyFont.f1);1.setBounds(100, 100, 80, 25);1.addActionListener(this);2=new utton("取 消");

36、2.setFont(MyFont.f1);2.setBounds(280, 100, 80, 25);2.addActionListener(this);3=new utton("清 除");3.setFont(MyFont.f1);3.setBounds(190,100,80,25);3.addActionListener(this);this.setLayout(null);/把組件添加到窗體this.add(jl1);this.add(jtf1);this.add(jl2);this.add(jtf2);this.add(jl3);this.add(jtf3);thi

37、s.add(1);this.add(2);this.add(3);/因?yàn)橐薷男畔?,那么必須要獲得所選中的那一行的所有信息,把它們添加到文本框作為默認(rèn)值,因此構(gòu)造方法還應(yīng)添加一個(gè)參數(shù)即傳遞一個(gè)模型tm,并傳遞所選中的行號rowpublic UpdateLogin(Frame Main,String title,PurViewModel pvm,int rowNo,boolean model)/調(diào)用父類的構(gòu)造方法,實(shí)現(xiàn)模式對話super(Main,title,model);/調(diào)用修改用戶權(quán)限信息的界面的方法this.upView();/先從表模型中獲取所選中的那一行數(shù)據(jù)String userId

38、=(String)pvm.getValueAt(rowNo, 0);System.out.println("userId="+userId);String password=(String)pvm.getValueAt(rowNo, 1);String position=(String)pvm.getValueAt(rowNo, 2);/設(shè)置廣本框的值jtf1.setText(userId);jtf2.setText(password);jtf3.setText(position);/設(shè)置窗體的屬性this.setSize(465,170);this.setVisible(

39、true);this.setResizable(false);Overridepublicvoid actionPerformed(ActionEvent e) / TODO Auto-generated method stub/當(dāng)點(diǎn)擊了修改按鈕if(e.getSource()=1)/獲取文本框的信息String userId=jtf1.getText().trim();String password=jtf2.getText().trim();String position=jtf3.getText().trim();/調(diào)用數(shù)據(jù)庫連接/設(shè)置操縱更新的sql語句String sql="

40、;update login set password='"+password+"',position='"+position+"'where userId='"+userId+"'"SqlConn sqlconn=new SqlConn();sqlconn.sqlUpdate(sql);/關(guān)閉交資源sqlconn.closeSqlConn();/關(guān)閉與數(shù)據(jù)庫連接的資源后,再關(guān)閉對話框,否則數(shù)據(jù)不能自動在表中更新顯示出來this.dispose();/如果點(diǎn)擊了取消按鈕,則關(guān)閉模

41、式對話框elseif(e.getSource()=2)this.dispose();/如果點(diǎn)擊了清除按鈕,則清除所有的廣本框的容,除了學(xué)號elseif(e.getSource()=3)/由于賬號是主鍵,則不能清空!jtf2.setText("");4、功能:這是修改學(xué)生信息的界面,通過模式對話(即繼承JDialog對話框)來實(shí)現(xiàn) package .View;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;

42、import .SqlConnection.SqlConn;import .Tools.MyFont;publicclassUpdateStuextends JDialog implements ActionListener /定義修改學(xué)生信息的相關(guān)組件JLabel jl1,jl2,jl3,jl4,jl5,jl6,jl7,jl8;JTextField jtf1,jtf2,jtf3,jtf4,jtf5,jtf6,jtf7,jtf8;utton 1,2,3;intstuAge=0;Double stuSourse=0.0;/這是修改學(xué)生信息的界面函數(shù)的封裝publicvoid upView()/加

43、載數(shù)據(jù)庫,獲得選中的那一行的所有信息jl1=new JLabel("學(xué) 號:");/因?yàn)閷W(xué)號是主鍵,設(shè)置文本框不可編輯的同時(shí),一般也設(shè)置標(biāo)簽灰色顯示,以區(qū)別其他標(biāo)簽 jl1.setEnabled(false);jl1.setBounds(20, 20, 60, 25);jl1.setFont(MyFont.f1);jl2=new JLabel("姓 名:");jl2.setFont(MyFont.f1);jl2.setBounds(250, 20, 60, 25);jl3=new JLabel("性 別:");jl3.setFont(

44、MyFont.f1);jl3.setBounds(20, 60, 60, 25);jl4=new JLabel("年 齡:");jl4.setFont(MyFont.f1);jl4.setBounds(250, 60, 60, 25);jl5=new JLabel("出生地:");jl5.setFont(MyFont.f1);jl5.setBounds(14, 100, 60, 25);jl6=new JLabel("專 業(yè):");jl6.setFont(MyFont.f1);jl6.setBounds(20, 140, 60, 25

45、);jl7=new JLabel("班 級:");jl7.setFont(MyFont.f1);jl7.setBounds(20, 180, 60, 25);jl8=new JLabel("總學(xué)分:");jl8.setFont(MyFont.f1);jl8.setBounds(240, 180, 60, 25);jtf1=new JTextField(20);/由于學(xué)號是主鍵,因此不能修改,即設(shè)置障礙曙jtf1不可編輯jtf1.setEnabled(false);jtf1.setBounds(70, 20, 130, 25);jtf1.setBorder

46、(BorderFactory.createLoweredBevelBorder();jtf2=new JTextField(20);jtf2.setBounds(300, 20, 130, 25);jtf2.setBorder(BorderFactory.createLoweredBevelBorder();jtf3=new JTextField(10);jtf3.setBounds(70, 60, 60, 25);jtf3.setBorder(BorderFactory.createLoweredBevelBorder();jtf4=new JTextField(10);jtf4.setBo

47、unds(300, 60, 60, 25);jtf4.setBorder(BorderFactory.createLoweredBevelBorder();jtf5=new JTextField(30);jtf5.setBounds(70, 100, 360, 25);jtf5.setBorder(BorderFactory.createLoweredBevelBorder();jtf6=new JTextField(20);jtf6.setBounds(70, 140, 290, 25);jtf6.setBorder(BorderFactory.createLoweredBevelBorde

48、r();jtf7=new JTextField(20);jtf7.setBounds(70, 180, 130, 25);jtf7.setBorder(BorderFactory.createLoweredBevelBorder();jtf8=new JTextField(20);jtf8.setBounds(300, 180, 130, 25);jtf8.setBorder(BorderFactory.createLoweredBevelBorder();1=new utton("修 改");1.setFont(MyFont.f1);1.setBounds(100, 22

49、0, 80, 25);1.addActionListener(this);2=new utton("取 消");2.setFont(MyFont.f1);2.setBounds(280, 220, 80, 25);2.addActionListener(this);3=new utton("清 除");3.setFont(MyFont.f1);3.setBounds(190,220,80,25);3.addActionListener(this);this.setLayout(null);/把組件添加到窗體this.add(jl1);this.add(j

50、tf1);this.add(jl2);this.add(jtf2);this.add(jl3);this.add(jtf3);this.add(jl4);this.add(jtf4);this.add(jl5);this.add(jtf5);this.add(jl6);this.add(jtf6);this.add(jl7);this.add(jtf7);this.add(jl8);this.add(jtf8);this.add(1);this.add(2);this.add(3);/因?yàn)橐薷男畔?,那么必須要獲得所選中的那一行的所有信息,把它們添加到文本框作為默認(rèn)值,因此構(gòu)造方法還應(yīng)添加一個(gè)參數(shù)即傳遞一個(gè)模型tm,并傳遞所選中的行號rowpublic UpdateStu(Frame Main,String title,TableModel tm,int rowNo,boolean model)/調(diào)用父類的構(gòu)造方法,實(shí)現(xiàn)模式對話super(Main,title,model);/調(diào)用修改學(xué)生信息的界面的方法this.upView();/先從表模型中獲取所選中的那一行數(shù)據(jù)String stuId=(String)tm.getValueAt(rowNo, 0);System.out.println("sutId="+stuId);String stuName=(S

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論