JAVA課程設(shè)計(jì)學(xué)籍管理系統(tǒng)_第1頁
JAVA課程設(shè)計(jì)學(xué)籍管理系統(tǒng)_第2頁
JAVA課程設(shè)計(jì)學(xué)籍管理系統(tǒng)_第3頁
JAVA課程設(shè)計(jì)學(xué)籍管理系統(tǒng)_第4頁
JAVA課程設(shè)計(jì)學(xué)籍管理系統(tǒng)_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

員號(hào)員號(hào)員號(hào)業(yè)程 20119——201112月算機(jī)科制。。。。指導(dǎo)教師簽字: 日期:指導(dǎo)教師語: 指導(dǎo)教師簽字: 日期:、硬件JAVAMyEclipse6進(jìn)度劃起止日期 工作內(nèi)容 備注201110201112

編寫一個(gè)管理學(xué)籍?dāng)?shù)據(jù)庫參考文獻(xiàn)、資料索引序號(hào) 文獻(xiàn)、資料名稱 編著者 出版單位<Java序> 高曉黎劉博主編, 清華大學(xué)出版社《Java思想》《Javajava》6java。類之間的主要關(guān)如圖所示。StudentManager( StudentManager( 主)StudentSituatiInquesDeleteModifySituationStudenStudentManager.javajava含有main開始執(zhí)行。StudentSituation.java存放生信息對(duì)象。具體設(shè)計(jì)StudentManager1.成員變量(見下表)要成員變量(屬性)成員變量描述變量型名稱基本信息錄入界面StudentSituation基本信息錄入基本信息修改界面ModifySituation基本信息修改基本信息查詢界面Inquest基本信息查詢基本信息刪除界面Delete基本信息刪除菜單選項(xiàng)JmenuItem錄入,修改,查詢,刪除存放基本信息散列表Hashtable基本信息存放散列表Filefile2.方法(見下表)要方法名稱功能備注StudentManager程序構(gòu)造方法actionPerformed處ActionEvent件接方法main程序開始運(yùn)行3.代碼StudentManager.javaimportjava.awt.*;importjavax.swing.*;importjava.io.*;publicclassStudentManagerextendsJFrameimplementsActionListener{StudentSituation=null;ModifySituation=null;InquestDelete JMenuBarbar;JMenufileMenu;JMenuItem;Containercon=null;Hashtable=null; //Filefile=null; 件CardLayoutcard=null; //卡片式布局JLabellabel=null; JPanelpCenter;publicStudentManager(){=newJMenuItem("學(xué)生");=newJMenuItem("學(xué)生");=newJMenuItem("學(xué)生");=newJMenuItem("學(xué)生");bar=newJMenuBar();fileMenu=newJMenu("fileMenu.add();fileMenu.add();fileMenu.add();fileMenu.add();bar.add(fileMenu);setJMenuBar(bar);label=newJLabel("歡迎使用學(xué)生",JLabel.CENTER);label.setFont(newFont("TimesRoman",Font.BOLD,24));label.setForeground(Color.red);=new.addActionListener(this);.addActionListener(this);.addActionListener(this);.addActionListener(this);card=newCardLayout();con=getContentPane();pCenter=newJPanel();pCenter.setLayout(card);file=newFile(".txt");if(!file.exists()){try{FileOutputStreamout=newFileOutputStream(file);ObjectOutputStreamobjectOut=newObjectOutputStream(out););objectOut.close();out.close();}catch(IOExceptione){}}=newStudentSituation(file);=newModifySituation(file);=newInquest(this,file);=newDelete(file);pCenter.add("",label);pCenter.add(");pCenter.add(");pCenter.add(");con.add(pCenter,BorderLayout.CENTER);con.validate();addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});setVisible(true);setBounds(100,50,420,380);validate();}publicvoidactionPerformed(ActionEvente){if(e.getSource()==){card.show(pCenter,"}elseif(e.getSource()==){card.show(pCenter,"}elseif(e.getSource()==){ .setVisible(true);}elseif(e.getSource()==){card.show(pCenter,"}}publicstaticvoidmain(Stringargs[]){newStudentManager();}}StudentSituation1述 型 “學(xué)生”對(duì)象的散列Hashtable 基本信息表輸學(xué)生基本信息的文本條 JtextField 學(xué)號(hào)姓專業(yè)年級(jí)出生學(xué)生信息的對(duì)象 Student 學(xué)2方法稱 功能 備注StudentSituation 創(chuàng)建學(xué)生面 構(gòu)造方actionPerformed 處理ActionEvent件 接口方3StudentSituation.javaimportjava.awt.*;importjavax.swing.*;importjava.io.*;importjava.util.*;publicclassStudentSituationextendsJPanelimplementsActionListener{Hashtable基本信息=null; JTextField學(xué)號(hào)姓專業(yè)年級(jí)出; //輸基本信息的文本條JRadioButton男女;Student ButtonGroupgroup=null;JButtonFilefile=null; //散列的文件publicStudentSituation(Filefile){this.file=file;=newJTextField(10);=newJTextField(10);=newJTextField(10);=newJTextField(10);=newJTextField(10);group=new男=newJRadioButton("男",true);女=newJRadioButton("女",false);group.add(男);=newJButton("=newJButton(.addActionListener(this);.addActionListener(this);Boxbox1=Box.createHorizontalBox(); //6box1.add(newJLabel(":",JLabel.CENTER));Boxbox2=Box.createHorizontalBox();box2.add(newJLabel(":",JLabel.CENTER));box2.add();Boxbox3=Box.createHorizontalBox();box3.add(newJLabel(":",JLabel.CENTER));box3.add();Boxbox4=Box.createHorizontalBox();box4.add(newJLabel(":",JLabel.CENTER));box4.add();Boxbox5=Box.createHorizontalBox();box5.add(newJLabel(":",JLabel.CENTER));box5.add();Boxbox6=Box.createHorizontalBox();box6.add(newJLabel(":",JLabel.CENTER));box6.add();//Box6BoxBoxboxH=Box.createVerticalBox();boxH.add(box1);boxH.add(box2);boxH.add(box3);boxH.add(box4);boxH.add(box5);boxH.add(box6);boxH.add(Box.createVerticalGlue()); //BoxJPanelpCenter=newJPanel();pCenter.add(boxH);setLayout(newBorderLayout());add(pCenter,BorderLayout.CENTER);JPanelpSouth=newJPanel();pSouth.add(錄入);pSouth.add();validate();}publicvoidactionPerformed(ActionEvente){if(e.getSource()==錄入){Stringnumber="";if(number.length()>0) //如果已輸入{try{

inOne=newFileInputStream(file);inTwo=new基本信息表=(Hashtable)inTwo.readObject();//首先到文件中讀取inOne.close();inTwo.close();}

Hashtable//",JOptionPane.

catch(Exceptionee){}if(.containsKey(number))//{ //Stringwarning="JOptionPane.showMessageDialog(this,warning," 警WARNING_MESSAGE);}else //{Stringint ok=JOptionPane.showConfirmDialog(this,m," ",JOptionPane.YES_NO_OPTION,JOptionPane.INFORMATION_MESSAGE);if(ok==JOptionPane.YES_OPTION){Stringname=.getText();Stringdiscipling.getText();Stringgrade=.getText();Stringborth=.getText();Stringsex=null;if(男.isSelected()){}else{}

=newStudent();.setName(name);.setGrade(grade);.setSex(sex);try{outOne=newFileOutputStream(file);outTwo=newObjectOutputStream(outOne);.put(number,);outTwo.writeObject();outTwo.close();.setText(null);}else

}catch(Exceptionee){}}}//Stringwarning="WARNING_MESSAGE);}}{}}}Inquest1述 型 “”象的散列Hashtable year顯示基本信息的文本條 JTextField 2方法稱 功能 備注Inquest 創(chuàng)建面 構(gòu)造方法actionPerformed 處理ActionEvent件 接口方3Inquest.javaimportjava.awt.*;importjavax.swing.*;importjava.io.*;importjava.util.*;publicclassInquestextendsJDialogimplementsActionListener{Hashtable=null; JTextField,業(yè),級(jí),; //顯示文本條JRadioButtonFileInputStreaminOne=null;ObjectInputStreamFilefile=null; 文件publicInquest(JFramef,Filefile){super(f,"查詢對(duì)話",false); 建無模式對(duì)話this.file=file;=newJTextField(10);=newJButton(=newJTextField(10);.setEditable(false);=newJTextField(10);=newJTextField(10);=newJTextField(10);男=newJRadioButton("男",false);女=newJRadioButton("女",false);group=newButtonGroup();group.add(男);//6Box組件Boxbox1=Box.createHorizontalBox();box1.add(newJLabel("輸入要查詢:",JLabel.CENTER));box1.add();Boxbox2=Box.createHorizontalBox();box2.add(newJLabel(":",JLabel.CENTER));box2.add();Boxbox3=Box.createHorizontalBox();box3.add(newJLabel("性別:",JLabel.CENTER));box3.add(Boxbox4=Box.createHorizontalBox();box4.add(newJLabel("專業(yè):",JLabel.CENTER));box4.add(Boxbox5=Box.createHorizontalBox();box5.add(newJLabel("年級(jí):",JLabel.CENTER));box5.add(Boxbox6=Box.createHorizontalBox();box6.add(newJLabel("出:",JLabel.CENTER));box6.add();//Box6BoxboxH=Box.createVerticalBox();boxH.add(box1);boxH.add(box2);boxH.add(box3);boxH.add(box4);boxH.add(box5);boxH.add(box6);boxH.add(Box.createVerticalGlue());//使垂直Box容器內(nèi)的組件靠上對(duì)齊JPanelpCenter=newJPanel();pCenter.add(boxH);Containercon=getContentPane();con.add(pCenter,BorderLayout.CENTER);con.validate();setVisible(false);setBounds(100,200,360,270);addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){setVisible(false);}});}publicvoidactionPerformed(ActionEvente){if(e.getSource()==查詢||e.getSource()==學(xué)號(hào)){Stringnumber="";number=學(xué)號(hào).getText();if(number.length()>0){try{

