




已閱讀5頁(yè),還剩40頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)報(bào)告題 目:學(xué)生學(xué)籍管理系統(tǒng)軟件設(shè)計(jì)與實(shí)現(xiàn) 院 (系): 信息科學(xué)與工程學(xué)院 專業(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),姓名,性別,出生日期,專業(yè)和照片的錄入,修改,查詢,刪除和打印。這樣能夠詳細(xì)準(zhǔn)確的查詢到學(xué)生的信息,而且能夠更加直觀方便的了解學(xué)生的信息。 基本功能與要求:1 錄入學(xué)生信息:系統(tǒng)操作人員打開(kāi)學(xué)生信息添加界面,輸入相關(guān)的信息(姓名、性別、出生日期、入學(xué)年份、專業(yè)和學(xué)院等)。2 修改學(xué)生信息:根據(jù)學(xué)生的學(xué)號(hào)查詢出該學(xué)生的相關(guān)信息,修改相關(guān)條目后保存在數(shù)據(jù)庫(kù)中。3 刪除學(xué)生信息:根據(jù)學(xué)生的學(xué)號(hào)查詢出該學(xué)生的相關(guān)信息,確定刪除后,在數(shù)據(jù)庫(kù)中刪除該信息。4 查詢、打印學(xué)生信息:可以根據(jù)學(xué)生學(xué)號(hào)、學(xué)生姓名、學(xué)生性別、學(xué)生所學(xué)專業(yè)、學(xué)生所屬學(xué)院來(lái)對(duì)學(xué)生信息進(jìn)行查詢,所有符合查詢條件的學(xué)生信息將都被顯示出來(lái)。三、原始資料1.面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)指導(dǎo)書(shū)2. 耿祥義JAVA大學(xué)實(shí)用教程北京:清華大學(xué)出版社,2009四、要求的設(shè)計(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需求與總體設(shè)計(jì)11.1需求分析11.2總體設(shè)計(jì)11.3設(shè)計(jì)要求21.4系統(tǒng)主要功能圖21.5系統(tǒng)主要類圖32詳細(xì)設(shè)計(jì)42.1 ManagerWindow類42.1.1 成員變量和方法42.1.2 詳細(xì)類圖42.2 Student類52.2.1 成員變量和方法52.2.2 詳細(xì)類圖52.3 StudentPicture類52.3.1 成員變量和方法52.3.2 詳細(xì)類圖52.4 InputStudent類62.4.1 成員變量和方法62.4.2 詳細(xì)類圖62.5 Inquest類72.5.1 成員變量和方法72.5.2 詳細(xì)類圖72.6 ModifySituation類82.6.1 成員變量和方法82.6.2 詳細(xì)類圖82.7 Delete類92.7.1成員變量和方法92.7.2詳細(xì)類圖93編碼實(shí)現(xiàn)104系統(tǒng)測(cè)試384.1ManagerWindow創(chuàng)建窗口384.2InputStudent學(xué)生信息錄入窗口384.3Inquest查詢,打印窗口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)橛脩籼峁┏渥愕男畔⒑涂旖莸牟樵兪侄?。但一直以?lái)人們使用傳統(tǒng)人工的方式管理文件檔案、統(tǒng)計(jì)和查詢數(shù)據(jù),隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識(shí),它已進(jìn)入人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著來(lái)越重要的作用。作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對(duì)學(xué)校的各類信息進(jìn)行管理,具有手工管理所無(wú)法比擬的優(yōu)點(diǎn). 本系統(tǒng)完成了學(xué)生信息的增加、修改、刪除、查詢。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,StudentPicture.java。學(xué)籍管理系統(tǒng)除了需要編寫(xiě)的7個(gè)Java源文件所給出的類外,還需要Java系統(tǒng)提供的一些重要的類,如JMenuItem,HashMap和File等類。專業(yè).txt:學(xué)籍管理系統(tǒng)通過(guò)使用名字為“專業(yè).txt”的文本文件來(lái)生成專業(yè)名稱列表,以便靈活、有效地錄入專業(yè)信息。允許用戶自己編寫(xiě)“專業(yè).txt”文件,只要將該文件和應(yīng)用程序存放到同一目錄中即可。ManagerWindow.java(主類):ManagerWindow類負(fù)責(zé)創(chuàng)建學(xué)籍管理系統(tǒng)的主窗口,該類含有main方法,程序從該類開(kāi)始執(zhí)行。ManagerWindow類的成員變量中有4種重要類型的對(duì)象:InputStudent、Inquest、ModifySituation和Delete對(duì)象。ManagerWindow類的主要成員的作用將在后面詳細(xì)闡述。Student.java:Student類所創(chuàng)建的對(duì)象是InputStudent類的成員之一,負(fù)責(zé)封裝學(xué)生的基本信息。StudentPicture.java:StudentPicture類所創(chuàng)建的對(duì)象是InputStudent、Inpuest和ModifySituation類的成員之一,負(fù)責(zé)顯示學(xué)生的照片。InputStudent.java: InputStudent類創(chuàng)建的對(duì)象是MangerWindow類的重要成員之一,負(fù)責(zé)提供錄入學(xué)生基本信息的界面。Inquest.java:Inquest類創(chuàng)建的對(duì)象是MangerWindow類的重要成員之一,負(fù)責(zé)提供查詢學(xué)生基本信息及打印基本信息的界面。ModifySituation.java:ModifySituation類創(chuàng)建的對(duì)象是MangerWindow類的重要成員之一,負(fù)責(zé)提供修改學(xué)生基本信息的界面。Delete.java:Delete類創(chuàng)建的對(duì)象是MangerWindow類的重要成員之一,負(fù)責(zé)提供刪除學(xué)生基本信息的界面。1.3設(shè)計(jì)要求1、錄入學(xué)生信息:用戶可以通過(guò)菜單選項(xiàng)讓程序呈現(xiàn)“錄入學(xué)生基本信息”功能的界面,系統(tǒng)操作人員打開(kāi)學(xué)生信息添加界面,輸入相關(guān)的信息(姓名、性別、出生日期、照片、專業(yè)和學(xué)院等)。2、修改學(xué)生信息:根據(jù)學(xué)生的學(xué)號(hào)查詢出該學(xué)生的相關(guān)信息,修改相關(guān)條目后保存在數(shù)據(jù)庫(kù)中。3、刪除學(xué)生信息:根據(jù)學(xué)生的學(xué)號(hào)查詢出該學(xué)生的相關(guān)信息,確定刪除后,在數(shù)據(jù)庫(kù)中刪除該信息。4、查詢、打印學(xué)生信息:可以根據(jù)學(xué)生學(xué)號(hào)、學(xué)生姓名、學(xué)生性別、學(xué)生所學(xué)專業(yè)、學(xué)生所屬學(xué)院來(lái)對(duì)學(xué)生信息進(jìn)行查詢,所有符合查詢條件的學(xué)生信息將都被顯示出來(lái)。1.4系統(tǒng)主要功能圖系統(tǒng)的主要功能:學(xué)籍管理系統(tǒng)所用到的一些重要的類以及之間的組合關(guān)系如下圖學(xué)籍管理系統(tǒng)除了需要編寫(xiě)的7個(gè)Java源文件所給出的類外,還需要Java系統(tǒng)提供的一些重要的類,如JMenuItem,HashMap和File等類1.5系統(tǒng)主要類圖2詳細(xì)設(shè)計(jì)2.1 ManagerWindow類2.1.1 成員變量和方法l “基本信息錄入”是InputStudent對(duì)象,負(fù)責(zé)提供錄入信息的界面。l “基本信息修改”是ModifySituation對(duì)象,負(fù)責(zé)提供修改信息的界面。l “基本信息查詢”是Inquest對(duì)象,負(fù)責(zé)提供查詢與打印信息的界面。l “基本信息刪除”是Delete對(duì)象,負(fù)責(zé)提供刪除信息的界面。l “基本信息”是HashMap創(chuàng)建的散列映射,用于存儲(chǔ)鍵/值數(shù)據(jù)對(duì),其中的鍵必須是一個(gè)String對(duì)象,鍵對(duì)應(yīng)的值必須是Student對(duì)象。l file是Flie文件對(duì)象,程序?qū)ⅰ盎拘畔ⅰ鄙⒘杏成鋵?xiě)入該文件中。l “錄入”、“修改”、“查詢”、“刪除”和“歡迎界面”是JMenuItem創(chuàng)建的菜單項(xiàng),這些菜單項(xiàng)都將當(dāng)前窗口注冊(cè)為自己的ActionEvent事件監(jiān)視器。l ManagerWindow()是構(gòu)造方法,負(fù)責(zé)完成窗口的初始化。l actionPerformed(ActionEvent)方法是ManagerWindow類實(shí)現(xiàn)的ActionListener接口中的方法。ManagerWindow創(chuàng)建的窗口是“錄入”、“刪除”、“查詢與打印”、“刪除”和“歡迎界面”菜單項(xiàng)的ActionEvent事件監(jiān)視器,當(dāng)用戶選擇其中某個(gè)菜單項(xiàng)時(shí),窗口將執(zhí)行actionPerformed(ActionEvent)方法進(jìn)行相應(yīng)的操作。l main方法是程序運(yùn)行的入口方法。2.1.2 詳細(xì)類圖2.2 Student類2.2.1 成員變量和方法l number、name、disciping、grade、borth、和sex是String對(duì)象,它們的值分別表示學(xué)生的“學(xué)號(hào)”、“姓名”、“專業(yè)”、“年級(jí)”、“出生日期”和“性別”。l imagePic是File對(duì)象,用來(lái)存放學(xué)生的照片圖像和引用。l setNumber(String)和getNumber()方法分別用來(lái)設(shè)置number和獲取number的值。l setImagePic(File)和getImagePic()方法分別用來(lái)設(shè)置imagePic的引用。2.2.2 詳細(xì)類圖2.3 StudentPicture類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ì)類圖2.4 InputStudent類2.4.1 成員變量和方法l “學(xué)生”是Student創(chuàng)建的對(duì)象,該對(duì)象含有和學(xué)生有關(guān)的數(shù)據(jù)。l pic是StudentPicture創(chuàng)建的對(duì)象,負(fù)責(zé)繪制學(xué)生的照片。l “基本信息表”是HashMap創(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類中的file的相同,程序?qū)ⅰ盎拘畔⒈怼鄙⒘杏成鋵?xiě)入systemFile文件中;而imagePic存放的文件引用有用戶選擇指定。l InputStudent(File)是構(gòu)造方法,用來(lái)創(chuàng)建“基本信息錄入”對(duì)象,當(dāng)創(chuàng)建該對(duì)象時(shí),通過(guò)該構(gòu)造方法的參數(shù)將ManagerWindow類中的file的引用傳遞給systemFile。l actionPerformed(ActionEvent)方法是InputStudent類實(shí)現(xiàn)的ActionListener接口中的方法。InputStudent創(chuàng)建的容器是“錄入”、“重置”和“選擇照片”按鈕的ActionEvent事件監(jiān)視器,當(dāng)用戶單擊其中某個(gè)按鈕時(shí),容器將執(zhí)行actionPerformed(ActionEvent)方法進(jìn)行相應(yīng)的操作。2.4.2 詳細(xì)類圖2.5 Inquest類2.5.1 成員變量和方法l pic是StudentPicture創(chuàng)建的對(duì)象,負(fù)責(zé)繪制學(xué)生的照片。l print是PrintJob對(duì)象,負(fù)責(zé)打印。l “基本信息表”是HashMap創(chuàng)建的散列映射,用于存儲(chǔ)鍵/值數(shù)據(jù)對(duì),其中的鍵必須是一個(gè)String對(duì)象,鍵對(duì)應(yīng)的值必須是Student對(duì)象。程序?qū)膕ystemFile文件中讀出曾寫(xiě)入到該文件中的HashMap對(duì)象,并將這個(gè)對(duì)象的引用賦給“基本信息表”,然后查詢“基本信息表”中的數(shù)據(jù)。l “查詢”、“打印文本照片”、“打印文本”和“打印照片”是JButton創(chuàng)建的對(duì)象,這些按鈕都將當(dāng)前容器注冊(cè)為自己的ActionEvent事件監(jiān)視器。l systemFil是File聲明的對(duì)象,其中systemFile存放的文件引用和ManagerWindow類中的file的相同。 l Inquest(File)是構(gòu)造方法,用來(lái)創(chuàng)建“基本信息查詢”對(duì)象,當(dāng)創(chuàng)建該對(duì)象時(shí),通過(guò)該構(gòu)造方法的參數(shù)將ManagerWindow類中的file的引用傳遞給systemFile。l actionPerformed(ActionEvent)方法是InputStudent類實(shí)現(xiàn)的ActionListener接口中的方法。Inquest創(chuàng)建的對(duì)話框是“查詢”、“打印文本照片”、“打印文本”和“打印照片”按鈕的ActionEvent事件監(jiān)視器,當(dāng)用戶單擊其中某個(gè)按鈕時(shí),對(duì)話框?qū)?zhí)行actionPerformed(ActionEvent)方法進(jìn)行相應(yīng)的操作。2.5.2 詳細(xì)類圖2.6 ModifySituation類2.6.1 成員變量和方法l pic是StudentPicture創(chuàng)建的對(duì)象,負(fù)責(zé)繪制學(xué)生的照片。l “基本信息表”是HashMap創(chuàng)建的散列映射,用于存儲(chǔ)鍵/值數(shù)據(jù)對(duì),其中的鍵必須是一個(gè)String對(duì)象,鍵對(duì)應(yīng)的值必須是Student對(duì)象。程序?qū)膕ystemFile文件中讀出曾寫(xiě)入到該文件中的HashMap對(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類中的file的相同,imagePic存放的文件引用有用戶選擇指定。l ModifySituation(File)是構(gòu)造方法,用來(lái)創(chuàng)建“基本信息修改”對(duì)象,當(dāng)創(chuàng)建該對(duì)象時(shí),通過(guò)該構(gòu)造方法的參數(shù)將ManagerWindow類中的file的引用傳遞給systemFile。l actionPerformed(ActionEvent)方法是InputStudent類實(shí)現(xiàn)的ActionListener接口中的方法。InputStudent創(chuàng)建的容器是“開(kāi)始修改”、“錄入修改”、“重置”和“選擇照片”按鈕的ActionEvent事件監(jiān)視器,當(dāng)用戶單擊其中某個(gè)按鈕時(shí),容器將執(zhí)行actionPerformed(ActionEvent)方法進(jìn)行相應(yīng)的操作。2.6.2 詳細(xì)類圖2.7 Delete類2.7.1成員變量和方法l “基本信息表”是HashMap創(chuàng)建的散列映射,用于存儲(chǔ)鍵/值數(shù)據(jù)對(duì),其中的鍵必須是一個(gè)String對(duì)象,鍵對(duì)應(yīng)的值必須是Student對(duì)象。程序?qū)膕ystemFile文件中讀出曾寫(xiě)入到該文件中的HashMap對(duì)象,并將這個(gè)對(duì)象的引用賦給“基本信息表”。程序可以刪除“基本信息表”中的特定數(shù)據(jù),然后再將“基本信息表”寫(xiě)入到systemFile文件中。l “刪除”是JButton創(chuàng)建的對(duì)象,這些按鈕都將當(dāng)前容器注冊(cè)為自己的ActionEvent事件監(jiān)視器。l systemFile和imagePic是File聲明的對(duì)象,其中systemFile存放的文件引用和ManagerWindow類中的file的相同。l Delete(File)是構(gòu)造方法,用來(lái)創(chuàng)建“基本信息刪除”對(duì)象,當(dāng)創(chuàng)建該對(duì)象時(shí),通過(guò)該構(gòu)造方法的參數(shù)將ManagerWindow類中的file的引用傳遞給systemFile。l actionPerformed(ActionEvent)方法是InputStudent類實(shí)現(xiàn)的ActionListener接口中的方法。InputStudent創(chuàng)建的容器是“刪除”按鈕的AcionEvent事件監(jiān)視器,當(dāng)用戶單擊該按鈕時(shí),容器將執(zhí)行actionPerformed(ActionEvent)方法進(jìn)行相應(yīng)的操作。2.7.2詳細(xì)類圖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 void main(String args) new ManagerWindow(); InputStudent 基本信息錄入; ModifySituation 基本信息修改; Inquest 基本信息查詢與打印; Delete 基本信息刪除; JMenuBar bar; JMenu fileMenu; JMenuItem 錄入,修改,查詢與打印,刪除,歡迎界面; HashMap 基本信息=null; File file=null; CardLayout card=null; JLabel label=null; JPanel pCenter; public ManagerWindow() 錄入=new JMenuItem(錄入學(xué)生基本信息); 修改=new JMenuItem(修改學(xué)生基本信息); 查詢與打印=new JMenuItem(查詢與打印學(xué)生基本信息); 刪除=new JMenuItem(刪除學(xué)生基本信息); 歡迎界面=new JMenuItem(歡迎界面); bar=new JMenuBar(); fileMenu=new JMenu(菜單選項(xiàng)); fileMenu.add(錄入); fileMenu.add(修改); fileMenu.add(查詢與打印); 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.setHorizontalTextPosition(SwingConstants.CENTER); label.setForeground(Color.red); 基本信息=new HashMap(); 錄入.addActionListener(this); 修改.addActionListener(this); 查詢與打印.addActionListener(this); 刪除.addActionListener(this); 歡迎界面.addActionListener(this); card=new CardLayout(); pCenter=new JPanel(); pCenter.setLayout(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); 基本信息修改=new ModifySituation(file); 基本信息查詢與打印=new Inquest(file); 基本信息刪除=new Delete(file); pCenter.add(歡迎界面,label); pCenter.add(錄入界面,基本信息錄入); pCenter.add(修改界面,基本信息修改); pCenter.add(刪除界面,基本信息刪除); add(pCenter,BorderLayout.CENTER); validate(); setVisible(true); setBounds(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ì)話框, JOptionPane.YES_NO_OPTION ); if(n=JOptionPane.YES_OPTION) System.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()=查詢與打印) 基本信息查詢與打印.clearMess(); 基本信息查詢與打印.setLocation(getBounds().x+getBounds().width,getBounds().y); 基本信息查詢與打印.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 imagePic; 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 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(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.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; StudentPicture pic; HashMap 基本信息表=null; JTextField 學(xué)號(hào),姓名,年級(jí),出生; JButton 選擇照片; JComboBox 專業(yè); JRadioButton 男,女; ButtonGroup group=null; JButton 錄入,重置; FileInputStream inOne=null; ObjectInputStream inTwo=null; FileOutputStream outOne=null; ObjectOutputStream outTwo=null; File systemFile,imagePic; public InputStudent(File file) systemFile=file; pic=new StudentPicture(); 學(xué)號(hào)=new JTextField(5); 姓名=new JTextField(5); 專業(yè)=new JComboBox(); try FileReader inOne=new FileReader(專業(yè).txt); BufferedReader inTwo= new BufferedReader(inOne); String s=null; int i=0; while(s=inTwo.readLine()!=null) 專業(yè).addItem(s); inOne.close(); inTwo.close(); catch(IOException exp) 專業(yè).addItem(數(shù)學(xué)); 專業(yè).addItem(計(jì)算機(jī)科學(xué)與技術(shù)); 年級(jí)=new JTextField(5); 出生=new JTextField(5); 選擇照片=new JButton(選擇); group=new ButtonGroup(); 男=new JRadioButton(男,true); 女=new JRadioButton(女,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); box1.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(專業(yè):,JLabel.CENTER); box4.add(專業(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); 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(錄入); putButton.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_SPLIT,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 ObjectInputStream(inOne); 基本信息表=(HashMap)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 String 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)專業(yè).getSelectedItem(); String grade=年級(jí).getText(); String borth=出生.getText(); String sex=nu
溫馨提示
- 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45665.2-2025麻醉和呼吸設(shè)備圓錐接頭第2部分:螺紋承重接頭
- 2024-2025學(xué)年湖北省荊荊襄宜四地高二下學(xué)期期中聯(lián)考地理試題及答案
- 2025年中國(guó)家用血壓儀行業(yè)市場(chǎng)全景分析及前景機(jī)遇研判報(bào)告
- 中國(guó)體育用品行業(yè)市場(chǎng)深度調(diào)查評(píng)估及投資方向研究報(bào)告
- 稅務(wù)師考試初級(jí)課件
- 中國(guó)黑龍江煤炭工業(yè)調(diào)查報(bào)告
- 醫(yī)用高頻儀器設(shè)備項(xiàng)目風(fēng)險(xiǎn)分析和評(píng)估報(bào)告
- 竹瓢項(xiàng)目投資可行性研究分析報(bào)告(2024-2030版)
- 2025年 云南省危險(xiǎn)化學(xué)品經(jīng)營(yíng)單位安全管理人員考試練習(xí)題附答案
- 熱擴(kuò)直縫鋼管行業(yè)深度研究報(bào)告
- GB/T 709-2006熱軋鋼板和鋼帶的尺寸、外形、重量及允許偏差
- 鋼結(jié)構(gòu)危險(xiǎn)源辨識(shí)評(píng)價(jià)總覽表
- 自動(dòng)控制原理(全套課件737P)
- 2023年惠州市交通投資集團(tuán)有限公司招聘筆試題庫(kù)及答案解析
- 2022年長(zhǎng)沙市燃?xì)鈱?shí)業(yè)有限公司校園招聘筆試試題及答案解析
- 2023年包頭市工會(huì)系統(tǒng)招聘考試筆試題庫(kù)及答案解析
- 二級(jí)評(píng)茶技師知識(shí)考核試題題庫(kù)與答案
- 消防工程擬投入主要施工設(shè)備機(jī)具表
- T∕CFA 0203141-2021 綠色鑄造設(shè)計(jì)產(chǎn)品 球墨鑄鐵管水冷金屬型離心機(jī)通用技術(shù)要求
- 【2020-2021自招】江蘇蘇州實(shí)驗(yàn)中學(xué)初升高自主招生數(shù)學(xué)模擬試卷【4套】【含解析】
評(píng)論
0/150
提交評(píng)論