java+mysql學(xué)生信息管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第1頁
已閱讀1頁,還剩133頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、<p>  課設(shè)名稱: 學(xué)生成績管理系統(tǒng) </p><p>  院 (系): </p><p>  姓名: </p><p>  學(xué)號(hào): </p>

2、<p>  年 級(jí): </p><p>  專業(yè)班級(jí): </p><p>  指導(dǎo)教師: </p><p>  時(shí)間: 2012年6月 </p>

3、<p><b>  目錄</b></p><p>  第一部分 摘 要3</p><p>  第二部分 目的背景與意義4</p><p>  第三部分 需求分析4</p><p>  第四部分 系統(tǒng)設(shè)計(jì)4</p><p>  4.1 結(jié)構(gòu)設(shè)計(jì)4</p><

4、;p>  4.2 功能結(jié)構(gòu)圖5</p><p>  4.3 功能流程以及工作流描述6</p><p>  第五部分 數(shù)據(jù)庫的設(shè)計(jì)6</p><p>  5.1數(shù)據(jù)庫設(shè)計(jì)6</p><p>  5.2數(shù)據(jù)表的設(shè)計(jì)7</p><p>  第六部分 詳細(xì)設(shè)計(jì)8</p><p>  6

5、.1 學(xué)生管理系統(tǒng)主界面模塊8</p><p>  6.2 學(xué)生信息管理模塊9</p><p>  6.3 課程信息管理模塊11</p><p>  6.4 查詢模塊12</p><p>  圖6.5 數(shù)據(jù)庫操作模塊13</p><p>  第七部分 課程設(shè)計(jì)心得13</p><p>

6、;  第八部分 附錄(按名稱排序)14</p><p><b>  第一部分 摘 要</b></p><p>  該項(xiàng)目開發(fā)的軟件為學(xué)校學(xué)生信息管理系統(tǒng)軟件,是鑒于目前學(xué)校學(xué)生人數(shù)劇增,學(xué)生信息呈爆炸性增長的前提下,學(xué)校對學(xué)生信息管理的自動(dòng)化與準(zhǔn)確化的要求日益強(qiáng)烈的背景下構(gòu)思出來的,該軟件設(shè)計(jì)完成后可用于所有教育單位(包括學(xué)校,學(xué)院等等)的學(xué)生信息的管理.<

7、/p><p>  目前社會(huì)上信息管理系統(tǒng)發(fā)展飛快,各個(gè)企事業(yè)單位都引入了信息管理軟件來管理自己日益增長的各種信息,學(xué)生管理系統(tǒng)也是有了很大的發(fā)展,商業(yè)化的學(xué)生信息管理軟件也不少.但本系統(tǒng)完全獨(dú)立開發(fā),力求使系統(tǒng)功能簡潔明了,但功能齊全且易于操作</p><p>  學(xué)生信息管理系統(tǒng)是一個(gè)教育單位不可缺少的部分,它的內(nèi)容對于學(xué)校的決策者和管理者來說都至關(guān)重要。</p><p&

8、gt;  本文介紹了學(xué)生信息管理系統(tǒng)的開發(fā)整個(gè)過程,闡述了系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)和系統(tǒng)實(shí)施的全過程。在開發(fā)方法上本系統(tǒng)利用了軟件工程化的思想和方法,總體上采用結(jié)構(gòu)化生命周期開發(fā)方法,具體模塊實(shí)施采用了原型法和面向?qū)ο笙到y(tǒng)開發(fā)方法。并采用JAVA作為開發(fā)工具,mysql作為后臺(tái)數(shù)據(jù)庫。本系統(tǒng)具有學(xué)生管理、課程管理、成績管理、信息查詢等功能,分成四大模塊,每個(gè)模塊都相互聯(lián)系,但不相互干擾,這符合了軟件模塊開發(fā)的思想。</p&g

9、t;<p>  本系統(tǒng)完成了學(xué)生信息的增加、修改、刪除、查詢和選課,課程信息的增加、修改、刪除、查詢,成績的添加、修改、查詢等功能。</p><p><b>  【關(guān)鍵字】:</b></p><p>  信息管理系統(tǒng)、模塊設(shè)計(jì)、軟件工程。</p><p>  第二部分 目的背景與意義</p><p>  學(xué)

