版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 課程實(shí)踐任務(wù)書</p><p> 學(xué)院經(jīng)濟(jì)管理學(xué)院專業(yè)信息管理與信息系統(tǒng) </p><p> 姓名學(xué)號(hào)</p><p> 課程名稱面向?qū)ο蟪绦蛟O(shè)計(jì)設(shè)計(jì)題目學(xué)生信息管理系統(tǒng)程序設(shè)計(jì)</p><p> 設(shè)計(jì)要求與任務(wù):使用任意一款JAVA開發(fā)工具開發(fā)一個(gè)實(shí)用的應(yīng)用系統(tǒng),如記事本、計(jì)算器、繪圖軟件、JSP網(wǎng)站或者M(jìn)IS??梢圆扇?/p>
2、B/S或者C/S模式。此次設(shè)計(jì)的具體要求還包括:(1)根據(jù)課程設(shè)計(jì)時(shí)間選擇適當(dāng)規(guī)模大小的設(shè)計(jì)題目,分小組進(jìn)行設(shè)計(jì)。(2)小組組長(zhǎng)為組員分配任務(wù),根據(jù)合理的安排,按照軟件開發(fā)的流程及方法,踏實(shí)地開展課程設(shè)計(jì)活動(dòng)。(3)課程設(shè)計(jì)包括開發(fā)編碼和撰寫相關(guān)文檔。最后提交詳細(xì)的課程設(shè)計(jì)報(bào)告。(4)開發(fā)出可上機(jī)運(yùn)行的JAVA應(yīng)用,并上機(jī)測(cè)試。工作計(jì)劃與進(jìn)度安排:第1-3天:布置任務(wù)、分組、粗略調(diào)查、選題、可行性研究、系統(tǒng)規(guī)劃。第4-6天 :深入調(diào)研、
3、系統(tǒng)分析、建立數(shù)據(jù)邏輯模型、系統(tǒng)設(shè)計(jì)、建立數(shù)據(jù)物理模型第7-9天 :系統(tǒng)實(shí)施、程序設(shè)計(jì)、系統(tǒng)調(diào)試。 第9-10天 :應(yīng)用測(cè)試、整理資料、撰寫報(bào)告、準(zhǔn)備驗(yàn)收</p><p> 指導(dǎo)教師(簽字):年 月 日專業(yè)負(fù)責(zé)人(簽字):年 月 日學(xué)院院長(zhǎng)(簽字):年 月 日</p><p><b> 摘要</b></p><p> 信息技術(shù)的
4、快速發(fā)展的同時(shí)也帶來(lái)了社會(huì)各個(gè)行業(yè)的發(fā)展。它的發(fā)展已經(jīng)深入到社會(huì)的各個(gè)角落。作為社會(huì)發(fā)展的前沿技術(shù),各行各業(yè)只要對(duì)其合理的進(jìn)行運(yùn)用,必將會(huì)帶來(lái)巨大的便捷。成功的運(yùn)用信息技術(shù)將為各類學(xué)校學(xué)生信息管理帶來(lái)無(wú)限便利。作為計(jì)算機(jī)應(yīng)用的一部分,使用學(xué)生信息管理系統(tǒng)對(duì)學(xué)生檔案進(jìn)行管理,有著手工管理所無(wú)法比擬的優(yōu)點(diǎn),如:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低等,大地提高學(xué)生檔案管理的效率。</p><p&
5、gt; 本文介紹了系統(tǒng)開發(fā)的全過(guò)程。該系統(tǒng)以Windows為操作平臺(tái),Java為開發(fā)語(yǔ)言,Access為數(shù)據(jù)庫(kù),Eclipse為開發(fā)工具,使用JDBC技術(shù)進(jìn)行連接,實(shí)現(xiàn)了在可視化的基礎(chǔ)上,利用數(shù)據(jù)庫(kù)進(jìn)行后臺(tái)管理。</p><p> 系統(tǒng)由學(xué)生和老師基本信息添加、學(xué)生和老師基本信息查詢、學(xué)生和老師基本信息刪除、學(xué)生和老師基本信息修改及退出系統(tǒng)等功能模塊組成,基本功能較全面。用戶界面友好、清晰、操作簡(jiǎn)便,易學(xué)易用
6、;系統(tǒng)可讀性好,易于維護(hù)、更新,安全性較好。采用傳統(tǒng)下拉菜單功能選擇,方便、快捷、一目了然,并且在一個(gè)窗體中進(jìn)行操作,可視化強(qiáng)。采用鏈入數(shù)據(jù)庫(kù)進(jìn)行存儲(chǔ),可動(dòng)態(tài)進(jìn)行查看、操作,這樣的系統(tǒng)可修改性較強(qiáng)。</p><p> 關(guān)鍵字:面向?qū)ο?;Eclipse;JDBC</p><p><b> 目錄</b></p><p><b> 1
7、 前言1</b></p><p> 1.1 課題簡(jiǎn)介1</p><p> 1.2 設(shè)計(jì)目的1</p><p><b> 2 需求分析2</b></p><p> 2.1業(yè)務(wù)需求分析2</p><p> 2.2功能需求分析2</p><p>
8、 2.2.1 學(xué)生信息2</p><p> 2.2.2 教師信息2</p><p> 2.2.3 成績(jī)管理3</p><p><b> 3 數(shù)據(jù)庫(kù)設(shè)計(jì)4</b></p><p> 3.1 Java連接數(shù)據(jù)庫(kù)4</p><p> 3.1.1 關(guān)系數(shù)據(jù)庫(kù)概述4</p>
9、;<p> 3.1.2 通過(guò)JDBC訪問(wèn)數(shù)據(jù)庫(kù)4</p><p> 3.2 數(shù)據(jù)庫(kù)與基本表設(shè)計(jì)4</p><p> 4 系統(tǒng)設(shè)計(jì)與實(shí)施7</p><p> 4.1 Eclipse Java Neon 37</p><p> 4.2 結(jié)構(gòu)設(shè)計(jì)7</p><p> 4.3 文件組織結(jié)構(gòu)
10、8</p><p> 4.4 登錄模塊8</p><p> 4.4.1 設(shè)計(jì)構(gòu)想8</p><p> 4.4.2 實(shí)現(xiàn)登錄模塊8</p><p> 4.5 學(xué)生信息模塊11</p><p> 4.5.1 設(shè)計(jì)構(gòu)想11</p><p> 4.5.2 實(shí)現(xiàn)學(xué)生信息模塊主界面
11、11</p><p> 4.5.3添加信息12</p><p> 4.5.4 刪除信息14</p><p> 4.5.5修改信息16</p><p> 4.5.6 基本信息查詢18</p><p> 4.5.7 成績(jī)查詢20</p><p> 4.5.8 退出系統(tǒng)22&l
12、t;/p><p> 4.6 教師信息模塊22</p><p><b> 結(jié)束語(yǔ)26</b></p><p><b> 參考文獻(xiàn)27</b></p><p><b> 附錄A28</b></p><p><b> 1 前言</
13、b></p><p><b> 1.1課題簡(jiǎn)介</b></p><p> 學(xué)生信息檔案的管理對(duì)于學(xué)校的管理者來(lái)說(shuō)至關(guān)重要,學(xué)生信息是高等學(xué)校非常重要的一項(xiàng)數(shù)據(jù)資源,是一個(gè)教育單位不可缺少一部分。近幾年來(lái),國(guó)家政策的調(diào)整,我國(guó)高等院校大規(guī)模擴(kuò)招,給高等院校的教學(xué)管理、學(xué)生管理、后勤管理等方面都帶來(lái)不少的沖擊。其包含的數(shù)據(jù)量大,涉及的人員面廣,而且需要及時(shí)更新,
14、故較為復(fù)雜,難以單純地依靠人工管理,而且傳統(tǒng)的人工管理方式既不易于規(guī)范化,管理效率也不高。</p><p> 目前我國(guó)各類高等院校中還有相當(dāng)一部分學(xué)生檔案管理還停留在紙介質(zhì)的基礎(chǔ)上,中、小學(xué)對(duì)學(xué)生檔案的管理更是落后,這樣的管理機(jī)制嚴(yán)重浪費(fèi)人力和物力,已經(jīng)不能適應(yīng)時(shí)代發(fā)展的要求。</p><p> 計(jì)算機(jī)應(yīng)用的普及已進(jìn)入人類社會(huì)生活的各個(gè)領(lǐng)域,并發(fā)揮著越來(lái)越重要的作用。這種傳統(tǒng)的手工管理
15、模式必然被以計(jì)算機(jī)為物質(zhì)基礎(chǔ)的信息管理方法所取代。作為計(jì)算機(jī)應(yīng)用的一部分,使用學(xué)生信息管理系統(tǒng)對(duì)學(xué)生檔案進(jìn)行管理,有著手工管理所無(wú)法比擬的優(yōu)點(diǎn),如:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低等。這些優(yōu)點(diǎn)能夠極大地提高學(xué)生檔案管理的效率,也是學(xué)校向科學(xué)化、正規(guī)化管理發(fā)展的必要條件。</p><p><b> 1.2 設(shè)計(jì)目的</b></p><p&g
16、t; 對(duì)學(xué)生信息管理系統(tǒng),目的是為了對(duì)學(xué)校的學(xué)生信息管理工作進(jìn)行系統(tǒng)的管理,以提高工作效率。通過(guò)程序設(shè)計(jì),開發(fā)出學(xué)生信息管理系統(tǒng)代替相應(yīng)的手工管理。學(xué)生信息管理系統(tǒng)可為用戶提供充足的信息和快捷的查詢手段,不但可以實(shí)現(xiàn)教師、學(xué)生的信息錄入、修改與刪除,而且可以實(shí)現(xiàn)學(xué)生成績(jī)的信息錄入、修改與刪除,同時(shí)可以對(duì)所有的信息進(jìn)行查詢,實(shí)現(xiàn)學(xué)校的規(guī)范化管理。</p><p><b> 2 需求分析</b&g
17、t;</p><p><b> 2.1業(yè)務(wù)需求分析</b></p><p> 開發(fā)一個(gè)系統(tǒng)前,首先應(yīng)該對(duì)該系統(tǒng)要實(shí)現(xiàn)的功能進(jìn)行整體的分析和規(guī)劃,確保在開發(fā)過(guò)程中不會(huì)出現(xiàn)重大缺陷和漏洞。因此,在軟件開發(fā)的過(guò)程中應(yīng)嚴(yán)格按照軟件工程的流程進(jìn)行系統(tǒng)的分析與設(shè)計(jì)。</p><p> 該系統(tǒng)是學(xué)生管理系統(tǒng),應(yīng)以學(xué)生信息為中心,組織相關(guān)程序結(jié)構(gòu)。通過(guò)分
18、析可知,學(xué)生信息管理系統(tǒng)的主要業(yè)務(wù)應(yīng)有:學(xué)生基本信息管理、教師基本信息管理、學(xué)生成績(jī)管理、用戶管理等。</p><p><b> 2.2功能需求分析</b></p><p> 通過(guò)業(yè)務(wù)需求分析可知,該系統(tǒng)主要有三類用戶:學(xué)生,教師和系統(tǒng)管理員。因此,該系統(tǒng)的功能可分為學(xué)生信息管理、教師信息管理和成績(jī)管理,具體有以下幾個(gè)方面:</p><p>
19、; 學(xué)生:可以對(duì)每個(gè)學(xué)生的信息進(jìn)行添加、修改、刪除和查詢。</p><p> 成績(jī):可以對(duì)每個(gè)學(xué)生所學(xué)科目的成績(jī)進(jìn)行添加、刪除、修改和查詢。</p><p> 教師:可以對(duì)每個(gè)教師的信息進(jìn)行添加、刪除、修改和查詢。</p><p> 2.2.1 學(xué)生信息</p><p> 學(xué)生信息主要存儲(chǔ)了學(xué)生的基本情況,包括學(xué)號(hào)、姓名、性別、所在
20、班級(jí)、所在學(xué)院等信息。一個(gè)學(xué)號(hào)可唯一確定一名學(xué)生。學(xué)生信息集中進(jìn)行管理,方便進(jìn)行相關(guān)基本信息的查詢、修改、刪除等活動(dòng),大大簡(jiǎn)化了手續(xù)。</p><p> 2.2.2 教師信息</p><p> 教師信息主要存儲(chǔ)了教師的基本情況,包括教師編號(hào)、姓名、性別、職稱、所在學(xué)院等信息。一個(gè)教師編號(hào)可唯一確定一名教師。教師信息集中進(jìn)行管理,方便進(jìn)行查詢、修改、刪除和人事變動(dòng)等活動(dòng),大大簡(jiǎn)化了手續(xù)。
21、</p><p> 2.2.3 成績(jī)管理</p><p> 成績(jī)管理的對(duì)象是學(xué)生所學(xué)科目的相應(yīng)成績(jī),對(duì)成績(jī)進(jìn)行集中管理,方便了學(xué)生查詢成績(jī)、教師添加、查詢和修改成績(jī),加快了查詢速度,提高了準(zhǔn)確率,大大簡(jiǎn)化了手續(xù)。</p><p> 圖2-1 學(xué)生信息管理系統(tǒng)功能模塊圖</p><p><b> 3 數(shù)據(jù)庫(kù)設(shè)計(jì)</b&g
22、t;</p><p> 3.1 Java連接數(shù)據(jù)庫(kù)</p><p> 3.1.1 關(guān)系數(shù)據(jù)庫(kù)概述</p><p> 關(guān)系數(shù)據(jù)庫(kù),是建立在關(guān)系數(shù)據(jù)庫(kù)模型基礎(chǔ)上的數(shù)據(jù)庫(kù),借助于集合代數(shù)等概念和方法來(lái)處理數(shù)據(jù)庫(kù)中的數(shù)據(jù),用二維表格形式來(lái)表述實(shí)體與實(shí)體之間關(guān)系。有3種完整性約束:實(shí)體完整性、參照完整性和用戶自定義完整性,其中實(shí)體完整性和參照完整性是關(guān)系數(shù)據(jù)庫(kù)中必不可少
23、的完整性條件,分別表述為主屬性不為空和一表或多表之間具有某種對(duì)應(yīng)關(guān)系、相互制約。</p><p> 3.1.2 通過(guò)JDBC訪問(wèn)數(shù)據(jù)庫(kù)</p><p> JDBC由Java編程語(yǔ)言編寫的類和接口組成,是實(shí)現(xiàn)Java與各種數(shù)據(jù)庫(kù)連接的關(guān)鍵,提供了將Java與數(shù)據(jù)庫(kù)連接起來(lái)的程序接口,使用戶可以以SQL的形式編寫訪問(wèn)請(qǐng)求,然后傳給數(shù)據(jù)庫(kù),其結(jié)果再由這一接口返回,從而實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)操作的
24、目的。</p><p> 3.2 數(shù)據(jù)庫(kù)與基本表設(shè)計(jì)</p><p> 由于該系統(tǒng)數(shù)據(jù)量不大,采用了Access作為數(shù)據(jù)庫(kù),所建的系統(tǒng)數(shù)據(jù)庫(kù)名為“student1”。通過(guò)需求分析、概念設(shè)計(jì)與邏輯設(shè)計(jì),可知該系統(tǒng)數(shù)據(jù)庫(kù)應(yīng)涉及到以下基本表:班級(jí)表、學(xué)生表、教師表,具體結(jié)構(gòu)如下:</p><p> 班級(jí)表(班級(jí)編號(hào),班級(jí)名稱,所屬學(xué)院,班級(jí)人數(shù))</p>
25、<p> 該表用于保存班級(jí)信息,其數(shù)據(jù)字典如表3-1所示:</p><p> 表3-1 班級(jí)表數(shù)據(jù)字典</p><p> 學(xué)生表(學(xué)號(hào),姓名,性別,出生日期,班級(jí)編號(hào))</p><p> 該表用于存儲(chǔ)學(xué)生的基本信息,其數(shù)據(jù)字典如表3-2所示:</p><p> 表3-2 學(xué)生表數(shù)據(jù)字典</p><p
26、> 教師表(教師編號(hào),姓名,性別,職稱,所屬學(xué)院,出生日期)</p><p> 該表用于存儲(chǔ)教師的基本信息,其數(shù)據(jù)字典如表3-3所示:</p><p> 表3-3 教師表數(shù)據(jù)字典</p><p> 課程表(課程號(hào),課程名,學(xué)分)</p><p> 該表用于存儲(chǔ)學(xué)生可學(xué)課程的基本信息,其數(shù)據(jù)字典如表3-4所示:</p>
27、;<p> 表3-4 課程表數(shù)據(jù)字典</p><p> 成績(jī)表(學(xué)號(hào),課程號(hào),成績(jī),教師編號(hào))</p><p> 該表用于存儲(chǔ)學(xué)生可學(xué)課程的成績(jī)情況,其數(shù)據(jù)字典如表3-5所示:</p><p> 表3-5課程表數(shù)據(jù)字典</p><p><b> 4 系統(tǒng)設(shè)計(jì)與實(shí)施</b></p>&
28、lt;p> 4.1 Eclipse Java Neon 3</p><p> 出于穩(wěn)定性與便利性的考量,本設(shè)計(jì)選用了Eclipse Java Neon 3作為程序的開發(fā)環(huán)境,Eclipse是著名的跨平臺(tái)的自由集成開發(fā)環(huán)境(IDE),最初由OTI和IBM兩家公司的IDE產(chǎn)品開發(fā)組創(chuàng)建,它本身只是一個(gè)框架平臺(tái),但是眾多插件的支持使得Eclipse擁有其他功能相對(duì)固定的IDE軟件很難具有的靈活性。使用時(shí)可清
29、楚的發(fā)現(xiàn)錯(cuò)誤,并能根據(jù)相應(yīng)規(guī)則進(jìn)行修改,大大簡(jiǎn)化了程序檢查工作。由于package explorer的存在,使得隨時(shí)查找文件變得十分方便。同時(shí)又提供有很便利的數(shù)據(jù)庫(kù)連接方式。</p><p> Eclipse Java Neon 3具有以下四大優(yōu)點(diǎn):</p><p> ?。?)從編寫、查錯(cuò)、編譯、幫助等等各方面為Java語(yǔ)言貼身定做。 </p><p> ?。?)
30、可無(wú)限擴(kuò)展的強(qiáng)大插件功能。 </p><p> ?。?)眾多公司、廠商、組織支持。 </p><p> (4)開放,自由,免費(fèi)。 </p><p><b> 4.2 結(jié)構(gòu)設(shè)計(jì)</b></p><p> 該系統(tǒng)用于對(duì)學(xué)生的基本信息與學(xué)生的成績(jī)進(jìn)行管理,主要包括添加、修改和刪除學(xué)生與教師基本信息,錄入、修改和刪除學(xué)生的
31、成績(jī),查詢學(xué)生和教師的基本信息,為了方便,全部操作均在界面中完成。</p><p> 由此,將該系統(tǒng)結(jié)構(gòu)設(shè)計(jì)為登錄模塊、學(xué)生模塊、教師模塊,對(duì)應(yīng)于學(xué)生與教師這兩類主要用戶。由于涉及界面設(shè)計(jì),因此調(diào)用了java.awt.*、java.awt.event.*、javax.swing.*、java.util.*、javax.swing.event.*、java.sql.*等包。</p><p>
32、; 4.3 文件組織結(jié)構(gòu)</p><p> 學(xué)生信息管理系統(tǒng)中使用的根目錄文件夾是“nnn”,其文件組織結(jié)構(gòu)圖如圖4-1所示:</p><p> 圖4-1 項(xiàng)目文件組織結(jié)構(gòu)圖</p><p><b> 4.4 登錄模塊</b></p><p> 登錄模塊使進(jìn)入學(xué)生信息管理系統(tǒng)的第一個(gè)界面,相當(dāng)于一個(gè)網(wǎng)站的主頁(yè)。
33、</p><p> 4.4.1 設(shè)計(jì)構(gòu)想</p><p> 該系統(tǒng)是學(xué)生信息管理系統(tǒng),用戶為三類:學(xué)生、教師和系統(tǒng)管理員,可在相應(yīng)的權(quán)限范圍內(nèi)查詢和更新系統(tǒng)數(shù)據(jù)。因此,不同的用戶在登錄時(shí)需有不同的角色選項(xiàng),此外,還應(yīng)有各自的用戶名和密碼。</p><p> 4.4.2 實(shí)現(xiàn)登錄模塊</p><p> ?。?)要生成一個(gè)界面,可應(yīng)用AWT
34、知識(shí)。設(shè)置其名字為學(xué)生信息管理系統(tǒng);設(shè)置布局管理器為(null)布局管理器,這樣方便往其中放組件;設(shè)置窗口大小和位置,還要設(shè)置窗口可見(jiàn)性。</p><p> ?。?)生成界面后,接下來(lái)就需要實(shí)現(xiàn)每個(gè)功能,在設(shè)計(jì)構(gòu)想中提到的第一個(gè)功能就是要對(duì)操作對(duì)象的身份進(jìn)行選擇,這里要用下拉列表的形式進(jìn)行選擇,也可以用單選按鈕來(lái)完成這個(gè)功能。在這項(xiàng)功能中,首先要選擇身份,所以要定義一個(gè)JLabel來(lái)說(shuō)明,定義完JLabel后,就
35、需要定義一個(gè)JComoBox,也就是下拉列表框。</p><p> (3)輸入用戶名和密碼。需要用兩個(gè)JLabel來(lái)指明需要輸入用戶名和密碼。輸入用戶名需要定義一個(gè)JTextField,也就是單文本框。同時(shí)輸入文本,但輸入密碼和輸入用戶名是不一樣的,它需要定義成JPasswordField,它的輸出結(jié)果為“*****”這樣的形式。</p><p> ?。?)創(chuàng)建兩個(gè)按鈕,一個(gè)是登錄按鈕,
36、另一個(gè)是取消登錄按鈕,用來(lái)輸入的用戶名和密碼及選擇的身份進(jìn)行提交。當(dāng)然要對(duì)登錄按鈕事件進(jìn)行事件監(jiān)聽,首先要驗(yàn)證用戶名和密碼是否正確并對(duì)上,然后根據(jù)選擇的身份來(lái)選擇需要進(jìn)入那個(gè)界面,其代碼如下:</p><p> public class Info_Manage extends Frame implements ActionListener{</p><p> JLabel JLUser
37、Name =new JLabel("用戶名");</p><p> JLabel JLPaw=new JLabel ("密碼");</p><p> JLabel JLP=new JLabel("角色");</p><p> JTextField JTUserName =new JTextField(
38、);</p><p> JPasswordField JPsw=new JPasswordField();</p><p> JTextField jt=new JTextField(10);</p><p> String str[]={"學(xué)生","教師","管理者"};</p>&l
39、t;p> JComboBox JCB=new JComboBox(str);</p><p> JButton JB1=new JButton("登錄");</p><p> JButton JB2=new JButton("取消");</p><p> public Info_Manage(){</p&g
40、t;<p> this.setTitle("學(xué)生信息管理系統(tǒng)");</p><p> this.setLayout(null);</p><p> JLUserName.setBounds(100,40,100,20);</p><p> this.add(JLUserName);</p><p>
41、 JTUserName.setBounds(200,40,100,20);</p><p> this.add(JTUserName);</p><p> JLPaw.setBounds(100,100,100,20);</p><p> this.add(JLPaw);</p><p> JPsw.setBounds(200,100
42、,80,20);</p><p> this.add(JPsw);</p><p> JCB.setBounds(200,150,100,20);</p><p> this.add(JCB);</p><p> JLP.setBounds(100,150,100,20);</p><p> this.add
43、(JLP);</p><p> JB1.setBounds(100,200,60,20);</p><p> this.add(JB1);</p><p> JB1.addActionListener(this);</p><p> JB2.setBounds(200,200,60,20);</p><p>
44、 this.add(JB2);</p><p> JB2.addActionListener(this);</p><p> this.setVisible(true);</p><p> this.setBounds(10, 10, 400, 250);</p><p> addWindowListener(new WindowAd
45、apter(){</p><p> public void windowClosing(WindowEvent e){</p><p> System.exit(0);</p><p><b> }</b></p><p><b> });</b></p><p>
46、 JCB.addActionListener(new ActionListener(){</p><p> public void actionPerformed(ActionEvent e){</p><p> int h=JCB.getSelectedIndex();</p><p> if(h==0) student_manage sm=new stud
47、ent_manage();</p><p> else if(h==1) teacher_manage tm=new teacher_manage();</p><p><b> }</b></p><p><b> });</b></p><p><b> }</b>
48、</p><p> public void actionPerformed(ActionEvent e){</p><p> if(e.getSource()==JB1){</p><p> String name=JTUserName.getText();</p><p> String password=new String(JP
49、sw.getPassword());</p><p> if((name!=null&&(name.equals("1")))</p><p> &&(password!=null&&(password.equals("1")))){</p><p> new studen
50、t_manage();}</p><p><b> else{</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b>
51、 }</b></p><p> 其運(yùn)行結(jié)果如圖4-2所示:</p><p> 圖4-2 Info_Manage.java的顯示結(jié)果</p><p> 4.5 學(xué)生信息模塊</p><p> 當(dāng)選擇“學(xué)生”時(shí),單擊“登錄”按鈕就可以進(jìn)入學(xué)生信息管理系統(tǒng)了,其信息量很大,具體如下所述:</p><p>
52、; 4.5.1 設(shè)計(jì)構(gòu)想</p><p> 進(jìn)入了學(xué)生信息管理系統(tǒng),就可以對(duì)摸個(gè)學(xué)生的信息進(jìn)行輸入、修改和刪除,也能對(duì)同學(xué)的信息進(jìn)行查詢和對(duì)程序進(jìn)行查詢。當(dāng)打算離開時(shí),還要有一個(gè)選項(xiàng)用來(lái)退出學(xué)生信息管理系統(tǒng)。</p><p> 4.5.2 實(shí)現(xiàn)學(xué)生信息模塊主界面</p><p> 根據(jù)設(shè)計(jì)構(gòu)想,首先要搭建一個(gè)界面,然后吧學(xué)生信息操作的每一部分分為3大塊,分別
53、是信息、查詢、和其他,并把他們做成菜單形式,最后將對(duì)信息的輸入,修改和刪除做成子菜單添加到信息菜單下;將查詢信息和查詢成績(jī)添加到查詢菜單下;將突出添加到其他菜單下,并把他做成子菜單放在一個(gè)菜單下,這樣做是為了如果以后需要更多的功能,可以很方便的進(jìn)行添加。</p><p> 創(chuàng)建菜單需要的定義JMenu,創(chuàng)建子菜單需要定義JMenuItem,并且要指明是添加到哪個(gè)菜單下面,下面是學(xué)生管理模塊主界面的部分代碼<
54、;/p><p> class student_manage extends JFrame implements ActionListener{</p><p> JMenuBar jm=new JMenuBar();</p><p> JMenu jm1=new JMenu("信息");</p><p> JMenuI
55、tem jmi1=new JMenuItem("增加信息");</p><p> JMenuItem jmi2=new JMenuItem("刪除信息");</p><p> JMenuItem jmi3=new JMenuItem("修改信息");</p><p> JMenu jm2=new JM
56、enu("查詢");</p><p> JMenuItem jmi21=new JMenuItem("基本信息查詢");</p><p> JMenuItem jm22=new JMenuItem("成績(jī)查詢");</p><p> JMenu jm3=new JMenu("其他"
57、);</p><p> JMenuItem jmi31=new JMenuItem("退出");</p><p> //添加組件與設(shè)置位置部分代碼與 Info_Manage.java類似</p><p> public void actionPerformed(ActionEvent e){</p><p> if
58、(e.getSource()==jmi1) new AddStudent();</p><p> if(e.getSource()==jmi2) new DeleteStudent();</p><p> if(e.getSource()==jmi3) new GetStudent();</p><p> if(e.getSource()==jmi21) ne
59、w SetStudent();</p><p> if(e.getSource()==jmi31) new UsingExit().setVisible(true);</p><p> if(e.getSource()==jm22) new SetGrade();</p><p><b> }</b></p><p&g
60、t;<b> }</b></p><p> 其運(yùn)行結(jié)果如圖4-3所示:</p><p> 圖4-3 student_manage.java的顯示結(jié)果</p><p><b> 4.5.3添加信息</b></p><p> 每個(gè)子菜單都對(duì)應(yīng)著一個(gè)操作界面,接下來(lái)對(duì)每一個(gè)子菜單進(jìn)行講解。當(dāng)選擇
61、信息菜單下的“增加信息”子菜單時(shí),將彈出如圖所示的界面,它調(diào)用了AddStudent.java類實(shí)現(xiàn)該功能。通過(guò)對(duì)“增加信息”這一子菜單設(shè)置監(jiān)聽,彈出界面。AddStudent.java的代碼如下:</p><p> class AddStudent extends JFrame implements ActionListener{</p><p> JLabel JL=new JLa
62、bel("添加基本信息",JLabel.CENTER);</p><p> JLabel JLNumber=new JLabel("學(xué)號(hào)");</p><p> JTextField JTNumber=new JTextField();</p><p> JLabel JLName=new JLabel("姓名
63、");</p><p> JTextField JTName=new JTextField();</p><p> JLabel JLClass=new JLabel("班級(jí)");</p><p> JTextField JTClass=new JTextField();</p><p> JLabel
64、JLsex=new JLabel("性別");</p><p> ButtonGroup BG=new ButtonGroup();</p><p> JRadioButton JRB1=new JRadioButton("男");</p><p> JRadioButton JRB2=new JRadioButton(
65、"女");</p><p> JLabel JL1=new JLabel("學(xué)院");</p><p> JTextField JT1=new JTextField();</p><p> JLabel JL2=new JLabel("生日");</p><p> JText
66、Field JT2=new JTextField();</p><p> JButton JBAdd=new JButton("添加");</p><p> JButton JBNext=new JButton("重置");</p><p> JButton JBExit=new JButton("退出&quo
67、t;);</p><p> String sql="";</p><p> //添加組件與設(shè)置位置部分代碼與 Info_Manage.java類似</p><p> public void actionPerformed(ActionEvent e){</p><p> if(e.getSource()==JBAd
68、d){</p><p> String snumber=JTNumber.getText();</p><p> String sname=JTName.getText();</p><p> String sclass=JTClass.getText();</p><p> String ssex="女";<
69、;/p><p> if(JRB1.isSelected())</p><p><b> ssex="男";</b></p><p> String scollect=JT1.getText();</p><p> String sbir=JT2.getText();</p><
70、p> sql="select * from student where id='"+snumber+"'";</p><p><b> try{</b></p><p> Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");</p>
71、;<p> Connection cot=DriverManager.getConnection(</p><p> "jdbc:odbc:student1","","");</p><p> Statement stm=cot.createStatement();</p><p>
72、ResultSet rs=stm.executeQuery(sql);</p><p> if(rs.next())</p><p> JOptionPane.showMessageDialog(null, "該號(hào)碼已存在!");</p><p><b> else{</b></p><p>
73、 sql="insert into student values('"+snumber+"','"</p><p> +sname+"','"+sclass+"','"+ssex+"','"</p><p> +sc
74、ollect+"','"+sbir+"')";</p><p> int i=stm.executeUpdate(sql);</p><p> if(i>0) JOptionPane.showMessageDialog(null, "添加成功!");</p><p> e
75、lse JOptionPane.showMessageDialog(null, "刪除失??!");</p><p><b> }</b></p><p><b> }</b></p><p> catch(Exception ee){</p><p><b>
76、}</b></p><p><b> }</b></p><p> if(e.getSource()==JBNext){</p><p> JTNumber.setText(null);</p><p> JTName.setText(null);</p><p> JTCl
77、ass.setText(null);</p><p> JT1.setText(null);</p><p> JT2.setText(null);</p><p><b> }</b></p><p> if(e.getSource()==JBExit){</p><p> setVi
78、sible(false);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 其運(yùn)行結(jié)果如圖4-4所示:</p><p> 圖4-4 AddStudent.ja
79、va的顯示結(jié)果</p><p> 4.5.4 刪除信息</p><p> 當(dāng)選擇信息菜單下的刪除信息子菜單是,將彈出圖 所示的界面,它調(diào)用了DeleteStudent.java類實(shí)現(xiàn)該功能,其代碼如下:</p><p> class DeleteStudent extends JFrame implements ActionListener{</p>
80、;<p> JLabel JL=new JLabel("刪除基本信息",JLabel.CENTER);</p><p> JLabel JLNumber=new JLabel("學(xué)號(hào)");</p><p> JTextField JTNumber =new JTextField();</p><p> J
81、Label JLName=new JLabel("姓名");</p><p> JTextField JTName=new JTextField();</p><p> JButton JBDel=new JButton("刪除");</p><p> JButton JBNext=new JButton("重
82、置");</p><p> JButton JBExit=new JButton("退出");</p><p> String sql="";</p><p> //添加組件與設(shè)置位置部分代碼與 Info_Manage.java類似</p><p> public void acti
83、onPerfomed(ActionEvent e){</p><p> if(e.getSource()==JBDel){</p><p> String snumber=JTNumber.getText();</p><p> String sname=JTName.getText();</p><p> sql="sel
84、ect * from student where Id='"+snumber+"'";</p><p><b> try{</b></p><p> Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");</p><p> Connec
85、tion cot=DriverManager.getConnection(</p><p> "jdbc:odbc:student1","","");</p><p> Statement stm=cot.createStatement();</p><p> ResultSet rs=stm.exe
86、cuteQuery(sql);</p><p> if(rs.next()){</p><p> sql="delete * from student where Id='"+snumber+"'";</p><p> int n=stm.executeUpdate(sql);</p>&l
87、t;p> if(n>0) JOptionPane.showMessageDialog(null,"刪除成功");</p><p> else JOptionPane.showMessageDialog(null,"刪除失敗");</p><p><b> }</b></p><p>
88、else JOptionPane.showMessageDialog(null,"此用戶不存在");</p><p><b> }</b></p><p> catch(Exception er){</p><p><b> }</b></p><p><b>
89、 }</b></p><p> if(e.getSource()==JBNext){</p><p> JTNumber.setText(null);</p><p> JTName.setText(null);</p><p><b> }</b></p><p> if(
90、e.getSource()==JBExit) setVisible(false);</p><p><b> }</b></p><p><b> }</b></p><p> 其運(yùn)行結(jié)果如圖4-5所示:</p><p> 圖4-5 DeleteStudent.java的顯示結(jié)果</p
91、><p><b> 4.5.5修改信息</b></p><p> 當(dāng)選擇“信息”菜單下的“修改信息”子菜單時(shí),將彈出如圖所示的界面,他將點(diǎn)用了GetStudent.java類實(shí)現(xiàn)該功能。GetStudent.java的代碼如下:</p><p> class GetStudent extends JFrame implements Actio
92、nListener{</p><p> JLabel JL=new JLabel("學(xué)生基本信息",JLabel.CENTER);</p><p> JLabel JLNumber=new JLabel("學(xué)號(hào)");</p><p> JTextField JTNumber=new JTextField();</p
93、><p> JLabel JLName=new JLabel("姓名");</p><p> JTextField JTName=new JTextField();</p><p> JLabel JLClass=new JLabel("班級(jí)");</p><p> JTextField JTCla
94、ss=new JTextField();</p><p> JLabel JLsex=new JLabel("性別");</p><p> ButtonGroup BG=new ButtonGroup();</p><p> JRadioButton JRB1=new JRadioButton("男");</p&g
95、t;<p> JRadioButton JRB2=new JRadioButton("女");</p><p> JLabel JL1=new JLabel("學(xué)院");</p><p> JTextField JT1=new JTextField();</p><p> JLabel JL2=new J
96、Label("生日");</p><p> JTextField JT2=new JTextField();</p><p> JButton JBGet=new JButton("修改");</p><p> JButton JBNext=new JButton("取消");</p>
97、<p> JButton JBExit=new JButton("退出");</p><p> String sql="";</p><p> //添加組件與設(shè)置位置部分代碼與 Info_Manage.java類似</p><p> public void actionPerformed(ActionEven
98、t e){</p><p> if(e.getSource()==JBGet){</p><p> String snumber=JTNumber.getText();</p><p> String sname=JTName.getText();</p><p> String sclass=JTClass.getText();&l
99、t;/p><p> String ssex="女",sql;</p><p> if(JRB1.isSelected())</p><p><b> ssex="男";</b></p><p> String scollect=JT1.getText();</p>
100、<p> String sbir= JT2.getText();</p><p> sql="select * from student where ld='"+snumber+"'";</p><p><b> try{</b></p><p> Class.for
101、Name("sun.jdbc.odbc.JdbcOdbcDriver");</p><p> Connection cot=DriverManager.getConnection(</p><p> "jdbc:odbc:student1","","");</p><p> Sta
102、tement stm=cot.createStatement();</p><p> ResultSet rs=stm.executeQuery(sql);</p><p> if(rs.next()){</p><p> sql="update student set name='"+sname+"',class
103、='"</p><p> +sclass+"',sex='"+ssex+"',collect='"</p><p> +scollect+"',bir='"+sbir+"' where ld='"</p><
104、;p> +snumber+"'";</p><p> int n=stm.executeUpdate(sql);</p><p> if(n>0) JOptionPane.showMessageDialog(null,"修改成功");</p><p> else JOptionPane.showMe
105、ssageDialog(null,"修改失??!");</p><p><b> }</b></p><p> else JOptionPane.showMessageDialog(null,"此用戶不存在!");</p><p><b> }</b></p>&l
106、t;p> catch(Exception er){</p><p><b> }</b></p><p><b> }</b></p><p> if (e.getSource()==JBNext){</p><p> JTNumber.setText(null);</p>
107、;<p> JTName.setText(null);</p><p> JTClass.setText(null);</p><p> JT1.setText(null);</p><p> JT2.setText(null);</p><p><b> }</b></p><
108、;p> if(e.getSource()==JBExit){</p><p> setVisible(false);</p><p><b> }</b></p><p><b> }</b></p><p> public static void main (String args
109、[]){</p><p> new GetStudent();</p><p><b> }</b></p><p><b> }</b></p><p> 其運(yùn)行結(jié)果如圖4-6所示:</p><p> 圖4-6 GetStudent.java的顯示結(jié)果</p
110、><p> 4.5.6 基本信息查詢</p><p> 當(dāng)選擇“查詢”菜單下的“基本信息查詢”子菜單時(shí),將彈出如圖所示的界面,它調(diào)用了SetStudent.java類實(shí)現(xiàn)該功能。SetStudent.java的代碼如下:</p><p> class SetStudent extends JFrame implements ActionListener {<
111、/p><p> JLabel JL=new JLabel("查詢基本信息",JLabel.CENTER);</p><p> JLabel JLNumber=new JLabel("學(xué)號(hào)");</p><p> JTextField JTNumber=new JTextField();</p><p>
112、; JLabel JLName=new JLabel("姓名");</p><p> JTextField JTName=new JTextField();</p><p> JLabel JLClass=new JLabel("班級(jí)");</p><p> JTextField JTClass=new JTextFi
113、eld();</p><p> JLabel JLsex=new JLabel("性別");</p><p> ButtonGroup BG=new ButtonGroup();</p><p> JRadioButton JRB1=new JRadioButton("男");</p><p>
114、 JRadioButton JRB2=new JRadioButton("女");</p><p> JLabel JL1=new JLabel("學(xué)院");</p><p> JTextField JT1=new JTextField();</p><p> JLabel JL2=new JLabel("生
115、日");</p><p> JTextField JT2=new JTextField();</p><p> JButton JBSet=new JButton("查詢");</p><p> JButton JBNext=new JButton("重置");</p><p> JB
116、utton JBExit=new JButton("退出");</p><p> String sql="";</p><p> //添加組件與設(shè)置位置部分代碼與 Info_Manage.java類似</p><p> public void actionperfoemaed(ActionEvent e){</p&
117、gt;<p> if(e.getSource()==JBSet){</p><p> String snumber=JTNumber.getText();</p><p> String sname=JTName.getText();</p><p> String sclass=JTClass.getText();</p>&l
118、t;p> String ssex="女";</p><p> if(JRB1.isSelected()) ssex="男";</p><p> String scollect=JT1.getText();</p><p> String sbir=JT2.getText();</p><p&g
119、t; sql="select * from student where Id='"+snumber+"'";</p><p><b> try{</b></p><p> Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");</p>
120、<p> Connection cot=DriverManager.getConnection("jdbc.odbc.student1","","");</p><p> Statement stm=cot.createStatement();</p><p> ResultSet rs=stm.executeQu
121、ery(sql);</p><p> if(rs.next()){</p><p> String name=rs.getString(2);</p><p> JTName.setText(name);</p><p> String clas=rs.getString(3);</p><p> JTCla
122、ss.setText(clas);</p><p> String sex=rs.getString(4);</p><p> JRB1.setText(sex);</p><p> String collect=rs.getString(5);</p><p> JT1.setText(collect);</p>&l
123、t;p> String bir=rs.getString(6);</p><p> JT2.setText(bir);</p><p> int n=stm.executeUpdate(sql);</p><p> if(n>0) JOptionPane.showMessageDialog(null,"查詢成功");</
124、p><p> else JOptionPane.showMessageDialog(null,"查詢失敗");</p><p><b> }</b></p><p> Else JOptionPane.showMessageDialog(null,"此用戶不存在");</p><p&
125、gt; }catch(Exception ee){</p><p><b> }</b></p><p><b> }</b></p><p> if(e.getSource()==JBNext){</p><p> JTNumber.setText(null);</p>&
126、lt;p> JTName.setText(null);</p><p> JTClass.setText(null);</p><p> JT1.setText(null);</p><p> JT2.setText(null);</p><p><b> }</b></p><p&g
127、t; if(e.getSource()==JBExit) setVisible(false);</p><p><b> }</b></p><p><b> }</b></p><p> 其運(yùn)行結(jié)果如圖4-6所示:</p><p> 圖4-7 SetStudent.java的顯示結(jié)果&l
128、t;/p><p> 4.5.7 成績(jī)查詢</p><p> 當(dāng)選擇“查詢”菜單下的“成績(jī)查詢”子菜單時(shí),調(diào)用SetGrade.java類來(lái)實(shí)現(xiàn)功能。SetGrade.java的代碼如下:</p><p> class SetGrade extends JFrame implements ActionListener{</p><p> J
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《面向?qū)ο蟪绦蛟O(shè)計(jì)與java》課程設(shè)計(jì)--學(xué)生信息管理系統(tǒng)
- 《面向?qū)ο蟪绦蛟O(shè)計(jì)與java》課程設(shè)計(jì) 學(xué)生信息管理系統(tǒng)
- java課程設(shè)計(jì)--java面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)
- 《面向?qū)ο蟪绦蛟O(shè)計(jì)》課程設(shè)計(jì)---java日歷
- 《面向?qū)ο蟪绦蛟O(shè)計(jì)》課程設(shè)計(jì)java日歷
- 《c++面向?qū)ο蟪绦蛟O(shè)計(jì)》課程設(shè)計(jì)——職工信息管理系統(tǒng)
- 《面向?qū)ο蟪绦蛟O(shè)計(jì)》課程設(shè)計(jì)報(bào)告---圖書信息管理系統(tǒng)
- 《面向?qū)ο蟪绦蛟O(shè)計(jì)》人員信息管理系統(tǒng)
- 《面向?qū)ο蟪绦蛟O(shè)計(jì)(java)》
- 【課程設(shè)計(jì)】面向?qū)ο蟪绦蛟O(shè)計(jì)
- 面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)
- 面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)
- 面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)
- java程序設(shè)計(jì)課程設(shè)計(jì)員工信息管理系統(tǒng)設(shè)計(jì)
- 面向?qū)ο蟪绦蛟O(shè)計(jì)學(xué)生選課系統(tǒng)課程設(shè)計(jì)報(bào)告
- 面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)報(bào)告
- 面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)報(bào)告
- 《面向?qū)ο蟮某绦蛟O(shè)計(jì)》課程設(shè)計(jì)
- c++程序設(shè)計(jì)課程設(shè)計(jì)---學(xué)生信息管理系統(tǒng)
- 高級(jí)程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告—學(xué)生信息管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論