學(xué)生信息管理系統(tǒng)java課程設(shè)計(jì)文檔.doc
JAVA 程序設(shè)計(jì) 課程設(shè)計(jì)報(bào)告 課題:學(xué)生信息管理系統(tǒng)姓 名:學(xué)號(hào):同組姓名:專業(yè)班級(jí):指導(dǎo)教師:設(shè)計(jì)時(shí)間: 評(píng)閱意見: 評(píng)定成績(jī):指 目 錄一、系統(tǒng)描述 . 2 1、需要實(shí)現(xiàn)的功能 . 3 2、設(shè)計(jì)目的 . 3 二、分析與設(shè)計(jì). 3 1、功能模塊劃分 . 3 2、數(shù)據(jù)庫(kù)結(jié)構(gòu)描述 . 4 3、系統(tǒng)詳細(xì)設(shè)計(jì)文檔 . 6 4、各個(gè)模塊的實(shí)現(xiàn)方法描述 . 9 5、測(cè)試數(shù)據(jù)及期望結(jié)果 . 11 三、系統(tǒng)測(cè)試 . 16 四、心得體會(huì) . 23 五、參考文獻(xiàn) . 24 六、附錄 . 24 - 1 - 一、系統(tǒng)描述 1、需求實(shí)現(xiàn)的功能1.1、錄入學(xué)生基本信息的功能學(xué)生基本信息主要包括:學(xué)號(hào)、姓名、年齡、出生地、專業(yè)、班級(jí)總學(xué)分,在插入時(shí),如果數(shù)據(jù)庫(kù)已經(jīng)存在該學(xué)號(hào),則不能再插入該學(xué)號(hào)。1.2 、修改學(xué)生基本信息的功能在管理員模式下,只要在表格中選中某個(gè)學(xué)生,就可以對(duì)該學(xué)生信息進(jìn)行修改。1.3、查詢學(xué)生基可使用 “姓名”對(duì)已存有的學(xué)生資料進(jìn)行查詢。1.4、刪除學(xué)生基本信息的功能本信息的功能在管理員模式下,只要選擇表格中的某個(gè)學(xué)生,就可以刪除該學(xué)生。1.5、用戶登陸用不同的登錄權(quán)限可以進(jìn)入不同的后臺(tái)界面,從而實(shí)現(xiàn)權(quán)限操作。1.6、用戶登陸信息設(shè)置可以修改用戶登陸密碼2、設(shè)計(jì)目的學(xué)生信息管理系統(tǒng)是一個(gè)教育單位不可缺少的部分。一個(gè)功能齊全、簡(jiǎn)單易用的信息管理系統(tǒng)不但能有效地減輕學(xué)校相關(guān)工作人員的工作負(fù)擔(dān),它的內(nèi)容對(duì)于學(xué)校的決策者和管理者來說都至關(guān)重 要。所以學(xué)生信息管理系統(tǒng)應(yīng)該能夠?yàn)橛脩籼峁┏渥愕男畔⒑涂旖莸牟樵兪侄?。但一直以來人們使用傳統(tǒng)人工的方式管理文件檔案、統(tǒng)計(jì)和查詢數(shù)據(jù),這種管理方式存在著許多缺點(diǎn),如:效率低、保密性差、人工的大量浪費(fèi);另外時(shí)間一長(zhǎng),將產(chǎn)生大量的文件和數(shù)據(jù),這對(duì)于查找、更新和維護(hù)都帶來了不少困難。隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,- 2 - 其強(qiáng)大的功能已為人們深刻認(rèn)識(shí),它已進(jìn)入人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來越重 要的作用。作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對(duì)學(xué)校的各類信息進(jìn)行管理,具有手工管理無法比擬的優(yōu)點(diǎn)。例如:檢索迅速、查詢方便、效率高、可靠性好、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低等。這些優(yōu)點(diǎn)能夠極大地提高學(xué)校信息管理的效率,也是一個(gè)單位科學(xué)化、正規(guī)化管理,與世界接軌的重 要條件。本系統(tǒng)是將現(xiàn)代化的計(jì)算機(jī)技術(shù)和傳統(tǒng)的教學(xué)、教務(wù)工作相結(jié)合,按照學(xué)院的工作流程設(shè)計(jì)完成的。通過一個(gè)簡(jiǎn)化的學(xué)生信息管理系統(tǒng),使學(xué)生信息管理工作系統(tǒng)化、規(guī)范化、自動(dòng)化,從而達(dá)到提高學(xué)生信息管理效率的目的。二、分析與設(shè)計(jì) 1、功能模塊劃分學(xué)生信息管理系統(tǒng)普通學(xué)生(用戶)班委(管理員)模塊 模塊 學(xué)生管理 登陸管理 瀏覽學(xué)生信息 查詢學(xué)生信息 瀏查詢學(xué)生信息 添加學(xué)生信息 修改學(xué)生信息 刪除學(xué)生信息 修改登陸密碼 顯示登陸用戶 覽學(xué)生信息 圖 1 功能模塊劃分圖 - 3 - 2、數(shù)據(jù)庫(kù)結(jié)構(gòu)描述2.1、數(shù)據(jù)庫(kù) E-R 模型登錄用戶管理 賬號(hào) 密碼 職位 圖 2 登錄用戶管理 E-R 圖 學(xué) 生 學(xué)號(hào)總學(xué)分 姓名 班級(jí) 性別專業(yè) 年齡出生地 圖 3 實(shí)體學(xué)生 E-R 圖2.2 、數(shù)據(jù)庫(kù)關(guān)系模型二維表表 1 學(xué)生表(student) 字段stuIdstuNamestuSexstuAgestuJg數(shù)據(jù)類型說明學(xué)號(hào)姓名性別年齡籍貫專業(yè)nvarchar(30)nvarchar(30)nvarchar(30)intnvarchar(30)nvarchar(30)stuZy- 4 - classIdstuSoursenvarchar(30)numeric(5,2)班號(hào)總學(xué)分圖 4 錄入數(shù)據(jù)后的學(xué)生表 表 2 登陸權(quán)限表(login ) 字段數(shù)據(jù)類型說明userIdnvarchar(30)用戶名(賬號(hào)),即登陸Idpasswordpositionnvarchar(30)nvarchar(30)登陸密碼職位,如班委,普通學(xué)生圖 5 錄入數(shù)據(jù)后的登陸權(quán)限表 - 5 - 3、系統(tǒng)詳細(xì)設(shè)計(jì)文檔3.1 、系統(tǒng)執(zhí)行流程圖進(jìn)度條(閃屏)用戶登陸 false true 登陸驗(yàn)證 班委(管理員 ) 普通學(xué)生(用戶) 班委(管理員)界面普通學(xué)生界面查詢 添加 修改 刪除 退出查詢 顯示 false false 修改顯示登陸用戶信息 退出系統(tǒng) 退出系統(tǒng) 用戶登陸密碼 true true 結(jié)束結(jié)束 圖 6 系統(tǒng)執(zhí)行流程圖 - 6 - 3.2 、類的劃分類名表 3 學(xué)生信息查詢類類的成員屬性與方法說明StuQuery.java JPanel jp1JLabel jp1_jl1JTextField jp1_jtf1定義一個(gè)面定義兩個(gè)標(biāo)簽定義一個(gè)文本輸入框板JButton jp1_jb1,jp1_jb2,jp1_jb3 定義三個(gè)按鈕JTable jtb定義一個(gè)表JScrollPane jsp定義一個(gè)滾動(dòng)面板,用于存放表TableModel tmpublic自定義一個(gè)表模型,用于更新表數(shù)據(jù)StuQuery(Frame 構(gòu)造方法,通過傳遞三個(gè)參Main,String title ,boolean model)數(shù),實(shí)現(xiàn)對(duì)話super(Main,title,model)調(diào)用父類的構(gòu)造方法,實(shí)現(xiàn)模式對(duì)話publicvoid 事件響應(yīng)方法actionPerformed(ActionEventarg0)表 4 修改學(xué)生信息類 類名類的成員屬性與方法說明UpdateStu.java JLabel jl1,jl2,jl3,jl4,jl5,jl6,jl7,jl8定義八個(gè)標(biāo)簽,用于設(shè)置數(shù)據(jù)庫(kù)表的字段名定義八個(gè)文本框,用于接收表的各字段值定義三個(gè)按鈕,用于事件響應(yīng)JTextFieldjtf1,jtf2,jtf3,jtf4,jtf5,jtf6,jtf7,jtf8JButton jb1,jb2,jb3public void addView()這是修改學(xué)生界面的函數(shù)封裝public AddStu(Frame Main,String 構(gòu)造方法,通過傳遞三title,boolean model)super(Main,title,model)個(gè)參數(shù),實(shí)現(xiàn)對(duì)話調(diào)用父類的構(gòu)造方法,實(shí)現(xiàn)模式對(duì)話publicUpdateStu(FrameMain,String 因?yàn)橐薷男畔ⅲ敲磘itle,TableModeltm,int 必須要獲得所選中的那rowNo,boolean model)一行的所有信息,把它們添加到文本框作為默認(rèn)值,因此構(gòu)造方法還- 7 - 應(yīng)添加一個(gè)參數(shù)即傳遞一個(gè)模型 tm,并傳遞所選中的行號(hào) rowpublicvoid 事件響應(yīng)方法actionPerformed(ActionEvent e)表 5 修改管理人員信息類 類名類的成員屬性與方法說明UpdateLogin.javaJLabel jl1,jl2,jl3定義三個(gè)標(biāo)簽,即用戶名,密碼,職位JTextField jtf1,jtf2,jtf3定義三個(gè)文本框,對(duì)應(yīng)三個(gè)標(biāo)簽的值JButton jb1,jb2,jb3JTable jtb定義三個(gè)按鈕,用于事件響應(yīng)定義一個(gè)表格,用于顯示登陸用戶信息PurViewModel pvm自定義登陸用戶信息的數(shù)據(jù)更新模型public void upView()這是修改賬戶信息權(quán)限的界面函數(shù)的封裝public UpdateLogin(Frame因?yàn)橐@得所選中的那一行的所title,PurViewModel pvm,int 有信息,把它們添加到文本修改信息,那么必須Main,StringrowNo,boolean model)框作為默認(rèn)值,因此構(gòu)造方法還應(yīng)添加一個(gè)參數(shù)即傳遞一個(gè)模型 tm,并傳遞所選中的行號(hào) rowsuper(Main,title,model)public調(diào)用父類的構(gòu)造方法,實(shí)現(xiàn)模式對(duì)話void 事件響應(yīng)方法actionPerformed(ActionEvente)表 6 表模式- 更新數(shù)據(jù) 類名類的成員屬性與方法說明TableModel.java Vector rowData,row,column定義表格所需要的集合(表,行,列)ResultSet rs定義一個(gè)記錄集,用于接收從數(shù)據(jù)庫(kù)返回來的記錄集SqlConn conn定義一個(gè)用于連接數(shù)據(jù)庫(kù)的對(duì)象,SqlConn是連接數(shù)據(jù)庫(kù)的類public TableModel(String構(gòu)造方法,并傳一個(gè) SQL 語(yǔ)句,- 8 - sql)實(shí)現(xiàn)查詢操作publicString 這是一個(gè)重 寫的方法,用于設(shè)getColumnName(intcolumn)置表的列名publicint 得到數(shù)據(jù)模型記錄集的列數(shù)getColumnCount()public int getRowCount() 得到數(shù)據(jù)模型記錄集的行數(shù)Object 得到數(shù)據(jù)模型記錄集某行某列publicgetValueAt(int arg0, int 的值arg1)4、各個(gè)模塊的實(shí)現(xiàn)方法描述說明:此處只包含了個(gè)人完成的模塊的實(shí)現(xiàn)方法描述4.1 、學(xué)生信息查詢學(xué)生信息查詢窗口,采用了基于管理窗口,即主界面的對(duì)話框?qū)崿F(xiàn),實(shí)現(xiàn)方法如下:1)定義查詢所需要的面板和組件。2)調(diào)用父類的構(gòu)造方法,實(shí)現(xiàn)模式對(duì)話。3)進(jìn)行學(xué)生信息查詢。4.2 、修改管理人員信息修改管理人員信息的界面,通過模式對(duì)話,即繼承 JDialog 對(duì)話框來實(shí)現(xiàn)的,實(shí)現(xiàn)方法如下:1)定義修改學(xué)生信息的相關(guān)組件。2)加載數(shù)據(jù)庫(kù),獲得選中的那一行的所有信息。3)把組件添加到窗體。4)調(diào)用父類的構(gòu)造方法,實(shí)現(xiàn)模式對(duì)話。5)調(diào)用修改用戶權(quán)限信息的界面的方法。6)修改管理人員信息。7)調(diào)用數(shù)據(jù)庫(kù)連接,并設(shè)置操縱更新的 sql 語(yǔ)句。- 9 - 4.3 、修改學(xué)生信息修改學(xué)生信息的界面,通過模式對(duì)話,即繼承 JDialog 對(duì)話框來實(shí)現(xiàn),實(shí)現(xiàn)方法如下:1)定義修改學(xué)生信息的相關(guān)組件。2)加載數(shù)據(jù)庫(kù),獲得選中的那一行的所有信息。3)把組件添加到窗體。4)調(diào)用父類的構(gòu)造方法,實(shí)現(xiàn)模式對(duì)話。5)調(diào)用修改學(xué)生信息的界面的方法。6)修改學(xué)生信息。7)完成相應(yīng)功能。4.4 、更新數(shù)據(jù)這是一個(gè)表模型,用于數(shù)據(jù)更新,實(shí)現(xiàn)方法如下:1)定義表格所需要的集合。2)定義一個(gè)記錄集,用于接收從數(shù)據(jù)庫(kù)返回來的記錄集。3)定義一個(gè)用于連接數(shù)據(jù)庫(kù)的對(duì)象。4)設(shè)置表格的列名。5)創(chuàng)建表的記錄集。6)調(diào)用數(shù)據(jù)庫(kù)連接。7)設(shè)置表的列名,并得到表的列數(shù)和行數(shù)。8)得到某行某列的值。- 10 - 5.1 、學(xué)生信息查詢數(shù)據(jù)測(cè)試及期望結(jié)果數(shù)據(jù)測(cè)試及期望結(jié)果如下圖:圖 7 為學(xué)生登錄后的最初界面圖 8 為學(xué)生查看所有信息界面圖 9 為全部學(xué)生的信息記錄(此處同時(shí)運(yùn)用到了 TableModel類);圖 10則是實(shí)現(xiàn)了此處的查詢功能,測(cè)試數(shù)據(jù)為:圖 7 學(xué)生信息管理系統(tǒng) - 11 - 圖 8 學(xué)生信息管理系統(tǒng)- 顯示記錄 圖 9 學(xué)生信息管理系統(tǒng)- 顯示所有信息 - 12 - 圖 10 學(xué)生信息管理系統(tǒng)- 學(xué)生信息查詢 5.2 、修改管理人員數(shù)據(jù)測(cè)試及期望結(jié)果數(shù)據(jù)測(cè)試及期望結(jié)果如下圖:圖 11將顯示出所有管理人員信息。此處測(cè)試的數(shù)據(jù)為:賬號(hào) 1:admin 密碼 1:admin 職位 1:班委賬號(hào) 2:user密碼 2:user職位 2:普通學(xué)生圖 12是彈出的修改密碼窗口。此處可將密碼 admin修改為其它值。- 13 - 圖 11 顯示所有管理人員信息 圖 12 修改管理人員信息窗口 5.3 、修改學(xué)生信息數(shù)據(jù)測(cè)試及期望結(jié)果數(shù)據(jù)測(cè)試及期望結(jié)果如下圖:圖 13為全部學(xué)生的信息記錄(此處同時(shí)運(yùn)用到了 TableModel類);圖 14是彈出的修改學(xué)生信息窗口:測(cè)試數(shù)據(jù):姓名:楊明輝期望結(jié)果:可修改姓名、性別、年齡、出生地、專業(yè)、班級(jí)和總學(xué)分。- 14 - 圖 13 學(xué)生信息管理系統(tǒng)- 顯示所有信息 圖 14 修改學(xué)生信息窗口 - 15 - 1、系統(tǒng)啟動(dòng)界面圖15 系統(tǒng)啟動(dòng)界面2、用戶登錄界面圖16 用戶登錄界面- 16 - 3、班委(管理員)界面,即具有完全權(quán)限的用戶后臺(tái)界面圖17 管理員界面4、班委(管理員)界面子菜單項(xiàng)顯示圖 18 管理員界面子菜單- 系統(tǒng)界面圖19 管理員界面子菜單- 學(xué)生管理界面圖20 管理員界面子菜單- 系統(tǒng)設(shè)置界面- 17 - 5、學(xué)生信息查詢界面圖22 學(xué)生信息查詢顯示 7、添加學(xué)生信息界面- 18 - 8、修改學(xué)生信息界面(學(xué)號(hào)是主鍵,灰色顯示,即不可更改)圖25 顯示所有信息 - 19 - 11、刪除文件時(shí)的確認(rèn)對(duì)話框(點(diǎn)擊確認(rèn)時(shí)會(huì)刪除,點(diǎn)擊取消,則返回主界面)- 20 - 12、顯示所有登陸用戶信息圖28 顯示登錄用戶信息示意圖 13、修改用戶登陸密碼,選中某個(gè)用戶進(jìn)行修改圖29 修改用戶登錄密碼界面示意圖 14、關(guān)閉用戶記錄,即不顯示所有用戶信息圖31 關(guān)閉學(xué)生記錄示意圖 - 21 - 只有確認(rèn)時(shí)才會(huì)退出系統(tǒng),否則返加主界面17、普通學(xué)生登陸后的界面(即不能對(duì)學(xué)生信息進(jìn)行添加,修改和刪除以及用戶圖33 學(xué)生登錄界面(1) 圖34 學(xué)生登錄界面(2) - 22 - 四、心得體會(huì) 這次為期一周 的課程設(shè)計(jì)讓我對(duì) java 有了新的認(rèn)識(shí),首先我接觸了很多上課見過但沒有實(shí)際用過的類和方法,讓我對(duì)編程有了許多新的思想。 大一學(xué)了C 語(yǔ)言、C+等,雖然當(dāng)時(shí)學(xué)的還不錯(cuò),由于學(xué)的都是入門知識(shí),所以自己做的程序只能實(shí)現(xiàn)一定的功能,和自己平時(shí)用的軟件相差很大。這學(xué)期剛開課學(xué)java,雖然知道這是一門很有用的語(yǔ)言,但是卻感覺沒什么新鮮感,它的跨平臺(tái)特性也只是聽聽,根本沒有認(rèn)識(shí),由于平時(shí)學(xué)習(xí)不刻苦,也沒有時(shí)間靜下心來寫過 java 代碼,當(dāng)?shù)弥詈笃谀┳詈笠恢?將進(jìn)行 java 課程設(shè)計(jì),才靜下心來開始研究 java,結(jié)合以前的編程知識(shí),做起了自己的程序。與此同時(shí),我們也在進(jìn)行數(shù)據(jù)庫(kù)課程設(shè)計(jì),和這個(gè)系統(tǒng)相類似,做起來比較熟練,同時(shí)想通過做課程設(shè)計(jì)將數(shù)據(jù)庫(kù)和 java 更好的結(jié)合運(yùn)用起來,感覺這樣才能夠更貼近實(shí)際應(yīng)用。這次課程設(shè)計(jì)使我對(duì) java 的跨平臺(tái)性有了進(jìn)一步認(rèn)識(shí),同時(shí)加深了課堂上所學(xué)到的知識(shí)。雖然這是第三次課程設(shè)計(jì),并且自己也有了兩年的上機(jī)實(shí)驗(yàn),但我不得不說這一次課程設(shè)計(jì)是前兩次以及任何一節(jié)上機(jī)實(shí)驗(yàn)課都不可比的。在課程設(shè)計(jì)這一段時(shí)間,使我收獲了很多在上機(jī)課上無法學(xué)習(xí)到的知識(shí),尤其是需求分析和 eclipse 熟練的使用。因?yàn)檫@一部分知識(shí)的不熟練,在程序設(shè)計(jì)過程中遇到了不少困難,但通過老師的指導(dǎo)和一次又一次的指導(dǎo)、改寫、調(diào)試,將這些困難都解決了,心中的喜悅感油然而生。為了能使程序更加的完善,更加人性化,我也利用了不少的課余時(shí)間,查找了各方面的資料,看到一個(gè)小型系統(tǒng)能夠展示在電腦屏幕上時(shí),感覺自己這段時(shí)間的付出是非常值得的,也使我對(duì) java 產(chǎn)生了更濃厚的興趣,對(duì)自己的學(xué)習(xí)以及將來的工作都是有很大的幫助的。整個(gè)課程設(shè)計(jì)過程讓我的 java 知識(shí)得到了應(yīng)用,體驗(yàn)了程序員編程時(shí)的喜怒哀樂,知識(shí)、心智,得到全方位提升,收獲頗豐。- 23 - 五、參考文獻(xiàn) 著作文獻(xiàn):1 趙海廷.Java 語(yǔ)言程序設(shè)計(jì)教程. 北京: 清華大學(xué)出版社.20122 孫印杰, 劉斌, 孫玉強(qiáng).Java 編程案例精解. 北京: 電子工業(yè)出版社.20053 何梅.java 編程實(shí)例系列叢書. 北京:清4 楊昭. 二級(jí) Java 語(yǔ)言程序設(shè)計(jì)教程. 北京:中國(guó)水利水電出版社,20065 趙文靖.Java 程序設(shè)計(jì)基礎(chǔ)與上機(jī)指導(dǎo). 北京:清華大學(xué)出版社,2002華大學(xué)出版社,2006六、附錄 1、功能:這是學(xué)生信息查詢窗口,采用基于管理窗口,即主界面的對(duì)話框?qū)崿F(xiàn) package com.View; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; import com.Tools.MyFont; public class StuQuery extends JDialog implements ActionListener / 定義查詢所需要的面板和組件 JPanel jp1 ; JLabel jp1_jl1 ; JTextField jp1_jtf1 ; JButton jp1_jb1 , jp1_jb2 , jp1_jb3 ; JTable jtb ; JScrollPane jsp ; TableModel tm; - 24 - public StuQuery(Frame Main,String title , boolean model) / 調(diào)用父類的構(gòu)造方法,實(shí)現(xiàn)模式對(duì)話 super (Main,title,model); jp1 =new JPanel(); jp1_jl1 =new JLabel(請(qǐng)輸入姓名: ); jp1_jl1 .setFont(MyFont. f1 ); jp1_jtf1 =new JTextField(15); jp1_jb1 =new JButton( 查 詢jp1_jb1 .setFont(MyFont. f1 ); ); jp1_jb1 .addActionListener(jp1_jb2 =new JButton(jp1_jb2 .setFont(MyFont. f1 ); this ); 清除 ); jp1_jb2 .addActionListener(this ); jp1_jb3 =new JButton( 顯示所有記錄 ); jp1_jb3 .setFont(MyFont. f1 ); jp1_jb3 .addActionListener(this ); jp1 .add( jp1_jl1 ); jp1 .add( jp1_jtf1 ); jp1 .add( jp1_jb1 ); jp1 .add( jp1_jb2 ); jp1 .add( jp1_jb3 ); jtb =new JTable(); jsp =new JScrollPane( jtb ); this .add( jp1 ,); this .add( jsp ,); this .setSize(600,400); this .setVisible(true ); - 2
編號(hào):40832076
類型:共享資源
大?。?span id="npcxprm" class="font-tahoma">3.92MB
格式:DOC
上傳時(shí)間:2023-08-18
10
積分
積分
- 關(guān) 鍵 詞:
- 學(xué)生 信息管理 系統(tǒng) java 課程設(shè)計(jì) 文檔
- 資源描述:
-
JAVA 程序設(shè)計(jì) 課程設(shè)計(jì)報(bào)告 課 題: 學(xué)生信息管理系統(tǒng) 姓 名: 學(xué) 號(hào): 同組姓名: 專業(yè)班級(jí): 指導(dǎo)教師: 設(shè)計(jì)時(shí)間: 評(píng)閱意見: 評(píng)定成績(jī): 指 目 錄 一、系統(tǒng)描述 .............................................................................. 2 1、需要實(shí)現(xiàn)的功能 .............................................................. 3 2、設(shè)計(jì)目的 .......................................................................... 3 二、分析與設(shè)計(jì).......................................................................... 3 1、功能模塊劃分 .................................................................. 3 2、數(shù)據(jù)庫(kù)結(jié)構(gòu)描述 .............................................................. 4 3、系統(tǒng)詳細(xì)設(shè)計(jì)文檔 .......................................................... 6 4、各個(gè)模塊的實(shí)現(xiàn)方法描述 .............................................. 9 5、測(cè)試數(shù)據(jù)及期望結(jié)果 .................................................... 11 三、系統(tǒng)測(cè)試 ............................................................................ 16 四、心得體會(huì) ............................................................................ 23 五、參考文獻(xiàn) ............................................................................ 24 六、附錄 .................................................................................... 24 - 1 - 一、系統(tǒng)描述 1、需求實(shí)現(xiàn)的功能 1.1、錄入學(xué)生基本信息的功能 學(xué)生基本信息主要包括:學(xué)號(hào)、姓名、年齡、出生地、專業(yè)、班級(jí)總學(xué)分, 在插入時(shí),如果數(shù)據(jù)庫(kù)已經(jīng)存在該學(xué)號(hào),則不能再插入該學(xué)號(hào)。 1.2 、修改學(xué)生基本信息的功能 在管理員模式下,只要在表格中選中某個(gè)學(xué)生,就可以對(duì)該學(xué)生信息進(jìn)行 修改。 1.3、查詢學(xué)生基 可使用 “姓名”對(duì)已存有的學(xué)生資料進(jìn)行查詢。 1.4、刪除學(xué)生基 本信息的功能 本信息的功能 在管理員模式下,只要選擇表格中的某個(gè)學(xué)生,就可以刪除該學(xué)生。 1.5、用戶登陸 用不同的登錄權(quán)限可以進(jìn)入不同的后臺(tái)界面,從而實(shí)現(xiàn)權(quán)限操作。 1.6、用戶登陸信息設(shè)置 可以修改用戶登陸密碼 2、設(shè)計(jì)目的 學(xué)生信息管理系統(tǒng)是一個(gè)教育單位不可缺少的部分。一個(gè)功能齊全、簡(jiǎn)單易 用的信息管理系統(tǒng)不但能有效地減輕學(xué)校相關(guān)工作人員的工作負(fù)擔(dān),它的內(nèi)容對(duì) 于學(xué)校的決策者和管理者來說都至關(guān)重 要。所以學(xué)生信息管理系統(tǒng)應(yīng)該能夠?yàn)橛? 戶提供充足的信息和快捷的查詢手段。但一直以來人們使用傳統(tǒng)人工的方式管理 文件檔案、統(tǒng)計(jì)和查詢數(shù)據(jù),這種管理方式存在著許多缺點(diǎn),如:效率低、保密 性差、人工的大量浪費(fèi);另外時(shí)間一長(zhǎng),將產(chǎn)生大量的文件和數(shù)據(jù),這對(duì)于查找、 更新和維護(hù)都帶來了不少困難。隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟, - 2 - 其強(qiáng)大的功能已為人們深刻認(rèn)識(shí),它已進(jìn)入人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來越 重 要的作用。 作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對(duì)學(xué)校的各類信息進(jìn)行管理,具有手 工管理無法比擬的優(yōu)點(diǎn)。例如:檢索迅速、查詢方便、效率高、可靠性好、存儲(chǔ) 量大、保密性好、壽命長(zhǎng)、成本低等。這些優(yōu)點(diǎn)能夠極大地提高學(xué)校信息管理的 效率,也是一個(gè)單位科學(xué)化、正規(guī)化管理,與世界接軌的重 要條件。 本系統(tǒng)是將現(xiàn)代化的計(jì)算機(jī)技術(shù)和傳統(tǒng)的教學(xué)、教務(wù)工作相結(jié)合,按照學(xué)院 的工作流程設(shè)計(jì)完成的。通過一個(gè)簡(jiǎn)化的學(xué)生信息管理系統(tǒng),使學(xué)生信息管理工 作系統(tǒng)化、規(guī)范化、自動(dòng)化,從而達(dá)到提高學(xué)生信息管理效率的目的。 二、分析與設(shè)計(jì) 1、功能模塊劃分 學(xué)生信息管理系統(tǒng) 普通學(xué)生(用戶) 班委(管理員) 模塊 模塊 學(xué)生管理 登陸管理 瀏 覽 學(xué) 生 信 息 查 詢 學(xué) 生 信 息 瀏 查 詢 學(xué) 生 信 息 添 加 學(xué) 生 信 息 修 改 學(xué) 生 信 息 刪 除 學(xué) 生 信 息 修 改 登 陸 密 碼 顯 示 登 陸 用 戶 覽 學(xué) 生 信 息 圖 1 功能模塊劃分圖 - 3 - 2、數(shù)據(jù)庫(kù)結(jié)構(gòu)描述 2.1、數(shù)據(jù)庫(kù) E-R 模型 登錄用戶管理 賬號(hào) 密碼 職位 圖 2 登錄用戶管理 E-R 圖 學(xué) 生 學(xué)號(hào) 總學(xué)分 姓名 班級(jí) 性別 專業(yè) 年齡 出生地 圖 3 實(shí)體學(xué)生 E-R 圖 2.2 、數(shù)據(jù)庫(kù)關(guān)系模型——二維表 表 1 學(xué)生表(student) 字段 stuId stuName stuSex stuAge stuJg 數(shù)據(jù)類型 說明 學(xué)號(hào) 姓名 性別 年齡 籍貫 專業(yè) nvarchar(30) nvarchar(30) nvarchar(30) int nvarchar(30) nvarchar(30) stuZy - 4 - classId stuSourse nvarchar(30) numeric(5,2) 班號(hào) 總學(xué)分 圖 4 錄入數(shù)據(jù)后的學(xué)生表 表 2 登陸權(quán)限表(login ) 字段 數(shù)據(jù)類型 說明 userId nvarchar(30) 用戶名(賬號(hào)),即登陸 Id password position nvarchar(30) nvarchar(30) 登陸密碼 職位,如班委,普 通學(xué)生 圖 5 錄入數(shù)據(jù)后的登陸權(quán)限表 - 5 - 3、系統(tǒng)詳細(xì)設(shè)計(jì)文檔 3.1 、系統(tǒng)執(zhí)行流程圖 進(jìn)度條(閃屏) 用戶登陸 false true 登陸驗(yàn)證 班委(管理員 ) 普通學(xué)生(用戶) 班委(管理員)界面普通學(xué)生界面 查詢 添加 修改 刪除 退出 查詢 顯示 false false 修改 顯示 登陸 用戶 信息 退出系統(tǒng) 退出系統(tǒng) 用戶 登陸 密碼 true true 結(jié)束 結(jié)束 圖 6 系統(tǒng)執(zhí)行流程圖 - 6 - 3.2 、類的劃分 類名 表 3 學(xué)生信息查詢類 類的成員屬性與方法 說明 StuQuery.java JPanel jp1 JLabel jp1_jl1 JTextField jp1_jtf1 定義一個(gè)面 定義兩個(gè)標(biāo)簽 定義一個(gè)文本輸入框 板 JButton jp1_jb1,jp1_jb2,jp1_jb3 定義三個(gè)按鈕 JTable jtb 定義一個(gè)表 JScrollPane jsp 定義一個(gè)滾動(dòng)面板,用于存 放表 TableModel tm public 自定義一個(gè)表模型,用于更 新表數(shù)據(jù) StuQuery(Frame 構(gòu)造方法,通過傳遞三個(gè)參 Main,String title ,boolean model)數(shù),實(shí)現(xiàn)對(duì)話 super(Main,title,model) 調(diào)用父類的構(gòu)造方法,實(shí)現(xiàn) 模式對(duì)話 public void 事件響應(yīng)方法 actionPerformed(ActionEvent arg0) 表 4 修改學(xué)生信息類 類名 類的成員屬性與方法 說明 UpdateStu.java JLabel jl1,jl2,jl3,jl4,jl5,jl6,jl7,jl8 定義八個(gè)標(biāo)簽,用于設(shè) 置數(shù)據(jù)庫(kù)表的字段名 定義八個(gè)文本框,用于 接收表的各字段值 定義三個(gè)按鈕,用于事 件響應(yīng) JTextField jtf1,jtf2,jtf3,jtf4,jtf5,jtf6,jtf7,jtf8 JButton jb1,jb2,jb3 public void addView() 這是修改學(xué)生界面的函 數(shù)封裝 public AddStu(Frame Main,String 構(gòu)造方法,通過傳遞三 title,boolean model) super(Main,title,model) 個(gè)參數(shù),實(shí)現(xiàn)對(duì)話 調(diào)用父類的構(gòu)造方法, 實(shí)現(xiàn)模式對(duì)話 publicUpdateStu(FrameMain,String 因?yàn)橐? 修改信息,那么 title,TableModel tm,int 必須要獲得所選中的那 rowNo,boolean model) 一行的所有信息,把它 們添加到文本框作為默 認(rèn)值,因此構(gòu)造方法還 - 7 - 應(yīng)添加一個(gè)參數(shù)即傳遞 一個(gè)模型 tm,并傳遞所 選中的行號(hào) row public void 事件響應(yīng)方法 actionPerformed(ActionEvent e) 表 5 修改管理人員信息類 類名 類的成員屬性與方法 說明 UpdateLogin.javaJLabel jl1,jl2,jl3 定義三個(gè)標(biāo)簽,即用戶名, 密碼,職位 JTextField jtf1,jtf2,jtf3 定義三個(gè)文本框,對(duì)應(yīng)三個(gè) 標(biāo)簽的值 JButton jb1,jb2,jb3 JTable jtb 定義三個(gè)按鈕,用于事件響 應(yīng) 定義一個(gè)表格,用于顯示登 陸用戶信息 PurViewModel pvm 自定義登陸用戶信息的數(shù)據(jù) 更新模型 public void upView() 這是修改賬戶信息權(quán)限的界 面函數(shù)的封裝 public UpdateLogin(Frame因?yàn)橐? 要獲得所選中的那一行的所 title,PurViewModel pvm,int 有信息,把它們添加到文本 修改信息,那么必須 Main,String rowNo,boolean model) 框作為默認(rèn)值,因此構(gòu)造方 法還應(yīng)添加一個(gè)參數(shù)即傳遞 一個(gè)模型 tm,并傳遞所選中 的行號(hào) row super(Main,title,model) public 調(diào)用父類的構(gòu)造方法,實(shí)現(xiàn) 模式對(duì)話 void 事件響應(yīng)方法 actionPerformed(ActionEvent e) 表 6 表模式- 更新數(shù)據(jù) 類名 類的成員屬性與方法 說明 TableModel.java Vector rowData,row,column定義表格所需要的集合(表, 行,列) ResultSet rs 定義一個(gè)記錄集,用于接收從 數(shù)據(jù)庫(kù)返回來的記錄集 SqlConn conn 定義一個(gè)用于連接數(shù)據(jù)庫(kù)的對(duì) 象,SqlConn是 連接數(shù)據(jù)庫(kù)的類 public TableModel(String構(gòu)造方法,并傳一個(gè) SQL 語(yǔ)句, - 8 - sql) 實(shí)現(xiàn)查詢操作 public String 這是一個(gè)重 寫的方法,用于設(shè) getColumnName(int column) 置表的列名 public int 得到數(shù)據(jù)模型記錄集的列數(shù) getColumnCount() public int getRowCount() 得到數(shù)據(jù)模型記錄集的行數(shù) Object 得到數(shù)據(jù)模型記錄集某行某列 public getValueAt(int arg0, int 的值 arg1) 4、各個(gè)模塊的實(shí)現(xiàn)方法描述 說明:此處只包含了個(gè)人完成的模塊的實(shí)現(xiàn)方法描述 4.1 、學(xué)生信息查詢 學(xué)生信息查詢窗口,采用了基于管理窗口,即主界面的對(duì)話框?qū)崿F(xiàn),實(shí)現(xiàn)方 法如下: 1)定義查詢所需要的面板和組件。 2)調(diào)用父類的構(gòu)造方法,實(shí)現(xiàn)模式對(duì)話。 3)進(jìn)行學(xué)生信息查詢。 4.2 、修改管理人員信息 修改管理人員信息的界面,通過模式對(duì)話,即繼承 JDialog 對(duì)話框來實(shí)現(xiàn)的, 實(shí)現(xiàn)方法如下: 1)定義修改學(xué)生信息的相關(guān)組件。 2)加載數(shù)據(jù)庫(kù),獲得選中的那一行的所有信息。 3)把組件添加到窗體。 4)調(diào)用父類的構(gòu)造方法,實(shí)現(xiàn)模式對(duì)話。 5)調(diào)用修改用戶權(quán)限信息的界面的方法。 6)修改管理人員信息。 7)調(diào)用數(shù)據(jù)庫(kù)連接,并設(shè)置操縱更新的 sql 語(yǔ)句。 - 9 - 4.3 、修改學(xué)生信息 修改學(xué)生信息的界面,通過模式對(duì)話,即繼承 JDialog 對(duì)話框來實(shí)現(xiàn),實(shí)現(xiàn) 方法如下: 1)定義修改學(xué)生信息的相關(guān)組件。 2)加載數(shù)據(jù)庫(kù),獲得選中的那一行的所有信息。 3)把組件添加到窗體。 4)調(diào)用父類的構(gòu)造方法,實(shí)現(xiàn)模式對(duì)話。 5)調(diào)用修改學(xué)生信息的界面的方法。 6)修改學(xué)生信息。 7)完成相應(yīng)功能。 4.4 、更新數(shù)據(jù) 這是一個(gè)表模型,用于數(shù)據(jù)更新,實(shí)現(xiàn)方法如下: 1)定義表格所需要的集合。 2)定義一個(gè)記錄集,用于接收從數(shù)據(jù)庫(kù)返回來的記錄集。 3)定義一個(gè)用于連接數(shù)據(jù)庫(kù)的對(duì)象。 4)設(shè)置表格的列名。 5)創(chuàng)建表的記錄集。 6)調(diào)用數(shù)據(jù)庫(kù)連接。 7)設(shè)置表的列名,并得到表的列數(shù)和行數(shù)。 8)得到某行某列的值。 - 10 - 5.1 、學(xué)生信息查詢數(shù)據(jù)測(cè)試及期望結(jié)果 數(shù)據(jù)測(cè)試及期望結(jié)果如下圖: 圖 7 為學(xué)生登錄后的最初界面 圖 8 為學(xué)生查看所有信息界面 圖 9 為全部學(xué)生的信息記錄(此處同時(shí)運(yùn)用到了 TableModel類); 圖 10則是 實(shí)現(xiàn)了此處的查詢功能,測(cè)試數(shù)據(jù)為: 圖 7 學(xué)生信息管理系統(tǒng) - 11 - 圖 8 學(xué)生信息管理系統(tǒng)- 顯示記錄 圖 9 學(xué)生信息管理系統(tǒng)- 顯示所有信息 - 12 - 圖 10 學(xué)生信息管理系統(tǒng)- 學(xué)生信息查詢 5.2 、修改管理人員數(shù)據(jù)測(cè)試及期望結(jié)果 數(shù)據(jù)測(cè)試及期望結(jié)果如下圖: 圖 11將顯示出所有管理人員信息。此處測(cè)試的數(shù)據(jù)為: 賬號(hào) 1:admin 密碼 1:admin 職位 1:班委 賬號(hào) 2:user 密碼 2:user 職位 2:普通學(xué)生 圖 12是彈出的修改密碼窗口。此處可將密碼 admin修改為其它值。 - 13 - 圖 11 顯示所有管理人員信息 圖 12 修改管理人員信息窗口 5.3 、修改學(xué)生信息數(shù)據(jù)測(cè)試及期望結(jié)果 數(shù)據(jù)測(cè)試及期望結(jié)果如下圖: 圖 13為全部學(xué)生的信息記錄(此處同時(shí)運(yùn)用到了 TableModel類); 圖 14是彈出的修改學(xué)生信息窗口: 測(cè)試數(shù)據(jù):姓名:楊明輝 期望結(jié)果:可修改姓名、性別、年齡、出生地、專業(yè)、班級(jí)和總學(xué)分。 - 14 - 圖 13 學(xué)生信息管理系統(tǒng)- 顯示所有信息 圖 14 修改學(xué)生信息窗口 - 15 - 1、系統(tǒng)啟動(dòng)界面 圖15 系統(tǒng)啟動(dòng)界面 2、用戶登錄界面 圖16 用戶登錄界面 - 16 - 3、班委(管理員)界面,即具有完全權(quán)限的用戶后臺(tái)界面 圖17 管理員界面 4、班委(管理員)界面子菜單項(xiàng)顯示 圖 18 管理員界面子菜單- 系統(tǒng)界面 圖19 管理員界面子菜單- 學(xué)生管理界面 圖20 管理員界面子菜單- 系統(tǒng)設(shè)置界面 - 17 - 5、學(xué)生信息查詢界面 圖22 學(xué)生信息查詢顯示 7、添加學(xué)生信息界面 - 18 - 8、修改學(xué)生信息界面(學(xué)號(hào)是主鍵,灰色顯示,即不可更改) 圖25 顯示所有信息 - 19 - 11、刪除文件時(shí)的確認(rèn)對(duì)話框(點(diǎn)擊確認(rèn)時(shí)會(huì)刪除,點(diǎn)擊取消,則返回主界面) - 20 - 12、顯示所有登陸用戶信息 圖28 顯示登錄用戶信息示意圖 13、修改用戶登陸密碼,選中某個(gè)用戶進(jìn)行修改 圖29 修改用戶登錄密碼界面示意圖 14、關(guān)閉用戶記錄,即不顯示所有用戶信息 圖31 關(guān)閉學(xué)生記錄示意圖 - 21 - 只有確認(rèn)時(shí)才會(huì)退出系統(tǒng),否則返加主界面 17、普通學(xué)生登陸后的界面(即不能對(duì)學(xué)生信息進(jìn)行添加,修改和刪除以及用戶 圖33 學(xué)生登錄界面(1) 圖34 學(xué)生登錄界面(2) - 22 - 四、心得體會(huì) 這次為期一周 的課程設(shè)計(jì)讓我對(duì) java 有了新的認(rèn)識(shí),首先我接觸了很多上 課見過但沒有實(shí)際用過的類和方法,讓我對(duì)編程有了許多新的思想。 大一學(xué)了 C 語(yǔ)言、C++等,雖然當(dāng)時(shí)學(xué)的還不錯(cuò),由于學(xué)的都是入門知識(shí),所以自己做的 程序只能實(shí)現(xiàn)一定的功能,和自己平時(shí)用的軟件相差很大。這學(xué)期剛開課學(xué) java,雖然知道這是一門很有用的語(yǔ)言,但是卻感覺沒什么新鮮感,它的跨平臺(tái) 特性也只是聽聽,根本沒有認(rèn)識(shí),由于平時(shí)學(xué)習(xí)不刻苦,也沒有時(shí)間靜下心來寫 過 java 代碼,當(dāng)?shù)弥詈笃谀┳詈笠恢? 將進(jìn)行 java 課程設(shè)計(jì),才靜下心來開始 研究 java,結(jié)合以前的編程知識(shí),做起了自己的程序。與此同時(shí),我們也在進(jìn) 行數(shù)據(jù)庫(kù)課程設(shè)計(jì),和這個(gè)系統(tǒng)相類似,,做起來比較熟練,同時(shí)想通過做課程 設(shè)計(jì)將數(shù)據(jù)庫(kù)和 java 更好的結(jié)合運(yùn)用起來,感覺這樣才能夠更貼近實(shí)際應(yīng)用。 這次課程設(shè)計(jì)使我對(duì) java 的跨平臺(tái)性有了進(jìn)一步認(rèn)識(shí),同時(shí)加深了課堂上 所學(xué)到的知識(shí)。雖然這是第三次課程設(shè)計(jì),并且自己也有了兩年的上機(jī)實(shí)驗(yàn),但 我不得不說這一次課程設(shè)計(jì)是前兩次以及任何一節(jié)上機(jī)實(shí)驗(yàn)課都不可比的。在課 程設(shè)計(jì)這一段時(shí)間,使我收獲了很多在上機(jī)課上無法學(xué)習(xí)到的知識(shí),尤其是需求 分析和 eclipse 熟練的使用。因?yàn)檫@一部分知識(shí)的不熟練,在程序設(shè)計(jì)過程中遇 到了不少困難,但通過老師的指導(dǎo)和一次又一次的指導(dǎo)、改寫、調(diào)試,將這些困 難都解決了,心中的喜悅感油然而生。 為了能使程序更加的完善,更加人性化,我也利用了不少的課余時(shí)間,查找 了各方面的資料,看到一個(gè)小型系統(tǒng)能夠展示在電腦屏幕上時(shí),感覺自己這段時(shí) 間的付出是非常值得的,也使我對(duì) java 產(chǎn)生了更濃厚的興趣,對(duì)自己的學(xué)習(xí)以 及將來的工作都是有很大的幫助的。 整個(gè)課程設(shè)計(jì)過程讓我的 java 知識(shí)得到了應(yīng)用,體驗(yàn)了程序員編程時(shí)的喜 怒哀樂,知識(shí)、心智,得到全方位提升,收獲頗豐。 - 23 - 五、參考文獻(xiàn) 著作文獻(xiàn): [1] 趙海廷.Java 語(yǔ)言程序設(shè)計(jì)教程. 北京: 清華大學(xué)出版社.2012 [2] 孫印杰, 劉斌, 孫玉強(qiáng).Java 編程案例精解. 北京: 電子工業(yè)出版社.2005 [3] 何梅.java 編程實(shí)例系列叢書. 北京:清 [4] 楊昭. 二級(jí) Java 語(yǔ)言程序設(shè)計(jì)教程. 北京:中國(guó)水利水電出版社,2006 [5] 趙文靖.Java 程序設(shè)計(jì)基礎(chǔ)與上機(jī)指導(dǎo). 北京:清 華大學(xué)出版社,2002 華大學(xué)出版社,2006 六、附錄 1、功能:這是學(xué)生信息查詢窗口,采用基于管理窗口,即 主界面的對(duì)話框?qū)崿F(xiàn) package com.View; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; import com.Tools.MyFont; public class StuQuery extends JDialog implements ActionListener{ // 定義查詢所需要的面板和組件 JPanel jp1 ; JLabel jp1_jl1 ; JTextField jp1_jtf1 ; JButton jp1_jb1 , jp1_jb2 , jp1_jb3 ; JTable jtb ; JScrollPane jsp ; TableModel tm; - 24 - public StuQuery(Frame Main,String title , { boolean model) // 調(diào)用父類的構(gòu)造方法,實(shí)現(xiàn)模式對(duì)話 super (Main,title,model); jp1 =new JPanel(); jp1_jl1 =new JLabel( 請(qǐng)輸入姓名: ); jp1_jl1 .setFont(MyFont. f1 ); jp1_jtf1 =new JTextField(15); jp1_jb1 =new JButton( 查 詢 jp1_jb1 .setFont(MyFont. f1 ); ); jp1_jb1 .addActionListener( jp1_jb2 =new JButton( jp1_jb2 .setFont(MyFont. f1 ); this ); 清除 ); jp1_jb2 .addActionListener( this ); jp1_jb3 =new JButton( 顯示所有記錄 ); jp1_jb3 .setFont(MyFont. f1 ); jp1_jb3 .addActionListener( this ); jp1 .add( jp1_jl1 ); jp1 .add( jp1_jtf1 ); jp1 .add( jp1_jb1 ); jp1 .add( jp1_jb2 ); jp1 .add( jp1_jb3 ); jtb =new JTable(); jsp =new JScrollPane( jtb ); this .add( jp1 , ); this .add( jsp , ); this .setSize(600,400); this .setVisible( true ); - 2展開閱讀全文
匯文網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學(xué)習(xí)交流,未經(jīng)上傳用戶書面授權(quán),請(qǐng)勿作他用。
關(guān)于本文