10、生信息管理系統(tǒng)是一個(gè)教育單位不可缺少的部分。一個(gè)功能齊全、簡單易用的信息管理系統(tǒng)不但能有效地減輕學(xué)校相關(guān)工作人員的工作負(fù)擔(dān),它的內(nèi)容對于學(xué)校的決策者和管理者來說都至關(guān)重要。所以學(xué)生信息管理系統(tǒng)應(yīng)該能夠?yàn)橛脩籼峁┏渥愕男畔⒑涂旖莸牟樵兪侄巍5恢币詠砣藗兪褂脗鹘y(tǒng)人工的方式管理文件檔案、統(tǒng)計(jì)和查詢數(shù)據(jù),這種管理方式存在著許多缺點(diǎn),如:效率低、保密性差,人工的大量浪費(fèi);另外時(shí)間一長,將產(chǎn)生大量的文件和數(shù)據(jù),這對于查找、更新和維護(hù)都帶來了不少困

11、難。隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識(shí),它已進(jìn)入人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著來越重要的作用。</p><p>  作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對學(xué)校的各類信息進(jìn)行管理,具有手工管理所無法比擬的優(yōu)點(diǎn).例如:檢索迅速、查詢方便、效率高、可靠性好、存儲(chǔ)量大、保密性好、壽命長、成本低等。這些優(yōu)點(diǎn)能夠極大地提高學(xué)校信息管理的效率,也是一個(gè)單位科學(xué)化、正規(guī)化管理,與世界接軌的重要條件

12、。</p><p><b>  第三部分 需求分析</b></p><p>  學(xué)生信息管理系統(tǒng)的功能總結(jié)起來,共需要以下幾個(gè)方面:</p><p><b>  學(xué)生信息管理</b></p><p>  管理所有學(xué)生的基本信息,包括增加、修改、刪除等,也可以根據(jù)各種條件查詢出需要的信息。</p

13、><p><b>  課程信息管理</b></p><p>  管理所有課程的基本信息,包括增加、修改、刪除等,也可以根據(jù)各種條件查詢出需要的信。</p><p><b>  選課與成績管理</b></p><p>  根據(jù)學(xué)號(hào)進(jìn)行選課,登記課程的成績,可以根據(jù)學(xué)號(hào)查詢出來選課信息與成績。</p&

14、gt;<p><b>  第四部分 系統(tǒng)設(shè)計(jì)</b></p><p><b>  4.1 結(jié)構(gòu)設(shè)計(jì)</b></p><p>  根據(jù)對系統(tǒng)的需求分析,本系統(tǒng)將分為4個(gè)模塊:</p><p><b>  學(xué)生管理:</b></p><p>  管理學(xué)生的基本信息,包

15、括個(gè)人信息的添加、修改、刪除,以及選課信息的添加。</p><p><b>  課程管理:</b></p><p>  管理課程的基本信息,包括課程信息的添加、修改和刪除。</p><p><b>  成績管理:</b></p><p>  管理學(xué)生的選課的成績信息,包括成績的登記與修改。</

16、p><p><b>  信息查詢:</b></p><p>  查詢已經(jīng)登記的信息,包括學(xué)生的基本信息、課程的基本信息與成績信息。</p><p><b>  4.2 功能結(jié)構(gòu)圖</b></p><p>  系統(tǒng)的功能結(jié)構(gòu)如圖1所示。</p><p>  圖1 學(xué)生管理系統(tǒng)功能結(jié)

17、構(gòu)圖</p><p>  4.3 功能流程以及工作流描述</p><p><b>  增加學(xué)生信息</b></p><p>  系統(tǒng)操作人員打開學(xué)生信息添加界面,輸入相關(guān)的信息(姓名、性別、民族、籍貫、出生日期、入學(xué)年份、專業(yè)和學(xué)院等),在數(shù)據(jù)庫中添加相關(guān)數(shù)據(jù)。</p><p><b>  修改學(xué)生信息<

18、/b></p><p>  根據(jù)學(xué)生的學(xué)號(hào)查詢出該學(xué)生的相關(guān)信息,修改相關(guān)條目后保存在數(shù)據(jù)庫中。</p><p><b>  刪除學(xué)生信息</b></p><p>  根據(jù)學(xué)生的學(xué)號(hào)查詢出該學(xué)生的相關(guān)信息,確定刪除后,在數(shù)據(jù)庫中刪除該信息。</p><p><b>  學(xué)生選課</b><

19、/p><p>  選擇學(xué)生學(xué)號(hào)與需要選擇的課程,確定無誤后保存,數(shù)據(jù)庫中將自動(dòng)添加新的選課記錄。</p><p><b>  增加課程信息</b></p><p>  系統(tǒng)操作人員根據(jù)打開的課程增加界面,輸入相關(guān)信息(課程名稱、授課教師、課程學(xué)分、課程系數(shù)、上課地點(diǎn)等),在數(shù)據(jù)庫中添加相關(guān)的數(shù)據(jù)。</p><p><b

