版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 目 錄</b></p><p><b> 第一章引言1</b></p><p> 1.1 開(kāi)發(fā)目的1</p><p> 1.2 開(kāi)發(fā)背景2</p><p> 第二章 系統(tǒng)需求分析3</p><p> 2.1 學(xué)藉管理
2、系統(tǒng)的需求3</p><p> 2.2 學(xué)籍管理系統(tǒng)主要技術(shù)指標(biāo)3</p><p> 2.3 編程語(yǔ)言和運(yùn)行環(huán)境介紹4</p><p> 第三章 功能模塊設(shè)計(jì)7</p><p> 3.1 學(xué)藉管理系統(tǒng)功能模塊7</p><p> 3.2 功能模塊介紹7</p><p&
3、gt; 第四章 系統(tǒng)的實(shí)現(xiàn)8</p><p> 4.1 程序的入口的設(shè)計(jì)8</p><p> 4.2 程序的主界面的設(shè)計(jì)9</p><p> 4.3 添加學(xué)生信息界面的設(shè)計(jì)13</p><p> 4.4 學(xué)生成績(jī)錄入界面的設(shè)計(jì)15</p><p> 4.5 修改學(xué)生信息界面的設(shè)計(jì)17
4、</p><p> 4.6 修改學(xué)生成績(jī)界面的設(shè)計(jì)20</p><p> 4.7 查詢(xún)學(xué)生信息界面的設(shè)計(jì)23</p><p> 4.8 查詢(xún)學(xué)生成績(jī)界面的設(shè)計(jì)26</p><p> 4.9 刪除學(xué)生信息界面的設(shè)計(jì)27</p><p> 4.10 刪除學(xué)生成績(jī)界面的設(shè)計(jì)31</p>
5、<p> 第五章 測(cè)試34</p><p> 總結(jié)與心得體會(huì)42</p><p><b> 參考文獻(xiàn)43</b></p><p><b> 致 謝44</b></p><p><b> 附 錄45</b></p><p
6、><b> 引言</b></p><p> 學(xué)籍管理工作在正常的情況下需對(duì)大量的數(shù)據(jù)進(jìn)行處理,它們包括,新生入學(xué)、班級(jí)設(shè)置、班級(jí)編排、新生學(xué)號(hào)設(shè)置、學(xué)生基本檔案輸入、學(xué)籍變動(dòng)、每學(xué)期末的升級(jí)處理、學(xué)生生花名冊(cè)打印等。如果由人工去處理這些數(shù)據(jù)需要花費(fèi)大量的時(shí)間、人力、物力。</p><p><b> 1.1 開(kāi)發(fā)目的</b></
7、p><p> 學(xué)生學(xué)籍管理系統(tǒng)是一個(gè)教育單位信息化管理中不可缺少的部分,它的內(nèi)容對(duì)于學(xué)校的決策者和管理者來(lái)說(shuō)都至關(guān)重要,所以學(xué)生學(xué)籍管理系統(tǒng)應(yīng)該能夠?yàn)橛脩?hù)(即學(xué)生和管理者)提供充足的信息和快捷的查詢(xún)手段。但一直以來(lái)人們使用傳統(tǒng)人工的方式來(lái)管理文件檔案,這種管理方式存在著許多缺點(diǎn),如:效率低、保密性差,另外時(shí)間一長(zhǎng),將產(chǎn)生大量的文件和數(shù)據(jù),這對(duì)于查找、更新和維護(hù)都帶來(lái)了不少的困難。</p><p&
8、gt; 學(xué)籍管理信息系統(tǒng)以計(jì)算機(jī)為工具,通過(guò)對(duì)教務(wù)管理所的信息管理,把管理人員從繁瑣的數(shù)據(jù)計(jì)算處理中解脫出來(lái),使其有更多的精力從事教務(wù)管理政策的研究實(shí)施,教學(xué)計(jì)劃的制定執(zhí)行和教學(xué)質(zhì)量的監(jiān)督檢查,從而全面提高教學(xué)質(zhì)量。</p><p><b> 1.2 開(kāi)發(fā)背景</b></p><p> 隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識(shí),
9、它已進(jìn)入人類(lèi)社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來(lái)越重要的作用。作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對(duì)學(xué)生學(xué)籍信息進(jìn)行管理,具有手工管理所無(wú)法比擬的優(yōu)點(diǎn).例如:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低、數(shù)據(jù)處理快速等。這些優(yōu)點(diǎn)能夠極大地提高了學(xué)生學(xué)籍信息管理的效率,也是學(xué)生學(xué)籍管理科學(xué)化、正規(guī)化,與世界接軌的重要條件。因此,開(kāi)發(fā)一套學(xué)生學(xué)籍管理軟件成為很有必要的事情。</p><p> 傳統(tǒng)的學(xué)校學(xué)籍
10、管理方法、由于分散管理,易發(fā)生數(shù)據(jù)丟失,勞動(dòng)強(qiáng)度高,速度慢。使用計(jì)算機(jī)可以高速、快捷地完成以上工作。特別是在計(jì)算機(jī)聯(lián)網(wǎng)后,數(shù)據(jù)在網(wǎng)上傳遞,可以實(shí)現(xiàn)數(shù)據(jù)共享,避免重復(fù)勞動(dòng),規(guī)范教學(xué)管理行為,從而提高了管理效率和水平。學(xué)籍管理信息系統(tǒng)以計(jì)算機(jī)為工具,通過(guò)對(duì)教務(wù)管理所需的信息管理,把管理人員從繁瑣的數(shù)據(jù)計(jì)算處理中解脫出來(lái),從而全面提高教學(xué)質(zhì)量。</p><p> 第二章 系統(tǒng)需求分析</p><
11、p> 2.1 學(xué)藉管理系統(tǒng)的需求</p><p> 因?yàn)閷W(xué)籍管理系統(tǒng)存儲(chǔ)學(xué)生信息,所以數(shù)據(jù)庫(kù)系統(tǒng)應(yīng)該具有備份和恢復(fù)功能,保證學(xué)生數(shù)據(jù)庫(kù)的長(zhǎng)期完整性和正確性。另一方面,作為系統(tǒng)的服務(wù)器應(yīng)該能夠長(zhǎng)期無(wú)故障的運(yùn)行,而且能夠便于管理員的操作。安全性要求比較高,對(duì)業(yè)務(wù)邏輯必須封裝,避免有人登陸他沒(méi)權(quán)限的網(wǎng)頁(yè),避免黑客從數(shù)據(jù)流中截取。</p><p> 普通用戶(hù)的需求:對(duì)于只有查看權(quán)限的
12、用戶(hù),一般是通過(guò)上網(wǎng)瀏覽學(xué)校網(wǎng)頁(yè)來(lái)查看數(shù)據(jù)的。</p><p> 各部門(mén)管理員:能夠?qū)ο到y(tǒng)進(jìn)行設(shè)置,以適應(yīng)不同用戶(hù)的需求。對(duì)不同系的管理員分配不同的權(quán)限,教務(wù)處系統(tǒng)管理員具有最高的管理權(quán)限。</p><p> 2.2 學(xué)籍管理系統(tǒng)主要技術(shù)指標(biāo)</p><p> 學(xué)籍管理系統(tǒng)主要技術(shù)指標(biāo)</p><p> (1)使用最新開(kāi)發(fā)工具開(kāi)發(fā),
13、運(yùn)行穩(wěn)定、效率高; </p><p> (2)學(xué)籍管理系統(tǒng)對(duì)硬件要求低,350M以上剩余硬盤(pán)空間即可保證軟件順利運(yùn)行;</p><p> (3)可擴(kuò)展性和靈活性強(qiáng),用戶(hù)可以自由定義所需掌握的學(xué)籍信息并根據(jù)需要隨時(shí)調(diào)用和查詢(xún)已錄入信息;</p><p> (4)學(xué)籍管理系統(tǒng)操作簡(jiǎn)便、快捷,使用我們的閱讀機(jī)和配套信息卡,所有學(xué)生入學(xué)、退學(xué)、升級(jí)等業(yè)務(wù)僅需點(diǎn)擊幾次鼠
14、標(biāo)即可輕松完成。在新生入學(xué)等大批量人員操作時(shí),更可以節(jié)省錄入時(shí)間、提高正確率。學(xué)籍管理系統(tǒng)所有信息也可人工錄入和修改,以方便沒(méi)有閱讀機(jī)的用戶(hù)。</p><p> 2.3 編程語(yǔ)言和運(yùn)行環(huán)境介紹</p><p> 學(xué)藉管理系統(tǒng)采用Java語(yǔ)言進(jìn)行編程。Java語(yǔ)言是一種很優(yōu)秀的語(yǔ)言,是目前軟件設(shè)計(jì)中極為壯健的編程語(yǔ)言,只要提供了Java解釋器,Java編寫(xiě)的軟件在執(zhí)行碼上兼容。Java
15、作為一種程序設(shè)計(jì)語(yǔ)言,它簡(jiǎn)單、面向?qū)ο?、不依?lài)于機(jī)器的結(jié)構(gòu)、具有可移植性、安全性、并且提供了并發(fā)的機(jī)制,具有很高的性能。其次,它最大限度地利用了網(wǎng)絡(luò),Java的小應(yīng)用程序(applet)可在網(wǎng)絡(luò)上運(yùn)行而不受CPU和環(huán)境的限制。另外,Java還提供了豐富的類(lèi)庫(kù),使程序設(shè)計(jì)者可以很方便地建立自己的系統(tǒng)。</p><p> 通過(guò)分析Java的特點(diǎn),進(jìn)一步指出它所具有的優(yōu)點(diǎn)。</p><p>
16、 Java語(yǔ)言有下面一些特點(diǎn):簡(jiǎn)單、面向?qū)ο蟆⑴c平臺(tái)無(wú)關(guān)、解釋執(zhí)行、多線程、安全、動(dòng)態(tài)性。</p><p> (1) 簡(jiǎn)單:Java語(yǔ)言是一種面向?qū)ο蟮恼Z(yǔ)言,它通過(guò)提供最基本的方法來(lái)完成指定的任務(wù),只需理解一些基本的概念,就可以用它編寫(xiě)出適合于各種情況的應(yīng)用程序。Java略去了運(yùn)算符重載、多重繼承等模糊的概念,并且通過(guò)實(shí)現(xiàn)自動(dòng)垃圾回收,大大簡(jiǎn)化了程序設(shè)計(jì)者的內(nèi)存管理工作。</p><p>
17、; (2) 面向?qū)ο螅篔ava語(yǔ)言的設(shè)計(jì)集中于對(duì)象及其接口,它提供了簡(jiǎn)單的類(lèi)機(jī)制以及動(dòng)態(tài)的接口模型。對(duì)象中封裝了它的狀態(tài)變量以及相應(yīng)的方法,實(shí)現(xiàn)了模塊化和信息隱藏;而類(lèi)則提供了一類(lèi)對(duì)象的原型,并且通過(guò)繼承機(jī)制,子類(lèi)可以使用父類(lèi)所提供的方法,實(shí)現(xiàn)了代碼的復(fù)用。</p><p> (3) 與平臺(tái)無(wú)關(guān):Java解釋器生成與體系結(jié)構(gòu)無(wú)關(guān)的字節(jié)碼指令,只要安裝了Java運(yùn)行時(shí)系統(tǒng),Java程序就可在任意的處理器上運(yùn)行。
18、這些字節(jié)碼指令對(duì)應(yīng)于Java虛擬機(jī)中的表示,Java解釋器得到字節(jié)碼后,對(duì)它進(jìn)行轉(zhuǎn)換,使之能夠在不同的平臺(tái)運(yùn)行。</p><p> (4) 解釋型:Java解釋器直接對(duì)Java字節(jié)碼進(jìn)行解釋執(zhí)行。字節(jié)碼本身攜帶了許多編譯時(shí)信息,使得連接過(guò)程更加簡(jiǎn)單。</p><p> (5) 多線程:Java還有一特點(diǎn)就是內(nèi)置對(duì)多線程的支持。多線程支持完成多個(gè)任務(wù)。</p><p&
19、gt; (6) 安全:用于網(wǎng)絡(luò)、分布環(huán)境下的Java必須要防止病毒的入侵。Java不支持指針,一切對(duì)內(nèi)存的訪問(wèn)都必須通過(guò)對(duì)象的實(shí)例變量來(lái)實(shí)現(xiàn),這樣就防止程序員使用“特洛伊”木馬等欺騙手段訪問(wèn)對(duì)象的私有成員,同時(shí)也避免了指針操作中容易產(chǎn)生的錯(cuò)誤。</p><p> (7) 動(dòng)態(tài):Java的設(shè)計(jì)使它適合于一個(gè)不斷發(fā)展的環(huán)境。在類(lèi)庫(kù)中可以自由地加入新的方法和實(shí)例變量而不會(huì)影響用戶(hù)程序的執(zhí)行。并且Java通過(guò)接口來(lái)支
20、持多重繼承,使之比嚴(yán)格的類(lèi)繼承具有更靈活的方式和擴(kuò)展性。</p><p> 圖形用戶(hù)界面(Graphical User Interface,簡(jiǎn)稱(chēng) GUI,又稱(chēng)圖形用戶(hù)接口)是指采用圖形方式顯示的計(jì)算機(jī)操作用戶(hù)界面。與早期計(jì)算機(jī)使用的命令行界面相比,圖形界面對(duì)于用戶(hù)來(lái)說(shuō)在視覺(jué)上更易于接受。</p><p> 如Windows是以圖形界面方式操作的,因?yàn)槟憧梢杂檬髽?biāo)來(lái)點(diǎn)擊按鈕來(lái)進(jìn)行操作,很
21、直觀。而DOS就不具備GUI,所以他只能輸入命令。DOS 的這種界面叫CUI (Command line User Interface ) 命令行模式的人機(jī)接口。</p><p> GUI 是 Graphical User Interface 的簡(jiǎn)稱(chēng),即圖形用戶(hù)界面,通常人機(jī)交互圖形化用戶(hù)界面設(shè)計(jì)經(jīng)常讀做“goo-ee”,準(zhǔn)確來(lái)說(shuō) GUI 就是屏幕產(chǎn)品的視覺(jué)體驗(yàn)和互動(dòng)操作部分。 </p><
22、p> GUI 是一種結(jié)合計(jì)算機(jī)科學(xué)、美學(xué)、心理學(xué)、行為學(xué),及各商業(yè)領(lǐng)域需求分析的人機(jī)系統(tǒng)工程,強(qiáng)調(diào)人—機(jī)—環(huán)境三者作為一個(gè)系統(tǒng)進(jìn)行總體設(shè)計(jì)。 </p><p> 這種面向客戶(hù)的系統(tǒng)工程設(shè)計(jì)其目的是優(yōu)化產(chǎn)品的性能,使操作更人性化,減輕使用者的認(rèn)知負(fù)擔(dān),使其更適合用戶(hù)的操作需求,直接提升產(chǎn)品的市場(chǎng)競(jìng)爭(zhēng)力。 </p><p> GUI 即人機(jī)交互圖形化用戶(hù)界面設(shè)計(jì)??v觀國(guó)際相關(guān)產(chǎn)業(yè)在
23、圖形化用戶(hù)界面設(shè)計(jì)方面的發(fā)展現(xiàn)狀,許多國(guó)際知名公司早已意識(shí)到 GUI 在產(chǎn)品方面產(chǎn)生的強(qiáng)大增值功能,以及帶動(dòng)的巨大市場(chǎng)價(jià)值,因此在公司內(nèi)部設(shè)立了相關(guān)部門(mén)專(zhuān)門(mén)從事 GUI 的研究與設(shè)計(jì),同業(yè)間也成立了若干機(jī)構(gòu),以互相交流 GUI 設(shè)計(jì)理論與經(jīng)驗(yàn)為目的。隨著中國(guó) IT 產(chǎn)業(yè),移動(dòng)通訊產(chǎn)業(yè),家電產(chǎn)業(yè)的迅猛發(fā)展,在產(chǎn)品的人機(jī)交互界面設(shè)計(jì)水平發(fā)展上日顯滯后,這對(duì)于提高產(chǎn)業(yè)綜合素質(zhì),提升與國(guó)際同等業(yè)者的競(jìng)爭(zhēng)能力等等方面無(wú)疑起了制約的作用。</
24、p><p> 第三章 功能模塊設(shè)計(jì)</p><p> 3.1 學(xué)藉管理系統(tǒng)功能模塊</p><p> 該學(xué)藉管理系統(tǒng)包括六個(gè)大模塊,分別為入口、主界面、添加信息、修改信息、查詢(xún)信息、刪除信息。其中添加信息包含了添加基本信息和錄入成績(jī)信息功能;刪除信息包含了刪除基本信息和刪除成績(jī)信息功能;修改信息包含了修改基本信息和修改成績(jī)信息功能;查詢(xún)信息包含了查詢(xún)基本信息和
25、成績(jī)信息。其中基本信息包括學(xué)號(hào)、姓名、系別、專(zhuān)業(yè)等信息。</p><p> 3.2 功能模塊介紹</p><p> 該學(xué)藉管理系統(tǒng)包括六個(gè)大模塊,分別為入口、主界面、添加信息、修改信息、查詢(xún)信息、刪除信息。其具體的功能如下: (1)Student.Java:程序的入口,初始代主界面,使主界面位于屏幕的中間,使用戶(hù)不能改變其大小。 (2)MainFrame.Java:程序的
26、主界面,由菜單、登陸界面和操作選項(xiàng)所構(gòu)成。</p><p> (3)AddInf.Java和Addscore.Java添加信息和成績(jī)界面,按照要求添入基本信息和錄入成績(jī)。</p><p> (4)ChangeInf.Java和 Changescore.Java修改信息和成績(jī)界面,按照提示輸入要修改信息的學(xué)生的學(xué)號(hào),修改基本信息和成績(jī)。</p><p> (5)
27、SearchInf.Java和Searchscore.Java查詢(xún)信息和成績(jī)界面,輸入要查詢(xún)信息的學(xué)生的學(xué)號(hào)或姓名,查詢(xún)基本信息和成績(jī)。</p><p> (6)DelInf.Java和Delscore.Java刪除信息和成績(jī)界面,輸入要?jiǎng)h除信息的學(xué)生的學(xué)號(hào),刪除基本信息和成績(jī)。</p><p> 第四章 系統(tǒng)的實(shí)現(xiàn)</p><p> 該系統(tǒng)由十個(gè)類(lèi)組成,這
28、十個(gè)類(lèi)分別是Student類(lèi)、MainFrame類(lèi)、AddInf類(lèi)、Addscore類(lèi)、ChangeInf類(lèi)、Changescore類(lèi)、DelInf類(lèi)、Delscore類(lèi)、SearchInf類(lèi)和Searchscore類(lèi),每一個(gè)類(lèi)里面都包含學(xué)生的基本信息或成績(jī),其中Student類(lèi)是含有主方法的,是程序的入口,MainFrame類(lèi)是程序的主界面。學(xué)生的基本信息和成績(jī)都存放在student數(shù)據(jù)庫(kù)中,數(shù)據(jù)庫(kù)中用三個(gè)表,分別用于存放登錄時(shí)的用戶(hù)
29、名和密碼,學(xué)生的基本信息和學(xué)生的成績(jī)。</p><p> 4.1 程序的入口的設(shè)計(jì)</p><p> Student類(lèi)是含有主方法的,是程序的入口,起初始代主界面的作用,使主界面位于屏幕的中間,使用戶(hù)不能改變其大小。代碼如下:</p><p> public class Student {</p><p> boolean pack
30、Frame = false;</p><p> public Student() {</p><p> MainFrame frame = new MainFrame();</p><p> if (packFrame) {</p><p> frame.pack();</p><p><b> }
31、</b></p><p><b> else {</b></p><p> frame.validate();</p><p><b> }</b></p><p> Dimension screenSize = Toolkit.getDefaultToolkit().getSc
32、reenSize();</p><p> Dimension frameSize = frame.getSize();</p><p> if (frameSize.height > screenSize.height) {</p><p> frameSize.height = screenSize.height;</p><p&g
33、t;<b> }</b></p><p> if (frameSize.width > screenSize.width) {</p><p> frameSize.width = screenSize.width;</p><p><b> }</b></p><p> frame
34、.setLocation( (screenSize.width - frameSize.width) / 2,</p><p> (screenSize.height - frameSize.height) / 2);</p><p> frame.setVisible(true);</p><p><b> }</b></p>
35、;<p> public static void main(String[] args) {</p><p> try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());</p><p><b> }</b></p><p> cat
36、ch (Exception e) {</p><p> e.printStackTrace();</p><p><b> }</b></p><p> new Student();</p><p><b> }</b></p><p><b> }<
37、;/b></p><p> 4.2 程序的主界面的設(shè)計(jì)</p><p> MainFrame類(lèi)是程序的主界面,由菜單、登陸界面和操作選項(xiàng)所構(gòu)成。其中菜單的“文件”中各操作項(xiàng)必須在登陸后方可選擇。</p><p> (1)“進(jìn)入系統(tǒng)”按鈕的事件處理方法代碼。</p><p> 輸入用戶(hù)名和密碼后點(diǎn)擊“進(jìn)入系統(tǒng)”按鈕,提示登陸成功
38、之后(用戶(hù)名和密碼在數(shù)據(jù)庫(kù)的Admin表中,如果用戶(hù)填的密碼或用戶(hù)名錯(cuò)誤或沒(méi)填都會(huì)產(chǎn)生相應(yīng)的警告框),登陸界面消失,出現(xiàn)“添加信息”、“修改信息”、“信息查詢(xún)”和“刪除信息”四個(gè)按鈕,且菜單中的操作項(xiàng)也被激活?!斑M(jìn)入系統(tǒng)”按鈕的事件處理方法代碼如下:</p><p> void button1_actionPerformed(ActionEvent e) {</p><p> Stri
39、ng user = textField1.getText().trim();</p><p> String pass = textField2.getText().trim();</p><p><b> try {</b></p><p> String strurl = "jdbc:odbc:driver={Microso
40、ft Access Driver (*.mdb)};DBQ=student.mdb";</p><p> Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");</p><p> Connection conn = DriverManager.getConnection(strurl);</p><
41、p> Statement stmt = conn.createStatement();</p><p> if (user.equals("")|| pass.equals(""))</p><p> JOptionPane.showMessageDialog(null, "用戶(hù)名或密碼不能為空", "警告&
42、quot;,JOptionPane.WARNING_MESSAGE);</p><p><b> else {</b></p><p> ResultSet rs = stmt.executeQuery("select * from admin where username='" + user + "' AND pas
43、sword='" + pass + "'");</p><p> if (rs.next()) {</p><p> JOptionPane.showMessageDialog(null, "登陸成功");</p><p> login = true;</p><p>
44、 label1.setVisible(false);</p><p> label5.setVisible(false);</p><p> textField1.setVisible(false);</p><p> label2.setVisible(false);</p><p> textField2.setVisible(f
45、alse);</p><p> button1.setVisible(false);</p><p> label3.setVisible(true);</p><p> label4.setVisible(true);</p><p> button2.setVisible(true);</p><p>
46、button3.setVisible(true);</p><p> button4.setVisible(true);</p><p> button5.setVisible(true);</p><p> jMenuItem1.setEnabled(true);</p><p> jMenuItem2.setEnabled(tru
47、e);</p><p> jMenuItem3.setEnabled(true);</p><p> jMenuItem4.setEnabled(true);</p><p><b> }</b></p><p><b> else</b></p><p> JOp
48、tionPane.showMessageDialog(null, "登陸失敗", "警告",</p><p> JOptionPane.WARNING_MESSAGE);</p><p><b> }</b></p><p><b> }</b></p><
49、p> catch (Exception eg)</p><p><b> {</b></p><p> eg.printStackTrace();</p><p><b> }</b></p><p><b> }</b></p><p>
50、;<b> }</b></p><p> (2)“添加信息”按鈕和操作項(xiàng)的事件處理方法代碼。</p><p> 單擊“添加信息”按鈕或操作項(xiàng)后出現(xiàn)“添加學(xué)生信息”界面?!疤砑有畔ⅰ卑粹o和操作項(xiàng)的事件處理方法代碼如下:</p><p> class MainFrame_ActionAdapter implements ActionList
51、ener {</p><p> MainFrame adaptee;</p><p> MainFrame_ActionAdapter(MainFrame adaptee) {</p><p> this.adaptee = adaptee;</p><p><b> }</b></p><p
52、> public void actionPerformed(ActionEvent e) {</p><p> if (e.getSource() == adaptee.jMenuFileExit)</p><p> adaptee.jMenuFileExit_actionPerformed(e);</p><p> else if (e.getSou
53、rce() == adaptee.jMenuItem1 ||</p><p> e.getSource() == adaptee.button2) {</p><p> AddInf addInf = new AddInf();</p><p> addInf.setSize(400, 300);</p><p> addInf.se
54、tVisible(true);</p><p><b> }</b></p><p> (3)“修改信息”按鈕和操作項(xiàng)的事件處理方法代碼。</p><p> 單擊“修改信息”按鈕或操作項(xiàng)后出現(xiàn)“修改學(xué)生信息”界面?!靶薷男畔ⅰ卑粹o和操作項(xiàng)的事件處理方法代碼如下:</p><p> else if (e.getSo
55、urce() == adaptee.jMenuItem3 ||</p><p> e.getSource() == adaptee.button3) {</p><p> ChangeInf changeInf = new ChangeInf();</p><p> changeInf.setSize(400, 300);</p><p&g
56、t; changeInf.setVisible(true);</p><p><b> }</b></p><p> (4)“查詢(xún)信息”按鈕和操作項(xiàng)的事件處理方法代碼。</p><p> 單擊“查詢(xún)信息”按鈕或操作項(xiàng)后出現(xiàn)“查詢(xún)學(xué)生信息”界面?!安樵?xún)信息”按鈕和操作項(xiàng)的事件處理方法代碼如下:</p><p>
57、else if (e.getSource() == adaptee.jMenuItem2 ||</p><p> e.getSource() == adaptee.button4) {</p><p> SearchInf searchInf = new SearchInf();</p><p> searchInf.setSize(400, 300);<
58、;/p><p> searchInf.setVisible(true);</p><p><b> }</b></p><p> (5)“刪除信息”按鈕和操作項(xiàng)的事件處理方法代碼。</p><p> 單擊“刪除信息”按鈕或操作項(xiàng)后出現(xiàn)“刪除學(xué)生信息”界面?!皠h除信息”按鈕和操作項(xiàng)的事件處理方法代碼如下:</p&
59、gt;<p> else if (e.getSource() == adaptee.jMenuItem4 ||</p><p> e.getSource() == adaptee.button5) {</p><p> DelInf delInf = new DelInf();</p><p> delInf.setSize(400, 300)
60、;</p><p> delInf.setVisible(true);</p><p><b> }</b></p><p> else if (e.getSource() == adaptee.jMenuHelpAbout)</p><p> adaptee.jMenuHelpAbout_actionPerfo
61、rmed(e);</p><p> else if (e.getSource() == adaptee.button1)</p><p> adaptee.button1_actionPerformed(e);</p><p><b> }</b></p><p><b> }</b><
62、;/p><p> 4.3 添加學(xué)生信息界面的設(shè)計(jì)</p><p> 該界面由學(xué)生的基本信息、“添加”按鈕、“退出添加”按鈕和“成績(jī)錄入”按鈕所構(gòu)成。</p><p> (1)“添加”按鈕的事件處理方法代碼。</p><p> AddInf類(lèi)是添加學(xué)生信息的,按照要求添入基本信息,如果用戶(hù)填錯(cuò)或沒(méi)填,提示錯(cuò)誤信息(如不能添加已經(jīng)注冊(cè)的學(xué)號(hào)
63、)。填寫(xiě)完整后,點(diǎn)擊“添加”按鈕,將填入的信息加入到數(shù)據(jù)庫(kù)的BaseInf表中。“添加”按鈕的事件處理方法代碼如下:</p><p> public void actionPerformed(ActionEvent e) {</p><p><b> try {</b></p><p> String strurl ="jdbc
64、:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=student.mdb";</p><p> Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");</p><p> Connection conn = DriverManager.getConnection(str
65、url);</p><p> Statement stmt = conn.createStatement();</p><p> ResultSet rs = stmt.executeQuery("select 學(xué)號(hào) from BaseInf where 學(xué)號(hào)='" +textField1.getText() + "'");<
66、;/p><p> if (rs.next()) {</p><p> JOptionPane.showMessageDialog(null, "此學(xué)號(hào)已經(jīng)被注冊(cè).", "警告", JOptionPane.WARNING_MESSAGE);</p><p><b> return;</b></p&g
67、t;<p><b> }</b></p><p> stmt.execute("insert into BaseInf (學(xué)號(hào),系別,專(zhuān)業(yè),姓名,性別,出年日期,籍貫,政治面貌,備注) values ('" + textField1.getText() + "','" + choice3.getSelected
68、Item() + "','"+</p><p> textField5.getText() + "','"+textField2.getText() + "','" + choice1.getSelectedItem() + "','" + textField3.get
69、Text() + "','"+</p><p> textField4.getText() + "','" + choice2.getSelectedItem() + "','" +</p><p> textArea1.getText() + "')"
70、;);</p><p> textField1.setText("");</p><p> textField2.setText("");</p><p> textField3.setText("");</p><p> textField4.setText("&
71、quot;);</p><p> textField5.setText("");</p><p> textArea1.setText("");</p><p> JOptionPane.showMessageDialog(null, "添加信息成功!");</p><p>&
72、lt;b> }</b></p><p> catch (Exception eg) {</p><p> JOptionPane.showMessageDialog(null,"請(qǐng)認(rèn)真檢查各項(xiàng)(不能為空),\n日期要合法!然后重試.", "異常警告", JOptionPane.WARNING_MESSAGE);</p&g
73、t;<p> eg.printStackTrace();</p><p><b> } </b></p><p><b> }</b></p><p> (2)“退出添加”按鈕的事件處理方法代碼。</p><p> 單擊“退出添加”按鈕之后,返回到主界面?!巴顺鎏砑印卑粹o的事
74、件處理方法代碼如下:</p><p> public void button3_actionPerformed(ActionEvent e) {</p><p> this.hide(); </p><p><b> }</b></p><p> (3)“成績(jī)錄入”按鈕的事件處理方法代碼。</p>
75、<p> 單擊“成績(jī)錄入”按鈕之后出現(xiàn)學(xué)生成績(jī)錄入界面,“成績(jī)錄入”按鈕的事件處理方法代碼如下:</p><p> public void button2_actionPerformed(ActionEvent actionEvent) {</p><p> Addscore Addscore1=new Addscore();</p><p> A
76、ddscore1.pack();</p><p> Addscore1.setVisible(true);</p><p><b> }</b></p><p> 4.4 學(xué)生成績(jī)錄入界面的設(shè)計(jì)</p><p> Addscore類(lèi)是學(xué)生成績(jī)錄入界面,由學(xué)生的成績(jī)信息、“增加”按鈕和“退出查詢(xún)”按鈕所構(gòu)成。&l
77、t;/p><p> (1) “增加”按鈕的事件處理方法代碼。</p><p> 按照要求添入學(xué)生的成績(jī)信息,如果用戶(hù)填錯(cuò)或沒(méi)填,提示錯(cuò)誤信息(如不能添加已經(jīng)注冊(cè)的學(xué)號(hào))。填寫(xiě)完整后,點(diǎn)擊“增加”按鈕,將填入的信息加入到數(shù)據(jù)庫(kù)的score表中?!霸黾印卑粹o的事件處理方法代碼如下:</p><p> public void button2_actionPerforme
78、d(ActionEvent e) {</p><p><b> try {</b></p><p> String strurl ="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=student.mdb";</p><p> Class.forName(&
79、quot;sun.jdbc.odbc.JdbcOdbcDriver");</p><p> Connection conn = DriverManager.getConnection(strurl);</p><p> Statement stmt = conn.createStatement();</p><p> ResultSet rs = s
80、tmt.executeQuery("select 學(xué)號(hào) from score where 學(xué)號(hào)='" + textField8.getText() + "'"); </p><p> if (rs.next()) {</p><p> JOptionPa
81、ne.showMessageDialog(null, "此學(xué)號(hào)成績(jī)已經(jīng)被錄入.", "警告", JOptionPane.WARNING_MESSAGE);</p><p><b> return;</b></p><p><b>
82、; }</b></p><p> stmt.execute("insert into score (學(xué)號(hào),姓名,英語(yǔ),高等數(shù)學(xué),計(jì)算機(jī)應(yīng)用,政治,計(jì)算機(jī)網(wǎng)絡(luò),JAVA,C) values ('" +</p><p> textField8.getText() + "','" + textField9.getT
83、ext() + "','" +</p><p> textField1.getText() + "','" + textField2.getText() + "','" +</p><p> textField3.getText() + "','&quo
84、t; + textField4.getText() + "','" +</p><p> textField5.getText() + "','" + textField6.getText() + "','" +</p><p> textField7.getText() + &
85、quot;')");</p><p> textField1.setText("");</p><p> textField2.setText("");</p><p> textField3.setText("");</p><p> textField4
86、.setText("");</p><p> textField5.setText("");</p><p> textField6.setText("");</p><p> textField7.setText("");</p><p> textFi
87、eld8.setText("");</p><p> textField9.setText("");</p><p> JOptionPane.showMessageDialog(null, "成績(jī)錄入成功!");</p><p><b> }</b></p>&l
88、t;p> catch (Exception eg) {</p><p> JOptionPane.showMessageDialog(null, "請(qǐng)認(rèn)真檢查各項(xiàng),\n然后重試.", "異常警告", JOptionPane.WARNING_MESSAGE);</p><p> e
89、g.printStackTrace();</p><p><b> }</b></p><p><b> }</b></p><p> (2) “退出”按鈕的事件處理方法代碼。</p><p> 單擊“退出”按鈕之后,返回到添加學(xué)生信息界面?!巴顺觥卑粹o的事件處理方法代碼如下:</p&
90、gt;<p> public void button1_actionPerformed(ActionEvent e) {</p><p> this.hide();</p><p><b> }</b></p><p> 4.5 修改學(xué)生信息界面的設(shè)計(jì)</p><p> ChangeInf類(lèi)是修
91、改學(xué)生信息界面,該界面需要先輸入要修改信息的學(xué)生的學(xué)號(hào)然后單擊“下一步”,該界面由學(xué)生的基本信息、“修改”按鈕、“退出修改”按鈕和“修改成績(jī)”按鈕所構(gòu)成。</p><p> (1)“下一步” 按鈕的事件處理方法代碼</p><p> 按照提示輸入要修改信息的學(xué)生學(xué)號(hào),點(diǎn)擊“下一步”(如果數(shù)據(jù)庫(kù)無(wú)此學(xué)號(hào),則提示“無(wú)此對(duì)應(yīng)信息”),從數(shù)據(jù)庫(kù)中將該學(xué)生的完整信息讀出?!跋乱徊健?按鈕的事件處
92、理方法代碼如下:</p><p> if (e.getSource() == button2) {</p><p><b> try {</b></p><p> rs = stmt.executeQuery("SELECT * FROM BaseInf where 學(xué)號(hào)='" +textField6.getT
93、ext() + "'");</p><p> if (rs.next()) {</p><p> textField6.setVisible(false);</p><p> button2.setVisible(false);</p><p> label10.setVisible(false);<
94、/p><p> label1.setVisible(true);</p><p> label2.setVisible(true);</p><p> label3.setVisible(true);</p><p> label4.setVisible(true);</p><p> label5.setVis
95、ible(true);</p><p> label6.setVisible(true);</p><p> label7.setVisible(true);</p><p> label8.setVisible(true);</p><p> label9.setVisible(true);</p><p>
96、 textArea1.setVisible(true);</p><p> textArea1.setText(rs.getString("備注"));</p><p> textField1.setVisible(true);</p><p> textField1.enable(false);</p><p>
97、 textField1.setText(rs.getString("學(xué)號(hào)"));</p><p> textField2.setVisible(true);</p><p> textField2.setText(rs.getString("姓名"));</p><p> textField3.setVisible(t
98、rue);</p><p> textField3.setText(rs.getString("出年日期"));</p><p> textField4.setVisible(true);</p><p> textField4.setText(rs.getString("籍貫"));</p><p&
99、gt; textField5.setVisible(true);</p><p> textField5.setText(rs.getString("專(zhuān)業(yè)"));</p><p> choice1.setVisible(true);</p><p> choice1.select(rs.getString("性別"))
100、;</p><p> choice2.setVisible(true);</p><p> choice2.select(rs.getString("政治面貌"));</p><p> choice3.setVisible(true);</p><p> choice3.select(rs.getString(&q
101、uot;系別"));</p><p> button1.setVisible(true);</p><p> button3.setVisible(true);</p><p> button4.setVisible(true);</p><p><b> }</b></p><p&
102、gt;<b> else</b></p><p> JOptionPane.showMessageDialog(null, "無(wú)此學(xué)號(hào)對(duì)應(yīng)信息", "警告",JOptionPane.WARNING_MESSAGE);</p><p><b> }</b></p><p> c
103、atch (Exception eg) {</p><p> eg.printStackTrace();</p><p><b> } </b></p><p><b> }</b></p><p> (2)“修改” 按鈕的事件處理方法代碼</p><p> 用戶(hù)修
104、改完基本信息之后點(diǎn)擊“修改”即可。注意:為了防止意外,修改學(xué)生信息時(shí),程序禁止了對(duì)學(xué)號(hào)的修改。(為了程序設(shè)計(jì)方便和代碼重用,修改信息的代碼是先刪此該生所有信息,再將修改后的信息全部添加到數(shù)據(jù)庫(kù),這也是數(shù)據(jù)庫(kù)修改的原理)。“修改” 按鈕的事件處理方法代碼如下:</p><p> else if (e.getSource() == button1) {</p><p><b>
105、try {</b></p><p> stmt.execute("DELETE * FROM BaseInf where 學(xué)號(hào)='" + textField1.getText() +"'");</p><p> stmt.execute(</p><p> "insert into
106、BaseInf (學(xué)號(hào),系別,專(zhuān)業(yè),姓名,性別,出年日期,籍貫,政治面貌,備注) values ('" +textField1.getText() + "','" + choice3.getSelectedItem() + "','" +textField5.getText() + "','" + textFie
107、ld2.getText() + "','" +choice1.getSelectedItem() + "','" + textField3.getText() + "','" +textField4.getText() + "','" + choice2.getSelectedItem() +
108、"','" +textArea1.getText() + "')");</p><p> JOptionPane.showMessageDialog(null, "修改信息成功!");</p><p><b> }</b></p><p> catch (
109、Exception eg) {</p><p> JOptionPane.showMessageDialog(null, "請(qǐng)認(rèn)真檢查各項(xiàng)(不能為空),\n日期要合法!然后重試.","異常警告", JOptionPane.WARNING_MESSAGE);</p><p> eg.printStackTrace();</p><
110、;p><b> }</b></p><p><b> }</b></p><p> (3)“修改成績(jī)” 按鈕的事件處理方法代碼</p><p> 單擊“修改成績(jī)”按鈕之后出現(xiàn)修改學(xué)生成績(jī)界面?!靶薷某煽?jī)” 按鈕的事件處理方法代碼如下:</p><p> public void but
111、ton3_actionPerformed(ActionEvent e) {</p><p> Changescore Changescore1=new Changescore();</p><p> Changescore1.pack();</p><p> Changescore1.setVisible(true);</p><p>
112、<b> }</b></p><p> (4) “退出修改” 按鈕的事件處理方法代碼</p><p> 單擊“退出修改”按鈕之后,返回到主界面?!巴顺鲂薷摹?按鈕的事件處理方法代碼如下:</p><p> public void button4_actionPerformed(ActionEvent e) {</p>&l
113、t;p> this.hide();</p><p><b> }</b></p><p> 4.6 修改學(xué)生成績(jī)界面的設(shè)計(jì)</p><p> Changescore類(lèi)是修改學(xué)生成績(jī)界面,由學(xué)生成績(jī)信息、“查詢(xún)”按鈕、“修改”按鈕和“退出修改”所構(gòu)成。</p><p> (1) “查詢(xún)”按鈕的事件處理方法
114、代碼</p><p> 按照提示輸入要修改成績(jī)信息的學(xué)生學(xué)號(hào),點(diǎn)擊“查詢(xún)”(如果數(shù)據(jù)庫(kù)無(wú)此學(xué)號(hào),則提示“無(wú)此對(duì)應(yīng)信息”),從數(shù)據(jù)庫(kù)中將該學(xué)生的完整信息讀出?!安樵?xún)” 按鈕的事件處理方法代碼如下:</p><p> public void button2_actionPerformed(ActionEvent e) {</p><p> if (e.getSou
115、rce() == button2) {</p><p><b> try {</b></p><p> rs = stmt.executeQuery("SELECT * FROM score where 學(xué)號(hào)='" + textField8.getText() + "'");</p><p
116、> if (rs.next()) {</p><p> textField8.enable(false);</p><p> textField8.setText(rs.getString("學(xué)號(hào)"));</p><p> textField9.setText(rs.getString("姓名"));</p
117、><p> textField1.setText(Integer.toString(rs.getInt("英語(yǔ)")));</p><p> textField2.setText(Integer.toString(rs.getInt("高等數(shù)學(xué)")));</p><p> textField3.setText(Integer.
118、toString(rs.getInt("計(jì)算機(jī)應(yīng)用")));</p><p> textField4.setText(Integer.toString(rs.getInt("政治")));</p><p> textField5.setText(Integer.toString(rs.getInt("計(jì)算機(jī)網(wǎng)絡(luò)")));<
119、;/p><p> textField6.setText(Integer.toString(rs.getInt("JAVA")));</p><p> textField7.setText(Integer.toString(rs.getInt("C")));</p><p><b> }</b></
120、p><p><b> else</b></p><p> JOptionPane.showMessageDialog(null, "無(wú)此學(xué)號(hào)對(duì)應(yīng)信息", "警告", JOptionPane.WARNING_MESSAGE);</p
121、><p><b> }</b></p><p> catch (Exception eg) {</p><p> eg.printStackTrace();</p><p><b> }</b></p><p><b> }</b></p&g
122、t;<p><b> }</b></p><p> (2) “修改”按鈕的事件處理方法代碼</p><p> 用戶(hù)修改完成績(jī)信息之后點(diǎn)擊“修改”即可。注意:為了防止意外,修改學(xué)生信息時(shí),程序禁止了對(duì)學(xué)號(hào)的修改。(為了程序設(shè)計(jì)方便和代碼重用,修改信息的代碼是先刪此該生所有信息,再將修改后的信息全部添加到數(shù)據(jù)庫(kù),這也是數(shù)據(jù)庫(kù)修改的原理)?!靶薷摹?按鈕
123、的事件處理方法代碼如下:</p><p> public void button3_actionPerformed(ActionEvent e) {</p><p> if (e.getSource() == button3) {</p><p><b> try {</b></p><p> stmt.exec
124、ute("DELETE * FROM score where 學(xué)號(hào)='" + textField8.getText() +"'");</p><p> stmt.execute("insert into score (學(xué)號(hào),姓名,英語(yǔ),高等數(shù)學(xué),計(jì)算機(jī)應(yīng)用,政治,計(jì)算機(jī)網(wǎng)絡(luò),JAVA,C) values ('" +</p&
125、gt;<p> textField8.getText() + "','" + textField9.getText() + "','" +</p><p> textField1.getText() + "','" + textField2.getText() + "',
溫馨提示
- 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. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- java圖書(shū)管理系統(tǒng)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---基于java用戶(hù)管理系統(tǒng)
- java學(xué)生管理系統(tǒng)畢業(yè)設(shè)計(jì)論文
- java家政服務(wù)管理系統(tǒng)畢業(yè)設(shè)計(jì)
- java畢業(yè)設(shè)計(jì)--網(wǎng)吧收費(fèi)管理系統(tǒng)
- 基于java的餐飲管理系統(tǒng)畢業(yè)設(shè)計(jì)
- [java畢設(shè)]java圖書(shū)管理系統(tǒng)畢業(yè)設(shè)計(jì)+源碼
- java藥品管理系統(tǒng)設(shè)計(jì)-畢業(yè)設(shè)計(jì)(論文)
- java畢業(yè)設(shè)計(jì)--小區(qū)物業(yè)管理系統(tǒng)
- java論文成績(jī)管理系統(tǒng)畢業(yè)設(shè)計(jì)
- java開(kāi)發(fā)的畢業(yè)設(shè)計(jì)-學(xué)籍管理系統(tǒng)
- java圖書(shū)管理系統(tǒng)(畢業(yè)設(shè)計(jì)帶源碼)
- 基于java的酒店管理系統(tǒng)畢業(yè)設(shè)計(jì)論文
- java開(kāi)發(fā)的畢業(yè)設(shè)計(jì)-學(xué)生社團(tuán)管理系統(tǒng)
- java航空訂票系統(tǒng)畢業(yè)設(shè)計(jì)
- java模擬atm系統(tǒng)畢業(yè)設(shè)計(jì)
- java考試系統(tǒng)畢業(yè)設(shè)計(jì)(論文)
- 超市收銀管理系統(tǒng)的設(shè)計(jì)畢業(yè)設(shè)計(jì)畢業(yè)論文java
- java在線考試系統(tǒng)畢業(yè)設(shè)計(jì)
- 基于java的圖書(shū)館管理系統(tǒng)畢業(yè)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論