大學(xué)生檔案管理系統(tǒng)-java編寫_第1頁
大學(xué)生檔案管理系統(tǒng)-java編寫_第2頁
大學(xué)生檔案管理系統(tǒng)-java編寫_第3頁
大學(xué)生檔案管理系統(tǒng)-java編寫_第4頁
大學(xué)生檔案管理系統(tǒng)-java編寫_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

目錄TOC\o"1-2"\h\z\u一.需求分析1〔1〕概述1〔2〕課題分析1〔3〕實(shí)現(xiàn)功能步驟2〔4〕承當(dāng)模塊工作詳解2〔5〕外部界面需求2〔6〕運(yùn)行環(huán)境2二.概要設(shè)計(jì)3〔1〕系統(tǒng)流程圖3〔2〕功能模塊圖4〔3〕新建檔案模塊4〔4〕查詢模塊4〔5〕修改模板5〔6〕刪除模塊5三.詳細(xì)設(shè)計(jì)6〔1〕界面類MyPanel.java6HYPERLINK\l"_〔3〕順序單向棧的入棧和出棧申明〔即zhan.h文件〕"〔2〕獲取界面信息類Massage.java12〔3〕文件操作類Myfile.java13〔4〕查找類Serch.java14〔5〕主界面類Main_face.java18HYPERLINK\l"_(6)系統(tǒng)界面"〔6〕系統(tǒng)界面21四.調(diào)試分析26〔1〕調(diào)試過程中所遇到的問題及解決方法26〔2〕經(jīng)驗(yàn)與體會(huì)26五.用戶使用說明27六.測(cè)試結(jié)果27七.參考文獻(xiàn)27八.附錄27一.需求分析〔1〕概述Java是目前使用最為廣泛的編程語言之一,它具有簡單、面向?qū)ο?、與平臺(tái)無關(guān)、解釋型、多線程、平安、動(dòng)態(tài)等特點(diǎn);J2SE稱為Java標(biāo)準(zhǔn)版或者java標(biāo)準(zhǔn)平臺(tái)利用該平臺(tái)可以開發(fā)java左面應(yīng)用程序和低端的效勞器應(yīng)用程序,也可以開發(fā)JavaApplet。〔2〕課題分析從這個(gè)題目來分析,要做的主要有四大功能。第一就是要新建檔案功能:檔案內(nèi)容包括有姓名,性別,出生年月等信息,并且有保存按鈕,單擊按鈕就能實(shí)現(xiàn)保存,并彈出保存成功的提示框。第二點(diǎn)是查詢功能:可以有三種查找方式,分別是按名字,省份證號(hào),檔案編號(hào)查找。用戶只需輸入上述一項(xiàng)檔案屬性即可以按查詢按鈕進(jìn)行查詢,隨后系統(tǒng)進(jìn)入到另一個(gè)信息顯示界面,該界面顯示查詢到的信息,并且有返回按鈕能返回到上一個(gè)界面。第三點(diǎn)是修改功能:此功能是建立在查詢功能根底上的,要先查詢到,然后在信息顯示界面進(jìn)行修改,并按保存按鈕進(jìn)行保存修改。此外該功能要到達(dá)兩個(gè)效果,一個(gè)是修改檔案的全部內(nèi)容,另一個(gè)就是修改其中的某一項(xiàng),例如狀態(tài)欄的內(nèi)容,當(dāng)修改狀態(tài)欄的時(shí)候,其他屬性如姓名,性別等是無法改變的。第四是刪除功能:此功能同樣是建立在查詢功能根底上的,要先查詢到,然后單機(jī)刪除按鈕進(jìn)行刪除操作〔3〕實(shí)現(xiàn)功能步驟功能的實(shí)現(xiàn)步驟主要是:新建檔案功能:單擊文件菜單欄選中新建檔案即可,在界面中填寫信息,并按保存按鈕即可。查詢功能:單擊查詢菜單欄,在界面中輸入姓名,身份證號(hào),檔案編號(hào)中的一項(xiàng)單擊查詢按鈕即可完成查詢。修改功能:單擊修改修改菜單欄,選中修改檔案和修改狀態(tài)中的一項(xiàng),然后在在界面中輸入姓名,身份證號(hào),檔案編號(hào)中的一項(xiàng)修改按鈕,并在新界面輸入相應(yīng)的更改信息,隨后按保存按鈕即可完成修改。刪除功能:單擊刪除菜單欄選中刪除檔案,在界面中輸入檔案編號(hào)后單擊刪除按鈕即可完成檔案的刪除操作?!?〕承當(dāng)模塊工作詳解通過這個(gè)分析,我主要做的就是多個(gè)界面以及各個(gè)見面之間的來回切換;還有就是實(shí)現(xiàn)對(duì)文件的操作〔增刪改查〕,這里的采用文本文檔的存儲(chǔ)方式,以簡歷的編號(hào)為文本的名稱,再從新建界面上獲取輸入的信息并逐行存儲(chǔ)到文本中;查詢時(shí)這逐行讀取對(duì)應(yīng)文本中的信息,并將信息放到相應(yīng)的文本框中,修改那么是利用查詢功能先找到文檔后修改相應(yīng)的屬性內(nèi)容;刪除那么是用戶輸入一個(gè)檔案編號(hào),系統(tǒng)將名為這個(gè)編號(hào)的檔案刪除即可;〔5〕外部界面需求本次程序需要建立新建檔案、刪除、查詢、修改等面板,還需要保存,刪除、修改等操作成功是的提示對(duì)話框?!?〕運(yùn)行環(huán)境系統(tǒng)軟件:Window2000以上系統(tǒng)所需文件:Call.java〔主類代碼〕,Massage.java,MyPanel.java,Myfile.java,Serch.javaMain_panel.java語言選擇:java工具軟件:MyEclipse二.概要設(shè)計(jì)開始〔1〕系統(tǒng)流程圖開始菜單欄選擇新建檔案菜單欄選擇新建檔案輸入信息到界面輸入信息到界面單擊保存按鈕單擊保存按鈕在菜單欄中選擇功能在菜單欄中選擇功能查詢檔案修改輸入對(duì)應(yīng)的檔案信輸入對(duì)應(yīng)的檔案信刪除輸入對(duì)應(yīng)的檔案信息輸入對(duì)應(yīng)的檔案信息單擊查詢按鈕輸入檔案編號(hào)單擊查詢按鈕輸入檔案編號(hào)單擊修改按鈕單擊修改按鈕是否單擊返回按鈕單擊刪除按鈕是否單擊返回按鈕單擊刪除按鈕是否單擊返回按鈕是是否單擊返回按鈕結(jié)束結(jié)束圖2.1系統(tǒng)流程圖大學(xué)生檔案管理系統(tǒng)〔2〕功能模塊圖大學(xué)生檔案管理系統(tǒng)刪除檔案修改檔案查找檔案新建檔案刪除檔案修改檔案查找檔案新建檔案圖2.2功能模塊圖〔3〕新建檔案模塊在這個(gè)模塊中主要實(shí)現(xiàn)的功能是建立一份檔案所需的界面,并將用戶輸入到界面上的信息保存在文本文檔中。在保存時(shí),要先提取檔案的編號(hào)作為文本的名稱,這樣做有利于后續(xù)的查找。因?yàn)闄n案的說有屬性中編號(hào)是唯一的,不會(huì)發(fā)生沖突;獲取到檔案的每項(xiàng)屬性是先放進(jìn)一個(gè)字符串?dāng)?shù)組中,然后將這個(gè)字符串的每個(gè)元素分別輸入當(dāng)文本中,且各占一行。〔4〕查詢模塊在這一模塊中主要實(shí)現(xiàn)的功能是對(duì)已有檔案的查詢功能。有三種查詢方式,分別是按名字、身份證號(hào)、檔案編號(hào)進(jìn)行查找。其中按編號(hào)查找是只需要直接把名和編號(hào)相同的文檔翻開并逐行讀取后放入一個(gè)字符串?dāng)?shù)組中,然后將該數(shù)組中的每個(gè)元素顯示在相應(yīng)的界面上即可;按身份證號(hào)和編號(hào)查找是那么需要先遍歷文檔,找到也輸入的名字或身份證號(hào)也文本中的數(shù)據(jù)相同的文本,之后逐行讀取后放入一個(gè)字符串?dāng)?shù)組中,然后將該數(shù)組中的每個(gè)元素顯示在相應(yīng)的界面上即可〔5〕修改模板這一模塊主要實(shí)現(xiàn)的功能是對(duì)以后文檔內(nèi)容的修改。這一功能是建立在查詢的根底之上,也就是說要先利用上述功能找到要修改的文檔,在去修改文檔中的內(nèi)容,之后將修改后的檔案保存;〔6〕刪除模塊這一模塊主要實(shí)現(xiàn)的功能是刪除系統(tǒng)中的某一份檔案。這一功能的實(shí)現(xiàn)同樣是建立在查詢的根底之上,也就是說要先利用上述功能找到要修改的文檔,獲取文檔名稱再進(jìn)行刪除;三.詳細(xì)設(shè)計(jì)〔1〕界面類MyPanel.java該類主要是負(fù)責(zé)實(shí)現(xiàn)該系統(tǒng)除剛進(jìn)入系統(tǒng)時(shí)的界面外的所有界面;它是繼承Panel的子類,因此它的對(duì)象可以給看作是容器添加在Frame中;它有newface,serchface,serchshowface,deleteface,changeface六個(gè)方法,分別是用來建立新建文檔界面,查找詢問界面,查找結(jié)果顯示界面,刪除檔案界面,修改檔案界面;新建檔案方法newface〔〕:setLayout(null);//設(shè)置成空布局name1=newLabel("姓名:");name1.setBounds(10,30,40,20); add(name1);name2=newTextField();name2.setBounds(50,30,100,20); add(name2);sex1=newLabel("性別:");sex1.setBounds(250,30,40,20); add(sex1);sex2=newTextField();sex2.setBounds(290,30,100,20); add(sex2);birth1=newLabel("出生年月:");birth1.setBounds(10,60,60,20); add(birth1);birth2=newTextField();birth2.setBounds(70,60,100,20); add(birth2);number1=newLabel("身份證號(hào):");number1.setBounds(250,60,60,20); add(number1);number2=newTextField();number2.setBounds(310,60,100,20); add(number2);school1=newLabel("學(xué)院:");school1.setBounds(10,90,40,20); add(school1);school2=newTextField();school2.setBounds(50,90,100,20); add(school2);subject1=newLabel("專業(yè):");subject1.setBounds(250,90,40,20); add(subject1);subject2=newTextField();subject2.setBounds(290,90,100,20); add(subject2);indata1=newLabel("入學(xué)年月:");indata1.setBounds(10,120,60,20); add(indata1);indata2=newTextField();indata2.setBounds(70,120,100,20); add(indata2);snumber1=newLabel("學(xué)號(hào):");snumber1.setBounds(250,120,40,20); add(snumber1);snumber2=newTextField();snumber2.setBounds(290,120,100,20); add(snumber2);reward1=newLabel("在校期間所獲獎(jiǎng)勵(lì):");reward1.setBounds(10,150,150,20); add(reward1);reward2=newTextArea();reward2.setBounds(10,180,600,300); add(reward2);zhuangtai1=newLabel("狀態(tài):");zhuangtai1.setBounds(10,500,60,20); add(zhuangtai1);zhuangtai2=newTextField();zhuangtai2.setBounds(70,500,80,20); add(zhuangtai2);bianhao1=newLabel("檔案編號(hào)");bianhao1.setBounds(200,500,60,20); add(bianhao1);bianhao2=newTextField();bianhao2.setBounds(260,500,80,20); add(bianhao2);save=newButton("保存");save.addActionListener(this);save.setBackground(Color.RED);save.setBounds(550,500,50,50); add(save); setVisible(true);查找詢問界面方法serchface〔〕:publicvoidserchface(){setLayout(null);card=newCardLayout();//將面板設(shè)置成CardLayout布局mainpanel1=newPanel();mainpanel2=newPanel();serchpanel=newPanel();serchpanel.setBounds(0,0,600,400);mainpanel1.setBounds(0,0,600,400);mainpanel2.setBounds(0,0,400,400);serchpanel.setLayout(card);serchpanel.add("查詢?cè)儐?,mainpanel1);//將兩個(gè)面板添加到CardLayoutserchpanel.add("查詢結(jié)果",mainpanel2);//中實(shí)現(xiàn)兩個(gè)面板間來回切換add(serchpanel);mainpanel1.setLayout(null);name3=newLabel("姓名:");name3.setBounds(200,100,40,20);mainpanel1.add(name3);name4=newTextField();name4.setBounds(240,100,100,20);mainpanel1.add(name4);bianhao3=newLabel("檔案編號(hào):");bianhao3.setBounds(200,200,60,20);mainpanel1.add(bianhao3);bianhao4=newTextField();bianhao4.setBounds(260,200,100,20);mainpanel1.add(bianhao4);serch=newButton("查找");serch.setBounds(500,230,60,60);serch.setBackground(Color.blue);serch.addActionListener(this);mainpanel1.add(serch);back=newButton("返回");back.addActionListener(this);back.setBounds(330,350,30,30);mainpanel2.add(back);serchshowface();//查詢到檔案后的信息顯示界面setVisible(true); }查詢到檔案后的信息顯示界面方法serchshowface〔〕:publicvoidserchshowface(){mainpanel2.setLayout(null);name1=newLabel("姓名:");name1.setBounds(10,30,40,20);mainpanel2.add(name1);name2=newTextField();name2.setBounds(50,30,100,20);mainpanel2.add(name2);sex1=newLabel("性別:");sex1.setBounds(250,30,40,20);mainpanel2.add(sex1);sex2=newTextField();sex2.setBounds(290,30,100,20);mainpanel2.add(sex2);birth1=newLabel("出生年月:");birth1.setBounds(10,60,60,20);mainpanel2.add(birth1);birth2=newTextField();birth2.setBounds(70,60,100,20);mainpanel2.add(birth2);number1=newLabel("身份證號(hào):");number1.setBounds(250,60,60,20);mainpanel2.add(number1);number2=newTextField();mainpanel2.add(number2);school1=newLabel("學(xué)院:");school1.setBounds(10,90,40,20);mainpanel2.add(school1);school2=newTextField();school2.setBounds(50,90,100,20);mainpanel2.add(school2);subject1=newLabel("專業(yè):");subject1.setBounds(250,90,40,20);mainpanel2.add(subject1);subject2=newTextField();subject2.setBounds(290,90,100,20);mainpanel2.add(subject2);indata1=newLabel("入學(xué)年月:");indata1.setBounds(10,120,60,20);mainpanel2.add(indata1);indata2=newTextField();indata2.setBounds(70,120,100,20);mainpanel2.add(indata2);snumber1=newLabel("學(xué)號(hào):");snumber1.setBounds(250,120,40,20);mainpanel2.add(snumber1);snumber2=newTextField();snumber2.setBounds(290,120,100,20);mainpanel2.add(snumber2);reward1=newLabel("在校期間所獲獎(jiǎng)勵(lì):");reward1.setBounds(10,150,150,20);mainpanel2.add(reward1);reward2=newTextArea();reward2.setBounds(10,180,500,150);mainpanel2.add(reward2);zhuangtai1=newLabel("狀態(tài):");zhuangtai1.setBounds(10,350,60,20);mainpanel2.add(zhuangtai1);zhuangtai2=newTextField();zhuangtai2.setBounds(70,350,80,20);mainpanel2.add(zhuangtai2);bianhao1=newLabel("檔案編號(hào)");bianhao1.setBounds(200,350,60,20);mainpanel2.add(bianhao1);bianhao2=newTextField();bianhao2.setBounds(260,350,60,20);mainpanel2.add(bianhao2);setVisible(true); }修改檔案界面方法changeface():publicvoidchangface(){serchface();//使用查詢是的界面serch.setName("開始修改");//將查詢按鈕改成修改按鈕save=newButton("保存");save.setBounds(400,350,30,30);mainpanel2.add(save);//在信息顯示界面添加保存按鈕save.addActionListener(this);//添加監(jiān)聽器}刪除檔案界面方法deleteface():publicvoiddeleteface(){ setLayout(null);bianhao1=newLabel("檔案編號(hào)");//檔案編號(hào)作為刪除檔案時(shí)的查詢條件bianhao1.setBounds(200,200,60,20); add(bianhao1);bianhao2=newTextField();bianhao2.setBounds(260,200,80,20); add(bianhao2);delete=newButton("刪除");delete.addActionListener(this);//給按鈕添加監(jiān)聽器delete.setBackground(Color.RED);delete.setBounds(250,250,50,50); add(delete);//添加刪除按鈕 }按鈕的事件的實(shí)現(xiàn):publicvoidactionPerformed(ActionEvente){if(e.getSource()==serch){//查找按鈕,打擊后開始查找 Stringtemp[]={"","","","","","","","","","","","",""};name=name4.getText();//獲取查詢?cè)儐柦缑嫔系男畔ianhao=bianhao4.getText();//獲取檔案編號(hào)Serchexample=newSerch();//實(shí)例化查詢類if(bianhao.length()!=0){//如果用戶輸入了編號(hào) temp=example.serchBianhao(bianhao)//進(jìn)行按編號(hào)查找 }elseif(name.length()!=0){//如果用戶輸入了名字 temp=example.serchName(name);//進(jìn)行按名字查找 }if(temp!=null){//如果查詢到的結(jié)果不是空的那么將結(jié)果顯示到界面上card.show(serchpanel,"查詢結(jié)果");name2.setText(temp[0]);sex2.setText(temp[1]);birth2.setText(temp[2]);number2.setText(temp[3]);school2.setText(temp[4]);subject2.setText(temp[5]);indata2.setText(temp[6]);snumber2.setText(temp[7]);reward2.setText(temp[8]);zhuangtai2.setText(temp[9]);bianhao2.setText(temp[10]); } }elseif(e.getSource()==back){//返回按鈕事件的實(shí)現(xiàn)bianhao4.setText("");name2.setText("");number2.setText("");card.show(serchpanel,"查詢?cè)儐?);//單擊后返回查詢?cè)儐柦缑? }elseif(e.getSource()==save){//保存按鈕事件的實(shí)現(xiàn) MyFileexample=newMyFile();//實(shí)例化一個(gè)文件操作類的對(duì)象Massagemassage=newMassage(this);example.save(massage);//調(diào)用該文件操作類對(duì)象的保存文件方法JOptionPane.showMessageDialog(this,"保存成功","",JOptionPane.WARNING_MESSAGE); }elseif(e.getSource()==delete){ MyFilede=newMyFile();//實(shí)例化一個(gè)文件操作類的對(duì)象 de.delete(bianhao2.getText());//調(diào)用該文件操作類對(duì)象的刪除文件方法 } }(2)獲取界面信息類Massage.java這個(gè)類主要是獲取用戶輸入到界面上的信息,有兩個(gè)方法,一個(gè)是構(gòu)造方法Massage(),另一個(gè)是獲取信息方法getmassage();Massage(MyPanelA){//將界面類的對(duì)象作為參數(shù)name=A.name2.getText();sex=A.sex2.getText();birth=A.birth2.getText();school=A.school2.getText();indata=A.indata2.getText();subject=A.subject2.getText();number=A.number2.getText();snumber=A.snumber2.getText();reward=A.reward2.getText();zhuangtai=A.zhuangtai2.getText();bianhao=A.bianhao2.getText(); }publicString[]getMassage(){//將獲取到的信息存入到一個(gè)字符串?dāng)?shù)組中,并將其返回 Stringtemp[]={"","","","","","","","","","","","","",""}; temp[0]=name; temp[1]=sex; temp[2]=birth; temp[3]=number; temp[4]=school; temp[5]=subject; temp[6]=indata; temp[7]=snumber; temp[8]=reward; temp[9]=zhuangtai; temp[10]=bianhao;returntemp;//將結(jié)果返回 }〔3〕文件操作類Myfile.java 該類主要是實(shí)現(xiàn)對(duì)文件的操作,有保存save(),delete()兩個(gè)方法publicvoidsave(Massagemassage){//將獲取信息類的對(duì)象作為參數(shù) Stringbianhao=massage.bianhao;//從而實(shí)現(xiàn)將對(duì)象的屬性保存到文本中 FileWriteroutone; BufferedWriterouttwo;try{ Stringtemp[]={"","","","","","","","","","","","",""}; temp=massage.getMassage();intn=Integer.parseInt(bianhao); outone=newFileWriter(n+".txt");//將檔案編號(hào)作為文本的名字 outtwo=newBufferedWriter(outone);for(intk=0;k<temp.length;k++) { outtwo.write(temp[k]);//將信息逐行寫入到文本中 outtwo.newLine(); } outtwo.close(); outone.close(); }catch(Exceptione1){ e1.printStackTrace(); } }publicvoiddelete(Strings){//將檔案的編號(hào)作為參數(shù)intk=Integer.parseInt(s); Filef=newFile(k+".txt");booleana=f.delete();if(a==true){ JOptionPane.showMessageDialog(null,"刪除成功","",JOptionPane.WARNING_MESSAGE); } }〔4〕查找類Serch.java 該類主要是實(shí)現(xiàn)對(duì)檔案的查找,有按名字,身份證號(hào),檔案編號(hào)三種查詢方式,因此該類有三個(gè)方法:publicString[]serchName(Stringname){//按名字查找intk=0,i=0; StringS=null; Stringtemp[]={"","","","","","","","","","","","","","",""};try{for(;k<10000;){ Filef=newFile(k+".txt");if(f.exists()){ FileReaderinone=newFileReader(f); BufferedReaderintwo=newBufferedReader(inone);if(intwo.readLine().equals(name)==false){ k++; }else{ BufferedReaderinthree=newBufferedReader(inone); i=0;while(i<11){ temp[i]=inthree.readLine(); i++; }returntemp; } intwo.close(); inone.close(); }else{ k++; } }if(k>=10000){ JOptionPane.showMessageDialog(null,"沒有找到檔案,請(qǐng)重新輸入","",JOptionPane.INFORMATION_MESSAGE); temp=null; } }catch(Exceptione){ e.printStackTrace(); }returntemp; }publicString[]serchNumber(Stringnumber){//按身份證號(hào)查找 intk=0,i=0; Stringtemp[]={"","","","","","","","","","","","",""}; try{ for(;k<10000;k++){ FileReaderinone=newFileReader(k+".txt"); BufferedReaderintwo=newBufferedReader(inone); for(;i<3;i++){ intwo.readLine(); } if(intwo.readLine()!=number){ k++; } else{ BufferedReaderinthree=newBufferedReader(inone); i=0; while(i<9){ temp[i]=inthree.readLine(); i++; } returntemp; } } if(k>=10000){ JOptionPane.showInputDialog(this,"沒有找到檔案,請(qǐng)重新輸入"); temp=null; } }catch(Exceptione){ e.printStackTrace(); } returntemp; }publicString[]serchBianhao(Stringbianhao){//按編號(hào)查找intk=0; Stringtemp[]={"","","","","","","","","","","","","","",""};try{ k=Integer.parseInt(bianhao); Filef=newFile(k+".txt");if(f.exists()==true){ FileReaderinone=newFileReader(f); BufferedReaderintwo=newBufferedReader(inone);for(k=0;k<11;k++){ temp[k]=intwo.readLine(); } intwo.close();inone.close(); }else{ JOptionPane.showMessageDialog(null,"沒有找到檔案請(qǐng)重新輸入","",JOptionPane.WARNING_MESSAGE); temp=null; } }catch(Exceptione){ e.printStackTrace(); }returntemp; }}〔5〕主界面類Main_face 繼承了Frame,實(shí)現(xiàn)系統(tǒng)的主界面,采用CardLayout布局,實(shí)現(xiàn)多個(gè)面板之間的切換,而新建檔案,修改,刪除等界面都是一個(gè)個(gè)面板Main_Face(){mycard=newCardLayout(); setLayout(mycard);mainframe=newPanel();menubar=newMenuBar();file=newMenu("文件");serch=newMenu("查找");serch.addActionListener(this);exit=newMenuItem("退出");exit.addActionListener(this);new_file=newMenuItem("新建檔案");new_file.addActionListener(this);serchname=newMenuItem("查找檔案");serchname.addActionListener(this);serch.add(serchname);file.add(new_file);zhuye=newMenuItem("主菜單");zhuye.addActionListener(this);delete=newMenuItem("刪除檔案");delete.addActionListener(this);file.add(zhuye);file.add(delete);file.add(exit);menubar.add(file);menubar.add(serch);change1=newMenu("修改");change2=newMenuItem("修改檔案");zhuangtai=newMenuItem("修改狀態(tài)");change1.add(change2);change1.add(zhuangtai);change2.addActionListener(this);zhuangtai.addActionListener(this);menubar.add(change1); setMenuBar(menubar);welcome=newLabel("歡送進(jìn)入大學(xué)生檔案管理系統(tǒng)。。。。。。");welcome.setBounds(10,20,90,20);mainframe.add(welcome);mainframe.setBounds(100,150,300,300); add("主菜單",mainframe);creatfile=newMyPanel();creatfile.newface();creatfile.setBounds(0,0,700,600); add("新建檔案",creatfile);serch1=newMyPanel();serch1.setBounds(0,0,400,400);serch1.serchface(); add("查找",serch1);changeFace=newMyPanel();changeFace.changface();changeFace.setBounds(0,0,700,610); add("修改",changeFace); setBounds(200,200,700,610);deletefile=newMyPanel();deletefile.deleteface();deletefile.setBounds(0,0,700,610); add("刪除",deletefile); setVisible(true); }publicvoidactionPerformed(ActionEvente){if(e.getSource()==exit){ System.exit(0); }elseif(e.getSource()==new_file){mycard.show(this,"新建檔案"); }elseif(e.getSource()==serchname){mycard.show(this,"查找"); }elseif(e.getSource()==zhuye){mycard.show(this,"主菜單"); }elseif(e.getSource()==change2){changeFace.serch.setLabel("修改");mycard.show(this,"修改"); }elseif(e.getSource()==zhuangtai){changeFace.serch.setLabel("修改狀態(tài)");mycard.show(this,"修改"); }elseif(e.getSource()==delete){mycard.show(this,"刪除"); } }〔6〕系統(tǒng)界面圖3.1初始界面圖3.2新建文檔圖3.3查詢?cè)儐柦缑鎴D3.4查詢結(jié)果顯示界面 圖3.5修改詢問界面圖3.6修改界面圖3.7刪除檔案界面四.調(diào)試分析〔1〕調(diào)試過程中所遇到的問題及解決方法1〕在寫查找功能時(shí)無法讀取到界面上輸入的檔案編號(hào),通過在獲取編號(hào)去設(shè)置斷點(diǎn),在單步調(diào)試,查看變量值的變化,發(fā)現(xiàn)是變量名稱有誤2〕寫刪除功能時(shí),文件無法刪除,無法刪除,發(fā)現(xiàn)是沒有建檔案的編號(hào)進(jìn)行強(qiáng)制轉(zhuǎn)換成整形,在翻開文檔3〕在查詢時(shí),會(huì)拋出異常,比方說當(dāng)查找一個(gè)系統(tǒng)沒有的文本是就會(huì)拋出異常,后單步調(diào)試發(fā)現(xiàn)在查找錢沒有判斷這個(gè)文本是否存在〔2〕經(jīng)驗(yàn)與體會(huì)兩周的時(shí)間做出這樣一個(gè)系統(tǒng)盡管不是很完善,但是這兩周把java課程復(fù)習(xí)了一邊,也加深了對(duì)面向?qū)ο蟮睦斫?。在開發(fā)方面認(rèn)識(shí)倒了類設(shè)計(jì)的重要性,一個(gè)好的類結(jié)構(gòu)能夠帶來高效的工作,以及穩(wěn)定的系統(tǒng)。在這兩周里了解整個(gè)開發(fā)流程,收益頗多。對(duì)MyEclipse的使用也更嫻熟了。五.用戶使用說明〔1〕這次運(yùn)行程序的環(huán)境是Myeclipse,執(zhí)行的主文件是call.java,〔2〕整個(gè)程序只有一個(gè)框架,中選擇不同的功能是框架中會(huì)出現(xiàn)不同界面?!?〕用戶點(diǎn)擊菜單項(xiàng)中的菜單在根據(jù)界面填入相應(yīng)的信息即可實(shí)現(xiàn)不同的功能六.測(cè)試結(jié)果運(yùn)行程序。然后彈出一個(gè)窗口如上面的圖3.1。運(yùn)行流程及結(jié)果如圖3.2,3.3,3.4,3.5,3.6,3.7。七.參考文獻(xiàn)1.耿祥義、張躍平.《java使用教程》.清華大學(xué)出版社.2023年版4.嚴(yán)蔚敏.《數(shù)據(jù)結(jié)構(gòu)》.清華大學(xué)出版社.1997年版八.附錄主類Call.javapackageCall;publicclassCall{ publicstaticvoidmain(Stringargs[]){ Main_Faceface=newMain_Face(); face.setTitle("大學(xué)生檔案管理系統(tǒng)"); }}主界面類:Main_face:packageCall;importjava.awt.*;importjava.awt.event.*;publicclassMain_FaceextendsFrameimplementsActionListener{ MenuBarmenubar; Menufile,serch,change1; MenuItemexit,new_file,serchname,zhuye,change2,delete,zhuangtai; MyPanelcreatfile,serch1,changeFace,deletefile; Labelwelcome; Panelmainframe; CardLayoutmycard; Main_Face(){ mycard=newCardLayout(); setLayout(mycard); mainframe=newPanel(); menubar=newMenuBar(); file=newMenu("文件"); serch=newMenu("查找"); serch.addActionListener(this); exit=newMenuItem("退出"); exit.addActionListener(this); new_file=newMenuItem("新建檔案"); new_file.addActionListener(this); serchname=newMenuItem("查找檔案"); serchname.addActionListener(this); serch.add(serchname); file.add(new_file); zhuye=newMenuItem("主菜單"); zhuye.addActionListener(this); delete=newMenuItem("刪除檔案"); delete.addActionListener(this); file.add(zhuye); file.add(delete); file.add(exit); menubar.add(file); menubar.add(serch); change1=newMenu("修改"); change2=newMenuItem("修改檔案"); zhuangtai=newMenuItem("修改狀態(tài)"); change1.add(change2); change1.add(zhuangtai); change2.addActionListener(this); zhuangtai.addActionListener(this); menubar.add(change1); setMenuBar(menubar); welcome=newLabel("歡送進(jìn)入大學(xué)生檔案管理系統(tǒng)。。。。。。"); welcome.setBounds(10,20,90,20); mainframe.add(welcome); mainframe.setBounds(100,150,300,300); add("主菜單",mainframe); creatfile=newMyPanel(); creatfile.newface(); creatfile.setBounds(0,0,700,600); add("新建檔案",creatfile); serch1=newMyPanel(); serch1.setBounds(0,0,400,400); serch1.serchface(); add("查找",serch1); changeFace=newMyPanel(); changeFace.changface(); changeFace.setBounds(0,0,700,610); add("修改",changeFace); setBounds(200,200,700,610); deletefile=newMyPanel(); deletefile.deleteface(); deletefile.setBounds(0,0,700,610); add("刪除",deletefile); setVisible(true); } publicvoidactionPerformed(ActionEvente){ if(e.getSource()==exit){ System.exit(0); } elseif(e.getSource()==new_file){ mycard.show(this,"新建檔案"); } elseif(e.getSource()==serchname){ mycard.show(this,"查找"); } elseif(e.getSource()==zhuye){ mycard.show(this,"主菜單"); } elseif(e.getSource()==change2){ changeFace.serch.setLabel("修改"); mycard.show(this,"修改"); changeF2.setEditable(true); changeFace.sex2.setEditable(true); changeFace.birth2.setEditable(true); changeFace.number2.setEditable(true); changeFace.school2.setEditable(true); changeFace.subject2.setEditable(true); changeFace.indata2.setEditable(true); changeFace.snumber2.setEditable(true); changeFace.reward2.setEditable(true); changeFace.bianhao2.setEditable(true); } elseif(e.getSource()==zhuangtai){ changeFace.serch.setLabel("修改狀態(tài)"); mycard.show(this,"修改"); changeF2.setEditable(false); changeFace.sex2.setEditable(false); changeFace.birth2.setEditable(false); changeFace.number2.setEditable(false); changeFace.school2.setEditable(false); changeFace.subject2.setEditable(false); changeFace.indata2.setEditable(false); changeFace.snumber2.setEditable(false); changeFace.reward2.setEditable(false); changeFace.bianhao2.setEditable(false); } elseif(e.getSource()==delete){ mycard.show(this,"刪除"); } } }界面類:MyPanle.java:packageCall;importjava.awt.*;importjava.awt.event.*;importjavax.swing.JOptionPane;publicclassMyPanelextendsPanelimplementsActionListener{ Labelname1,name3,sex1,birth1,school1,indata1,subject1,number1,number3,snumber1,reward1,bianhao1,bianhao3,zhuangtai1;//姓名,性別,出生年月,學(xué)院,入學(xué)年月,專業(yè),身份證號(hào),學(xué)號(hào),所獲獎(jiǎng)勵(lì)TextFieldname2,name4,sex2,birth2,school2,indata2,subject2,number2,number4,snumber2,bianhao2,bianhao4,zhuangtai2; TextAreareward2; Buttonsave; Stringname,sex,birth,school,indata,subject,number,snumber,reward,bianhao; Panelmainpanel1,mainpanel2,serchpanel; Buttonserch,back,delete; CardLayoutcard,changecard; MyPanel(){} publicvoidnewface(){ setLayout(null); name1=newLabel("姓名:"); name1.setBounds(10,30,40,20); add(name1); name2=newTextField(); name2.setBounds(50,30,100,20); add(name2); sex1=newLabel("性別:"); sex1.setBounds(250,30,40,20); add(sex1); sex2=newTextField(); sex2.setBounds(290,30,100,20); add(sex2); birth1=newLabel("出生年月:"); birth1.setBounds(10,60,60,20); add(birth1); birth2=newTextField(); birth2.setBounds(70,60,100,20); add(birth2); number1=newLabel("身份證號(hào):"); number1.setBounds(250,60,60,20); add(number1); number2=newTextField(); number2.setBounds(310,60,100,20); add(number2); school1=newLabel("學(xué)院:"); school1.setBounds(10,90,40,20); add(school1); school2=newTextField(); school2.setBounds(50,90,100,20); add(school2); subject1=newLabel("專業(yè):"); subject1.setBounds(250,90,40,20); add(subject1); subject2=newTextField(); subject2.setBounds(290,90,100,20); add(subject2); indata1=newLabel("入學(xué)年月:"); indata1.setBounds(10,120,60,20); add(indata1); indata2=newTextField(); indata2.setBounds(70,120,100,20); add(indata2); snumber1=newLabel("學(xué)號(hào):"); snumber1.setBounds(250,120,40,20); add(snumber1); snumber2=newTextField(); snumber2.setBounds(290,120,100,20); add(snumber2); reward1=newLabel("在校期間所獲獎(jiǎng)勵(lì):"); reward1.setBounds(10,150,150,20); add(reward1); reward2=newTextArea(); reward2.setBounds(10,180,600,300); add(reward2); zhuangtai1=newLabel("狀態(tài):"); zhuangtai1.setBounds(10,500,60,20); add(zhuangtai1); zhuangtai2=newTextField(); zhuangtai2.setBounds(70,500,80,20); add(zhuangtai2); bianhao1=newLabel("檔案編號(hào)"); bianhao1.setBounds(200,500,60,20); add(bianhao1); bianhao2=newTextField(); bianhao2.setBounds(260,500,80,20); add(bianhao2); save=newButton("保存"); save.addActionListener(this); save.setBackground(Color.RED); save.setBounds(550,500,50,50); add(save); setVisible(true); } publicvoidserchface(){ setLayout(null); card=newCardLayout(); mainpanel1=newPanel(); mainpanel2=newPanel(); serchpanel=newPanel(); serchpanel.setBounds(0,0,600,400); mainpanel1.setBounds(0,0,600,400); mainpanel2.setBounds(0,0,400,400); serchpanel.setLayout(card); serchpanel.add("查詢?cè)儐?,mainpanel1); serchpanel.add("查詢結(jié)果",mainpanel2); add(serchpanel); mainpanel1.setLayout(null); name3=newLabel("姓名:"); name3.setBounds(200,100,40,20); mainpanel1.add(name3); name4=newTextField(); name4.setBounds(240,100,100,20); mainpanel1.add(name4); bianhao3=newLabel("檔案編號(hào):"); bianhao3.setBounds(200,200,60,20); mainpanel1.add(bianhao3); bianhao4=newTextField(); bianhao4.setBounds(260,200,100,20); mainpanel1.add(bianhao4); serch=newButton("查找"); serch.setBounds(500,230,60,60); serch.setBackground(Color.blue); serch.addActionListener(this); mainpanel1.add(serch); back=newButton("返回"); back.addActionListener(this); back.setBounds(330,350,30,30); mainpanel2.add(back); serchshowface(); setVisible(true); } publicvoidserchshowface(){ mainpanel2.setLayout(null); name1=newLabel("姓名:"); name1.setBounds(10,30,40,20); mainpanel2.add(name1); name2=newTextField(); name2.setBounds(50,30,100,20); mainpanel2.add(name2); sex1=newLabel("性別:"); sex1.setBounds(250,30,40,20); mainpanel2.add(sex1); sex2=newTextField(); sex2.setBounds(290,30,100,20); mainpanel2.add(sex2); birth1=newLabel("出生年月:"); birth1.setBounds(10,60,60,20); mainpanel2.add(birth1); birth2=newTextField(); birth2.setBounds(70,60,100,20); mainpanel2.add(birth2); number1=newLabel("身份證號(hào):"); number1.setBounds(250,60,60,20); mainpanel2.add(number1); number2=newTextField(); number2.setBounds(310,60,100,20); mainpanel2.add(number2); school1=newLabel("學(xué)院:"); school1.setBounds(10,90,40,20); mainpanel2.add(school1); school2=newTextField(); school2.setBounds(50,90,100,20); mainpanel2.add(school2); subject1=newLabel("專業(yè):"); subject1.setBounds(250,90,40,20); mainpanel2.add(subject1); subject2=newTextField(); subject2.setBounds(290,90,100,20); mainpanel2.add(subject2); indata1=newLabel("入學(xué)年月:"); indata1.setBounds(10,120,60,20); mainpanel2.add(indata1); indata2=newTextField(); indata2.setBounds(70,120,100,20); mainpanel2.add(indata2); snumber1=newLabel("學(xué)號(hào):"); snumber1.setBounds(250,120,40,20); mainpanel2.add(snumber1); snumber2=newTextField(); snumber2.setBounds(290,120,100,20); mainpanel2.add(snumber2); reward1=newLabel("在校期間所獲獎(jiǎng)勵(lì):"); reward1.setBounds(10,150,150,20); mainpanel2.add(reward1); reward2=newTextArea(); reward2.setBounds(10,180,500,150); mainpanel2.add(reward2); zhuangtai1=newLabel("狀態(tài):"); zhuangtai1.setBounds(10,350,60,20); mainpanel2.add(zhuangtai1); zhuangtai2=newTextField(); zhuangtai2.setBounds(70,350,80,20); mainpanel2.add(zhuangtai2); bianhao1=newLabel("檔案編號(hào)"); bianhao1.setBounds(200,350,60,20); mainpanel2.add(bianhao1); bianhao2=newTextField(); bianhao2.setBounds(260,350,60,20); mainpanel2.add(bianhao2); setVisible(true); } publicvoidchangface(){ serchface(); serch.setName("開始修改"); save=newButton("保存"); save.setBounds(400,350,30,30); mainpanel2.add(save); save.addActionListener(this); } publicvoiddeleteface(){ setLayout(null); bianhao1=newLabel("檔案編號(hào)"); bianhao1.setBounds(200,200,60,20); add(bianhao1); bianhao2=newTextField(); bianhao2.setBounds(260,200,80,20); add(bianhao2); delete=newButton("刪除"); delete.addActionListener(this); delete.setBackground(Color.RED); delete.setBounds(250,250,50,50); add(delete); } publicvoidactionPerformed(ActionEvente){ if(e.getSource()==serch){ Stringtemp[]={"","","","","","","","","","","","",""}; name=name4.getText(); bianhao=bianhao4.getText(); Serchexample=newSerch(); if(bianhao.length()!=0){ temp=example.serchBianhao(bianhao); } elseif(name.length()!=0){ temp=example.serchName(name); } if(temp!=null){ card.show(serchpanel,"查詢結(jié)果"); name2.setText(temp[0]); sex2.setText(temp[1]); birth2.setText(temp[2]); number2.setText(temp[3]); school2.setText(temp[4]); subject2.setText(temp[5]); indata2.setText(temp[6]); snumber2.setText(temp[7]); reward2.setText(temp[8]); zhuangtai2.setText(temp[9]); bianhao2.setText(temp[10]); } } elseif(e.getSource()==back){ bianhao4.setText(""); name2.setText(""); number2.setText(""); card.show(serchpanel,"查詢?cè)儐?); } elseif(e.getSource()==save){MyFileexample=newMyFile();Massagemassage=newMassage(this);example.save(massage);JOptionPane.showMessageDialog(this,"保存成功","",JOptionPane.WARNING_MESSAGE); } elseif(e.getSource()==delete){ MyFilede=newMyFile(); de.delete(bianhao2.getText

溫馨提示

  • 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)論