20、>  修改課程信息</b></p><p>  根據(jù)課程號(hào)查詢出該課程的相關(guān)信息,修改條目后保存在數(shù)據(jù)庫中。</p><p><b>  刪除課程信息</b></p><p>  根據(jù)課程號(hào)查詢出該課程的相關(guān)信息,確認(rèn)刪除后,在數(shù)據(jù)庫中刪除該信息。</p><p><b>  登記成績<

21、/b></p><p>  根據(jù)學(xué)號(hào),以及該學(xué)生所選擇的課程,進(jìn)行成績登記,為選課的同學(xué)將無法登記。</p><p><b>  修改成績</b></p><p>  對已經(jīng)登記的成績信息進(jìn)行修改。</p><p><b>  學(xué)生查詢</b></p><p>  可以

22、根據(jù)學(xué)生學(xué)號(hào)、學(xué)生姓名、學(xué)生性別、學(xué)生所學(xué)專業(yè)、學(xué)生所屬學(xué)院來對學(xué)生信息進(jìn)行查詢,所有符合查詢條件的學(xué)生信息將都被顯示出來。</p><p><b>  課程查詢</b></p><p>  按照課程名稱和授課教師的名稱對課程詳細(xì)信息進(jìn)行查詢,所有符合查詢條件的課程信息都將會(huì)被顯示出來。</p><p><b>  成績查詢:<

23、/b></p><p>  根據(jù)學(xué)生的學(xué)號(hào)來查詢該學(xué)生所有課程的成績。</p><p>  第五部分 數(shù)據(jù)庫的設(shè)計(jì)</p><p><b>  5.1數(shù)據(jù)庫設(shè)計(jì)</b></p><p>  此系統(tǒng)使用的是mysql數(shù)據(jù)庫,由于此系統(tǒng)需要的數(shù)據(jù)量不是很大,所以選擇比較簡便的mysql數(shù)據(jù)庫。此系統(tǒng)的數(shù)據(jù)庫名稱是stu

24、dentsys,創(chuàng)建語句如下:</p><p>  Create database studentsys0.1;</p><p><b>  5.2數(shù)據(jù)表的設(shè)計(jì)</b></p><p>  數(shù)據(jù)庫中包含三個(gè)表,即是學(xué)生信息表(student)、課程信息表(Course)和學(xué)生選課表(SC),設(shè)計(jì)要求如表1~3所示。</p><

25、;p>  表1 學(xué)生信息表(Student)</p><p>  表2 課程信息表(Course)</p><p>  表3 學(xué)生選課表(SC)</p><p>  數(shù)據(jù)表Student的數(shù)據(jù)庫操作語句是:</p><p>  create table Student(</p><p>  Snum varch

26、ar(20) primary key,</p><p>  Sname Varchar(20),</p><p>  Ssex varchar(2),</p><p>  Sethnic varchar(4),</p><p>  Shome Varchar(20),</p><p>  Syear varchar

27、(10),</p><p>  Smajor Varchar(10),</p><p>  Scollege varchar(10),</p><p>  Sbirth varchar(10),</p><p>  Spoint varchar(10)</p><p><b>  );</b>&l

28、t;/p><p>  數(shù)據(jù)表Course的數(shù)據(jù)庫操作語句是:</p><p>  create table Course(</p><p>  Cnum varchar(10) primary key,</p><p>  Cname Varchar(20),</p><p>  Cteather varchar(1

29、0),</p><p>  Cplace varchar(10),</p><p>  Cpoint smallint,</p><p>  Cratio float (2,2)</p><p><b>  );</b></p><p>  數(shù)據(jù)表SC的數(shù)據(jù)庫操作語句是:</p>&

30、lt;p>  create table SC(</p><p>  Snum varchar(20),</p><p>  Cnum varchar(10),</p><p>  Grade float(4,2),</p><p>  primary key (Snum,Cnum),</p><p>  fo

31、reign key(Snum) references Student(Snum),</p><p>  foreign key(Cnum) references Course(Cnum)</p><p><b>  );</b></p><p><b>  第六部分 詳細(xì)設(shè)計(jì)</b></p><p>

32、;  該系統(tǒng)由6個(gè)模塊構(gòu)成,包括學(xué)生管理系統(tǒng)主界面模塊、學(xué)生信息管理模塊、課程信息管理模塊、成績管理模塊、信息查詢模塊和數(shù)據(jù)庫操作模塊,以下分別加以敘述:</p><p>  6.1 學(xué)生管理系統(tǒng)主界面模塊</p><p>  學(xué)生管理系統(tǒng)的主界面模塊包括StuMS.java和StuMain.java兩個(gè)文件。StuMS是學(xué)生管理系統(tǒng)的主運(yùn)行類,其中有整個(gè)程序的主方法main,該文件生成了