inOne=newFileInputStream(file);inTwo=new基本信息表=(Hashtable)inTwo.readObject();//首先到文件中讀取//Hashtable對(duì)象}catch(Exceptionee){}基本信息表.containsKey(number)) 如果存在該的基本信息{Studentstu=(Student)基本信息表.get(number);.setText(stu.getName());.setText(stu.getGrade());.setText(stu.getBorth());if(stu.getSex().equals("{.setSelected(true);}else{}else

.setSelected(true);}{Stringwarning="JOptionPane.showMessageDialog(this,warning,"",JOptionPane.WARNING_MESSAGE);}}else{//Stringwarning="JOptionPane.showMessageDialog(this,warning,"",JOptionPane.WARNING_MESSAGE);}}}}1述 型 “”象的散列Hashtable 基本信息表基本信息的文本條 JTextField 2方法稱 功能 備注ModifySituation 創(chuàng)建信息面 構(gòu)造方法actionPerformed 處理ActionEvent件 接口方3ModifySituation.javaimportjava.awt.*;importjavax.swing.*;importjava.io.*;importjava.util.*;publicclassModifySituationextendsJPanelimplementsActionListener{Hashtable=null; JTextField,業(yè),級(jí),; //輸入文本條JRadioButton開始修改,錄入修改,重置;FileInputStreaminOne=null;ObjectInputStreaminTwo=null;FileOutputStreamoutOne=null;ObjectOutputStreamoutTwo=null;Filefile=null; //文件publicModifySituation(Filefile){this.file=file;=newJTextField(10);=newJTextField(10);=newJTextField(10);=newJTextField(10);=newJTextField(10);group=new男=newJRadioButton("男",true);女=newJRadioButton("女",false);group.add(男);=newJButton(=newJButton(.setEnabled(false);=newJButton(.addActionListener(this);開始修改.addActionListener(this);錄入修改.addActionListener(this);重置.addActionListener(this);Boxbox1=Box.createHorizontalBox();6組件box1.add(newJLabel("輸入要修改:",JLabel.CENTER));box1.add();box1.add(開始修改);Boxbox2=Box.createHorizontalBox();box2.add(newJLabel(":",JLabel.CENTER));box2.add();Boxbox3=Box.createHorizontalBox();box3.add(newJLabel("(:",JLabel.CENTER));box3.add(Boxbox4=Box.createHorizontalBox();box4.add(newJLabel("(:",JLabel.CENTER));box4.add(Boxbox5=Box.createHorizontalBox();box5.add(newJLabel("(:",JLabel.CENTER));box5.add(Boxbox6=Box.createHorizontalBox();box6.add(newJLabel("(:",JLabel.CENTER));box6.add();//Box6BoxboxH=Box.createVerticalBox();boxH.add(box1);boxH.add(box2);boxH.add(box3);boxH.add(box4);boxH.add(box5);boxH.add(box6);boxH.add(Box.createVerticalGlue()); BoxJPanelpCenter=newJPanel();pCenter.add(boxH);setLayout(newBorderLayout());add(pCenter,BorderLayout.CENTER);JPanelpSouth=newJPanel();pSouth.add(錄入修改);pSouth.add(重置);add(pSouth,BorderLayout.SOUTH);validate();}publicvoidactionPerformed(ActionEvente){if(e.getSource()==開始修改||e.getSource()==學(xué)號(hào)){Stringnumber="";number=學(xué)號(hào).getText();if(number.length()>0){try{}

inOne=newFileInputStream(file);inTwo=newinOne.close();inTwo.close();catch(Exceptionee){}if(基本信息表.containsKey(number)) //如果存在該的基本信息{錄入修改.setEnabled(true);Studentstu=(Student)基本信息表.get(number);.setText(stu.getName());.setText(stu.getBorth());if(stu.getSex().equals("{.setSelected(true);}else{.setSelected(true);}}else //不存在{ //彈出警告對(duì)話框錄入修改.setEnabled(false);Stringwarning="JOptionPane.showMessageDialog(this,warning," 警 ",JOptionPane.WARNING_MESSAGE);出}}else //學(xué)號(hào)輸入框內(nèi)容為空,彈出警告對(duì)話框{.setEnabled(false);Stringwarning="JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);出}}elseif(e.getSource()==錄入修改){Stringnumber="";number=學(xué)號(hào).getText();if(number.length()>0){try{inOne=newFileInputStream(file);inTwo=new=(Hashtable)inTwo.readObject();//Hashtable

inOne.close();inTwo.close();}catch(Exceptionee){}在";

