




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)報(bào)告題 目:學(xué)生學(xué)籍管理系統(tǒng)軟件設(shè)計(jì)與實(shí)現(xiàn) 院 (系): 信息科學(xué)與工程學(xué)院 專(zhuān)業(yè)班級(jí): 計(jì)算機(jī)科學(xué)與技術(shù)1201班 學(xué)生姓名: 程偉 學(xué) 號(hào): 20121183011 指導(dǎo)教師: 吳奕 20 14 年 12 月 29 日至20 15 年 1 月 9 日華中科技大學(xué)武昌分校制 面向?qū)ο蟪绦蛟O(shè)計(jì) 課程設(shè)計(jì)任務(wù)書(shū)一、設(shè)計(jì)(調(diào)查報(bào)告/論文)題目學(xué)生學(xué)籍管理系統(tǒng)軟件設(shè)計(jì)與實(shí)現(xiàn)二、設(shè)計(jì)(調(diào)查報(bào)告/論文)主要內(nèi)容內(nèi)容:創(chuàng)建一個(gè)學(xué)生信息的界面,能夠?qū)崿F(xiàn)學(xué)生的學(xué)號(hào),姓名,性別,出生日期,專(zhuān)業(yè)和照片的錄入,修改,查詢(xún),刪除和打印。這樣能夠詳細(xì)準(zhǔn)確的查詢(xún)到學(xué)生的信息,而且能夠更加直觀方便
2、的了解學(xué)生的信息。 基本功能與要求:1 錄入學(xué)生信息:系統(tǒng)操作人員打開(kāi)學(xué)生信息添加界面,輸入相關(guān)的信息(姓名、性別、出生日期、入學(xué)年份、專(zhuān)業(yè)和學(xué)院等)。2 修改學(xué)生信息:根據(jù)學(xué)生的學(xué)號(hào)查詢(xún)出該學(xué)生的相關(guān)信息,修改相關(guān)條目后保存在數(shù)據(jù)庫(kù)中。3 刪除學(xué)生信息:根據(jù)學(xué)生的學(xué)號(hào)查詢(xún)出該學(xué)生的相關(guān)信息,確定刪除后,在數(shù)據(jù)庫(kù)中刪除該信息。4 查詢(xún)、打印學(xué)生信息:可以根據(jù)學(xué)生學(xué)號(hào)、學(xué)生姓名、學(xué)生性別、學(xué)生所學(xué)專(zhuān)業(yè)、學(xué)生所屬學(xué)院來(lái)對(duì)學(xué)生信息進(jìn)行查詢(xún),所有符合查詢(xún)條件的學(xué)生信息將都被顯示出來(lái)。三、原始資料1.面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)指導(dǎo)書(shū)2. 耿祥義JAVA大學(xué)實(shí)用教程北京:清華大學(xué)出版社,2009四、要求的設(shè)
3、計(jì)(調(diào)查/論文)成果1.課程設(shè)計(jì)報(bào)告2.課程設(shè)計(jì)軟件五、進(jìn)程安排布置任務(wù),查找資料、需求分析1天總體設(shè)計(jì)1天詳細(xì)設(shè)計(jì)1.5天編制源程序?qū)崿F(xiàn)3.5天測(cè)試與修改1天撰寫(xiě)課設(shè)報(bào)告2天六、主要參考資料1 張廣彬. Java課程設(shè)計(jì)案例精編(第二版).北京:清華大學(xué)出版社, 2011. 2 耿祥義. Java課程設(shè)計(jì)(第二版).北京:清華大學(xué)出版社, 2008.3 耿祥義JAVA大學(xué)實(shí)用教程北京:清華大學(xué)出版社,20094 鄒林達(dá)陳國(guó)君 Java2程序設(shè)計(jì)基礎(chǔ)北京:清華大學(xué)出版社,20105 鄒林達(dá)Java2程序設(shè)計(jì)基礎(chǔ)實(shí)驗(yàn)指導(dǎo)北京:清華大學(xué),2010指導(dǎo)教師(簽名): 20 年 月 日目 錄1需求與總
4、體設(shè)計(jì)11.1需求分析11.2總體設(shè)計(jì)11.3設(shè)計(jì)要求21.4系統(tǒng)主要功能圖21.5系統(tǒng)主要類(lèi)圖32詳細(xì)設(shè)計(jì)42.1 ManagerWindow類(lèi)42.1.1 成員變量和方法42.1.2 詳細(xì)類(lèi)圖42.2 Student類(lèi)52.2.1 成員變量和方法52.2.2 詳細(xì)類(lèi)圖52.3 StudentPicture類(lèi)52.3.1 成員變量和方法52.3.2 詳細(xì)類(lèi)圖52.4 InputStudent類(lèi)62.4.1 成員變量和方法62.4.2 詳細(xì)類(lèi)圖62.5 Inquest類(lèi)72.5.1 成員變量和方法72.5.2 詳細(xì)類(lèi)圖72.6 ModifySituation類(lèi)82.6.1 成員變量和方法82.
5、6.2 詳細(xì)類(lèi)圖82.7 Delete類(lèi)92.7.1成員變量和方法92.7.2詳細(xì)類(lèi)圖93編碼實(shí)現(xiàn)104系統(tǒng)測(cè)試384.1ManagerWindow創(chuàng)建窗口384.2InputStudent學(xué)生信息錄入窗口384.3Inquest查詢(xún),打印窗口394.4 ModifySituation信息修改窗口394.5Delete刪除信息窗口39總 結(jié)401需求與總體設(shè)計(jì)1.1需求分析學(xué)生信息管理系統(tǒng)是一個(gè)教育單位不可缺少的部分。一個(gè)功能齊全、簡(jiǎn)單易用的信息管理系統(tǒng)不但能有效地減輕學(xué)校相關(guān)工作人員的工作負(fù)擔(dān),它的內(nèi)容對(duì)于學(xué)校的決策者和管理者來(lái)說(shuō)都至關(guān)重要。所以學(xué)生信息管理系統(tǒng)應(yīng)該能夠?yàn)橛脩?hù)提供充足的信息和
6、快捷的查詢(xún)手段。但一直以來(lái)人們使用傳統(tǒng)人工的方式管理文件檔案、統(tǒng)計(jì)和查詢(xún)數(shù)據(jù),隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識(shí),它已進(jìn)入人類(lèi)社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著來(lái)越重要的作用。作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對(duì)學(xué)校的各類(lèi)信息進(jìn)行管理,具有手工管理所無(wú)法比擬的優(yōu)點(diǎn). 本系統(tǒng)完成了學(xué)生信息的增加、修改、刪除、查詢(xún)。1.2總體設(shè)計(jì)在設(shè)計(jì)學(xué)籍管理系統(tǒng)時(shí),需要編寫(xiě)7個(gè)Java源文件:ManagerWindow.java ,ModifySituation.java,InputStudent.java,Inquest.java,Delete.java ,Student.java,
7、StudentPicture.java。學(xué)籍管理系統(tǒng)除了需要編寫(xiě)的7個(gè)Java源文件所給出的類(lèi)外,還需要Java系統(tǒng)提供的一些重要的類(lèi),如JMenuItem,HashMap和File等類(lèi)。專(zhuān)業(yè).txt:學(xué)籍管理系統(tǒng)通過(guò)使用名字為“專(zhuān)業(yè).txt”的文本文件來(lái)生成專(zhuān)業(yè)名稱(chēng)列表,以便靈活、有效地錄入專(zhuān)業(yè)信息。允許用戶(hù)自己編寫(xiě)“專(zhuān)業(yè).txt”文件,只要將該文件和應(yīng)用程序存放到同一目錄中即可。ManagerWindow.java(主類(lèi)):ManagerWindow類(lèi)負(fù)責(zé)創(chuàng)建學(xué)籍管理系統(tǒng)的主窗口,該類(lèi)含有main方法,程序從該類(lèi)開(kāi)始執(zhí)行。ManagerWindow類(lèi)的成員變量中有4種重要類(lèi)型的對(duì)象:Inp
8、utStudent、Inquest、ModifySituation和Delete對(duì)象。ManagerWindow類(lèi)的主要成員的作用將在后面詳細(xì)闡述。Student.java:Student類(lèi)所創(chuàng)建的對(duì)象是InputStudent類(lèi)的成員之一,負(fù)責(zé)封裝學(xué)生的基本信息。StudentPicture.java:StudentPicture類(lèi)所創(chuàng)建的對(duì)象是InputStudent、Inpuest和ModifySituation類(lèi)的成員之一,負(fù)責(zé)顯示學(xué)生的照片。InputStudent.java: InputStudent類(lèi)創(chuàng)建的對(duì)象是MangerWindow類(lèi)的重要成員之一,負(fù)責(zé)提供錄入學(xué)生基本信息的
9、界面。Inquest.java:Inquest類(lèi)創(chuàng)建的對(duì)象是MangerWindow類(lèi)的重要成員之一,負(fù)責(zé)提供查詢(xún)學(xué)生基本信息及打印基本信息的界面。ModifySituation.java:ModifySituation類(lèi)創(chuàng)建的對(duì)象是MangerWindow類(lèi)的重要成員之一,負(fù)責(zé)提供修改學(xué)生基本信息的界面。Delete.java:Delete類(lèi)創(chuàng)建的對(duì)象是MangerWindow類(lèi)的重要成員之一,負(fù)責(zé)提供刪除學(xué)生基本信息的界面。1.3設(shè)計(jì)要求1、錄入學(xué)生信息:用戶(hù)可以通過(guò)菜單選項(xiàng)讓程序呈現(xiàn)“錄入學(xué)生基本信息”功能的界面,系統(tǒng)操作人員打開(kāi)學(xué)生信息添加界面,輸入相關(guān)的信息(姓名、性別、出生日期、照
10、片、專(zhuān)業(yè)和學(xué)院等)。2、修改學(xué)生信息:根據(jù)學(xué)生的學(xué)號(hào)查詢(xún)出該學(xué)生的相關(guān)信息,修改相關(guān)條目后保存在數(shù)據(jù)庫(kù)中。3、刪除學(xué)生信息:根據(jù)學(xué)生的學(xué)號(hào)查詢(xún)出該學(xué)生的相關(guān)信息,確定刪除后,在數(shù)據(jù)庫(kù)中刪除該信息。4、查詢(xún)、打印學(xué)生信息:可以根據(jù)學(xué)生學(xué)號(hào)、學(xué)生姓名、學(xué)生性別、學(xué)生所學(xué)專(zhuān)業(yè)、學(xué)生所屬學(xué)院來(lái)對(duì)學(xué)生信息進(jìn)行查詢(xún),所有符合查詢(xún)條件的學(xué)生信息將都被顯示出來(lái)。1.4系統(tǒng)主要功能圖系統(tǒng)的主要功能:學(xué)籍管理系統(tǒng)所用到的一些重要的類(lèi)以及之間的組合關(guān)系如下圖學(xué)籍管理系統(tǒng)除了需要編寫(xiě)的7個(gè)Java源文件所給出的類(lèi)外,還需要Java系統(tǒng)提供的一些重要的類(lèi),如JMenuItem,HashMap和File等類(lèi)1.5系統(tǒng)主要
11、類(lèi)圖2詳細(xì)設(shè)計(jì)2.1 ManagerWindow類(lèi)2.1.1 成員變量和方法l “基本信息錄入”是InputStudent對(duì)象,負(fù)責(zé)提供錄入信息的界面。l “基本信息修改”是ModifySituation對(duì)象,負(fù)責(zé)提供修改信息的界面。l “基本信息查詢(xún)”是Inquest對(duì)象,負(fù)責(zé)提供查詢(xún)與打印信息的界面。l “基本信息刪除”是Delete對(duì)象,負(fù)責(zé)提供刪除信息的界面。l “基本信息”是HashMap<String,Student>創(chuàng)建的散列映射,用于存儲(chǔ)鍵/值數(shù)據(jù)對(duì),其中的鍵必須是一個(gè)String對(duì)象,鍵對(duì)應(yīng)的值必須是Student對(duì)象。l file是Flie文件對(duì)象,程序?qū)ⅰ盎?/p>
12、信息”散列映射寫(xiě)入該文件中。l “錄入”、“修改”、“查詢(xún)”、“刪除”和“歡迎界面”是JMenuItem創(chuàng)建的菜單項(xiàng),這些菜單項(xiàng)都將當(dāng)前窗口注冊(cè)為自己的ActionEvent事件監(jiān)視器。l ManagerWindow()是構(gòu)造方法,負(fù)責(zé)完成窗口的初始化。l actionPerformed(ActionEvent)方法是ManagerWindow類(lèi)實(shí)現(xiàn)的ActionListener接口中的方法。ManagerWindow創(chuàng)建的窗口是“錄入”、“刪除”、“查詢(xún)與打印”、“刪除”和“歡迎界面”菜單項(xiàng)的ActionEvent事件監(jiān)視器,當(dāng)用戶(hù)選擇其中某個(gè)菜單項(xiàng)時(shí),窗口將執(zhí)行actionPerforme
13、d(ActionEvent)方法進(jìn)行相應(yīng)的操作。l main方法是程序運(yùn)行的入口方法。2.1.2 詳細(xì)類(lèi)圖2.2 Student類(lèi)2.2.1 成員變量和方法l number、name、disciping、grade、borth、和sex是String對(duì)象,它們的值分別表示學(xué)生的“學(xué)號(hào)”、“姓名”、“專(zhuān)業(yè)”、“年級(jí)”、“出生日期”和“性別”。l imagePic是File對(duì)象,用來(lái)存放學(xué)生的照片圖像和引用。l setNumber(String)和getNumber()方法分別用來(lái)設(shè)置number和獲取number的值。l setImagePic(File)和getImagePic()方法分別用來(lái)
14、設(shè)置imagePic的引用。2.2.2 詳細(xì)類(lèi)圖2.3 StudentPicture類(lèi)2.3.1 成員變量和方法l imageFile是File對(duì)象,用來(lái)存放圖像文件的引用。l tool是Toolkit對(duì)象,負(fù)責(zé)創(chuàng)建Image對(duì)象。l StudentPicture()是構(gòu)造方法,負(fù)責(zé)創(chuàng)建pic對(duì)象。l setImageFile(File)方法負(fù)責(zé)設(shè)置imageFile對(duì)象。l paintComponent(Graphics)方法負(fù)責(zé)繪制根據(jù)imageFile文件創(chuàng)建的Image對(duì)象。2.3.2 詳細(xì)類(lèi)圖2.4 InputStudent類(lèi)2.4.1 成員變量和方法l “學(xué)生”是Student創(chuàng)建
15、的對(duì)象,該對(duì)象含有和學(xué)生有關(guān)的數(shù)據(jù)。l pic是StudentPicture創(chuàng)建的對(duì)象,負(fù)責(zé)繪制學(xué)生的照片。l “基本信息表”是HashMap<String,Student>創(chuàng)建的散列映射,用于存儲(chǔ)鍵/值數(shù)據(jù)對(duì),其中的鍵必須是一個(gè)String對(duì)象,鍵對(duì)應(yīng)的值必須是Student對(duì)象。l “錄入”、“重置”和“選擇照片”是JButton創(chuàng)建的對(duì)象,這些按鈕都將當(dāng)前容器注冊(cè)為自己的ActionEvent事件監(jiān)視器。l systemFile和imagePic是File聲明的對(duì)象,其中systemFile存放的文件引用和ManagerWindow類(lèi)中的file的相同,程序?qū)ⅰ盎拘畔⒈怼鄙?/p>
16、列映射寫(xiě)入systemFile文件中;而imagePic存放的文件引用有用戶(hù)選擇指定。l InputStudent(File)是構(gòu)造方法,用來(lái)創(chuàng)建“基本信息錄入”對(duì)象,當(dāng)創(chuàng)建該對(duì)象時(shí),通過(guò)該構(gòu)造方法的參數(shù)將ManagerWindow類(lèi)中的file的引用傳遞給systemFile。l actionPerformed(ActionEvent)方法是InputStudent類(lèi)實(shí)現(xiàn)的ActionListener接口中的方法。InputStudent創(chuàng)建的容器是“錄入”、“重置”和“選擇照片”按鈕的ActionEvent事件監(jiān)視器,當(dāng)用戶(hù)單擊其中某個(gè)按鈕時(shí),容器將執(zhí)行actionPerformed(Ac
17、tionEvent)方法進(jìn)行相應(yīng)的操作。2.4.2 詳細(xì)類(lèi)圖2.5 Inquest類(lèi)2.5.1 成員變量和方法l pic是StudentPicture創(chuàng)建的對(duì)象,負(fù)責(zé)繪制學(xué)生的照片。l print是PrintJob對(duì)象,負(fù)責(zé)打印。l “基本信息表”是HashMap<String,Student>創(chuàng)建的散列映射,用于存儲(chǔ)鍵/值數(shù)據(jù)對(duì),其中的鍵必須是一個(gè)String對(duì)象,鍵對(duì)應(yīng)的值必須是Student對(duì)象。程序?qū)膕ystemFile文件中讀出曾寫(xiě)入到該文件中的HashMap<String,Student>對(duì)象,并將這個(gè)對(duì)象的引用賦給“基本信息表”,然后查詢(xún)“基本信息表”中
18、的數(shù)據(jù)。l “查詢(xún)”、“打印文本照片”、“打印文本”和“打印照片”是JButton創(chuàng)建的對(duì)象,這些按鈕都將當(dāng)前容器注冊(cè)為自己的ActionEvent事件監(jiān)視器。l systemFil是File聲明的對(duì)象,其中systemFile存放的文件引用和ManagerWindow類(lèi)中的file的相同。 l Inquest(File)是構(gòu)造方法,用來(lái)創(chuàng)建“基本信息查詢(xún)”對(duì)象,當(dāng)創(chuàng)建該對(duì)象時(shí),通過(guò)該構(gòu)造方法的參數(shù)將ManagerWindow類(lèi)中的file的引用傳遞給systemFile。l actionPerformed(ActionEvent)方法是InputStudent類(lèi)實(shí)現(xiàn)的ActionListen
19、er接口中的方法。Inquest創(chuàng)建的對(duì)話(huà)框是“查詢(xún)”、“打印文本照片”、“打印文本”和“打印照片”按鈕的ActionEvent事件監(jiān)視器,當(dāng)用戶(hù)單擊其中某個(gè)按鈕時(shí),對(duì)話(huà)框?qū)?zhí)行actionPerformed(ActionEvent)方法進(jìn)行相應(yīng)的操作。2.5.2 詳細(xì)類(lèi)圖2.6 ModifySituation類(lèi)2.6.1 成員變量和方法l pic是StudentPicture創(chuàng)建的對(duì)象,負(fù)責(zé)繪制學(xué)生的照片。l “基本信息表”是HashMap<String,Student>創(chuàng)建的散列映射,用于存儲(chǔ)鍵/值數(shù)據(jù)對(duì),其中的鍵必須是一個(gè)String對(duì)象,鍵對(duì)應(yīng)的值必須是Student對(duì)象。
20、程序?qū)膕ystemFile文件中讀出曾寫(xiě)入到該文件中的HashMap<String,Student>對(duì)象,并將這個(gè)對(duì)象的引用賦給“基本信息表”。程序可以修改“基本信息表”中的數(shù)據(jù),然后再將“基本信息表”寫(xiě)入到systemFile文件中。l “開(kāi)始修改”、“錄入修改”、“重置”和“選擇照片”是JButton創(chuàng)建的對(duì)象,這些按鈕都將當(dāng)前容器注冊(cè)為自己的ActionEvent事件監(jiān)視器。l systemFile和imagePic是File聲明的對(duì)象,其中systemFile存放的文件引用和ManagerWindow類(lèi)中的file的相同,imagePic存放的文件引用有用戶(hù)選擇指定。l
21、ModifySituation(File)是構(gòu)造方法,用來(lái)創(chuàng)建“基本信息修改”對(duì)象,當(dāng)創(chuàng)建該對(duì)象時(shí),通過(guò)該構(gòu)造方法的參數(shù)將ManagerWindow類(lèi)中的file的引用傳遞給systemFile。l actionPerformed(ActionEvent)方法是InputStudent類(lèi)實(shí)現(xiàn)的ActionListener接口中的方法。InputStudent創(chuàng)建的容器是“開(kāi)始修改”、“錄入修改”、“重置”和“選擇照片”按鈕的ActionEvent事件監(jiān)視器,當(dāng)用戶(hù)單擊其中某個(gè)按鈕時(shí),容器將執(zhí)行actionPerformed(ActionEvent)方法進(jìn)行相應(yīng)的操作。2.6.2 詳細(xì)類(lèi)圖2.7
22、 Delete類(lèi)2.7.1成員變量和方法l “基本信息表”是HashMap<String,Student>創(chuàng)建的散列映射,用于存儲(chǔ)鍵/值數(shù)據(jù)對(duì),其中的鍵必須是一個(gè)String對(duì)象,鍵對(duì)應(yīng)的值必須是Student對(duì)象。程序?qū)膕ystemFile文件中讀出曾寫(xiě)入到該文件中的HashMap<String,Student>對(duì)象,并將這個(gè)對(duì)象的引用賦給“基本信息表”。程序可以刪除“基本信息表”中的特定數(shù)據(jù),然后再將“基本信息表”寫(xiě)入到systemFile文件中。l “刪除”是JButton創(chuàng)建的對(duì)象,這些按鈕都將當(dāng)前容器注冊(cè)為自己的ActionEvent事件監(jiān)視器。l syst
23、emFile和imagePic是File聲明的對(duì)象,其中systemFile存放的文件引用和ManagerWindow類(lèi)中的file的相同。l Delete(File)是構(gòu)造方法,用來(lái)創(chuàng)建“基本信息刪除”對(duì)象,當(dāng)創(chuàng)建該對(duì)象時(shí),通過(guò)該構(gòu)造方法的參數(shù)將ManagerWindow類(lèi)中的file的引用傳遞給systemFile。l actionPerformed(ActionEvent)方法是InputStudent類(lèi)實(shí)現(xiàn)的ActionListener接口中的方法。InputStudent創(chuàng)建的容器是“刪除”按鈕的AcionEvent事件監(jiān)視器,當(dāng)用戶(hù)單擊該按鈕時(shí),容器將執(zhí)行actionPerform
24、ed(ActionEvent)方法進(jìn)行相應(yīng)的操作。2.7.2詳細(xì)類(lèi)圖3編碼實(shí)現(xiàn)源代碼package 學(xué)生學(xué)籍管理系統(tǒng);import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.HashMap;import java.util.*;import javax.swing.filechooser.*;public class ManagerWindow extends JFrame implements ActionListenerpublic static voi
25、d main(String args) new ManagerWindow(); InputStudent 基本信息錄入; ModifySituation 基本信息修改; Inquest 基本信息查詢(xún)與打印; Delete 基本信息刪除; JMenuBar bar; JMenu fileMenu; JMenuItem 錄入,修改,查詢(xún)與打印,刪除,歡迎界面; HashMap<String,Student> 基本信息=null; File file=null; CardLayout card=null; JLabel label=null; JPanel pCenter; publi
26、c ManagerWindow() 錄入=new JMenuItem("錄入學(xué)生基本信息"); 修改=new JMenuItem("修改學(xué)生基本信息"); 查詢(xún)與打印=new JMenuItem("查詢(xún)與打印學(xué)生基本信息"); 刪除=new JMenuItem("刪除學(xué)生基本信息"); 歡迎界面=new JMenuItem("歡迎界面"); bar=new JMenuBar(); fileMenu=new JMenu("菜單選項(xiàng)"); fileMenu.add(錄入); fi
27、leMenu.add(修改); fileMenu.add(查詢(xún)與打印); fileMenu.add(刪除); fileMenu.add(歡迎界面); bar.add(fileMenu); setJMenuBar(bar); label=new JLabel("學(xué)籍管理系統(tǒng)",JLabel.CENTER); label.setIcon(new ImageIcon("welcome.jpg"); label.setFont(new Font("隸書(shū)",Font.BOLD,36); label.setHorizontalTextPositi
28、on(SwingConstants.CENTER); label.setForeground(Color.red); 基本信息=new HashMap<String,Student>(); 錄入.addActionListener(this); 修改.addActionListener(this); 查詢(xún)與打印.addActionListener(this); 刪除.addActionListener(this); 歡迎界面.addActionListener(this); card=new CardLayout(); pCenter=new JPanel(); pCenter.s
29、etLayout(card); file=new File("基本信息.txt"); if(!file.exists() try FileOutputStream out=new FileOutputStream(file); ObjectOutputStream objectOut=new ObjectOutputStream(out); objectOut.writeObject(基本信息); objectOut.close(); out.close(); catch(IOException e) 基本信息錄入=new InputStudent(file); 基本信息修
30、改=new ModifySituation(file); 基本信息查詢(xún)與打印=new Inquest(file); 基本信息刪除=new Delete(file); pCenter.add("歡迎界面",label); pCenter.add("錄入界面",基本信息錄入); pCenter.add("修改界面",基本信息修改); pCenter.add("刪除界面",基本信息刪除); add(pCenter,BorderLayout.CENTER); validate(); setVisible(true); se
31、tBounds(100,50,460,280); setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) int n=JOptionPane.showConfirmDialog(null,"確認(rèn)退出嗎?","確認(rèn)對(duì)話(huà)框", JOptionPane.YES_NO_OPTION ); if(n=JOptionPane.YES_OPTION) Syste
32、m.exit(0); ); validate(); public void actionPerformed(ActionEvent e) if(e.getSource()=錄入) 基本信息錄入.clearMess(); card.show(pCenter,"錄入界面"); else if(e.getSource()=修改) 基本信息修改.clearMess(); card.show(pCenter,"修改界面"); else if(e.getSource()=查詢(xún)與打印) 基本信息查詢(xún)與打印.clearMess(); 基本信息查詢(xún)與打印.setLocat
33、ion(getBounds().x+getBounds().width,getBounds().y); 基本信息查詢(xún)與打印.setVisible(true); else if(e.getSource()=刪除) card.show(pCenter,"刪除界面"); else if(e.getSource()=歡迎界面) card.show(pCenter,"歡迎界面"); class Student implements Serializable String number,name,discipling,grade,borth,sex; File im
34、agePic; public void setNumber(String number) this.number=number; public String getNumber() return number; public void setName(String name) =name; public String getName() return name; public void setDiscipling(String discipling) this.discipling=discipling; public String getDisciping() return
35、 discipling; public void setGrade(String grade) this.grade=grade; public String getGrade() return grade; public void setBorth(String borth) this.borth=borth; public String getBorth() return borth; public void setSex(String sex) this.sex=sex; public String getSex() return sex; public void setImagePic
36、(File image) imagePic=image; public File getImagePic() return imagePic; class StudentPicture extends JPanel File imageFile; Toolkit tool; public StudentPicture() tool=getToolkit(); public void setImage(File imageFile) this.imageFile=imageFile; repaint(); public void paintComponent(Graphics g) super.
37、paintComponent(g); int w=getBounds().width; int h=getBounds().height; if(imageFile!=null) Image image=tool.getImage(imageFile.getAbsolutePath(); g.drawImage(image,0,0,w,h,this); else g.drawString("沒(méi)有選擇照片圖像",20,30); class InputStudent extends JPanel implements ActionListener Student 學(xué)生=null
38、; StudentPicture pic; HashMap<String,Student> 基本信息表=null; JTextField 學(xué)號(hào),姓名,年級(jí),出生; JButton 選擇照片; JComboBox 專(zhuān)業(yè); JRadioButton 男,女; ButtonGroup group=null; JButton 錄入,重置; FileInputStream inOne=null; ObjectInputStream inTwo=null; FileOutputStream outOne=null; ObjectOutputStream outTwo=null; File sy
39、stemFile,imagePic; public InputStudent(File file) systemFile=file; pic=new StudentPicture(); 學(xué)號(hào)=new JTextField(5); 姓名=new JTextField(5); 專(zhuān)業(yè)=new JComboBox(); try FileReader inOne=new FileReader("專(zhuān)業(yè).txt"); BufferedReader inTwo= new BufferedReader(inOne); String s=null; int i=0; while(s=inTwo
40、.readLine()!=null) 專(zhuān)業(yè).addItem(s); inOne.close(); inTwo.close(); catch(IOException exp) 專(zhuān)業(yè).addItem("數(shù)學(xué)"); 專(zhuān)業(yè).addItem("計(jì)算機(jī)科學(xué)與技術(shù)"); 年級(jí)=new JTextField(5); 出生=new JTextField(5); 選擇照片=new JButton("選擇"); group=new ButtonGroup(); 男=new JRadioButton("男",true); 女=new JR
41、adioButton("女",false); group.add(男); group.add(女); 錄入=new JButton("錄入"); 重置=new JButton("重置"); 錄入.addActionListener(this); 選擇照片.addActionListener(this); 重置.addActionListener(this); Box box1=Box.createHorizontalBox(); box1.add(new JLabel("學(xué)號(hào):",JLabel.CENTER); b
42、ox1.add(學(xué)號(hào)); Box box2=Box.createHorizontalBox(); box2.add(new JLabel("姓名:",JLabel.CENTER); box2.add(姓名); Box box3=Box.createHorizontalBox(); box3.add(new JLabel("性別:",JLabel.CENTER); box3.add(男); box3.add(女); Box box4=Box.createHorizontalBox(); box4.add(new JLabel("專(zhuān)業(yè):"
43、,JLabel.CENTER); box4.add(專(zhuān)業(yè)); Box box5=Box.createHorizontalBox(); box5.add(new JLabel("年級(jí):",JLabel.CENTER); box5.add(年級(jí)); Box box6=Box.createHorizontalBox(); box6.add(new JLabel("出生:",JLabel.CENTER); box6.add(出生); Box boxH=Box.createVerticalBox(); boxH.add(box1); boxH.add(box2);
44、 boxH.add(box3); boxH.add(box4); boxH.add(box5); boxH.add(box6); boxH.add(Box.createVerticalGlue(); JPanel picPanel=new JPanel(); picPanel.setBackground(Color.green); picPanel.add(new JLabel("選擇照片:",JLabel.CENTER); picPanel.add(選擇照片); JPanel putButton=new JPanel(); putButton.add(錄入); putBu
45、tton.add(重置); JPanel messPanel=new JPanel(); messPanel.add(boxH); messPanel.setBackground(Color.cyan); putButton.setBackground(Color.red); setLayout(new BorderLayout(); JSplitPane splitV= new JSplitPane(JSplitPane.VERTICAL_SPLIT,picPanel,pic); JSplitPane splitH=new JSplitPane(JSplitPane.HORIZONTAL_S
46、PLIT,messPanel,splitV); add(splitH,BorderLayout.CENTER); add(putButton,BorderLayout.SOUTH); validate(); public void actionPerformed(ActionEvent e) if(e.getSource()=錄入) String number="" number=學(xué)號(hào).getText(); if(number.length()>0) try inOne=new FileInputStream(systemFile); inTwo=new Object
47、InputStream(inOne); 基本信息表=(HashMap<String,Student>)inTwo.readObject(); inOne.close(); inTwo.close(); catch(Exception ee) if(基本信息表.containsKey(number) String warning="該生基本信息已存在,請(qǐng)到修改頁(yè)面修改!" JOptionPane.showMessageDialog(this,warning,"警告", JOptionPane.WARNING_MESSAGE); else Str
48、ing m="基本信息將被錄入!" int ok=JOptionPane.showConfirmDialog(this,m,"確認(rèn)", JOptionPane.YES_NO_OPTION,JOptionPane.INFORMATION_MESSAGE); if(ok=JOptionPane.YES_OPTION) String name=姓名.getText(); String discipling=(String)專(zhuān)業(yè).getSelectedItem(); String grade=年級(jí).getText(); String borth=出生.getText(); String sex=null; if(男.isSelected
溫馨提示
- 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ù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)文化建設(shè)對(duì)法律風(fēng)險(xiǎn)預(yù)防的作用
- 2025年銀行業(yè)同業(yè)貸款協(xié)議規(guī)范文本
- 2025年雙方協(xié)商的離婚安置協(xié)議范本
- 企業(yè)跨境經(jīng)營(yíng)中的責(zé)任問(wèn)題與應(yīng)對(duì)
- 統(tǒng)籌推進(jìn)教師教育能力提升的面臨的問(wèn)題、機(jī)遇與挑戰(zhàn)
- 構(gòu)建出版業(yè)融合發(fā)展風(fēng)險(xiǎn)管理評(píng)估
- 綠色能源與抽水蓄能的深度融合
- 智能農(nóng)業(yè)的新紀(jì)元
- 地理學(xué)全景解讀
- 構(gòu)筑智慧城市藍(lán)圖
- GB/T 1480-2012金屬粉末干篩分法測(cè)定粒度
- GB/T 13754-2017供暖散熱器散熱量測(cè)定方法
- GA 838-2009小型民用爆炸物品儲(chǔ)存庫(kù)安全規(guī)范
- 【考研政治】2021年4月浙江理工大學(xué)研究生招生考試政治練習(xí)題100道(附答案解析)
- QTZ80(6013)塔吊基礎(chǔ)天然基礎(chǔ)計(jì)算書(shū)施工方案
- 初一英語(yǔ)競(jìng)賽課件
- 高熱驚厥應(yīng)急預(yù)案
- 場(chǎng)地平整土石方工程施工方案
- 質(zhì)量部崗位技能矩陣圖
- 新車(chē)驗(yàn)收表格
- 10KV環(huán)網(wǎng)柜試驗(yàn)報(bào)告模板
評(píng)論
0/150
提交評(píng)論