33、StuMain類的一個(gè)實(shí)例,從而生成了學(xué)生管理系統(tǒng)的主界面,如圖2所示。StuMain類繼承了JFrame類,實(shí)現(xiàn)了事件監(jiān)聽接口,它有一個(gè)不帶參數(shù)的構(gòu)造函數(shù)StuMain(),用來生成StuMain實(shí)例,StuMain類將所有的功能集中到面板中,面板上的按鍵是按網(wǎng)格排布,生成按鈕,通過按鈕的響應(yīng)函數(shù)調(diào)用其他模塊的函數(shù)來實(shí)現(xiàn)學(xué)生管理系統(tǒng)的各個(gè)功能,以下是主界面的運(yùn)行程序:</p><p>  圖6.1.1 主界面運(yùn)

34、行程序</p><p>  6.2 學(xué)生信息管理模塊</p><p>  學(xué)生信息管理模塊主要由StuInfo.java、AddStuInfo.java、EditStuInfo.java、DelStuInfo.java、SelectCourse.java和StuInfoSearchSnum.java這六個(gè)文件組成,每個(gè)java文件只有一個(gè)類,完全實(shí)現(xiàn)模塊化設(shè)計(jì),StuInfo類是AddSt

35、uInfo、EditStuInfo、DelStuInfo的超類,因?yàn)檫@三個(gè)類生成的界面是相同的具有共同之處。SelectCourse模塊是選課模塊,StuInfoSearchSnum是查詢模塊,用于AddStuInfo、EditStuInfo、DelStuInfo調(diào)用來查詢學(xué)生信息以便增加、修改和刪除學(xué)生信息。</p><p>  學(xué)生信息管理模塊的幾個(gè)界面如下:</p><p>  圖

36、6.2.1 學(xué)生信息添加界面</p><p>  圖6.2.2 學(xué)生信息修改界面</p><p>  圖6.2.3 學(xué)生信息刪除界面</p><p>  圖6.2.3 學(xué)生選課界面</p><p>  6.3 課程信息管理模塊</p><p>  課程信息管理模塊主要由CourseInfo.java、AddCourse

37、Info.java、EditCourseInfo.java、DelCourseInfo.java和StuInfoSearchSnum.java這六個(gè)文件組成,每個(gè)java文件只有一個(gè)類,完全實(shí)現(xiàn)模塊化設(shè)計(jì),CourseInfo類是AddCourseInfo、EditCourseInfo、DelCourseInfo的超類,因?yàn)檫@三個(gè)類生成的界面是相同的具有共同之處。CourseInfoSearchSnum是查詢模塊,用于AddCourse

38、Info、EditCourseInfo、DelCourseInfo調(diào)用來查詢課程以便增加、修改和刪除課程。</p><p>  課程信息管理模塊的幾個(gè)界面如下:</p><p>  圖 6.3.1 課程信息增加界面</p><p>  圖 6.3.1 課程信息修改界面</p><p>  圖 6.3.1 課程信息刪除界面</p>

39、<p><b>  6.4 查詢模塊</b></p><p>  查詢模塊分學(xué)生信息查詢、課程信息查詢和成績查詢:</p><p><b>  界面如下:</b></p><p>  圖 6.4 查詢模塊</p><p>  圖6.5 數(shù)據(jù)庫操作模塊</p><p&g

40、t;  數(shù)據(jù)庫操作模塊包括連接數(shù)據(jù)庫和數(shù)據(jù)庫操作,連接數(shù)據(jù)庫在類DataBase.java中,操作數(shù)據(jù)庫類分別在幾個(gè)不同的類里,學(xué)生信息操作在StuBean.java,選課操作在Csbean.java中,課程操作在CrsBean.java中,代碼在附錄里,這里就不重復(fù)了。</p><p>  第七部分 課程設(shè)計(jì)心得</p><p>  在本系統(tǒng)的開發(fā)過程中,由于本人是初次開發(fā)軟件,在知識(shí)、

41、經(jīng)驗(yàn)方面都存在著不足。另外,在整個(gè)開發(fā)的過程中,時(shí)間也比較倉促。因此,該系統(tǒng)必然會(huì)存在一些缺陷和不足。因?yàn)閷W(xué)生信息管理的整個(gè)流程不夠熟悉,在需求分析時(shí)未能做到完全滿足用戶的需求。</p><p>  盡管本管理系統(tǒng)存在著很多不足,但其功能全面、易于日后程序更新、數(shù)據(jù)庫管理容易、界面友好、操作方便、效率高、安全性好等優(yōu)點(diǎn)是本管理系統(tǒng)所必需的。通過開發(fā)這個(gè)系統(tǒng),我掌握了的項(xiàng)目基本開發(fā)過程,用到的知識(shí)鞏固了我對JAV

