java課程設(shè)計(jì)學(xué)籍管理系統(tǒng)
《java課程設(shè)計(jì)學(xué)籍管理系統(tǒng)》由會員分享,可在線閱讀,更多相關(guān)《java課程設(shè)計(jì)學(xué)籍管理系統(tǒng)(24頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、 課程設(shè)計(jì)報(bào)告 課程設(shè)計(jì)(論文)任務(wù)書 學(xué) 院 ?! I(yè) 班 一、課程設(shè)計(jì)(論文)題目 學(xué)籍管理系統(tǒng) 二、課程設(shè)計(jì)(論文)工作自 2010 年 12 月 20 日起至 2010 年 12 月 24 日止。 三、課程設(shè)計(jì)(論文) 地點(diǎn): 軟 件 學(xué) 院 實(shí) 訓(xùn) 中 心
2、 四、課程設(shè)計(jì)(論文)內(nèi)容要求: 1.本課程設(shè)計(jì)的目的 (1)掌握J(rèn)ava語言的程序設(shè)計(jì)方法; (2)理論聯(lián)系實(shí)際,進(jìn)一步提高學(xué)生的軟件開發(fā)技術(shù); (3)培養(yǎng)學(xué)生分析、解決問題的能力; (4)提高學(xué)生實(shí)踐論文撰寫能力。 2.課程設(shè)計(jì)的任務(wù)及要求 1)課程設(shè)計(jì)任務(wù):設(shè)計(jì)基于數(shù)據(jù)庫的學(xué)籍管理系統(tǒng) 設(shè)計(jì)要求: (1)錄入學(xué)生基本信息的功能; (2)刪除學(xué)生基本信息的功能; (3)查詢學(xué)生基本信息的功能; (4)刪除學(xué)生基本信息的功能。 2)創(chuàng)新要求: (1)增加查詢?nèi)繉W(xué)生信息的功能; (2)增加提示信息窗口的功能。 3)課程設(shè)計(jì)論文編寫要求
3、 (1)課程設(shè)計(jì)任務(wù)及要求 (2)設(shè)計(jì)思路--工作原理、功能規(guī)劃 (3)詳細(xì)設(shè)計(jì)---數(shù)據(jù)分析、算法思路、類設(shè)計(jì)、功能實(shí)現(xiàn)(含程序流程圖、主要代 碼及注釋)、界面等。 (4)運(yùn)行調(diào)試與分析討論---給出運(yùn)行屏幕截圖,分析運(yùn)行結(jié)果,有何改進(jìn)想法等。 (5)設(shè)計(jì)體會與小結(jié)---設(shè)計(jì)遇到的問題及解決辦法,通過設(shè)計(jì)學(xué)到了哪些新知識, 鞏固了哪些知識,有哪些提高。 (6)參考文獻(xiàn)(必須按標(biāo)準(zhǔn)格式列出,可參考教材后面的參考文獻(xiàn)格式) (7)報(bào)告按規(guī)定排版打印,要求裝訂平整,否則要求返工; (8)課設(shè)報(bào)告的裝訂順序如下:封面---任務(wù)書---中文摘要---目錄----正文---附錄 (代
4、碼及相關(guān)圖片) (9)嚴(yán)禁抄襲,如有發(fā)現(xiàn),按不及格處理。 4)課程設(shè)計(jì)評分標(biāo)準(zhǔn): (1)學(xué)習(xí)態(tài)度:10分; (2)系統(tǒng)設(shè)計(jì):20分; (3)編程調(diào)試:20分; (4)回答問題:20分; (5)論文撰寫:30分。 5)參考文獻(xiàn): (1)丁振凡. Java語言實(shí)用教程(第2版)[M]. 北京郵電大學(xué)出版社. 2008.1 (2)丁振凡. Java語言實(shí)用教程實(shí)驗(yàn)指導(dǎo)(第2版)[M]. 北京郵電大學(xué)出版社. 2008.1 (3)楊樹林等. Java語言最新實(shí)用案例教程(第2版)[M]. 清華大學(xué)出版社. 2010.7 6)課程設(shè)計(jì)進(jìn)度安排 1.準(zhǔn)備階段(4學(xué)時):選擇設(shè)
5、計(jì)題目、了解設(shè)計(jì)目的要求、查閱相關(guān)資料 2.程序模塊設(shè)計(jì)分析階段(4學(xué)時):程序總體設(shè)計(jì)、詳細(xì)設(shè)計(jì) 3.代碼編寫調(diào)試階段(8學(xué)時):程序模塊代碼編寫、調(diào)試、測試 4.撰寫論文階段(4學(xué)時):總結(jié)課程設(shè)計(jì)任務(wù)和設(shè)計(jì)內(nèi)容,撰寫課程設(shè)計(jì)論文 學(xué)生簽名: 2010 年 12 月 20 日 課程設(shè)計(jì)(論文)評審意見 (1)學(xué)習(xí)態(tài)度(10分):優(yōu)(?。?、良(?。⒅校ā。⒁话悖ā。?、差(?。?; (2)系統(tǒng)設(shè)計(jì)(20分):優(yōu)( )、良(?。?、中( )、一般( )、差(?。?; (3)編程調(diào)試(20分):優(yōu)(?。?、良(?。?、中( )、一般
6、(?。⒉睿ā。? (4)回答問題(20分):優(yōu)(?。?、良( )、中(?。?、一般(?。⒉睿ā。?; (5)論文撰寫(30分):優(yōu)( )、良( )、中( )、一般(?。?、差(?。? 評閱人: 職稱: 講師 2010 年 12 月 25 日 摘 要 隨著我國教育體制改革的深入進(jìn)行,教育系統(tǒng)得到了前所未有的發(fā)展。學(xué)生管理正在逐步邁向管理信息現(xiàn)代化。但是我國的學(xué)生管理信息化水平還處在初級階段,主要表現(xiàn)在對學(xué)生的交費(fèi)管理、學(xué)生的檔案管理還是采用原有的人工管理方式。學(xué)校的規(guī)模不斷擴(kuò)大,學(xué)生數(shù)量急劇增加,有關(guān)學(xué)生的各種信息量也成倍增長。
7、由于大學(xué)生類別和專業(yè)的設(shè)置的多樣化,大學(xué)生的學(xué)籍管理歷來是非常繁瑣和復(fù)雜的的工作。面對龐大的信息量, 這時的人工管理幾乎無法實(shí)現(xiàn),在這種情況下用數(shù)據(jù)庫進(jìn)行管理變的尤為必要,這可以發(fā)揮計(jì)算機(jī)的優(yōu)勢,就需要有學(xué)生信息管理系統(tǒng)來提高學(xué)生管理工作的效率.通過這樣的系統(tǒng),可以做到信息的規(guī)范管理,科學(xué)統(tǒng)計(jì)和快速的查詢,從而減少管理方面的工作量和減少人為的錯誤。 本學(xué)生學(xué)籍管理系統(tǒng)的開發(fā)與運(yùn)行環(huán)境如下: 開發(fā)環(huán)境:Windows XP 數(shù)據(jù)庫管理系統(tǒng):Access 2007 運(yùn)行環(huán)境:Windows XP 目 錄 一?課程設(shè)計(jì)任務(wù)及要求 1 1. 課設(shè)題目 1 2. 設(shè)計(jì)任務(wù) 1 3
8、. 設(shè)計(jì)要求 1 4. 擴(kuò)展功能 1 二?需求分析 2 1. 功能需求分析 2 三?設(shè)計(jì)思路 4 1. 工作原理 4 2. 功能規(guī)劃 4 四?詳細(xì)設(shè)計(jì) 5 1. 系統(tǒng)設(shè)計(jì) 5 2. 數(shù)據(jù)庫設(shè)計(jì) 6 3. 界面設(shè)計(jì) 7 4. 系統(tǒng)實(shí)現(xiàn) 8 五?運(yùn)行調(diào)試與分析討論 13 1. 運(yùn)行調(diào)試 13 2. 分析討論 17 六?設(shè)計(jì)體會與小結(jié) 19 七?參考文獻(xiàn) 20 一?課程設(shè)計(jì)任務(wù)及要求 1. 課設(shè)題目 課設(shè)題目:學(xué)籍管理系統(tǒng) 2. 設(shè)計(jì)任務(wù) 完成設(shè)計(jì)基于數(shù)據(jù)庫的學(xué)籍管理系統(tǒng),通過JAVA圖形界面的設(shè)計(jì),使用戶可以加入學(xué)生的基本信息,并可對加入的信息進(jìn)行修改
9、、查詢和刪除,設(shè)計(jì)GUI界面使操作更加方便、清晰、條理化、自動化。在上機(jī)實(shí)踐的同時,去培養(yǎng)自己的實(shí)際分析問題、編程和動手能力,提高自己的綜合素質(zhì)。激發(fā)自己的學(xué)習(xí)興趣,正確理解和接受需要重點(diǎn)掌握的知識點(diǎn),使自己更加進(jìn)一步了解JAVA的各個方面的知識。 3. 設(shè)計(jì)要求 主窗體的設(shè)計(jì)(學(xué)籍管理系統(tǒng)窗體) 錄入學(xué)生基本信息的(錄入學(xué)生信息窗體) 修改學(xué)生基本信息的功能(修改學(xué)生信息窗體) 查詢學(xué)生基本信息的功能(按學(xué)號查詢學(xué)生信息窗體) 刪除學(xué)生基本信息的功能(刪除學(xué)生信息窗體) 菜單設(shè)計(jì) 事件響應(yīng)的處理 Access數(shù)據(jù)庫的連接,創(chuàng)建數(shù)據(jù)表,在表中插入信息,并對其修
10、改,查詢以及刪除表中信息的具體實(shí)現(xiàn) 4. 擴(kuò)展功能 在主窗體中的菜單選項(xiàng)中,增加一個退出的菜單子項(xiàng),使退出窗體更加地人性化、方便快捷。 在查詢窗體中增加查詢?nèi)繉W(xué)生信息按鈕,當(dāng)按下時,顯示出一個包含所有學(xué)生學(xué)生基本信息的窗體。 當(dāng)按下錄入、修改、查詢、刪除等按鈕時,顯示出來一個提示信息窗口,詢問用戶是否繼續(xù)進(jìn)行操作等。 二?需求分析 1. 功能需求分析 本系統(tǒng)是設(shè)計(jì)基于數(shù)據(jù)庫的學(xué)生信息管理,系統(tǒng)進(jìn)行數(shù)據(jù)庫設(shè)計(jì)首先必須準(zhǔn)確了解也分析用戶需求(包括數(shù)據(jù)和處理)。目的是為學(xué)籍管理數(shù)據(jù)庫系統(tǒng)的設(shè)計(jì)打下牢牢的基礎(chǔ),是數(shù)據(jù)庫開發(fā)的重要文件依據(jù),主要為數(shù)據(jù)庫設(shè)計(jì)人員使用,是用戶和系統(tǒng)分析員的
11、項(xiàng)目依據(jù)文件。 系統(tǒng)分析的主要任務(wù)是從用戶角度出發(fā),用戶是指系統(tǒng)管理員。而系統(tǒng)的主要功能是:建立一個主窗體,帶有錄入、修改、查詢、刪除學(xué)生信息的功能,并成功的連接數(shù)據(jù)庫,將錄入的信息保存在所建的表中,通過所建表的訪問,對其內(nèi)容進(jìn)行修改,查詢,刪除。主要的功能描述如下: 1) 學(xué)籍管理系統(tǒng)窗體 建立一個“菜單選項(xiàng)”的菜單項(xiàng),通過對其菜單子項(xiàng)的訪問,分別進(jìn)入錄入學(xué)生信息、修改學(xué)生信息、查詢學(xué)生信息、刪除學(xué)生信息窗口體。 對菜單子項(xiàng)“退出”進(jìn)行注冊監(jiān)聽,使其實(shí)現(xiàn)關(guān)閉窗口的功能。 在窗體上添加一個名叫“歡迎使用學(xué)生信息管理系統(tǒng)的標(biāo)簽,使其顯示在正中間,并把窗體的背景色設(shè)為淺灰色,前景色
12、設(shè)為紅色。 2) 錄入學(xué)生信息窗體 在窗體的面板中設(shè)置學(xué)號、姓名、性別、專業(yè)、年級、出生標(biāo)簽以及其相對應(yīng)的輸入文本框。 在面板中添加錄入、重置按鈕。按下錄入按鈕時,能夠把輸入的信息添加到數(shù)據(jù)表中;按下重置按鈕時,將文本框中的信息全部清空,回到初使?fàn)顟B(tài)。 3) 修改學(xué)生信息窗體 在窗體的面板中設(shè)置輸入要修改信息的學(xué)號、(新)姓名、(新)性別、(新)專業(yè)、(新)年級、(新)出生標(biāo)簽以及其相對應(yīng)的輸入文本框。 在面板中添加修改、錄入修改、重置按鈕。當(dāng)提交的學(xué)號存在時,按下修改按鈕,錄入修改變成可執(zhí)行狀態(tài);按下錄入修改按鈕時,能夠把輸入的信息添加到數(shù)據(jù)表中;按下重置按鈕時,將文本框
13、中的信息全部清空,回到初使?fàn)顟B(tài)。 4) 查詢學(xué)生信息窗體 在窗體的面板中設(shè)置請輸入要查詢的學(xué)號、姓名、性別、專業(yè)、年級、出生標(biāo)簽以及其相對應(yīng)的輸入文本框。 在面板中添加查詢、查詢?nèi)繉W(xué)生信息按鈕。當(dāng)提交的學(xué)號存在時,按下查詢按鈕,在各個文本框中將顯示該學(xué)號相應(yīng)的信息;當(dāng)按下查詢?nèi)繉W(xué)生信息按鈕時,在另一個新建窗口中將顯示數(shù)據(jù)表中所有學(xué)生的信息。 5) 刪除學(xué)生信息窗體 在窗體的面板中設(shè)置輸入要刪除的學(xué)號、姓名、性別、專業(yè)、年級、出生標(biāo)簽以及其相對應(yīng)的輸入文本框。 在面板中添加刪除按鈕。當(dāng)提交的學(xué)號存在時,按下刪除按鈕,將刪除數(shù)據(jù)表中該學(xué)號學(xué)生的相關(guān)信息。 6) 數(shù)據(jù)庫的相
14、關(guān)操作 編寫的程序能夠成功的與Access數(shù)據(jù)庫相連。 分析各窗體中標(biāo)簽的具體位置,合理的建立一個新的數(shù)據(jù)表。 能夠?qū)?shù)據(jù)表進(jìn)行插入、修改、查詢、刪除等操作。 三?設(shè)計(jì)思路 1. 工作原理 通過對GUI界面的設(shè)計(jì),菜單子項(xiàng)、按鈕的注冊與監(jiān)聽,文本框(獲取數(shù)據(jù)getText()、輸入數(shù)據(jù)setText()、設(shè)置是否可編輯setEnabled()),單選按鈕(獲取按鈕的標(biāo)識getState()、設(shè)置按鈕的狀態(tài)setState()),數(shù)據(jù)庫的連接,數(shù)據(jù)表的建立以及其相關(guān)操作(插入信息、修改信息、查詢信息、刪除信息)等原理,使學(xué)籍管理系統(tǒng)能
15、夠具體的實(shí)現(xiàn)其各種功能。 2. 功能規(guī)劃 將所編的程序連接到Access數(shù)據(jù)庫,并創(chuàng)建student數(shù)據(jù)表,可以對該表進(jìn)行插入、修改、查詢、刪除操作。 學(xué)籍管理系統(tǒng)窗體當(dāng)作用戶剛運(yùn)行程序時的界面,用戶通過窗體可以訪問到錄入、修改、刪除學(xué)生信息窗體。 用戶能夠在錄入學(xué)生信息窗體中錄入學(xué)生信息,并保存在所建的student表中,當(dāng)按下錄入按鈕時,設(shè)置一個對話框詢問用戶是否繼續(xù)操作。 用戶能夠在修改學(xué)生信息窗體中修改學(xué)生信息,并將新輸入的內(nèi)容替代student表中的內(nèi)容。當(dāng)按下修改按鈕時,若輸入的學(xué)號不存在時,彈出一個對話框提示用戶該學(xué)號學(xué)生不存在,并詢問用戶是否繼續(xù)操作;當(dāng)所輸入
16、的學(xué)號存在時,將錄入修改按鈕設(shè)為可用狀態(tài);按下錄入修改按鈕時,提示用戶學(xué)生信息修改成功,并彈出一個對話框詢問用戶是否繼續(xù)操作。 用戶能夠在查詢學(xué)生信息窗體中查詢自己所需要的信息。當(dāng)按下查詢按鈕時,若輸入的學(xué)號不存在時,彈出一個對話框提示用戶該學(xué)號學(xué)生不存在,并詢問用戶是否繼續(xù)操作,如果存在時,將在本文框中顯示出該學(xué)號學(xué)生的信息;當(dāng)按下查詢?nèi)繉W(xué)生信息按鈕時,彈出一個窗體顯示student表中所有學(xué)生的信息。 用戶能夠在刪除學(xué)生信息窗體中刪除學(xué)生信息。當(dāng)按下刪除按鈕時,若輸入的學(xué)號不存在時,彈出一個對話框提示用戶該學(xué)號學(xué)生不存在,并詢問用戶是否繼續(xù)操作,如果存在時,將在刪除該學(xué)號學(xué)生的信
17、息,并顯示在本文框中,同時詢問用戶是否繼續(xù)操作。 四?詳細(xì)設(shè)計(jì) 1. 系統(tǒng)設(shè)計(jì) 1) 系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì) 一般要確定系統(tǒng)的體系結(jié)構(gòu),主要模塊,系統(tǒng)運(yùn)行環(huán)境(如操作系統(tǒng)、數(shù)據(jù)庫),開發(fā)平臺及語言。本系統(tǒng)主要運(yùn)行在windows系列平臺上,數(shù)據(jù)庫使用Access,使用eclipse開發(fā)系統(tǒng)。 系統(tǒng)體系結(jié)構(gòu)如下圖4-1所示: 圖形界面 ( AWT) 數(shù)據(jù)訪問 ( JDBC ) 數(shù)據(jù)庫 ( ACCESS) 客戶端 服務(wù)端 圖4-1 系統(tǒng)體系結(jié)構(gòu)圖 圖形界面層(采用java的AWT設(shè)計(jì))負(fù)責(zé)與用戶交互,數(shù)據(jù)訪問層主要根據(jù)業(yè)務(wù)邏輯層的請求通過JDBC/SQL存取數(shù)據(jù)庫。數(shù)據(jù)庫使用
18、ACCESS,可根據(jù)情況使用其他數(shù)據(jù)庫(如SQL Server),客戶端基本不做修改,僅有的少量修改也只在數(shù)據(jù)訪問層。客戶端與服務(wù)端在物理上可以運(yùn)行在一臺機(jī)器上,也可以分別運(yùn)行在不同機(jī)器上。 2) 系統(tǒng)功能模塊、主要類以及其相關(guān)方法 系統(tǒng)功能模塊如下圖4-2所示: 學(xué)籍管理系統(tǒng) 錄入學(xué)生信息 修改學(xué)生信息 查詢學(xué)生信息 退 出 刪除學(xué)生信息 錄 入 重 置 修 改 錄入 修改 重 置 查 詢 查詢?nèi)啃畔? 刪 除 圖4-2 系統(tǒng)功能模塊圖 主要類以及其相關(guān)方法: 表4-1主要類以及其相關(guān)方法表 My
19、Frame Panel faceplate(Panel f) 定義面板 void keyin(String s) 錄入信息 void modify(String s) 修改信息 void all_inquiry(String s) 查詢?nèi)繉W(xué)生信息 void inquiry(String s) 按學(xué)號查詢學(xué)生信息 void delete(String s) 刪除信息 void win
20、dowClosing(WindowEvent e) 關(guān)閉窗口 void Inprompt(String s) 錄入提示窗口 void ask(String s) 所找學(xué)號不存在時的提示窗口 void Nuprompt(String s) 所找學(xué)號存在時的提示窗口 void actionPerformed(ActionEvent e) 對按鈕監(jiān)聽的具體實(shí)現(xiàn) 2. 數(shù)據(jù)庫設(shè)計(jì) 數(shù)據(jù)庫設(shè)計(jì)主要是根據(jù)分析和概要設(shè)計(jì)中發(fā)現(xiàn)的對象和類,確定哪些對象需要持久保存,然后將對
21、象屬性及對象間關(guān)系轉(zhuǎn)化成關(guān)系表。通過對題目要求的分析,將學(xué)號、姓名、性別、專業(yè)、年級、出生的信息保存在數(shù)據(jù)表student表中,表的具體格式如下: 表4-2 student表的具體格式表 名稱 學(xué)號 姓名 性別 專業(yè) 年級 生日 數(shù)據(jù)類型 STRING STRING STRING STRING STRING STRING 以下是數(shù)據(jù)student表創(chuàng)建的主要代碼: String url="jdbc:odbc:mystudent"; String sql="create table student"+"(學(xué)號 STRING,"+"姓名 STRING,"+"
22、性別 STRING,"+"專業(yè) STRING,"+"年級 STRING,"+"生日 STRING)"; 3. 界面設(shè)計(jì) 界面設(shè)計(jì)主要是根據(jù)功能要求構(gòu)建界面,界面中的每個元素均應(yīng)有其作用,以支持功能的實(shí)現(xiàn),界面設(shè)計(jì)還要考慮到界面風(fēng)格的一致、符合一般window應(yīng)用GUI的規(guī)范。設(shè)計(jì)應(yīng)簡潔實(shí)用,避免在細(xì)節(jié)上(如字體、顏色)耗費(fèi)時間。 圖4-3 學(xué)籍管理系統(tǒng)窗體圖 圖4-4錄入學(xué)生信息窗體圖 圖4-5 修改學(xué)生信息窗體圖 圖4-6 查詢學(xué)生信息窗體圖 圖4-7 刪除學(xué)生信息窗體圖 4. 系統(tǒng)實(shí)現(xiàn) 1) 數(shù)據(jù)庫訪
23、問: 對數(shù)據(jù)庫的基本操作是:增、刪、改、查,數(shù)據(jù)庫連接的建立、關(guān)閉,對student表的插入、修改、查詢、刪除數(shù)據(jù),其中的難點(diǎn)是訪問數(shù)據(jù)庫的異常處理和參數(shù)化SQL,現(xiàn)舉例如下: ①、獲取數(shù)據(jù)庫連接與關(guān)閉的代碼: String url="jdbc:odbc:mystudent"; //mystudent為數(shù)據(jù)源名稱 try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //加載驅(qū)動類型 } catch (java.lang.ClassNotFoundException e){ System.e
24、rr.println(e.getMessage()); } try{ Connection con=DriverManager.getConnection(url,"",null); System.out.println("Connection succeed!"); con.close(); } catch (SQLException ex){ System.out.println("Message:"+ex.getMessage()); } } 該代碼針對JdbcOdbcDriver驅(qū)動,ODBC源名為mystudent,沒
25、有進(jìn)行口令驗(yàn)證。 ②、插入代碼 從錄入學(xué)生信息的窗體中輸入信息,獲得文本框中的數(shù)據(jù),保存在student表中。 nu=number.getText(); //獲取學(xué)號 na=name.getText(); //獲取姓名 sex=""; //定義性別 sp=speciality.getText(); //獲取專業(yè) gr=grade.getText(); //獲取年級 bi=birthday.getText(); //獲取生日 if(cg1
26、.getState()) sex="男"; if(cg2.getState()) sex="女"; String url="jdbc:odbc:mystudent"; try{ Connection con=DriverManager.getConnection(url,"",null); Statement stmt=con.createStatement(); String sql="INSERT INTO student(學(xué)號,姓名,性別,專業(yè),年級,生日) VALUES("+nu+","+na+","+sex+"," +sp+
27、","+gr+","+bi+")"; stmt.executeUpdate(sql);Inprompt("提示信息"); System.out.println("學(xué)生信息錄入成功"); stmt.close();con.close(); } catch (SQLException ex) { System.out.println(ex.getMessage()); } ③、修改代碼 先判斷輸入的學(xué)生學(xué)號student是否存在,若存在繼續(xù)操作,不存在時彈出提示信息窗口。 String num=number.getTe
28、xt(); String url="jdbc:odbc:mystudent"; try{ Connection con=DriverManager.getConnection(url,"",null); Statement stmt=con.createStatement(); String sql="SELECT *FROM student where 學(xué)號="+num+""; ResultSet rs=stmt.executeQuery(sql);int count=0; while(rs.next()){ n
29、u=rs.getString("學(xué)號");na=rs.getString("姓名"); sex=rs.getString("性別");sp=rs.getString("專業(yè)"); gr=rs.getString("年級"); bi=rs.getString("生日"); ++count; } if(count==0) { ask("提示信息"); System.out.println("該學(xué)生不存在"); } else bu4.setEnabled(true); stmt.
30、close(); con.close(); } catch (SQLException ex){ System.out.println(ex.getMessage()); } 2) 主窗體的設(shè)計(jì) 通過構(gòu)造函數(shù)創(chuàng)建一個窗體,在其創(chuàng)建一個空菜單條m,并創(chuàng)建菜單項(xiàng)(菜單選項(xiàng))加到m中,在菜單項(xiàng)上添加菜單子項(xiàng)(錄入學(xué)生信息、修改學(xué)生信息、查詢學(xué)生信息、刪除學(xué)生信息、退出)并對它們注冊給動作事件接口。 MyFrame(String s){ super(s); MenuBar m=new MenuBar(); //菜單欄
31、對象 Menu fi=new Menu("菜單選項(xiàng)"); //菜單對象 MenuItem[] file= { new MenuItem("錄入學(xué)生基本信息", new MenuShortcut(KeyEvent.VK_A)), //快捷鍵為 ctrl+A new MenuItem("修改學(xué)生基本信息", new MenuShortcut(KeyEvent.VK_S)), //快捷鍵為 ctrl+S new MenuItem("查詢學(xué)生基本信息", new MenuShortcut(KeyEvent.VK_D)), //快捷鍵為 ctr
32、l+D
new MenuItem("刪除學(xué)生基本信息",n
ew MenuShortcut(KeyEvent.VK_F)), //快捷鍵為 ctrl+F
new MenuItem("退出")
};
setMenuBar(m); m.add(fi);
for(int i=0;i 33、his);
file[3].addActionListener(this);
file[4].addActionListener(this);
setSize(500,500); setVisible(true);
addWindowListener(new closeWin());
}
3) 主要面板的設(shè)計(jì)
通過對各個窗體的分析,發(fā)現(xiàn)其姓名、性別、專業(yè)、年級、出生在窗體中的分布都有共同之處,因此可以定義一個面板將這些內(nèi)容規(guī)劃好,在定義錄入、修改、查詢、刪除等方法時可以直接調(diào)用該面板,可以節(jié)省許多代碼與運(yùn)行的速度。
public Panel facepla 34、te(Panel f) //定義面板
{
f.setSize(500,500);f.setVisible(true);
f.setLayout(null);f.setBackground(Color.lightGray);
la2.setLocation(70,120);la2.setSize(50,30);f.add(la2);
name.setLocation(130,120);name.setSize(280,30); f.add(name);
la3.setLocation(130,160);la3.setSize(50,30);f.add( 35、la3);
cg2.setLocation(240,160);cg2.setSize(40,30);f.add(cg2);
la5.setLocation(70,200);la5.setSize(50,30);f.add(la5);
speciality.setLocation(130,200);speciality.setSize(280,30); f.add(speciality);
la4.setLocation(70,240);la4.setSize(50,30);f.add(la4);
grade.setLocation(130,240);grade.setSize 36、(280,30);
f.add(grade);
la6.setLocation(70,280);la6.setSize(50,30);f.add(la6);
birthday.setLocation(130,280);birthday.setSize(280,30);
f.add(birthday);
return f;
}
調(diào)用該面板的方法如下:
st=new MyFrame(s);
f=new Panel();
st.add(faceplate(f));
五?運(yùn)行調(diào)試與分析討論
1. 運(yùn)行調(diào)試
首先通過createst 37、udent.java創(chuàng)建一個新的空數(shù)據(jù)表student
圖5-1 student表創(chuàng)建成功提示信息圖
打開主程序Student.java進(jìn)行學(xué)生信息的錄入、修改、查詢、刪除。
當(dāng)按下錄入學(xué)生基本信息菜單子項(xiàng)時,彈出如圖5-2所示界面(已輸入數(shù)據(jù)):
圖5-2 錄入學(xué)生信息圖
若點(diǎn)下Button是時,將關(guān)閉提示信息窗口,并將文本框中的信息清空;
若下Button退出時,將關(guān)閉提示信息窗口和錄入學(xué)生信息窗口,并將文本框中的信息清空(防止進(jìn)入其他窗口時,文本框中的數(shù)據(jù)不為空)。為使結(jié)果更加清晰化,減少截圖所占的頁面,還分別錄入了以下學(xué)生的信息,如下表5-1所示:
表5-1 已 38、錄入的學(xué)生信息表
學(xué)號
姓名
性別
專業(yè)
年級
生日
2
劉柳
男
軟件工程
2008
1990/3/24
3
何璐
女
軟件工程+電商
2010
1991/2/6
4
李云
男
軟件工程+信息
2009
1990/8/10
學(xué)生信息顯示在student表中如下圖5-3所示:
圖5-3 student表的已有信息圖
當(dāng)按下修改學(xué)生基本信息菜單子項(xiàng)時,彈出如下圖5-4所示界面(已經(jīng)輸入數(shù)據(jù)):
圖5-4 修改學(xué)生信息圖
已修改的學(xué)生信息如下圖5-5所示(將學(xué)號3的年級信息由2010改為2009):
圖5-5 stude 39、nt表中的信息圖
當(dāng)按下查詢學(xué)生基本信息菜單子項(xiàng)時,彈出如下圖5-6所示界面(已經(jīng)輸入數(shù)據(jù)):
圖5-6 查詢學(xué)生信息圖
當(dāng)按下查詢按鈕時,若存在該學(xué)號學(xué)生,就出現(xiàn)如上所示界面,若不豐碩該學(xué)號學(xué)生時,則出現(xiàn)如下圖5-7所示界面:
圖5-7 查詢的學(xué)生信息不存在圖
若按下查詢?nèi)繉W(xué)生信息按鈕時,則出現(xiàn)如下圖5-8所示界面:
圖5-8 查詢學(xué)生信息圖
當(dāng)按下刪除學(xué)生基本信息菜單子項(xiàng)時,彈出如下圖5-8所示界面(已經(jīng)輸入數(shù)據(jù)):
圖5-9 刪除學(xué)生信息圖
操作成功后,student表中的數(shù)據(jù)如下圖5-9所示:
圖5-10 student表中已有信息圖
2. 40、分析討論
由運(yùn)行調(diào)試中的結(jié)果可以看出,該程序在按下錄入、修改、錄入修改、查詢、刪除按鈕時,都有人性化的彈出一個窗體,詢問用戶是否繼續(xù)操作,或提示用戶您所找的信息不存在等,在這點(diǎn)上,還是有很大的創(chuàng)新。并且以類似表格的形式將student表中的所有信息,將學(xué)生信息展現(xiàn)的更加具體,清晰。
當(dāng)然,如果具體操作可以發(fā)現(xiàn),其中也有許多值得改進(jìn)的地方。
1) 在用戶運(yùn)行程序時,用戶不需要驗(yàn)證帳號與密碼就可以進(jìn)去,這時信息的安全性不夠高,因此可以在用戶剛進(jìn)入系統(tǒng)時,彈出一個窗體要求用戶驗(yàn)證帳號信息以及其密碼。
2) 在查詢學(xué)生信息時,可以增加幾個內(nèi)容的查詢,如姓名、專業(yè)、年級等,這樣可以使用戶在不 41、熟悉學(xué)生信息的情況下,更方便找出學(xué)生的信息。
3) 在查詢?nèi)繉W(xué)生時,也可以不弄類似于表格的形式,而是在窗體上按照輸入的順序,直接顯示在窗體上,并通過添加首頁、上一頁、下一頁、尾頁按鈕,來實(shí)現(xiàn)往查詢上一個學(xué)生信息或下一個學(xué)生信息的功能。
4) 也可以通過SWING來編寫系統(tǒng),可以在進(jìn)入頁面時適當(dāng)?shù)募右恍﹦赢?,也可以在按鈕旁邊加一點(diǎn)圖案。這樣就可以使系統(tǒng)更加活潑、生動。
5) 本系統(tǒng)只記錄了學(xué)生的基本信息,而學(xué)生的成績還是沒有考慮到的。可以在菜單欄上新建學(xué)生成績菜單項(xiàng),通過調(diào)用窗體,實(shí)現(xiàn)對學(xué)生平時成績的錄入、修改、查詢等工作,也可以對學(xué)生的成績進(jìn)行排序并同時求出他們的平時成績。
六?設(shè) 42、計(jì)體會與小結(jié)
對于這個課設(shè),我算是花了相當(dāng)大的精力在它上面,從窗體的設(shè)計(jì),面板的排版,按鈕的注冊監(jiān)聽再到數(shù)據(jù)庫的連接與表的具體實(shí)現(xiàn),都盡量把它弄的盡善盡美。
通過對這個系統(tǒng)的研究,對JAVA書上的知識又認(rèn)認(rèn)真真的看了一遍,并且仔細(xì)研究書上258頁一個網(wǎng)絡(luò)考試系統(tǒng)的設(shè)計(jì),看看它是怎樣連接數(shù)據(jù)庫,以及其各種方法的使用,同時在圖書館借了本相關(guān)的書籍。然后自己在慢慢的將學(xué)籍管理系統(tǒng)的內(nèi)容寫出來,從中對JAVA的使用和它強(qiáng)大的作用有了一個更深刻的認(rèn)識,盡管這個系統(tǒng)實(shí)現(xiàn)的功能也不是很多,但它讓我綜合運(yùn)用了這個學(xué)期所學(xué)的很多知識,尤其是GUI界面的設(shè)計(jì),在此基礎(chǔ)在自己的JAVA基礎(chǔ)知識得到了很好的鞏 43、固,并提高了自己編程的動手能力。
剛開始也嘗試怎樣通過翻頁的形式來實(shí)現(xiàn)查詢?nèi)繉W(xué)生的信息,在編寫代碼的過程中,對于數(shù)據(jù)庫游標(biāo)的具體實(shí)現(xiàn)還沒有撐握的很好。因此,在編寫的過程中,遇到了重重困難卻依舊沒有實(shí)現(xiàn)功能,才采用調(diào)用窗體的方式來實(shí)現(xiàn)全部學(xué)生信息的查看。今后在學(xué)習(xí)數(shù)據(jù)庫的過程中,應(yīng)該認(rèn)真學(xué)習(xí)它,這樣以后就可以把這個程序改的更加完美。
對于按鈕注冊兼聽這塊,發(fā)現(xiàn)其是可以重復(fù)注冊監(jiān)聽,意思就是兩個不同的按鈕注冊的內(nèi)容可以相同。這點(diǎn)JAVA實(shí)現(xiàn)的還是不錯的,它可以使我們在編程的時候省掉了很多代碼,減少了時間的浪費(fèi)以及空間的占用。
這次課設(shè)雖然已經(jīng)結(jié)束了,但并不代碼自己以后就慢慢地淡忘掉,而是應(yīng)該通過后面學(xué)到的知識,將這個系統(tǒng)改的更加完美,功能更加齊全。求知的道路仍在繼續(xù),自己唯有不停地探索研究,才能使自己獲得的知識,更廣,更全面。
第 19 頁
七?參考文獻(xiàn)
[1]:丁振凡.JAVA語言實(shí)用教程(第2版).北京:北京郵電大學(xué)出版社,2008.1
[2]: 施霞萍.JAVA程序設(shè)計(jì)教程(第2版).北京:機(jī)械工業(yè)出版社,2006.9
第 20 頁
- 溫馨提示:
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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。