

下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、封面作者:PanHongliang僅供個人學習Java程序設計錄入學生1W息查詢學生信息刪除學生信息*課程設計一、總體設計1.1學生信息系統結構圖 .1。1.2本系統的主要功能 .2。1.3 Java源文件及其功能 .2。二、詳細設計2.1主類StudentManager . 3.2.2類StudentSituation . 52.3類ModifySituation . .82.4類in quest .102.5類Delete. 122.6類Student. .13三、 功能測試及運行效果3.1系統主界面.153.2錄入信息界面 .153.3修改信息界面.163.3查詢信息界面.163.3刪除
2、信息界面.17程序總結.17參考文獻.17一、總體設計1.1學生信息系統結構圖學生信息管理系統彳亍。2. Stude ntSituati on .java該類創建的對象是StudentManager類的重要成員之一,負責提供錄入、重置學生基本信息的界面。3. ModifySituatio n.java該類創建的對象是StudentManager類的重要成員之一,負責提供修改學生基本信息的界面。4. Delete.java該類創建的對象是StudentManager類的重要成員之一,負責提供刪除學生基本信息的界面。5.in quest.java創建的對象是StudentManager類的重要成員
3、之一,該類負責提供查詢學生基本信息的 界面。6.Stude nt.java錄入學號錄入姓名錄入專業錄入年級出生日期1.2 本系統的主要功能運行該系統成功后,會出現一個歡迎使用的主界面, 分別是錄入基本信息、修改基本信息、查詢基本信息 同的界面,分別有不同的功能:顯顯顯顯上示0的1菜單選項示會 彈示出,名1除基本信息級點擊它們刪除生日1. Stude ntManager.java該類負責創建學生信息管理系統的主窗口,該類還有main方法,程序從該類開始執門會出現刪除年級該類創建的對象是StudentManager類的重要成員之一,該類在做上面操作時可以返回學生的基本信息,主要起到一個返回的作用。
4、本系統是基于數據庫的學生信息管理系統,實現了連接數據庫,錄入、修改、查詢、 刪除學生信息的功能。1.3 Java 源文件及其功能1.icon .jpg該文件是窗口最小化時的窗口圖標,Stude ntSituation需要調用該文件。2.專業.txt該文件為專業組合的組合鍵提供下拉菜單的內 容,StudentSituationModifySituation調用該文件。二、詳細設計2.1 主類 StudentManager表2-1主要成員變量(屬性)成員變量描述變量類型名稱面板Stude ntSituati onNULL面板ModifySituatio nNULL面板in questNULL面板D
5、eleteNULL菜單欄JMe nuBarbar菜單組JMe nufileMe nu菜單項JMe nultemStude ntSituatio n,ModifySituatio nIn quest.Delete布局管理器CardLayoutcard表2-2主要方法方法名稱返回類型功能備注Stude ntMa nager無類型創建窗口構造方法actio nPerformed無類型處理響應事件繼承自父類抽象方法mai n無類型執行程序程序的主函數源代碼StudentManager.javaimport java.awt.* 。import java.awt.eve nt.* 。import jav
6、ax.swi ng.*。import java.io.* 。import java.util.Hashtable。public class Stude ntMa nager exte nds JFrame impleme nts Acti on Liste nerStude ntSituati onModifySituationIn questDeleteJMen uBar barJMe nu fileMe nuJMenultem錄入,修改,查詢,刪除。Container con=n ull。Hashtable基本信息=null。File file=null。CardLayout card=n
7、 ull JLabel label=n ullJPa nel pCe nter。public Stude ntMa nager() 錄入=n ew JMe nultem( 錄入基本信息修改=new JMenuItem(修改基本信息 查詢=n ew JMe nultem(” 查詢基本信息 刪除=new JMe nultem(刪除基本信息 bar=newJMe nuBar()。=null=null基本信息錄入基本信息修改基本信息查詢基本信息刪除)fileMenu=new JMenu( 菜單選項 ) 。 fileMenu.add(錄入 ) 。fileMenu.add(修改 ) 。fileMenu.a
8、dd(查詢 ) 。fileMenu.add(刪除 ) 。bar.add(fileMenu) 。 setJMenuBar(bar) 。label=new JLabel(welcome to use students system!,JLabel.CENTER) label.setFont(new Font(楷體 ,Font.BOLD, 22)。label.setForeground(Color.black) ?;拘畔?=new Hashtable() 。錄入 .addActionListener(this)。修改 .addActionListener(this)。查詢 .addActionLi
9、stener(this)。刪除 .addActionListener(this)。card=new CardLayout() 。 con=getContentPane() 。 pCenter=new JPanel() 。 pCenter.setLayout(card) 。file=new File( 基本信息 .txt) 。 if(!file.exists()tryFileOutputStream out=new FileOutputStream(file) ObjectOutputStream objectOut=newObjectOutputStream(out) objectOut.wr
10、iteObject( 基本信息 ) 。 objectOut.close() 。out.close() 。catch(IOException e)基本信息錄入 =new StudentSituation(file)。基本信息修改 =new ModifySituation(file)?;拘畔⒉樵?=new Inquest(this,file)?;拘畔h除 =new Delete(file)。pCenter.add(歡迎語界面,label) 。pCenter.add(錄入界面 ,基本信息錄入 ) 。pCenter.add(修改界面 ,基本信息修改 ) 。pCenter.add(刪除界面 ,基本信
11、息刪除 ) 。con.add(pCenter,BorderLayout.CENTER) 。 con.validate() 。addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e)System.exit(0) 。 setVisible(true) 。 setBounds(100,50,420,380) 。 validate() 。public voidactionPerformed(ActionEvent e)if(e.getSource()=card.show(pCenter,else if(
12、e.getSource()= card.show(pCenter,else if(e.getSource()=基本信息查詢else if(e.getSource()=錄入 )錄入界面 )修改)修改界面 ) 查詢 ) .setVisible(true)刪除)card.show(pCenter,刪除界面)public static void main(String args)new Stude ntMa nager()。2.2 類 StudentSituation表2-3主要成員變量成員變量描述變量類型名稱Hashtable對象類型HashtableNULL文本域JTextField學號、姓名、專
13、業、年級、出生組合框JComboBoxSmajor單選框Butt on Group男、女按鈕多斥作用域Butt on Groupgroup按鈕JButt on錄入、重置表2-4主要方法方法名稱返回類 型功能備注Stude ntSituati on無類型創建錄入學生信息界面構造方法actio nPerformed無類型處理響應事件繼承自父類抽象方法Hashtable 基本信息表=n ull 。JTextField學號,姓名,專業,年級,岀生JRadioButton男,女。Stude nt學生=null 。Butt on Groupgroup =n ull 。JButton錄入,重置。public
14、 StudentSituation(File file)this . file =file 。學號=newJTextField(10)。姓名=newJTextField(10)。專業=newJTextField(10)。年級=newJTextField(10)。岀生=newJTextField(10)。源代碼StudentSituation.javaimportjava.awt.*。importjava.awt.eve nt.*。importjavax.swi ng.*。importjava.io.*。importjava.util.*。publicclassStude ntSituati o
15、nextendsimpleme ntsActio nListe nerFileI nputStreamObjectI nputStreamFileOutputStreamObjectOutputStreamFile file =nullinOne =n ull 。in Two =n ull 。out One =n ull 0)try inOne =new FileInputStream( file ) 。 inTwo =new ObjectInputStream( inOne ) 基本信息表 =(Hashtable)inTwo .readObject() inOne .close()。inTw
16、o .close()。catch (Exception ee)if ( 基本信息表 .containsKey(number)String warning=JOptionPane. 該生基本信息已存在 , 請到修改頁面修改 ! 。 showMessageDialog( this ,warning, 警告 ,JOptionPane. WARNING_MESSAGE) elseString m= intok=JOptionPane. 基本信息將被錄入 ! 。 showConfirmDialog( this ,m, 確認 ,JOptionPane. YES_NO_OPTIONJOptionPane.
17、INFORMATION_MESSAGE ) if (ok=JOptionPane. YES_OPTION ) ,JOptionPane. WARNING_MESSAGE)if (e.getSource()=String name=String discipling=String grade=String borth=String sex= if( 男 .isSelected()sex= else姓名 .getText() 。專業 .getText()年級 .getText()。出生 .getText()。null 。男.getText()sex=學生 =new Student()。學生 .se
18、tNumber(number) 。 學生 .setName(name)。學生 .setDiscipling(discipling) 學生 .setGrade(grade)。學生 .setBorth(borth)。學生 .setSex(sex) 。 try outOne=new FileOutputStream(file )outTwo .writeObject(基本信息表 ) 。outTwo .close()。outOne .close()。學號 .setText(null )。姓名 .setText(專業 .setText(null )。年級 .setText(null )。出生 .setT
19、ext(null )。女.getText()catch (Exception ee)System.elseString warning=JOptionPane.out .println(ee) 必須要輸入學號 ! 。showMessageDialog ( this ,warning,I! 警告重置 )outTwo =new ObjectOutputStream(outOne )基本信息表 .put(number, 學生 ) 。null )學號 .setText(null) 。姓名 .setText(null) 。專業 .setText(null) 。年級 .setText(null) 。出生
20、.setText(null) 。2.3 類 ModifySituation表2-5主要成員變量成員變量描述變量類型名稱Hashtable對象類型HashtableNULL文本域JTextField學號、姓名、專業、年級、出生組合框JComboBoxSmajor單選框Butt on Group男、女按鈕多斥作用域Butt on Groupgroup按鈕JButton開始修改、錄入修改、重置表2-6主要方法方法名稱返回類型功能備注ModifySituatio n無類型創建修改學生信息界面構造方法actio nPerformed無類型處理響應事件繼承自父類抽象方法clearMess無類型清除文本框內
21、容無8核心源代碼ModifySituation.javapublic class ModifySituatio n exte nds JPa nel impleme nts Actio nListe ner Hashtable 基本信息表=null。JTextField 學號,姓名,專業,年級,岀生。JRadioButton男,女。Butt on Group group=n ull。JButton開始修改,錄入修改,重置。File In putStream inOne=n ull。ObjectI nputStream in Two=n ull。FileOutputStream out One=
22、n ull。ObjectOutputStream outTwo=n ull。File file=n ull。public ModifySituatio n(File file)this.file=file。學號=new JTextField(10)。姓名=new JTextField(1o)。專業=new JTextField(1o)。年級=new JTextField(1o)。岀生=new JTextField(1o)。group=new Butt on Group()。男= =門門 ew JRadioButt on (” 男,true)。女=new JRadioButt on (女fals
23、e)。group.add( 男)。group.add( 女)。開始修改=new JButton(開始修改)。錄入修改=new JButton(”錄入修改)。錄入修改.setEnabled(false)。重置=new JButton(” 重置)。學號.addActionListener(this)。開始修改.addActionListener(this)。錄入修改.addActionListener(this)。重置.addActionListener(this)。Box box1=Box.createHoriz on talBox()。. 部分源代碼省略.學號.setText(null)。姓名
24、.setText(null)。專業.setText(null)。年級.setText(null)。岀生.setText(null)。 catch(Excepti on ee) System.out.pr intln( ee)。錄入修改.setEnabled(false) 。else if(ok=JOpti onPan e.NO_OPTION) _錄入修改.setEnabled(true) 。elseString warning=該學號沒有基本信息,不能修改!。錄入修改.setEnabled(false) 。elseString warning=必須要輸入學號!。JoptionPane.show
25、messageDialog(this,waring,警告,JoptionPane.WARNING錄入修改.setEnabled(false)。if(e.getSource()= 重置)學號.setText(null)。姓名.setText(null)。專業.setText(null)。年級.setText(null)。岀生.setText(null)。2.4 類 inquest表2-7主要成員變量成員變量描述變量類型名稱Hashtable對象類型Hashtablein quest文本域JTextField學號,姓名,專業,年級,出生啟動并執行打印作業Prin tJobpri單選框Butt on
26、 Group男,女按鈕多斥作用域Butt on Groupgroup按鈕JButt on查詢表2-8主要方法方法名稱返回類型功能備注in quest無類型創建錄入學生信息界面構造方法actio nPerformed無類型處理響應事件繼承自父類抽象方法核心源代碼inquest.javaimport java.awt.* 。import java.awt.eve nt.* 。import javax.swi ng.* 。import java.io.* 。import java.util.* 。public class In quest exte nds JDialog impleme nts A
27、cti on Liste nerHashtable基本信息表=null。JTextField 學號,姓名,專業,年級,岀生。JRadioButton男,女。JButt on 查詢。Butt on Group group=n ull。File In putStream inOne=n ull。ObjectI nputStream in Two=n ull。File file=n ull。public In quest(JFrame f,File file) . 部分源代碼省略.inOn e.close()。in Two.close()。catch(Excepti on ee)if(基本信息表.c
28、ontainsKey(number)Student stu=(Student)基本信息表.get(number)姓名.setText(stu.getName() 。專業.setText(stu.getDisciping()。年級.setText(stu.getGrade()。岀生.setText(stu.getBorth()。if(stu.getSex().equals(男)男.setSelected(true) 。else女.setSelected(true)。elseString warning=該學號不存在!2.5 類 Delete表2-9主要成員變量成員變量描述變量類型名稱Hashta
29、ble對象類型HashtabledelStu queryStu文本域JTextField學號,姓名,專業,年級,出生單選框Butt on Group男,女按鈕多斥作用域Butt on Groupgroup按鈕JButt ondel表2-10主要方法方法名稱返回類 型功能備注In putStude nt無類型創建錄入學生信息界面構造方法actio nPerformed無類型處理響應事件繼承自父類抽象方法核心源代碼 Delete .javapublic class Delete exte nds JPa nel impleme nts Actio nListe nerHashtable基本信息表=
30、null。JTextField 學號,姓名,專業,年級,岀生 JRadioButton男,女。JButt on刪除。Butt on Group group=n ull。File In putStream inOne=n ull。ObjectI nputStream in Two=n ull。FileOutputStream out One=n ull。ObjectOutputStream outTwo=n ull。File file=n ull。public Delete(File file)this.file=file。學號=new JTextField(10) 。刪除=new JButto
31、n( 刪除)。 學號.addActionListener(this) 。刪除.addActionListener(this)。姓名=new JTextField(10)。姓名.setEditable(false)。專業 =new JTextField(10) 。專業 .setEditable(false) 。年級 =new JTextField(10) 。年級 .setEditable(false) 。出生 =new JTextField(10) 。出生 .setEditable(false) 。男 =new JRadioButton( 男 ,false) 。女 =new JRadioButt
32、on( 女 ,false) 。AGE)。部分源代碼省略 . if(ok=JOptionPane.YES_OPTION)基本信息表 .remove(number) 。tryoutOne=new FileOutputStream(file) outTwo=new ObjectOutputStream(outOne)outTwo.writeObject( 基本信息表 ) outTwo.close()。outOne.close()。學號 .setText(null)。姓名 .setText(null)。專業 .setText(null)。年級 .setText(null)。出生 .setText(nu
33、ll)。catch(Exception ee)System.out.println(ee) 。else if(ok=JOptionPane.NO_OPTION)學號 .setText(null)。姓名 .setText(null)。專業 .setText(null)。年級 .setText(null)。出生 .setText(null)。elseString warning= 該學號不存在 ! 。 JOptionPane.showMessageDialog(this,warning,JOptionPane.WARNING_MESSAGE)。elseString warning= 必須要輸入學號
34、 ! 。JOptionPane.showMessageDialog(this,warning, ,JOptionPane.WARNING_MESSAGE)。2.6 類 Student核心源代碼 Student .javapublicclass Student implements java.io.SerializableString number,name,discipling,grade,borth,sex public Student()publicvoid setNumber(String number)this .n umber=n umber。public String getNum
35、ber()retur n n umber。publicvoid setName(Stri ng n ame)this .n ame=n ame。public Stri ng getName()return n ame。publicvoid setDiscipli ng(Stri ng discipli ng)this.discipli ng=discipli ngpublic String getDiscip in g()retur n discipli ng。publicvoid setGrade(Stri ng grade)this.grade=grade。public String ge
36、tGrade()retur n grade 。publicvoid setBorth(String borth)this.borth=borth。public Stri ng getBorth()return borth 。publicvoid setSex(Stri ng sex) this.sex=sex 。public String getSex()retur n sex 。三、功能測試及運行效果3.1 系統主界面圖3-2學生信息錄入界面15圖3-1.3.2 錄入學生信息界面系統主窗口3.3 修改學生信息界面圖3-3學生信息修改界面3.4 查詢學生信息界面圖3-4學生信息查詢界面163.
37、5 刪除學生信息界面圖3-4學生信息刪除界面.程序總結:通過這次課程設計,我們了解到java也是可以分工合作的,雖然最后的整合過程非常麻煩,但是在整合完后,我們發現,課本被翻過很多遍,很多以前不知道的東西就這樣豁然 開朗了。我們還引用了很多從來沒有用過的語句塊,大多是從網上找到,然后自己整合進 入代碼,再實現我們想要的功能。編程是個艱難的過程,很多功能語句都需要上網或者是查其他書籍來查看他們的用法,課 本上的東西對我們來說遠遠不夠,我們要把目光放長遠一些。這次的課程設計使我對JAVA的許多東西都有了更深一步的了解,以前對自己的要求是看得懂就行,現在才發現,光能看懂是遠遠不夠的,能看懂并不代表你會!只有自己真的親身體驗到了,才會知道。這個禮拜的課程設計是這個學期最累的一個禮拜,但是,我們的付出總算有回報,雖然我 們的計算器可能還存在不少的問題,但是,至少它可以正常運行四則運算,基本達到了我 們預期的要求,所以,這個禮拜同樣是我最充實的一個禮拜。.參考文獻1耿祥義,張躍平Java 2實用教程(第三版)M.北京:清華大學出版社,20062(美)霍斯特曼(Horstmann C.S.)&nbs. Java2核心技
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鐵路旅客運輸服務鐵路客運服務質量保證與補救課件
- 生活用品租賃協議
- 鐵路市場營銷市場細分的原則課件
- 河池脫硫塔防腐施工方案
- 中國主要旅游線路
- 大學生職業規劃大賽《光電信息科學與工程專業》生涯發展展示
- 分銷商合同框架協議
- 江西工程職業學院《影視傳媒法律法規》2023-2024學年第二學期期末試卷
- 湘潭理工學院《建筑結構抗震》2023-2024學年第二學期期末試卷
- 天津仁愛學院《發電廠電氣設備及運行》2023-2024學年第二學期期末試卷
- 預應力張拉安全操作規程
- 常見眼壓計對比分析文檔
- 呼吸科常用吸入藥物介紹
- 人行道混凝土專項施工方案
- 《自相矛盾》的說課課件
- 2023年-2024年電子物證專業考試復習題庫(含答案)
- 室內線路的安裝-課件
- 兒科學:21-三體綜合征課件
- 安徽省阜陽市2022-2023學年高二下學期期末教學質量統測歷史試題
- 人工智能語言與倫理學習通課后章節答案期末考試題庫2023年
- 銅陵恒達新材料科技有限公司《年產5萬噸鋁錠和5萬噸鋁棒項目(重新報批)》
評論
0/150
提交評論