版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、班級(jí)管理系統(tǒng)一 課程設(shè)計(jì)目的 本班級(jí)管理系統(tǒng)軟件主要用于實(shí)現(xiàn)用戶(hù)對(duì)學(xué)生一些基本信息的常用操作,在本系統(tǒng)中定義了對(duì)學(xué)生基本信息進(jìn)行添加,刪除,查找等幾個(gè)模塊。此系統(tǒng)是一個(gè)非常方便快捷的班級(jí)學(xué)生信息管理軟件,用戶(hù)可以隨心所欲地添加學(xué)生信息、查詢(xún)學(xué)生信息、修改學(xué)生信息,刪除學(xué)生信息等等。具體實(shí)現(xiàn)要求如下:1)能夠?qū)崿F(xiàn)對(duì)班級(jí)學(xué)生基本資料的錄入,包括學(xué)生的學(xué)號(hào),姓名,性別,所學(xué)專(zhuān)業(yè),家庭住址以及出生年月等。2)能夠?qū)崿F(xiàn)對(duì)學(xué)生基本資料的修改。3)根據(jù)學(xué)號(hào)對(duì)學(xué)生資料進(jìn)行查詢(xún)。4)能夠刪除某些學(xué)生的資料。二 設(shè)計(jì)方案1 設(shè)計(jì)概述 設(shè)計(jì)一個(gè)班級(jí)管理系統(tǒng),能夠?qū)崿F(xiàn)對(duì)學(xué)生基本資料的錄入,包括學(xué)生的學(xué)號(hào),姓名,性別,
2、所學(xué)專(zhuān)業(yè),家庭住址以及出生年月等;能夠?qū)崿F(xiàn)對(duì)學(xué)生基本資料的修改;根據(jù)學(xué)號(hào)對(duì)學(xué)生資料進(jìn)行查詢(xún);能夠刪除某些學(xué)生的資料。2 需求分析2.1 系統(tǒng)結(jié)構(gòu)圖根據(jù)本次課程設(shè)計(jì)的目的和以上的問(wèn)題描述,把該班級(jí)管理系統(tǒng)分為五個(gè)模塊:錄入模塊(StudentSituation)、查詢(xún)模塊(Inques)、刪除模塊(Delete)和修改模塊(ModifySituation)。各個(gè)模塊包括對(duì)學(xué)生學(xué)號(hào),姓名,所學(xué)專(zhuān)業(yè),家庭住址,出生日期等信息的操作。系統(tǒng)結(jié)構(gòu)圖如下:圖一 系統(tǒng)結(jié)構(gòu)圖2.2 系統(tǒng)主要類(lèi)定義由于在本班級(jí)管理系統(tǒng)中各個(gè)模塊操作的變量和方法大體相同,在程序中,錄入模塊(StudentSituation)、查詢(xún)
3、模塊(Inques)、刪除模塊(Delete)和修改模塊(ModifySituation)所操作的變量都是學(xué)生的學(xué)號(hào),姓名,性別,所學(xué)專(zhuān)業(yè),家庭住址以及出生年月等,所以把這四個(gè)模塊都定義為主類(lèi)(StudentManager)的子類(lèi)。在該設(shè)計(jì)中,由于沒(méi)有用數(shù)據(jù)庫(kù)對(duì)用戶(hù)所錄入的信息進(jìn)行存儲(chǔ),所以又定義了錄入模塊(StudentSituation)的一個(gè)子類(lèi), 該類(lèi)可以存儲(chǔ)用戶(hù)所輸入的學(xué)生信息,也可以接收用戶(hù)對(duì)信息的修改,而當(dāng)用戶(hù)刪除學(xué)生信息時(shí),該子類(lèi)刪除該信息。所以該系統(tǒng)中共有6個(gè)java源文件,類(lèi)之間的主要關(guān)系如下圖所示:圖二 類(lèi)之間的關(guān)系圖各主類(lèi)的主要作用如下:1).StudentManage
4、r.java該java文件的類(lèi)負(fù)責(zé)創(chuàng)建班級(jí)學(xué)生管理系統(tǒng)的主窗口。該類(lèi)包含main方法,main方法是程序執(zhí)行的入口,即程序從該類(lèi)開(kāi)始執(zhí)行。2).StudentStituation.java該文件的類(lèi)負(fù)責(zé)創(chuàng)建班級(jí)學(xué)生管理系統(tǒng)的學(xué)生信息錄入界面。3).ModifySituation.java該文件的類(lèi)負(fù)責(zé)創(chuàng)建班級(jí)學(xué)生管理系統(tǒng)的學(xué)生基本信息修改界面。4).Inquest.java該文件的類(lèi)負(fù)責(zé)創(chuàng)建班級(jí)學(xué)生管理系統(tǒng)的學(xué)生基本信息查詢(xún)界面。5).Delete.java該文件的類(lèi)負(fù)責(zé)創(chuàng)建班級(jí)學(xué)生管理系統(tǒng)的學(xué)生信息刪除界面。6).Student.java負(fù)責(zé)創(chuàng)建存放學(xué)生信息的對(duì)象。2.3功能需求 根據(jù)上述的
5、信息管理系統(tǒng)的業(yè)務(wù)流程、要求以及所要實(shí)現(xiàn)的目標(biāo),我們可以擬出以下需求目標(biāo):(1)建立學(xué)生檔案的管理和維護(hù)。實(shí)現(xiàn)計(jì)算機(jī)自動(dòng)化管理體制。(2)建立學(xué)生成績(jī)管理機(jī)制,在計(jì)算機(jī)的支持下快速的完成學(xué)生成績(jī)的查詢(xún)和修改。(3)建立課程設(shè)置管理,在計(jì)算機(jī)的支持下實(shí)現(xiàn)課程的添加、刪除、修改。(4)建立班級(jí)設(shè)置管理,在計(jì)算機(jī)的支持下實(shí)現(xiàn)班級(jí)的添加、刪除和修改。(5)實(shí)現(xiàn)系統(tǒng)的權(quán)限設(shè)置管理,保證系統(tǒng)安全性。根據(jù)系統(tǒng)的需求分析,得到本系統(tǒng)的功能要求如下:(1)班級(jí)、課程的設(shè)置管理:學(xué)校的教務(wù)秘書(shū)可以根據(jù)本校具體情況在每學(xué)期開(kāi)始時(shí)設(shè)置所需班級(jí)數(shù)量和人數(shù)。并設(shè)置本學(xué)期的課程。(2)權(quán)限管理:為了很好的保證系統(tǒng)的安全性,
6、學(xué)校相關(guān)負(fù)責(zé)人可以設(shè)置不同類(lèi)型的人員的權(quán)限。(3)學(xué)生檔案管理:學(xué)生檔案的數(shù)量十分龐大,教務(wù)管理人員進(jìn)行新生入學(xué)的檔案錄入及更改。其中包括學(xué)生個(gè)人信息的修改。(4)學(xué)生成績(jī)管理:教務(wù)管理人員可以查詢(xún)和修改學(xué)生的歷年考試成績(jī),掌握學(xué)生學(xué)習(xí)情況,作為評(píng)定學(xué)生素質(zhì)的數(shù)據(jù)依據(jù)。3 詳細(xì)設(shè)計(jì)3.1 主類(lèi)StudentManager.java該java文件的類(lèi)負(fù)責(zé)創(chuàng)建班級(jí)學(xué)生管理系統(tǒng)的主窗口。該類(lèi)包含main方法,main方法是程序執(zhí)行的入口,即程序從該類(lèi)開(kāi)始執(zhí)行。在該主類(lèi)StudentManager.java所包含的主要方法和主要成員變量如表1和表2所示:表1 主要方法名稱(chēng)功能備注StudentMana
7、ger創(chuàng)建程序主窗口構(gòu)造方法actionPerformed處理ActionEvent事件接口方法main系統(tǒng)主方法,程序開(kāi)始行系統(tǒng)主方法表2 主要成員變量成員變量描述變量類(lèi)型變量名稱(chēng)基本信息錄入界面StudentSituation基本信息錄入基本信息修改界面ModifySituation基本信息修改基本信息查詢(xún)界面Inquest基本信息查詢(xún)基本信息刪除界面Delete基本信息刪除菜單選項(xiàng)JMenuItem錄入,修改,查詢(xún),刪除存基本信息的散表Hashtable基本信息存放散列表的文件Filefile3.2 錄入界面StudentStituation.java該文件的類(lèi)負(fù)責(zé)創(chuàng)建班級(jí)學(xué)生管理系統(tǒng)的
8、學(xué)生信息錄入界面,該界面包括對(duì)學(xué)生學(xué)號(hào),姓名,所學(xué)專(zhuān)業(yè),家庭住址,出生日期的錄入,在該類(lèi)中定義了兩個(gè)方法創(chuàng)建學(xué)生信息錄入界面(StudentSituation),此方法屬于一個(gè)構(gòu)造方法;處理ActionEvent事件(actionPerformed),這是一個(gè)接口方法。該類(lèi)的主要成員變量和主要方法如表3和表4所示:表3 主要成員變量屬性描述變量類(lèi)型變量名稱(chēng)“學(xué)生”對(duì)象的散列表Hashtable基本信息表學(xué)生基本信息的文本JTextField學(xué)號(hào),姓名,所學(xué)專(zhuān)業(yè)等學(xué)生信息的對(duì)象Student表4 主要方法定義名稱(chēng)功能備注StudentSituation創(chuàng)建學(xué)生信息錄入面構(gòu)造方法actionPer
9、formed處理ActionEvent件接口方法3.3 查詢(xún)界面Inquest.java該文件的類(lèi)負(fù)責(zé)創(chuàng)建班級(jí)學(xué)生管理系統(tǒng)的學(xué)生基本信息查詢(xún)界面,在該類(lèi)中所操作的數(shù)據(jù)成員變量與錄入界面相同,也包括學(xué)生學(xué)號(hào),姓名,所學(xué)專(zhuān)業(yè),家庭住址,出生日期。在該類(lèi)中定義了一個(gè)構(gòu)造方法創(chuàng)建查詢(xún)界面(Inquest),和一個(gè)接口方法(actionPerformed)該類(lèi)的主要成員變量和主要方法如表5和表6所示:表5 主要成員變量屬性描述變量類(lèi)型變量名稱(chēng)存放“學(xué)生”對(duì)象的表Hashtable基本信息表顯示學(xué)生基本信息文本JTextField學(xué)號(hào),姓名,所學(xué)專(zhuān)業(yè)等表6 主要方法定義名稱(chēng)功能備注Inquest創(chuàng)建查詢(xún)界
10、面構(gòu)造方法actionPerformed處理ActionEvent事件接口方法3.4 修改界面ModifySituation.java該文件的類(lèi)負(fù)責(zé)創(chuàng)建班級(jí)學(xué)生管理系統(tǒng)的學(xué)生基本信息修改界面,在該類(lèi)中可以對(duì)各個(gè)成員變量進(jìn)行修改,可以修改學(xué)生學(xué)號(hào),姓名,所學(xué)專(zhuān)業(yè),家庭住址及出生日期,同樣在該類(lèi)中也創(chuàng)建了一個(gè)構(gòu)造方法和接口方法:創(chuàng)建學(xué)生信息修改界面(ModifySituation)和處理ActionEvent事件(actionPerform)。主要的成員變量如表7所示,主要方法如表8所示:表7 主要成員變量描述變量類(lèi)型變量名稱(chēng)存放“學(xué)生”對(duì)象的散列表Hashtabel基本信息表輸入學(xué)生基本信息的文
11、本條JTextField學(xué)號(hào),姓名,所學(xué)專(zhuān)業(yè)等表8主要方法名稱(chēng)功能備注ModifySituation創(chuàng)建學(xué)生信息修改界面構(gòu)造方法actionPerform處理ActionEvent事件接口方法3.5 刪除界面Delete.java該文件的類(lèi)負(fù)責(zé)創(chuàng)建班級(jí)學(xué)生管理系統(tǒng)的學(xué)生信息刪除界面。當(dāng)用戶(hù)要?jiǎng)h除某一個(gè)學(xué)生的信息時(shí),輸入要?jiǎng)h除的學(xué)生學(xué)號(hào),這時(shí)系統(tǒng)會(huì)提示用戶(hù)是否要?jiǎng)h除所選擇的學(xué)生信息,刪除后在學(xué)生信息表中會(huì)刪除該學(xué)生的記錄。在該類(lèi)中定義的主要成員變量和主要方法如表9和表10所示:表9 主要成員變量描述變量類(lèi)型變量名稱(chēng)存放“學(xué)生”對(duì)象的散列Hashtable基本信息表顯示學(xué)生基本信息的文本條JTex
12、tField學(xué)號(hào),姓名,所學(xué)專(zhuān)業(yè)等表10 主要方法名稱(chēng)功能備注Delete創(chuàng)建學(xué)生信息刪除界面構(gòu)造方法actionPerformed處理ActionEvent接口方法3.6 學(xué)生對(duì)象Student.java負(fù)責(zé)創(chuàng)建存放學(xué)生信息的對(duì)象。正如前面所述,在本次課程設(shè)計(jì)所開(kāi)發(fā)的系統(tǒng)中,其他模塊所操作的成員變量都存放在學(xué)生對(duì)象Student.java類(lèi)中,且該類(lèi)是StudentSituation類(lèi)的子類(lèi),也是主類(lèi)的間接子類(lèi),所以該類(lèi)繼承了這兩個(gè)類(lèi)的成員變量和成員方法。在該類(lèi)中所定義的主要成員變量和主要方法如表11和表12所示:表11 主要成員變量描述變量類(lèi)型變量名稱(chēng)學(xué)號(hào)StringNumber姓名Str
13、ingName所學(xué)專(zhuān)業(yè)StringDiscipling家庭住址StringGrade出生StringBorth性別StringSex表12 主要方法名稱(chēng)功能Setnumber設(shè)置學(xué)號(hào)Setnumber獲取學(xué)號(hào)Setname設(shè)置姓名Setname獲取姓名setDisciping設(shè)置所學(xué)專(zhuān)業(yè)setDisciping獲取所學(xué)專(zhuān)業(yè)setGrade設(shè)置家庭住址setGrade獲取家庭住址setBorth設(shè)置出生setBorth獲取出生setSex設(shè)置性別setSex獲取性別三 程序運(yùn)行結(jié)果本程序?yàn)橐缓?jiǎn)單的班級(jí)管理系統(tǒng),功能比較單一,但是基本功能還是實(shí)現(xiàn)了,能夠?qū)W(xué)生基本資料的錄入,修改,刪除以及查詢(xún)。1
14、 主界面窗口程序運(yùn)行后在主界面窗口上有一個(gè)菜單項(xiàng)“菜單選項(xiàng)”,該菜單包括五個(gè)下拉菜單:“錄入學(xué)生基本信息”,“修改學(xué)生基本信息”,“查詢(xún)學(xué)生基本信息”,“刪除學(xué)生基本信息”,“退出系統(tǒng)”。程序運(yùn)行的主要界面如圖三所示:圖三 系統(tǒng)主窗口2 錄入窗口界面 進(jìn)入主界面窗口后,點(diǎn)擊“錄入學(xué)生基本信息”下拉菜單項(xiàng),填寫(xiě)完學(xué)生基本信息點(diǎn)擊錄入,在彈出的對(duì)話框中選擇“是”,這樣用戶(hù)就可以錄入學(xué)生的基本信息。具體功能演示如下圖四所示:圖四 錄入窗口界面3 學(xué)生信息修改界面當(dāng)用戶(hù)想要修改某一學(xué)生的基本信息時(shí),輸入待修改學(xué)生的學(xué)號(hào),點(diǎn)擊開(kāi)始修改,即可對(duì)學(xué)生信息中的任意一項(xiàng)進(jìn)行修改。當(dāng)修改完成時(shí),點(diǎn)擊錄入修改。在如
15、圖五所示的對(duì)話框中選擇“確定”,即可完成對(duì)學(xué)生信息的修改。圖五 學(xué)生信息修改界面4 學(xué)生信息查詢(xún)界面 當(dāng)用戶(hù)想要查詢(xún)某個(gè)學(xué)生的基本信息時(shí),只需要在查詢(xún)界面中輸入待查詢(xún)學(xué)生的學(xué)號(hào),點(diǎn)擊“查詢(xún)”即可查詢(xún)到學(xué)生的基本信息。具體功能圖如圖六所示:圖六 學(xué)生信息查詢(xún)界面5 學(xué)生信息刪除界面同樣,當(dāng)用戶(hù)想要?jiǎng)h除某個(gè)學(xué)生的基本信息時(shí),也只需輸入待刪除學(xué)生的學(xué)號(hào),點(diǎn)擊“刪除”,在彈出的對(duì)話框中點(diǎn)擊確定,即可完成對(duì)學(xué)生基本信息的刪除操作。程序運(yùn)行界面如圖七所示圖七 學(xué)生信息刪除界面四 總結(jié)展望這次課程設(shè)計(jì)作業(yè)使我對(duì)用Java面向?qū)ο笳Z(yǔ)言編程產(chǎn)生了極大興趣。通過(guò)這次課程設(shè)計(jì)也著實(shí)讓自己感受到了一次編程的樂(lè)趣,從中
16、也學(xué)到了不少知識(shí)。由于在本系統(tǒng)涉及到的數(shù)據(jù)對(duì)象較多,且而由于Java面向?qū)ο笤O(shè)計(jì)中對(duì)異常處理的嚴(yán)格要求,所以在本次課程設(shè)計(jì)中深刻體會(huì)到了在程序開(kāi)發(fā)中對(duì)問(wèn)題的全面考慮,如果對(duì)某個(gè)操作可能出現(xiàn)的異??紤]不到,將會(huì)使程序運(yùn)行中出現(xiàn)錯(cuò)誤。在該系統(tǒng)中還運(yùn)用了Java中所提供的兩個(gè)處理圖形用戶(hù)界面的類(lèi)庫(kù):java.awt包javax.swing包。在所定義的幾個(gè)模塊中都用到了這兩個(gè)包,用于設(shè)計(jì)圖形用戶(hù)界面。通過(guò)對(duì)圖形用戶(hù)界面的設(shè)計(jì),對(duì)這兩個(gè)包中的標(biāo)簽,文本,框架及容器等類(lèi)的常用方法都有了比較深刻的了解。在這次實(shí)驗(yàn)中,對(duì)系統(tǒng)中成員變量和成員方法的調(diào)用也進(jìn)行了很多種嘗試,已經(jīng)能夠相對(duì)準(zhǔn)確的選擇合適的參數(shù)形式來(lái)
17、實(shí)現(xiàn)函數(shù)之間的數(shù)據(jù)傳輸交互了,同時(shí)也體會(huì)到了類(lèi)的繼承在程序設(shè)計(jì)中的巨大優(yōu)勢(shì)。不過(guò),在用Java開(kāi)發(fā)類(lèi)似的軟件時(shí),發(fā)現(xiàn)在圖形界面的設(shè)計(jì)方面遠(yuǎn)沒(méi)有用VB,VF等開(kāi)發(fā)工具簡(jiǎn)單。五 各功能模塊的主要代碼import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class StudentSituation extends JPanel implements ActionListener Hashtable 基本信息表=null; JTextField
18、學(xué)號(hào),姓名,所學(xué)專(zhuān)業(yè),家庭住址,出生日期; JRadioButton 男,女; Student 學(xué)生=null; ButtonGroup group=null; JButton 錄入,重置; FileInputStream inOne=null; ObjectInputStream inTwo=null; FileOutputStream outOne=null; ObjectOutputStream outTwo=null; File file=null; public StudentSituation(File file) 學(xué)號(hào)=new JTextField(10); 姓名=new JTe
19、xtField(10); 所學(xué)專(zhuān)業(yè)=new JTextField(10); 家庭住址=new JTextField(10); 出生日期=new JTextField(10); group=new ButtonGroup(); 男=new JRadioButton("男",true); 女=new JRadioButton("女",false);group.add(男); group.add(女); 錄入=new JButton("錄入"); 重置=new JButton("重置"); 錄入.addActionLis
20、tener(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(
21、"性別:",JLabel.CENTER); box3.add(男); box3.add(女); Box box4=Box.createHorizontalBox(); box4.add(new JLabel("所學(xué)專(zhuān)業(yè):",JLabel.CENTER); box4.add(所學(xué)專(zhuān)業(yè)); Box box5=Box.createHorizontalBox(); box5.add(new JLabel("家庭住址:",JLabel.CENTER); box5.add(家庭住址); Box box6=Box.createHorizontalB
22、ox(); 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 pCenter=new JPanel(); pCenter.add(boxH); setLayout(n
23、ew BorderLayout(); add(pCenter,BorderLayout.CENTER); JPanel pSouth=new JPanel(); pSouth.add(錄入); pSouth.add(重置);add(pSouth,BorderLayout.SOUTH); validate(); public void actionPerformed(ActionEvent e) if(e.getSource()=錄入) String number="" number=學(xué)號(hào).getText();if(number.length()>0) try inOn
24、e=new FileInputStream(file); inTwo=new ObjectInputStream(inOne); 基本信息表=(Hashtable)inTwo.readObject(); inOne.close(); inTwo.close(); catch(Exception ee) if(基本信息表.containsKey(number) String warning="該生基本信息已存在,請(qǐng)到修改頁(yè)面修改!" JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WA
25、RNING_MESSAGE); else String m="基本信息將被錄入!" int ok=JOptionPane.showConfirmDialog(this,m,"確認(rèn)",JOptionPane.YES_NO_OPTION,import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class Inquest extends JDialog implements ActionListener H
26、ashtable 基本信息表=null; JTextField 學(xué)號(hào),姓名,所學(xué)專(zhuān)業(yè),家庭住址,出生日期; JRadioButton 男,女; JButton 查詢(xún);ButtonGroup group=null; FileInputStream inOne=null; ObjectInputStream inTwo=null; File file=null; public Inquest(JFrame f,File file) super(f,"查詢(xún)對(duì)話框",false); this.file=file; 學(xué)號(hào)=new JTextField(10); 查詢(xún)=new JBut
27、ton("查詢(xún)"); 學(xué)號(hào).addActionListener(this); 查詢(xún).addActionListener(this); 姓名=new JTextField(10); 姓名.setEditable(false); 所學(xué)專(zhuān)業(yè)=new JTextField(10); 所學(xué)專(zhuān)業(yè).setEditable(false); 家庭住址=new JTextField(10); 家庭住址.setEditable(false); 出生日期=new JTextField(10); 出生日期.setEditable(false); 男=new JRadioButton("男&
28、quot;,false); 女=new JRadioButton("女",false);group=new ButtonGroup(); group.add(男);public void actionPerformed(ActionEvent e) 姓名.setText(null); 所學(xué)專(zhuān)業(yè).setText(null); 家庭住址.setText(null); 出生日期.setText(null); if(e.getSource()=查詢(xún)|e.getSource()=學(xué)號(hào)) String number="" number=學(xué)號(hào).getText(); i
29、f(number.length()>0) try inOne=new FileInputStream(file); inTwo=new ObjectInputStream(inOne); 基本信息表=(Hashtable)inTwo.readObject(); inOne.close(); inTwo.close(); catch(Exception ee) if(基本信息表.containsKey(number) Student stu=(Student)基本信息表.get(number); 姓名.setText(stu.getName(); 所學(xué)專(zhuān)業(yè).setText(stu.getD
30、isciping(); 家庭住址.setText(stu.getGrade(); 出生日期.setText(stu.getBorth(); String warning="該學(xué)號(hào)不存在!" String warning="必須要輸入學(xué)號(hào)!" JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE); import java.awt.*;import java.awt.event.*;import javax.swing.*;import j
31、ava.io.*;import java.util.*;public class Delete extends JPanel implements ActionListener Hashtable 基本信息表=null; JTextField 學(xué)號(hào),姓名,所學(xué)專(zhuān)業(yè),家庭住址,出生日期; JRadioButton 男,女; JButton 刪除; ButtonGroup group=null; FileInputStream inOne=null; FileOutputStream outOne=null; ObjectOutputStream outTwo=null; File file=nu
32、ll; public Delete(File file) this.file=file; 學(xué)號(hào)=new JTextField(10); 刪除=new JButton("刪除"); 學(xué)號(hào).addActionListener(this);刪除.addActionListener(this); 姓名=new JTextField(10); 姓名.setEditable(false); 所學(xué)專(zhuān)業(yè)=new JTextField(10); 所學(xué)專(zhuān)業(yè).setEditable(false); 家庭住址=new JTextField(10); 家庭住址.setEditable(false);
33、 出生日期=new JTextField(10);出生日期.setEditable(false); 男=new JRadioButton("男",false); 女=new JRadioButton("女",false);public void actionPerformed(ActionEvent e) if(e.getSource()=刪除|e.getSource()=學(xué)號(hào)) String number="" number=學(xué)號(hào).getText(); if(number.length()>0) try inOne=new F
34、ileInputStream(file); inTwo=new ObjectInputStream(inOne); 基本信息表=(Hashtable)inTwo.readObject(); inOne.close(); inTwo.close(); catch(Exception ee) if(基本信息表.containsKey(number) Student stu=(Student)基本信息表.get(number); 姓名.setText(stu.getName(); 所學(xué)專(zhuān)業(yè).setText(stu.getDisciping(); 家庭住址.setText(stu.getGrade()
35、; 出生日期.setText(stu.getBorth(); if(stu.getSex().equals("男") 男.setSelected(true); else 女.setSelected(true); public void actionPerformed(ActionEvent e) if(e.getSource()=開(kāi)始修改|e.getSource()=學(xué)號(hào)) String number="" number=學(xué)號(hào).getText(); if(number.length()>0) try inOne=new FileInputStrea
36、m(file); inTwo=new ObjectInputStream(inOne); 基本信息表=(Hashtable)inTwo.readObject(); inOne.close(); inTwo.close(); catch(Exception ee) if(基本信息表.containsKey(number) 錄入修改.setEnabled(true); Student stu=(Student)基本信息表.get(number); 姓名.setText(stu.getName(); 所學(xué)專(zhuān)業(yè).setText(stu.getDisciping(); 家庭住址.setText(stu.
37、getGrade(); 出生日期.setText(stu.getBorth(); if(stu.getSex().equals("男") 男.setSelected(true); else 女.setSelected(true); import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.Hashtable;public class StudentManager extends JFrame implements ActionListene
38、r StudentSituation 基本信息錄入=null; ModifySituation 基本信息修改=null; Inquest 基本信息查詢(xún)=null; Delete 基本信息刪除=null; JMenuBar bar; JMenu fileMenu; JMenuItem 錄入,修改,查詢(xún),刪除,退出; Container con=null; Hashtable 基本信息=null; File file=null; CardLayout card=null; JLabel label; JPanel pCenter; public StudentManager() setTitle(
39、"歡迎進(jìn)入班級(jí)管理系統(tǒng)"); 錄入=new JMenuItem("錄入學(xué)生基本信息"); 修改=new JMenuItem("修改學(xué)生基本信息"); 查詢(xún)=new JMenuItem("查詢(xún)學(xué)生基本信息"); 刪除=new JMenuItem("刪除學(xué)生基本信息"); 退出=new JMenuItem("退出本系統(tǒng)"); 退出.addActionListener(new ActionListener() public void actionPerformed(ActionEvent event) System.exit(0); label=new JLabel("歡迎進(jìn)入班級(jí)管理系統(tǒng)!",label.CENTER); label.setFont(new Font("隸書(shū)",Font.BOLD,30); label.setFore
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆廣東汕頭潮陽(yáng)區(qū)高考考前提分英語(yǔ)仿真卷含解析
- 河北省鹿泉一中、元氏一中、正定一中等五校2025屆高考適應(yīng)性考試英語(yǔ)試卷含解析
- 北京市清華大學(xué)附中2025屆高考英語(yǔ)全真模擬密押卷含解析
- 廣東珠海二中2025屆高三第二次診斷性檢測(cè)英語(yǔ)試卷含解析
- 海南省??谑腥A僑中學(xué)2025屆高三下學(xué)期第六次檢測(cè)語(yǔ)文試卷含解析
- 福建省龍巖市龍巖第一中學(xué)2025屆高三下學(xué)期聯(lián)合考試英語(yǔ)試題含解析
- 湖北省襄陽(yáng)市重點(diǎn)中學(xué)2025屆高考全國(guó)統(tǒng)考預(yù)測(cè)密卷英語(yǔ)試卷含解析
- 《針對(duì)驗(yàn)廠管理培訓(xùn)》課件
- 2025屆廣東省揭陽(yáng)市產(chǎn)業(yè)園區(qū)高三下學(xué)期第五次調(diào)研考試英語(yǔ)試題含解析
- 北京市東城區(qū)東直門(mén)中學(xué)2025屆高考?jí)狠S卷數(shù)學(xué)試卷含解析
- 基建類(lèi)試題及答案
- 停窯檢修的十大黃金準(zhǔn)則
- 惡性胸膜間皮瘤診治進(jìn)展 華晶
- 睡眠呼吸暫停綜合癥與心血管疾病
- 英語(yǔ)口語(yǔ) 購(gòu)物課件
- 《劇目》課程標(biāo)準(zhǔn)(高職)
- 機(jī)械CADCAM原理及應(yīng)用課件完整
- 設(shè)備機(jī)房出入登記表
- 人工血管動(dòng)靜脈內(nèi)瘺術(shù)后護(hù)理課件
- 外墻真石漆施工技術(shù)交底
- 文明禮儀校本教材文件
評(píng)論
0/150
提交評(píng)論