42、A的學(xué)習(xí),但在這次設(shè)計(jì)中的最大收獲并不是掌握這幾門開發(fā)工具的應(yīng)用,而是學(xué)會(huì)了設(shè)計(jì)系統(tǒng)的思維方法,以及與同學(xué)們之間相互幫助的精神。</p><p>  從開始入手到做完報(bào)告,我收獲很多,在這,衷心的感謝趙宏宇老師給予了精心的指導(dǎo)和熱情的幫助,導(dǎo)師提出許多寶貴的設(shè)計(jì)意見,這樣使得我得以順利的完成課程設(shè)計(jì)開發(fā)工作,在短暫的一個(gè)學(xué)期的相處時(shí)間里,老師淵博的知識(shí)、敏銳的思路和實(shí)事求是的工作作風(fēng)給我留下了深刻的印象,這將使得

43、我終身受益,謹(jǐn)此向老師表示衷心的感謝和崇高的敬意!</p><p>  第八部分 附錄(按名稱排序)</p><p>  //////////////////////////////////AddCourseInfo.java//////////////////////</p><p>  import java.awt.event.*;</p>&l

44、t;p>  import java.awt.*;</p><p>  import javax.swing.*;</p><p><b>  /**</b></p><p>  * 課程信息管理模塊</p><p>  * 添加新的課程信息</p><p><b>  */<

