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