宿舍管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第1頁(yè)
宿舍管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第2頁(yè)
宿舍管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第3頁(yè)
宿舍管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第4頁(yè)
宿舍管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀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)介

PAGEPAGE2宿舍管理系統(tǒng)緒論1.1引言該系統(tǒng)是由管理員通過(guò)系統(tǒng)管理學(xué)生信息,能根據(jù)學(xué)生學(xué)號(hào)、院系、寢室號(hào)等來(lái)查詢學(xué)生的其他相關(guān)信息,新生入住能錄入新生的住宿信息,能查詢房間的信息如入住人數(shù)、人員、費(fèi)用等。學(xué)生遇畢業(yè)退學(xué)等原因能刪除其住宿信息,同時(shí),備忘一些信息,記錄非寢室住宿人員的出入登記,并能進(jìn)行查詢相關(guān)登記記錄。系統(tǒng)采用java語(yǔ)言編寫,利用功能強(qiáng)大的myeclipse作為開發(fā)工具,用數(shù)據(jù)文件存儲(chǔ)數(shù)據(jù)。1.2系統(tǒng)模塊用戶登錄模塊學(xué)生信息查詢模塊學(xué)生信息添加模塊房間查詢信息模塊1.3設(shè)計(jì)思想根據(jù)初步對(duì)宿舍相關(guān)信息的了解的進(jìn)行設(shè)計(jì)1.4系統(tǒng)框架采用.netframework3開發(fā)類庫(kù)中windowsForm窗體應(yīng)用程序,作為系統(tǒng)框架,在myeclipse開發(fā)環(huán)境中,利用各個(gè)控件,進(jìn)行相關(guān)模塊的設(shè)計(jì),在系統(tǒng)中進(jìn)行對(duì)數(shù)據(jù)的一些基本操作。2.0設(shè)計(jì)步驟2.1.簡(jiǎn)要描述題目要求,對(duì)問題的描述應(yīng)避開算法及所涉及的數(shù)據(jù)類型,只是對(duì)所需完成的任務(wù)做出明確的陳述,例如輸入數(shù)據(jù)的類型、值的范圍以及輸入的形式,輸出數(shù)據(jù)的類型、值的范圍以及輸出的形式。2.2選定數(shù)據(jù)結(jié)構(gòu),寫出算法,根據(jù)自頂向下發(fā)展算法的方法,首先描述算法的基本思想,然后進(jìn)行算法細(xì)化,再對(duì)所設(shè)計(jì)的算法的時(shí)間復(fù)雜性和空間復(fù)雜性進(jìn)行簡(jiǎn)單分析。2.3準(zhǔn)備好上機(jī)所需的程序,選定一種程序設(shè)計(jì)語(yǔ)言(如C語(yǔ)言),手工編好上機(jī)程序,并進(jìn)行反復(fù)檢查,使程序中的邏輯錯(cuò)誤和語(yǔ)法錯(cuò)誤減少到最低程度。對(duì)程序中有疑問的地方,應(yīng)做出標(biāo)記,以便在上機(jī)時(shí)給予注意。2.4上機(jī)輸入和調(diào)試程序,在調(diào)試程序過(guò)程中除了系統(tǒng)的問題以外,一般應(yīng)自己獨(dú)立解決。在程序調(diào)試通過(guò)后,打印輸出程序清單和運(yùn)行結(jié)果。2.5上機(jī)結(jié)束后,總結(jié)和整理實(shí)驗(yàn)報(bào)告。2.6系統(tǒng)設(shè)計(jì)2.6.1學(xué)學(xué)生管理查找添加修改2.6.2StudentMessage.txt.4系統(tǒng)E-R圖為學(xué)生——寢室學(xué)生學(xué)生學(xué)號(hào)姓名寢室號(hào)學(xué)生——寢室——訪人第三章總體設(shè)計(jì)3.1需求規(guī)定輸入輸出要求界面風(fēng)格:要求整體界面美觀,有清晰的層次感,布局簡(jiǎn)潔、合理。時(shí)間要求時(shí)間需求:在軟件方面,響應(yīng)時(shí)間,更新處理時(shí)間都比較快且迅速,系統(tǒng)響應(yīng)時(shí)間不能超過(guò)10秒。靈活性要求靈活性:當(dāng)用戶需求,如操作方式,運(yùn)行環(huán)境,結(jié)果精度,數(shù)據(jù)結(jié)構(gòu)等其他軟件接口等發(fā)生變化時(shí),設(shè)計(jì)的軟件能做出適當(dāng)調(diào)整,靈活性非常大3.2基本設(shè)計(jì)概念神處理流程3.3系統(tǒng)出錯(cuò)處理出錯(cuò)情況系統(tǒng)輸出信息含義處理方法用戶名密碼為空“用戶名或密碼為空,請(qǐng)重新輸入”用戶名或密碼為輸入輸入,不能為空用戶名密碼錯(cuò)誤“用戶名或密碼錯(cuò)誤”輸入的登錄數(shù)據(jù)與數(shù)據(jù)庫(kù)不匹配重置后重新輸入查詢出錯(cuò)“請(qǐng)確認(rèn)輸入信息無(wú)誤”未能找到有關(guān)信息或查詢的關(guān)鍵字輸入錯(cuò)誤清空后重新輸入添加出錯(cuò)“數(shù)據(jù)有沖突”添加數(shù)據(jù)時(shí)違反了數(shù)據(jù)庫(kù)中的主鍵,添加了重復(fù)的數(shù)據(jù)3.4系統(tǒng)主要模塊的界面設(shè)計(jì)界面主要含有兩個(gè)部分,登錄界面和主頁(yè)面,登錄界面用于用戶登錄到主頁(yè)面去,登錄到主頁(yè)面后,進(jìn)行各項(xiàng)操作3.4.1mb1.setLayout(null); bq4.setBounds(60,20,400,100); mb1.add(bq4); mb3.setLayout(null);//下部 an1.setBounds(145,16,180,30); //mb3.setBackground(newColor(162,154,194)); mb3.add(an1); bq1=newJLabel(newImageIcon("Image//jitameng.png"));//中部 bq2=newJLabel("注冊(cè)賬號(hào)"); bq2.setForeground(newColor(167,96,214)); bq2.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));//改變光標(biāo)形狀 bq2.addMouseListener(newMouseAdapter(){ publicvoidmouseClicked(MouseEvente){ finalAccountDialogjd=newAccountDialog(DormLand.this,"賬號(hào)注冊(cè)",true); jd.addWindowListener(newWindowAdapter(){ publicvoidwindowClosing(WindowEvente){ jd.dispose(); } }); //jd.setVisible(true); } });.3 用戶登錄界面中用戶名選項(xiàng)和密碼為數(shù)據(jù)庫(kù)中已經(jīng)存在的用戶名和密碼,所以用戶只需選擇相應(yīng)的用戶名和相應(yīng)的密碼即可,publicDormLand(){ mb1=newJPanel();//上部和下部 mb1.setBackground(newColor(167,96,214)); mb2=newJPanel(); //mb2.setBackground(newColor(162,154,194)); mb3=newJPanel(); bq4=newJLabel("宿舍管理系統(tǒng)"); bq4.setFont(newFont("宋體",Font.PLAIN,50)); an1=newJButton("登陸"); an1.setBackground(newColor(167,96,214)); //an1.setPreferredSize(newDimension(170,35)); an1.addActionListener(newActionListener(){ @Override publicvoidactionPerformed(ActionEvente){ if(e.getSource()==an1){ if(wbk.getText().equals("李阿慶")&&newString(mmk.getPassword()).equals("130210128")){ newStudent(); //DormLand.this.setVisible(false); DormLand.this/*獲取外部類對(duì)象的引用*/.dispose(); }else{ JOptionPane.showMessageDialog(null,"密碼或用戶名有誤,請(qǐng)檢查后重新輸入!!!"); } } } });3.4.4系統(tǒng)的主界面是系統(tǒng)的所有功能的入口,主要由菜單欄、功能模塊樹形等組成如:學(xué)生查詢代碼如下classStudentextendsJFrameimplementsActionListener{ privateJPanelmb1,mb21,mb22; privateAddStudentmb23; privateJLabelbq1,bq2; privateJListlb; privateJSplitPanecf,cf1; privateJTabbedPanexxk; privateJPanelmb3,mb4,mb5;//三個(gè)查詢面板 privateJLabelbq3,bq4,bq5; privateJTextFieldwbk1,wbk2,wbk3; privateJButtonan1,an2,an3; privateJTextAreawbq1,wbq2,wbq3; privateJScrollPanegd1,gd2,gd3; privateCardLayoutcl; publicStudent(){ mb1=newJPanel(); mb1.setBackground(newColor(167,96,214)); //mb2.setPreferredSize(newDimension(300,150));//為什么會(huì)出現(xiàn)錯(cuò)誤? ImageIconimage=newImageIcon("Image//影.jpg"); image.setImage(image.getImage().getScaledInstance(680,510,Image.SCALE_DEFAULT)); bq1=newJLabel(image); bq1.setSize(400,600); xxk=newJTabbedPane(); cl=newCardLayout(); mb21=newJPanel(); mb21.setLayout(cl); mb22=newJPanel(); mb22.add(bq1); mb23=newAddStudent(); mb3=newJPanel(); bq3=newJLabel("請(qǐng)輸入姓名:"); wbk1=newJTextField(); an1=newJButton("確定"); wbq1=newJTextArea(0,400); gd1=newJScrollPane(wbq1); //mb3.setBackground(newColor(165,212,255)); mb3.setLayout(null); bq3.setBounds(200,80,78,30); wbk1.setBounds(280,80,120,30); wbk1.setFont(newFont("宋體",Font.PLAIN,23)); wbk1.addActionListener(this); an1.setBounds(410,80,70,30); an1.setBackground(newColor(167,96,214)); an1.addActionListener(this); gd1.setBounds(0,120,690,500); wbq1.setFont(newFont("宋體",Font.PLAIN,23)); mb3.add(bq3); mb3.add(wbk1); mb3.add(an1); mb3.add(gd1); mb4=newJPanel();bq4=newJLabel("請(qǐng)輸入學(xué)號(hào):"); wbk2=newJTextField(); an2=newJButton("確定"); wbq2=newJTextArea(); gd2=newJScrollPane(wbq2); //mb3.setBackground(newColor(165,212,255)); mb4.setLayout(null); bq4.setBounds(200,80,78,30); wbk2.setBounds(280,80,120,30); wbk2.setFont(newFont("宋體",Font.PLAIN,23)); wbk2.addActionListener(this); an2.setBounds(410,80,70,30); an2.setBackground(newColor(167,96,214)); an2.addActionListener(this); gd2.setBounds(0,120,690,500); wbq2.setFont(newFont("宋體",Font.PLAIN,23)); mb4.add(bq4); mb4.add(wbk2); mb4.add(an2); mb4.add(gd2); mb5=newJPanel();bq5=newJLabel("請(qǐng)輸入房號(hào):"); wbk3=newJTextField(); wbk3.addActionListener(this); an3=newJButton("確定"); an3.addActionListener(this); wbq3=newJTextArea(); gd3=newJScrollPane(wbq3); //mb3.setBackground(newColor(165,212,255)); mb5.setLayout(null); bq5.setBounds(200,80,78,30); wbk3.setBounds(280,80,120,30); wbk3.setFont(newFont("宋體",Font.PLAIN,23)); an3.setBounds(410,80,70,30); an3.setBackground(newColor(167,96,214)); gd3.setBounds(0,120,690,500); wbq3.setFont(newFont("宋體",Font.PLAIN,23)); mb5.add(bq5); mb5.add(wbk3); mb5.add(an3); mb5.add(gd3);xxk.add("按姓名查找",mb3); xxk.add("按學(xué)號(hào)查找",mb4); xxk.add("按房號(hào)查找",mb5); bq2=newJLabel("學(xué)生信息管理",JLabel.CENTER); bq2.setFont(newFont("宋體",Font.PLAIN,30)); //mb2.add(bq1); //bq1.add(xxk); mb21.add(mb22,"1"); mb21.add(mb23,"2"); mb21.add(xxk,"3"); mb1.add(bq2); String[]str={"添加學(xué)生","查詢信息"}; lb=newJList(str); lb.setFont(newFont("宋體",Font.PLAIN,20)); cf=newJSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,lb,mb21); cf.setOneTouchExpandable(true); lb.addListSelectionListener(newListSelectionListener(){ @Override publicvoidvalueChanged(ListSelectionEvente){ inti=lb.getSelectedIndex();//返回整型數(shù) switch(i){ case0: cl.show(mb21,"2"); break; case1: cl.show(mb21,"3"); break; } } });學(xué)生添加代碼如下:classAddStudentextendsJPanelimplementsActionListener{ JLabelbq1,bq2,bq3,bq4,bq5; JTextFieldwbk1,wbk2,wbk3,wbk4; JButtonan1; publicAddStudent(){ bq1=newJLabel("添加學(xué)生"); bq2=newJLabel("姓名:"); bq3=newJLabel("學(xué)號(hào):"); bq4=newJLabel("房號(hào):"); bq5=newJLabel("班級(jí):"); wbk1=newJTextField(); wbk2=newJTextField(); wbk3=newJTextField(); wbk4=newJTextField(); an1=newJButton("確認(rèn)"); this.setLayout(null); bq1.setFont(newFont("宋體",Font.PLAIN,23)); bq1.setBounds(250,10,120,50); bq2.setBounds(220,110,40,35); bq3.setBounds(220,160,60,35); bq4.setBounds(220,210,60,35); bq5.setBounds(220,260,60,35); wbk1.setBounds(260,110,120,30); wbk2.setBounds(260,160,120,30); wbk3.setBounds(260,210,120,30); wbk4.setBounds(260,260,120,30); wbk1.setFont(newFont("宋體",Font.PLAIN,20)); wbk2.setFont(newFont("宋體",Font.PLAIN,20)); wbk3.setFont(newFont("宋體",Font.PLAIN,20)); wbk4.setFont(newFont("宋體",Font.PLAIN,20)); an1.setBounds(350,330,80,30); an1.setBackground(newColor(167,96,214)); an1.addActionListener(this); this.add(bq1); this.add(bq2); this.add(bq3); this.add(bq4); this.add(bq5); this.add(wbk1); this.add(wbk2); this.add(wbk3); this.add(wbk4); this.add(an1); } @Override publicvoidactionPerformed(ActionEvente){ if(e.getSource()==an1){ if(wbk1.getText().equals("")||wbk2.getText().equals("")||wbk3.getText().equals("")||wbk4.getText().equals("")){ JOptionPane.showMessageDialog(null,"請(qǐng)把信息填寫完整"); } else{ try{ FileWriterfw=newFileWriter("StudentMessage//StudentMessage.txt",true); Stringstr="\n"+wbk1.getText()+","+wbk2.getText()+","+wbk3.getText()+","+wbk4.getText(); fw.write(str); fw.close(); JOptionPane.showMessageDialog(null,"添加成功!??!"); }catch(IOExceptione1){ e1.printStackTrace(); } } } }}賬號(hào)注冊(cè)界面classAccountDialogextendsJDialogimplementsActionListener{ privateJPanelmb; privateJLabelbq1,bq2,bq3,bq4; privateJButtonan1; privateJTextFieldwbk; privateJPasswordFieldmmk1,mmk2; publicAccountDialog(JFrameowner,Stringtitle,booleanmodal){ super(owner,title,modal); mb=newJPanel(); bq1=newJLabel("昵稱:"); bq2=newJLabel("輸入密碼:"); bq3=newJLabel("確認(rèn)密碼:"); bq4=newJLabel("賬戶注冊(cè)"); an1=newJButton("確定"); wbk=newJTextField(); mmk1=newJPasswordField(); mmk2=newJPasswordField(); mb.setLayout(null); bq4.setFont(newFont("宋體",Font.PLAIN,34)); bq4.setBounds(300,10,700,100); bq1.setBounds(290,140,90,90); bq1.setFont(newFont("宋體",Font.PLAIN,20)); bq2.setBounds(250,180,90,90); bq2.setFont(newFont("宋體",Font.PLAIN,20)); bq3.setBounds(250,220,90,90); bq3.setFont(newFont("宋體",Font.PLAIN,20)); wbk.setBounds(350,170,180,30); wbk.setFont(newFont("宋體",Font.PLAIN,15)); mmk1.setBounds(350,210,180,30); mmk1.setFont(newFont("宋體",Font.PLAIN,15)); mmk2.setBounds(350,250,180,30); mmk2.setFont(newFont("宋體",Font.PLAIN,15)); an1.setBounds(290,300,120,30); an1.setBackground(newColor(167,96,214)); an1.addActionListener(this); mb.add(bq4); mb.add(bq1); mb.add(bq2); mb.add(bq3); mb.add(wbk); mb.add(mmk1); mb.add(mmk2); mb.add(an1); //mb.setBackground(newColor(167,96,214)); this.add(mb); this.setBounds(300,60,800,600); this.setVisible(true); //this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } @Override publicvoidactionPerformed(ActionEvente){ if(e.getSource()==an1){ if(!wbk.getText().equals("")&&!newString(mmk1.getPassword()).equals("")){ if(newString(mmk1.getPassword()).equals(newString(mmk2.getPassword()))){ FileWriterfw=null; Propertiesprops=newProperties(); props.setProperty(newString(wbk.getText()),newString(mmk1.getPassword())+",false"); try{ fw=newFileWriter("Pro//Pperties",true); props.store(fw,null); }catch(Exceptione1){ e1.printStackTrace(); }finally{ try{ fw.close(); }catch(IOExceptione1){ e1.printStackTrace(); } } }else{ JOptionPane.showMessageDialog(null,"密碼不一致,請(qǐng)重新輸入?。?!"); } }else{ JOptionPane.showMessageDialog(null,"昵稱或密碼不能為空?。。?); } } }}參考文獻(xiàn):java高級(jí)編程(JDK6版)————W.ClayRichardson程序完整代碼:package宿舍管理系統(tǒng);importjava.awt.*;importjava.awt.event.*;import.URI;importjava.io.*;importjava.util.*;importjavax.swing.*;importjavax.swing.event.ListSelectionEvent;importjavax.swing.event.ListSelectionListener;importnet.sourceforge.pinyin4j.*;publicclassDorm{ publicstaticvoidmain(String[]args){ newDormLand(); }}/**登陸界面**/classDormLandextendsJFrame{ privateJPanelmb1,mb2,mb3; privateJButtonan1; privateJLabelbq4; privateJLabelbq1,bq2,bq3; privateJTextFieldwbk; privateJPasswordFieldmmk; privateJCheckBoxfxk1,fxk2; privateURIuri; publicDormLand(){ mb1=newJPanel();//上部和下部 mb1.setBackground(newColor(167,96,214)); mb2=newJPanel(); //mb2.setBackground(newColor(162,154,194)); mb3=newJPanel(); bq4=newJLabel("宿舍管理系統(tǒng)"); bq4.setFont(newFont("宋體",Font.PLAIN,50)); an1=newJButton("登陸"); an1.setBackground(newColor(167,96,214)); //an1.setPreferredSize(newDimension(170,35)); an1.addActionListener(newActionListener(){ @Override publicvoidactionPerformed(ActionEvente){ if(e.getSource()==an1){ if(wbk.getText().equals("李阿慶")&&newString(mmk.getPassword()).equals("130210128")){ newStudent(); //DormLand.this.setVisible(false); DormLand.this/*獲取外部類對(duì)象的引用*/.dispose(); }else{ JOptionPane.showMessageDialog(null,"密碼或用戶名有誤,請(qǐng)檢查后重新輸入?。。?); } } } }); mb1.setLayout(null); bq4.setBounds(60,20,400,100); mb1.add(bq4); mb3.setLayout(null);//下部 an1.setBounds(145,16,180,30); //mb3.setBackground(newColor(162,154,194)); mb3.add(an1); bq1=newJLabel(newImageIcon("Image//jitameng.png"));//中部 bq2=newJLabel("注冊(cè)賬號(hào)"); bq2.setForeground(newColor(167,96,214)); bq2.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));//改變光標(biāo)形狀 bq2.addMouseListener(newMouseAdapter(){ publicvoidmouseClicked(MouseEvente){ finalAccountDialogjd=newAccountDialog(DormLand.this,"賬號(hào)注冊(cè)",true); jd.addWindowListener(newWindowAdapter(){ publicvoidwindowClosing(WindowEvente){ jd.dispose(); } }); //jd.setVisible(true); } }); bq3=newJLabel("<html><ahref=''>忘記密碼</a>"); bq3.addMouseListener(newMouseAdapter(){ publicvoidmouseClicked(MouseEvente){ runBroswer(); } }); bq3.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); wbk=newJTextField(); wbk.setFont(newFont("宋體",Font.PLAIN,20)); mmk=newJPasswordField(); mmk.setFont(newFont("宋體",Font.PLAIN,20)); fxk1=newJCheckBox("記住密碼"); fxk1.addItemListener(newItemListener(){ //@SuppressWarnings("deprecation") @Override publicvoiditemStateChanged(ItemEvente){ if(e.getItemSelectable()==fxk1){ if(e.getStateChange()==ItemEvent.SELECTED)//判斷是否選中 { BufferedOutputStreambos=null; try{ bos=newBufferedOutputStream(newFileOutputStream("Pro//Pperties")); Propertiespro=newProperties(); pro.setProperty(wbk.getText(),newString(mmk.getPassword())+",true"); pro.store(bos,null); }catch(FileNotFoundExceptione2){ e2.printStackTrace(); }catch(IOExceptione1){ e1.printStackTrace(); } finally{ try{ bos.close(); }catch(IOExceptione1){ e1.printStackTrace(); } } } else{ BufferedOutputStreambos=null; try{ bos=newBufferedOutputStream(newFileOutputStream("Pro//Pperties")); Propertiespro=newProperties(); pro.setProperty(wbk.getText(),newString(mmk.getPassword())+",false"); pro.store(bos,null); }catch(FileNotFoundExceptione2){ e2.printStackTrace(); }catch(IOExceptione1){ e1.printStackTrace(); } finally{ try{ bos.close(); }catch(IOExceptione1){ e1.printStackTrace(); } } } } } }); /*記住密碼操作*/ remberPassword(); //fxk1.setBackground(newColor(162,156,170)); fxk2=newJCheckBox("自動(dòng)登錄"); fxk2.addItemListener(newItemListener(){ @Override publicvoiditemStateChanged(ItemEvente){ if(e.getItemSelectable()==fxk2){ if(e.getStateChange()==ItemEvent.SELECTED)//判斷是否已選定,選定產(chǎn)生響應(yīng),不選定不產(chǎn)生響應(yīng) { newStudent(); //DormLand.this.setVisible(false); DormLand.this.dispose();//獲取外部類對(duì)象的引用 } } } }); //fxk2.setBackground(newColor(162,156,170)); mb2.setLayout(null); bq1.setBounds(40,20,90,105); wbk.setBounds(145,20,180,30); mmk.setBounds(145,50,180,30); mmk.addActionListener(newActionListener(){ @Override publicvoidactionPerformed(ActionEvente){ if(e.getSource()==mmk){ } } }); fxk1.setBounds(141,85,90,25); fxk2.setBounds(250,85,80,25); bq2.setBounds(335,20,80,30); bq3.setBounds(335,50,80,30); mb2.add(bq1); mb2.add(wbk); mb2.add(mmk); mb2.add(fxk1); mb2.add(fxk2); mb2.add(bq2); mb2.add(bq3); this.setLayout(null); mb1.setBounds(0,0,450,150); this.add(mb1); mb2.setBounds(0,140,450,110); this.add(mb2); mb3.setBounds(0,245,450,60); this.add(mb3); this.setTitle("宿舍管理系統(tǒng)"); this.setBounds(480,240,450,335); this.setResizable(false); this.setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } publicvoidrunBroswer(){//實(shí)現(xiàn)標(biāo)簽的超鏈接 try{ uri=newURI("");//初始化URI類 }catch(Exceptione){ e.printStackTrace(); } try{ Desktop.getDesktop().browse(uri);//使用默認(rèn)的瀏覽器打開網(wǎng)址 }catch(Exceptione){ e.printStackTrace(); } } /*記住密碼操作*/ publicvoidremberPassword(){ Propertiespro=newProperties();//建立配置文件類 BufferedInputStreambis=null; try{ bis=newBufferedInputStream(newFileInputStream("Pro//Pperties"));//與配置文件產(chǎn)生關(guān)聯(lián) pro.load(bis); if(pro.getProperty("李阿慶")!=null){ String[]arr=pro.getProperty("李阿慶").split(","); if(arr[1].equals("true")){ wbk.setText("李阿慶"); mmk.setText(arr[0]); fxk1.setSelected(true); } } }catch(Exceptione){ e.printStackTrace(); } finally{ try{ bis.close();//關(guān)閉流資源 }catch(IOExceptione){ e.printStackTrace(); } } }}/**學(xué)生信息管理界面**/classStudentextendsJFrameimplementsActionListener{ privateJPanelmb1,mb21,mb22; privateAddStudentmb23; privateJLabelbq1,bq2; privateJListlb; privateJSplitPanecf,cf1; privateJTabbedPanexxk; privateJPanelmb3,mb4,mb5;//三個(gè)查詢面板 privateJLabelbq3,bq4,bq5; privateJTextFieldwbk1,wbk2,wbk3; privateJButtonan1,an2,an3; privateJTextAreawbq1,wbq2,wbq3; privateJScrollPanegd1,gd2,gd3; privateCardLayoutcl; publicStudent(){ mb1=newJPanel(); mb1.setBackground(newColor(167,96,214)); //mb2.setPreferredSize(newDimension(300,150));//為什么會(huì)出現(xiàn)錯(cuò)誤? ImageIconimage=newImageIcon("Image//影.jpg"); image.setImage(image.getImage().getScaledInstance(680,510,Image.SCALE_DEFAULT)); bq1=newJLabel(image); bq1.setSize(400,600); xxk=newJTabbedPane(); cl=newCardLayout(); mb21=newJPanel(); mb21.setLayout(cl); mb22=newJPanel(); mb22.add(bq1); mb23=newAddStudent(); mb3=newJPanel(); bq3=newJLabel("請(qǐng)輸入姓名:"); wbk1=newJTextField(); an1=newJButton("確定"); wbq1=newJTextArea(0,400); gd1=newJScrollPane(wbq1); //mb3.setBackground(newColor(165,212,255)); mb3.setLayout(null); bq3.setBounds(200,80,78,30); wbk1.setBounds(280,80,120,30); wbk1.setFont(newFont("宋體",Font.PLAIN,23)); wbk1.addActionListener(this); an1.setBounds(410,80,70,30); an1.setBackground(newColor(167,96,214)); an1.addActionListener(this); gd1.setBounds(0,120,690,500); wbq1.setFont(newFont("宋體",Font.PLAIN,23)); mb3.add(bq3); mb3.add(wbk1); mb3.add(an1); mb3.add(gd1); mb4=newJPanel();bq4=newJLabel("請(qǐng)輸入學(xué)號(hào):"); wbk2=newJTextField(); an2=newJButton("確定"); wbq2=newJTextArea(); gd2=newJScrollPane(wbq2); //mb3.setBackground(newColor(165,212,255)); mb4.setLayout(null); bq4.setBounds(200,80,78,30); wbk2.setBounds(280,80,120,30); wbk2.setFont(newFont("宋體",Font.PLAIN,23)); wbk2.addActionListener(this); an2.setBounds(410,80,70,30); an2.setBackground(newColor(167,96,214)); an2.addActionListener(this); gd2.setBounds(0,120,690,500); wbq2.setFont(newFont("宋體",Font.PLAIN,23)); mb4.add(bq4); mb4.add(wbk2); mb4.add(an2); mb4.add(gd2); mb5=newJPanel();bq5=newJLabel("請(qǐng)輸入房號(hào):"); wbk3=newJTextField(); wbk3.addActionListener(this); an3=newJButton("確定"); an3.addActionListener(this); wbq3=newJTextArea(); gd3=newJScrollPane(wbq3); //mb3.setBackground(newColor(165,212,255)); mb5.setLayout(null); bq5.setBounds(200,80,78,30); wbk3.setBounds(280,80,120,30); wbk3.setFont(newFont("宋體",Font.PLAIN,23)); an3.setBounds(410,80,70,30); an3.setBackground(newColor(167,96,214)); gd3.setBounds(0,120,690,500); wbq3.setFont(newFont("宋體",Font.PLAIN,23)); mb5.add(bq5); mb5.add(wbk3); mb5.add(an3); mb5.add(gd3);xxk.add("按姓名查找",mb3); xxk.add("按學(xué)號(hào)查找",mb4); xxk.add("按房號(hào)查找",mb5); bq2=newJLabel("學(xué)生信息管理",JLabel.CENTER); bq2.setFont(newFont("宋體",Font.PLAIN,30)); //mb2.add(bq1); //bq1.add(xxk); mb21.add(mb22,"1"); mb21.add(mb23,"2"); mb21.add(xxk,"3"); mb1.add(bq2); String[]str={"添加學(xué)生","查詢信息"}; lb=newJList(str); lb.setFont(newFont("宋體",Font.PLAIN,20)); cf=newJSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,lb,mb21); cf.setOneTouchExpandable(true); lb.addListSelectionListener(newListSelectionListener(){ @Override publicvoidvalueChanged(ListSelectionEvente){ inti=lb.getSelectedIndex();//返回整型數(shù) switch(i){ case0: cl.show(mb21,"2"); break; case1: cl.show(mb21,"3"); break; } } }); this.add(mb1,BorderLayout.NORTH); this.add(cf); this.setTitle("學(xué)生信息管理"); this.setBounds(200,80,800,600); this.setVisible(true); this.setResizable(false); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } /**排序函數(shù)**/ publicArrayList<String>sort(intx){ BufferedReaderbis=null; ArrayList<String>ar=newArrayList<String>(); try{ bis=newBufferedReader(newFileReader("StudentMessage//StudentMessage.txt")); Stringbuf1="a"; while(buf1!=null){ buf1=bis.readLine(); if(buf1!=null){ String[]buf=buf1.split(","); switch(x){ case0: buf1=buf[0]+","+buf[1]+","+buf[2]+","+buf[3]; break; case1: buf1=buf[1]+","+buf[0]+","+buf[2]+","+buf[3]; break; case2: buf1=buf[2]+","+buf[0]+","+buf[1]+","+buf[3]; break; default: break; } ar.add(buf1); } } /*冒泡排序*/ for(inti=0;i<ar.size()-1;i++){ for(intj=0;j<ar.size()-1-i;j++){ if(x!=1&&x!=2&&x!=3){ Strings1=newString(ar.get(j).getBytes("GB2312"),"ISO-8859-1");//用GB2312編碼,用ISO-8859-1譯碼 Strings2=newString(ar.get(j+1).getBytes("GB2312"),"ISO-8859-1"); if(pareTo(s2)>0){ Stringa=ar.get(j); ar.set(j,ar.get(j+1)); ar.set(j+1,a); } } if(x==1||x==2||x==3){ if(ar.get(j).compareTo(ar.get(j+1))>0){ Stringa=ar.get(j); ar.set(j,ar.get(j+1)); ar.set(j+1,a); } } } } }catch(Exceptione){ e.printStackTrace(); } finally{ if(bis!=null) try{ bis.close();//關(guān)閉資源 }catch(IOExceptione){ e.printStackTrace(); } } returnar; } /**把漢字轉(zhuǎn)化為拼音**/ publicStringgetPinYin(Stringzhongwen){ Stringzhongwenpinyin=""; char[]chars=zhongwen.toCharArray(); for(inti=0;i<chars.length;i++){ String[]pinyin=PinyinHelper.toHanyuPinyinStringArray(chars[i]); if(pinyin!=null){ zhongwenpinyin+=pinyin[0]; }else{ zhongwenpinyin+=chars[i]; } } returnzhongwenpinyin; }/**二分查找函數(shù)**/ publicvoidseek(ArrayList<String>ar,Stringstr,JTextAreawbq,intx){ intmin=0; inta=1,mid; intmax=ar.size()-1; Stringbuf1; String[]buf; while(a!=0){ mid=(min+max)/2; buf1=ar.get(mid); buf=buf1.split(","); if(x==0){ buf[0]=getPinYin(buf[0]); str=getPinYin(str); } if(buf[0].compareTo(str)>0){ max=mid-1; } if(buf[0].compareTo(str)<0){ min=mid+1; } if(buf[0].compareTo(str)==0){ wbq.setText(ar.get(mid)); while(mid!=0)/*沒必要進(jìn)行二分查找,簡(jiǎn)單的for循環(huán)就行*/ { mid--; buf1=ar.get(mid); if(buf1!=""){ buf=buf1.split(","); if(x==0){ buf[0]=getPinYin(buf[0]); str=getPinYin(str); } if(buf[0].compareTo(str)==0){ wbq.append("\n"+ar.get(mid)); }else{ break; } } } mid=(min+max)/2; while(mid!=max) { mid++; buf1=ar.get(mid); buf=buf1.split(","); if(x==0){ buf[0]=getPinYin(buf[0]); str=getPinYin(str); } if(buf[0].compareTo(str)==0){ wbq.append("\n"+ar.get(mid)); }else{ break; } } break; } /*mid=(min+max)/2;//解決max和min改變之后相等,是否與所提供字符串的相等 buf1=ar.get(mid); buf=buf1.split(","); if(x==0){ buf[0]=getPinYin(buf[0]); str=getPinYin(str); } if(buf[0].compareTo(str)==0){ wbq.append(ar.get(mid)); }*/ if(min>max){ a=0; wbq.setText(""); JOptionPane.showMessageDialog(null,"查詢的信息不存在,請(qǐng)檢查您輸入的信息是否有誤"); break; } } } @Override publicvoidactionPerformed(ActionEvente){ if(e.getSource().equals(an2)||e.getSource()==wbk2){ ArrayList<String>ar=newArrayList<String>(); ar=sort(1); seek(ar,wbk2.getText(),wbq2,1); } if(e.getSource().equals(an3)||e.getSource()==wbk3){ ArrayList<String>ar=newArrayList<String>(); ar=sort(2); seek(ar,wbk3.getText(),wbq3,2); } if(e.getSource().equals(an1)||e.getSource()==wbk1){ ArrayList<String>ar=newArrayList<String>(); ar=sort(0); seek(ar,wbk1.getText(),wbq1,0); } }}classAddStudentextendsJPanelimplementsActionListener{ JLabelbq1,bq2,bq3,bq4,bq5; JTextFieldwbk1,wbk2,wbk3,wbk4; JButtonan1; publicAddStudent(){ bq1=newJLabel("添加學(xué)生"); bq2=newJLabel("姓名:"); bq3=newJLabel("學(xué)號(hào):"); bq4=newJLabel("房號(hào):"); bq5=newJLabel("班級(jí):"); wbk1=newJTextField(); wbk2=newJTextField(); wbk3=newJTextField(); wbk4=newJTextField(); an1=newJButton("確認(rèn)"); this.setLayout(null); bq1.setFont(newFont("宋體",Font.PLAIN,23)); bq1.setBounds(250,10,120,50); bq2.setBounds(220,110,40,35); bq3.setBounds(220,160,60,35); bq4.setBounds(220,210,60,35); bq5.setBounds(220,260,60,35); wbk1.setBounds(260,110,120,30); wbk2.setBounds(260,160,120,30); wbk3.setBounds(260,210,120,30); wbk4.setBounds(260,260,120,30); wbk1.setFont(newFont("宋體",Font.PLAIN,20)); wbk2.setFont(newFont("宋體",Font.PLAIN,20)); wbk3.setFont(newFont("宋體",Font.PLAIN,20)); wbk4.setFont(newFont("宋體",Font.PLAIN,20)); an1.setBounds(350,330,80,30); an1.setBackground(newColor(167,96,214)); an1.addActionListener(this); this.add(bq1); this.add(bq2); this.add(bq3); this.add(bq4); this.add(bq5); this.add(wbk1); this.add(wbk2); this.add(wbk3); this.add(wbk4); this.add(an1); } @Override publi

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論