45、/b></p><p>  public class AddCourseInfo extends CourseInfo{</p><p>  CrsBean getCnum = new CrsBean();</p><p>  public AddCourseInfo() {</p><p>  this.setTitle("

46、添加課程信息");</p><p>  this.setResizable(false);</p><p>  cNum.setEditable(true);</p><p>  cName.setEditable(true);</p><p>  cTeacher.setEditable(true);</p><

47、;p>  cPoint.setEditable(true);</p><p>  cRatio.setEditable(true);</p><p>  cPlace.setEditable(true);</p><p>  //設(shè)置運(yùn)行位置,使對話框居中</p><p>  Dimension screenSize = Toolkit

48、.getDefaultToolkit().getScreenSize();</p><p>  this.setLocation( (int) (screenSize.width - 400) / 2 ,</p><p>  (int) (screenSize.height - 300) / 2 +45);</p><p><b>  }</b>

49、;</p><p>  public void downInit(){</p><p>  addInfo.setText("增加");</p><p>  addInfo.setFont(new Font("Dialog",0,12));</p><p>  downPanel.add(addInfo

50、);</p><p>  clearInfo.setText("清空");</p><p>  clearInfo.setFont(new Font("Dialog",0,12));</p><p>  downPanel.add(clearInfo);</p><p>  eixtInfo.setTe

51、xt("退出");</p><p>  eixtInfo.setFont(new Font("Dialog",0,12));</p><p>  downPanel.add(eixtInfo);</p><p>  this.contentPane.add(downPanel,BorderLayout.SOUTH);</

52、p><p><b>  //添加事件偵聽</b></p><p>  addInfo.addActionListener(this);</p><p>  clearInfo.addActionListener(this);</p><p>  eixtInfo.addActionListener(this);</p&

53、gt;<p><b>  }</b></p><p><b>  /**</b></p><p><b>  * 事件處理</b></p><p><b>  */</b></p><p>  public void actionPerfor

54、med(ActionEvent e) {</p><p>  Object obj = e.getSource();</p><p>  if (obj == eixtInfo) { //退出</p><p>  this.dispose();</p><p><b>  }</b></p><p&g

55、t;  else if (obj == addInfo) { //增加</p><p>  cNum.setEnabled(false);</p><p>  cName.setEditable(false);</p><p>  cTeacher.setEditable(false);</p><p>  cPoint.setEditabl

56、e(false);</p><p>  cRatio.setEditable(false);</p><p>  cPlace.setEditable(false);</p><p>  addInfo.setEnabled(false);</p><p>  clearInfo.setEnabled(false);</p>&

57、lt;p>  eixtInfo.setEnabled(false);</p><p>  CrsBean addCrs = new CrsBean();</p><p>  addCrs.crsAdd(cNum.getText(),cName.getText(), cTeacher.getText(), cPlace.getText(), cPoint.getText(), cRat

58、io.getText());</p><p>  this.dispose();</p><p>  AddCourseInfo aci = new AddCourseInfo();</p><p>  aci.downInit();</p><p>  aci.pack();</p><p>  aci.setVis

59、ible(true);</p><p>  this.dispose();</p><p><b>  }</b></p><p>  else if (obj == clearInfo) { //清空</p><p>  setNull();</p><p>  cNum.setText(&qu

60、ot;");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  //////////////////////////////////AddGradeInfo.java//////

61、////////////////</p><p>  import java.awt.event.*;</p><p>  import java.awt.*;</p><p>  import javax.swing.*;</p><p><b>  /**</b></p><p>  * 成績

62、信息管理模塊</p><p>  * 添加新的成績信息</p><p><b>  */</b></p><p>  public class AddGradeInfo extends GradeInfo implements ActionListener{</p><p>  public AddGradeInfo()

63、 {</p><p>  this.setTitle("添加成績信息");</p><p>  this.setResizable(false);</p><p>  //設(shè)置運(yùn)行位置,使對話框居中</p><p>  Dimension screenSize = Toolkit.getDefaultToolkit().g

64、etScreenSize();</p><p>  this.setLocation( (int) (screenSize.width - 400) / 2 ,</p><p>  (int) (screenSize.height - 300) / 2 +45);</p><p><b>  }</b></p><p>

65、  public void downInit(){</p><p>  addInfo.setText("增加");</p><p>  addInfo.setFont(new Font("Dialog",0,12));</p><p>  downPanel.add(addInfo);</p><p>

66、;  eixtInfo.setText("退出");</p><p>  eixtInfo.setFont(new Font("Dialog",0,12));</p><p>  downPanel.add(eixtInfo);</p><p>  this.contentPane.add(downPanel,BorderLa

67、yout.SOUTH);</p><p>  sNum.addActionListener(this);</p><p>  addInfo.addActionListener(this);</p><p>  eixtInfo.addActionListener(this);</p><p><b>  }</b>&l

68、t;/p><p><b>  /**</b></p><p><b>  * 事件處理</b></p><p><b>  */</b></p><p>  public void actionPerformed(ActionEvent e) {</p><p&

69、gt;  Object obj = e.getSource();</p><p>  if (obj == addInfo) { //增加</p><p>  cNum.setEnabled(false);</p><p>  cName.setEditable(false);</p><p>  cTeacher.setEditable(f

70、alse);</p><p>  Grade.setEditable(false);</p><p>  sNum.setEditable(false);</p><p>  sName.setEditable(false);</p><p>  addInfo.setEnabled(false);</p><p> 

71、 clearInfo.setEnabled(false);</p><p>  eixtInfo.setEnabled(false);</p><p>  csBean addGrade = new csBean();</p><p>  addGrade.csModify(cNum.getText(),(String)sNum.getSelectedItem(),

72、Grade.getText());</p><p>  this.dispose();</p><p>  AddGradeInfo agi = new AddGradeInfo();</p><p>  agi.downInit();</p><p>  agi.pack();</p><p>  agi.setVi

73、sible(true);</p><p><b>  }</b></p><p>  else if (obj == eixtInfo) { //退出</p><p>  this.dispose();</p><p><b>  }</b></p><p>  else i

74、f (obj == sNum) { //選擇學(xué)號(hào)</p><p>  StuBean sN = new StuBean();</p><p>  sName.setText(sN.stuSearch((String)sNum.getSelectedItem())[0]);</p><p>  if(cName.getItemCount()>0){</p&

75、gt;<p>  cName.removeAllItems();</p><p><b>  }</b></p><p>  csBean cN = new csBean();</p><p>  cReturn = cN.cNameSearch((String)sNum.getSelectedItem());</p>

76、<p>  if(cReturn == null){</p><p>  cName.removeActionListener(this);</p><p>  JOptionPane.showMessageDialog(null,"該學(xué)生沒有選擇課程!");</p><p>  addInfo.setEnabled(false);

77、</p><p>  cName.setEnabled(false);</p><p><b>  }</b></p><p><b>  else{</b></p><p>  int i = 0;</p><p>  for(i = 0; i < (cReturn.

78、length); i++){</p><p>  cName.addItem(cReturn[i]);</p><p><b>  }</b></p><p>  cName.setEnabled(true);</p><p>  sNum.setEnabled(false);</p><p> 

79、 cName.setSelectedItem(null);</p><p>  cName.addActionListener(this);</p><p><b>  }</b></p><p><b>  }</b></p><p>  else if (obj == cName) { //選擇

80、課程號(hào)</p><p>  CrsBean cSname = new CrsBean();</p><p>  cNum.setText(cSname.crsNameSearch((String)cName.getSelectedItem(),(String)sNum.getSelectedItem())[0]);</p><p>  cTeacher.setTex

81、t(cSname.crsNameSearch((String)cName.getSelectedItem(),(String)sNum.getSelectedItem())[1]);</p><p>  addInfo.setEnabled(true);</p><p>  cName.setEnabled(false);</p><p>  cName.remov

82、eActionListener(this);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  //////////////////////////////////AddStuInfo.j

83、ava//////////////////////</p><p>  import java.awt.event.*;</p><p>  import java.awt.*;</p><p>  import javax.swing.*;</p><p>  /**setNull</p><p>  * 學(xué)生信息管

84、理模塊</p><p>  * 添加新的學(xué)生信息</p><p><b>  */</b></p><p>  public class AddStuInfo extends StuInfo {</p><p>  StuBean getSnum = new StuBean();</p><p>

85、  public AddStuInfo() {</p><p>  this.setTitle("添加學(xué)生信息");</p><p>  this.setResizable(false);</p><p>  sNum.setEditable(true);</p><p>  //sNum.setText("&q

86、uot;+getSnum.getStuId());</p><p>  sName.setEditable(true);</p><p>  sSex.setEditable(true);</p><p>  sSethnic.setEditable(true);</p><p>  sBirth.setEditable(true);<

87、/p><p>  sYear.setEditable(true);</p><p>  sMajor.setEditable(true);</p><p>  sCollege.setEditable(true);</p><p>  sHome.setEditable(true);</p><p>  //設(shè)置運(yùn)行時(shí)窗口

88、的位置</p><p>  Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();</p><p>  this.setLocation((screenSize.width - 400) / 2, </p><p>  (screenSize.height - 300) / 2 + 45

89、);</p><p><b>  }</b></p><p>  public void downInit(){</p><p>  addInfo.setText("增加");</p><p>  addInfo.setFont(new Font("Dialog",0,12));

90、</p><p>  downPanel.add(addInfo);</p><p>  clearInfo.setText("清空");</p><p>  clearInfo.setFont(new Font("Dialog",0,12));</p><p>  downPanel.add(clea

91、rInfo);</p><p>  eixtInfo.setText("退出");</p><p>  eixtInfo.setFont(new Font("Dialog",0,12));</p><p>  downPanel.add(eixtInfo);</p><p><b>  //添

92、加事件偵聽</b></p><p>  addInfo.addActionListener(this);</p><p>  clearInfo.addActionListener(this);</p><p>  eixtInfo.addActionListener(this);</p><p>  this.contentPa

93、ne.add(downPanel,BorderLayout.SOUTH);</p><p><b>  }</b></p><p><b>  /**</b></p><p><b>  * 事件處理</b></p><p><b>  */</b><

94、;/p><p>  public void actionPerformed(ActionEvent e) {</p><p>  Object obj = e.getSource();</p><p>  if (obj == eixtInfo) { //退出</p><p>  this.dispose();</p><p&

95、gt;<b>  }</b></p><p>  else if (obj == addInfo) { //增加</p><p>  sNum.setEnabled(false);</p><p>  sName.setEnabled(false);</p><p>  sSex.setEnabled(false);&l

96、t;/p><p>  sSethnic.setEnabled(false);</p><p>  sBirth.setEnabled(false);</p><p>  sYear.setEnabled(false);</p><p>  sMajor.setEnabled(false);</p><p>  sColle

97、ge.setEnabled(false);</p><p>  sHome.setEnabled(false);</p><p>  addInfo.setEnabled(false);</p><p>  clearInfo.setEnabled(false);</p><p>  eixtInfo.setEnabled(false);&l

98、t;/p><p>  StuBean addStu = new StuBean();</p><p>  addStu.stuAdd(sNum.getText(),sName.getText(), sSex.getText(), sBirth.getText(), sHome.getText(), sSethnic.getText(), sYear.getText(), sMajor.getT

99、ext(), sCollege.getText());</p><p>  this.dispose();</p><p>  AddStuInfo asi = new AddStuInfo();</p><p>  asi.downInit();</p><p>  asi.pack();</p><p>  asi

100、.setVisible(true);</p><p><b>  }</b></p><p>  else if (obj == clearInfo) { //清空</p><p>  setNull();</p><p>  //sNum.setText(""+getSnum.getStuId())

101、;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  //////////////////////////////////CourseInfo.java//////////////////

102、////</p><p>  import javax.swing.*;</p><p>  import java.awt.*;</p><p>  import java.awt.event.*;</p><p>  import java.net.*;</p><p><b>  /**</b&g

103、t;</p><p>  * 課程信息綜合管理類</p><p>  * 提供主界面,供其他類繼承</p><p><b>  */</b></p><p>  public class CourseInfo extends JFrame implements ActionListener{</p><

104、;p>  Container contentPane;</p><p>  JPanel centerPanel = new JPanel();</p><p>  JPanel upPanel = new JPanel();</p><p>  JPanel downPanel = new JPanel();</p><p><

105、b>  //框架的大小</b></p><p>  Dimension faceSize = new Dimension(800, 500);</p><p>  JLabel jLabel1 = new JLabel();</p><p>  JLabel jLabel2 = new JLabel();</p><p> 

106、 JLabel jLabel3 = new JLabel();</p><p>  JLabel jLabel4 = new JLabel();</p><p>  JLabel jLabel5 = new JLabel();</p><p>  JLabel jLabel6 = new JLabel();</p><p>  JTextFi

107、eld cNum = new JTextField(15);</p><p>  JTextField cName = new JTextField(15);</p><p>  JTextField cTeacher = new JTextField(15);</p><p>  JTextField cPoint = new JTextField(15);<

108、;/p><p>  JTextField cRatio = new JTextField(15);</p><p>  JTextField cPlace = new JTextField(15);</p><p>  JButton searchInfo = new JButton();</p><p>  JButton addInfo =

109、new JButton();</p><p>  JButton modifyInfo = new JButton();</p><p>  JButton deleteInfo = new JButton();</p><p>  JButton clearInfo = new JButton();</p><p>  JButton sa

110、veInfo = new JButton();</p><p>  JButton eixtInfo = new JButton();</p><p>  GridBagLayout girdBag = new GridBagLayout();</p><p>  GridBagConstraints girdBagCon;</p><p>

111、  public CourseInfo() {this.setSize(faceSize);</p><p><b>  //設(shè)置標(biāo)題</b></p><p>  this.setTitle("課程綜合信息管理"); </p><p>  this.setResizable(false);</p><p&

112、gt;<b>  //設(shè)置程序圖標(biāo)</b></p><p>  this.setIconImage(getImage("icon.gif"));</p><p><b>  try{</b></p><p><b>  Init();</b></p><p&g

113、t;<b>  }</b></p><p>  catch(Exceptione) {</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p><b>  }</b></p><p>  p

114、ublic void Init() throws Exception {</p><p>  contentPane = this.getContentPane();</p><p>  contentPane.setLayout(new BorderLayout());</p><p><b>  //中部面板的布局</b></p>

115、;<p>  centerPanel.setLayout(girdBag);</p><p>  jLabel1.setText("課程編碼:");</p><p>  jLabel1.setFont(new Font("Dialog",0,12));</p><p>  girdBagCon = new Gri

116、dBagConstraints();</p><p>  girdBagCon.gridx = 0;</p><p>  girdBagCon.gridy = 0;</p><p>  girdBagCon.insets = new Insets(10,10,10,1);</p><p>  girdBag.setConstraints(jL

117、abel1,girdBagCon);</p><p>  centerPanel.add(jLabel1);</p><p>  girdBagCon = new GridBagConstraints();</p><p>  girdBagCon.gridx = 1;</p><p>  girdBagCon.gridy = 0;</

118、p><p>  girdBagCon.insets = new Insets(10,1,10,15);</p><p>  girdBag.setConstraints(cNum,girdBagCon);</p><p>  centerPanel.add(cNum);</p><p>  jLabel2.setText("課程名稱:&

119、quot;);</p><p>  jLabel2.setFont(new Font("Dialog",0,12));</p><p>  girdBagCon = new GridBagConstraints();</p><p>  girdBagCon.gridx = 2;</p><p>  girdBagCon.

120、gridy = 0;</p><p>  girdBagCon.insets = new Insets(10,15,10,1);</p><p>  girdBag.setConstraints(jLabel2,girdBagCon);</p><p>  centerPanel.add(jLabel2);</p><p>  girdBag

121、Con = new GridBagConstraints();</p><p>  girdBagCon.gridx = 3;</p><p>  girdBagCon.gridy = 0;</p><p>  girdBagCon.insets = new Insets(10,1,10,10);</p><p>  girdBag.setC

122、onstraints(cName,girdBagCon);</p><p>  centerPanel.add(cName);</p><p>  jLabel3.setText("授課老師:");</p><p>  jLabel3.setFont(new Font("Dialog",0,12));</p>&

123、lt;p>  girdBagCon = new GridBagConstraints();</p><p>  girdBagCon.gridx = 0;</p><p>  girdBagCon.gridy = 1;</p><p>  girdBagCon.insets = new Insets(10,10,10,1);</p><p&

124、gt;  girdBag.setConstraints(jLabel3,girdBagCon);</p><p>  centerPanel.add(jLabel3);</p><p>  girdBagCon = new GridBagConstraints();</p><p>  girdBagCon.gridx = 1;</p><p&g

125、t;  girdBagCon.gridy = 1;</p><p>  girdBagCon.insets = new Insets(10,1,10,15);</p><p>  girdBag.setConstraints(cTeacher,girdBagCon);</p><p>  centerPanel.add(cTeacher);</p>&

126、lt;p>  jLabel4.setText("課程學(xué)分:");</p><p>  jLabel4.setFont(new Font("Dialog",0,12));</p><p>  girdBagCon = new GridBagConstraints();</p><p>  girdBagCon.gridx

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論