if(.containsKey(number)) //{ //Stringquestion=",()JOptionPane.showMessageDialog(this,question,"",JOptionPane.QUESTION_MESSAGE);Stringintok=JOptionPane.showConfirmDialog(this,m," 確 ",JOptionPane.YES_NO_OPTION,JOptionPane.INFORMATION_MESSAGE);if(ok==JOptionPane.YES_OPTION){Stringname=.getText();Stringdiscipling=專業(yè).getText();Stringgrade=.getText();Stringborth=.getText();Stringsex=null;if(男.isSelected()){}else{}

文件

Student =newStudent();.setNumber(number);.setName(name);.setGrade(grade);.setSex(sex);try //后學(xué)入到散列{outOne=newFileOutputStream(file);outTwo=newObjectOutputStream(outOne);.put(number,學(xué));outTwo.writeObject();outTwo.close();outOne.close();}catch(Exceptionee){}.setEnabled(false);}elseif(ok==JOptionPane.NO_OPTION){}else{

.setEnabled(true);}}else

Stringwarning=",JOptionPane.showMessageDialog(this,warning,.setEnabled(false);}Stringwarning=".setEnabled(false);}}if(e.getSource()==){}}}1述 型 “”象散列Hashtable 顯示文條 JTextField 2方法稱 功能 備注Delete 創(chuàng)建面 actionPerformed 處理ActionEvent件 3Delete.javaimportjava.awt.*;importjavax.swing.*;importjava.io.*;importjava.util.*;publicclassDeleteextendsJPanelimplementsActionListener{Hashtable=null; JTextField,業(yè),級(jí),; //顯示文本條JRadioButtonFileInputStreaminOne=null;ObjectInputStreaminTwo=null;FileOutputStreamoutOne=null;ObjectOutputStreamFilefile=null; //文件publicDelete(Filefile){this.file=file;=newJTextField(10);=newJButton(=newJTextField(10);.setEditable(false);=newJTextField(10);=newJTextField(10);=newJTextField(10);男=newJRadioButton("男",false);女=newJRadioButton("女",false);group=newButtonGroup();group.add(男);Boxbox1=Box.createHorizontalBox()6Box組件box1.add(newJLabel("輸入要?jiǎng)h除:",JLabel.CENTER));Boxbox2=Box.createHorizontalBox();box2.add(newJLabel(":",JLabel.CENTER));box2.add();Boxbox3=Box.createHorizontalBox();box3.add(newJLabel("性別:",JLabel.CENTER));box3.add(Boxbox4=Box.createHorizontalBox();box4.add(newJLabel(":",JLabel.CENTER));box4.add();Boxbox5=Box.createHorizontalBox();box5.add(newJLabel(":",JLabel.CENTER));box5.add();Boxbox6=Box.createHorizontalBox();box6.add(newJLabel(":",JLabel.CENTER));box6.add();//Box6BoxboxH=Box.createVerticalBox();boxH.add(box1);boxH.add(box2);boxH.add(box3);boxH.add(box4);boxH.add(box5);boxH.add(box6);boxH.add(Box.createVerticalGlue());//使得垂直Box容器內(nèi)的組件靠上對(duì)齊JPanelpCenter=newJPanel();pCenter.add(boxH);setLayout(newBorderLayout());add(pCenter,BorderLayout.CENTER);validate();}publicvoidactionPerformed(ActionEvente){if(e.getSource()==刪除||e.getSource()==學(xué)號(hào)){Stringnumber="";number=學(xué)號(hào).getText();if(number.length()>0){Hashtable

try{}

inOne=newFileInputStream(file);inTwo=new基本信息表=(Hashtable)inTwo.readObject();//到文件中讀取inOne.close();inTwo.close();已經(jīng)存在

catch(Exceptionee){}if(基本信息表.containsKey(number)) //如果該的基本信息{Studentstu=(Student)基本信息表.get(number);.setText(stu.getName());.setText(stu.getBorth());if(stu.getSex().equals("

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論