




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第第頁學號:課程設計題目學生信息管理系統(tǒng)學院計算機科學與信息工程學院專業(yè)金融信息化服務外包班級學生姓名指導教師2015年12月28日課程設計任務書學生姓名:專業(yè)班級:指導教師:工作單位:題目:學生信息管理系統(tǒng)已知技術參數和設計要求:時間要求為14周~18周。開發(fā)工具java。開發(fā)平臺JCreator4.50Pro。所用文本Txt。說明文檔要求符合學校課程設計文檔規(guī)范。要求完成的主要任務:(包括課程設計工作量及其技術要求,以及說明書撰寫等具體要求)設計一個學生信息管理系統(tǒng),應用軟件的開發(fā)環(huán)境的簡要說明,需求分析,數據設計,功能設計,程序的主要界面、代碼實現(xiàn),設計結果的總結,附錄或參考資料登錄、查詢、增加、刪除、修改本系統(tǒng)中的各個表信息時間安排:1、需求分析,聯(lián)系實際,歷時2天。2、各種設計簡要說明需求分析,數據設計,功能設計,歷時4天。3、編碼,使用Java語言在JCreator4.50Pro集成開發(fā)環(huán)境中實現(xiàn)本系統(tǒng)的添加、刪除、查詢、讀取txt文檔,歷時4天。4、界面設計與軟件測試。使用可視化界面設計,完成系統(tǒng)各界面功能的設計與實現(xiàn)。完成本系統(tǒng)的初步測試與試運行,歷時5天。5、java課程設計文檔的最后檢查與修訂,歷時1天指導教師簽名:年月日目錄一.應用軟件的開發(fā)環(huán)境的簡要說明 6(一)開發(fā)環(huán)境: 6(二)運行環(huán)境: 6二.需求分析 6(一)系統(tǒng)目標 6(二)系統(tǒng)功能分析 61.功能需求: 62.非功能約束需求: 73.數據需求: 74.系統(tǒng)需求 7三.數據設計 7(一)數據流圖 7(二)數據字典 8數據項 8數據結構 9數據流 9數據存儲 9處理過程 10四.功能設計 11(一)本系統(tǒng)的主要功能 11(二)Java源文件及其功能 11(三)詳細設計 121.主類StudentManager 122.類Add 123.類Cha 134.類Shan 13(四)結構圖及流程圖 151.學生信息系統(tǒng)結構圖 152.添加學生信息 163.刪除學生信息 164.修改學生信息 175.查詢學生信息 186.登錄 18五.程序的主要界面、代碼實現(xiàn) 19(一)登錄界面 19(二)主界面 21(三)添加學生信息界面 25(四)刪除學生信息界面 30(五)修改學生信息界面 33(六)查詢學生信息界面 38六.設計結果的總結 41七.附錄或參考資料 41一.應用軟件的開發(fā)環(huán)境的簡要說明(一)開發(fā)環(huán)境:開發(fā)環(huán)境的選擇會影響到java的設計,所以在這里給出學生信息管理系統(tǒng)的開發(fā)與運行環(huán)境如下:開發(fā)環(huán)境:WindowsXP開發(fā)工具:JCreator4.50Pro文本文件管理系統(tǒng):txt(二)運行環(huán)境:為了保證系統(tǒng)運行的效率和可靠性。其運行要求如下:運行環(huán)境:JCreator4.50Pro以上客戶端:Windows98/NT/XP等硬件環(huán)境:服務器CPU:PIII500以上,內存:256M以上客戶機CPU:P200MMX以上,內存:32M以上二.需求分析(一)系統(tǒng)目標本系統(tǒng)的用戶主要不是學生。通過一個學生信息管理系統(tǒng),使學生的信息管理工作系統(tǒng)化、規(guī)范化、自動化,從而達到提高管理效率的目的。(二)系統(tǒng)功能分析1.功能需求:(1)驗證用戶輸入的登錄信息。用戶只有輸入正確的登錄信息后,才能進入信息管理系統(tǒng)。(2)查詢學生信息功能。選擇該功能后,可以查詢學生基本信息。(3)添加學生信息功能。選擇該功能后,可以添加學生的學生基本信息。(4)修改學生信息功能。選擇該功能后,可以修改學生的學生基本信息。(5)刪除學生信息功能。選擇該功能后,可以刪除學生的學生基本信息。(6)退出??梢酝顺霰拘畔⒐芾硐到y(tǒng)。2.非功能約束需求:(1)安全性:權限管理,身份檢驗。(2)可靠性:基本能夠運行,不會系統(tǒng)崩潰。(3)時間響應速度:查詢,更新。3.數據需求:(1)學生信息的添加和刪除都需要管理人員來執(zhí)行。(2)輸入學生信息時,要求學生信息完整。(3)登錄時要求輸入用戶名和匹配的密碼。4.系統(tǒng)需求(1)本系統(tǒng)只有輸入正確的用戶名和密碼,才能進入系統(tǒng)。(2)但凡進入系統(tǒng)的人,都可以執(zhí)行各種操作。三.數據設計(一)數據流圖圖2.1學生信息管理系統(tǒng)的頂層數據流圖根據基本系統(tǒng)模型,對其逐步細化,得到描述邏輯系統(tǒng)細化后的數據流圖,如圖2.2所示。圖2.2學生信息管理系統(tǒng)的0層數據流圖(二)數據字典數據項有了系統(tǒng)的數據流圖后,還有相當多的數據信息如學生具體信息需要進一步描述,這就是需要定義數據字典,才能把現(xiàn)有的系統(tǒng)描述清楚。圖2.3列出了系統(tǒng)的主要數據字1.數據項:學號含義說明:唯一識別學生的號碼別名:學生證號類型:字符型長度:10取值范圍:0000000000—9999999999取值含義:前四位表示班級號、中間四位表示專業(yè)代碼、后兩位表示學生編號與其他數據項的邏輯關系:標識項2.數據項:姓名含義說明:學生的名稱類型:字符型長度:10取值范圍:所有漢字3.數據項:性別含義說明:識別學生性別 類型:字符型長度:2取值范圍:男、女4.數據項:專業(yè)含義說明:表示該生所學的專業(yè)類型:字符型長度:305.數據項:年級含義說明:該表該生所在的年級類型:字符型長度:206.數據項:出生含義說明:該表該生出生年月類型:字符型長度:4取值范圍:無(eg:1994.03.24)7.數據項:用戶含義說明:是否有登錄的權限類型:字符型長度:10數據結構1.數據結構:學生含義說明:是學生信息管理系統(tǒng)的主要數據,定義了一個學生的有關信息組成:姓名、學號、性別、專業(yè)、年級、出生2.數據結構:用戶含義說明:是學生信息管理系統(tǒng)的數據,定義了有關用戶的信息組成:用戶名、密碼數據流1.數據流:登錄信息說明:用戶用來登錄學籍系統(tǒng)的用戶學生信息數據流來源:用戶數據流去向:用戶信息認證組成:用戶名2.數據流:學生信息查詢結果說明:用戶查看學生信息后得到的結果數據流來源:查詢學生信息數據流去向:用戶組成:姓名、學號、性別、專業(yè)、年級、出生數據存儲1.數據存儲:學生信息數據說明:記錄所有學生的學生信息資料庫流入數據流:相關人員輸入流出數據流:學生查詢學生信息數據量:由信息詳細情況而定存取方式:隨機存取5.數據存儲:用戶登錄信息數據說明:用戶的登錄信息流入數據流:管理員輸入或用戶輸入流出數據流:驗證用戶信息數據量:由用戶登錄多少決定存取方式:隨機存取處理過程1.處理過程:查詢學生信息說明:用戶獲得所查學生信息輸入:選擇查詢學生信息功能輸出:查詢結果處理:用戶進入系統(tǒng)后,選擇查詢學生信息功能,獲得相應信息2.處理過程:添加學生信息說明:用戶添加學生信息輸入:選擇添加學生信息功能輸出:添加成功處理:用戶進入系統(tǒng)后,選擇添加學生信息功能3.處理過程:刪除所查學生信息說明:用戶刪除學生信息輸入:選擇刪除學生信息功能輸出:刪除結果處理:用戶進入系統(tǒng)后,選擇刪除學生信息功能4.處理過程:修改學生信息說明:學生修改學生信息輸入:選擇修改學生信息功能輸出:修改結果處理:用戶進入系統(tǒng)后,選擇修改學生信息功能學生基本信息表(Student)數據類型特殊屬性描述String不為空姓名String不為空學號String不為空性別String不為空專業(yè)String不為空年級String不為空出生表3.1學生信息基本表四.功能設計(一)本系統(tǒng)的主要功能運行該系統(tǒng)成功后,會出現(xiàn)一個登錄的界面,輸入正確的用戶名后,會出現(xiàn)一個主界面,上面有5個子菜單分別是添加、修改、查詢、刪除和退出。點擊它們會出現(xiàn)不同的界面,分別有不同的功能:1.StudentMessage.java該類負責創(chuàng)建學生信息管理系統(tǒng)的主窗口,該類還有main方法,程序從該類開始執(zhí)行。2.Add.java該類創(chuàng)建的對象是StudentManager類的重要成員之一,負責提供添加學生基本信息的界面。3.Xiu.java該類創(chuàng)建的對象是StudentManager類的重要成員之一,負責提供查詢和修改學生基本信息的界面。4.Shan.java該類創(chuàng)建的對象是StudentManager類的重要成員之一,負責提供刪除學生基本信息的界面。5.Cha.java創(chuàng)建的對象是StudentManager類的重要成員之一,該類負責提供查詢學生基本信息的界面。6.Login1.java該類創(chuàng)建的對象是StudentManager類的重要成員之一,該類負責用戶登錄時的檢驗。本系統(tǒng)是基于數據庫的學生信息管理系統(tǒng),實現(xiàn)了連接數據庫,錄入、修改、查詢、刪除學生信息的功能。(二)Java源文件及其功能1.admin.txt該文件為登錄提供登錄的用戶名,Login1調用該文件。2.student.txt該文件為添加、修改、查詢、刪除操作提供學生信息,Add,Shan,Cha和Xiu調用該文件。(三)詳細設計1.主類StudentManager成員變量描述變量類型名稱按鈕JButtonb1(添加)按鈕JButtonb2(刪除)按鈕JButtonb3(修改)按鈕JButtonb4(查詢)按鈕JButtonb5(退出)面板容器JPanelJp表4.1主要成員變量(屬性)方法名稱返回類型功能備注Studentmessage無類型創(chuàng)建窗口構造方法main無類型執(zhí)行程序程序的主函數表4.2主要方法2.類Add成員變量描述變量類型名稱ArrayListArrayLista單行文本JTextField學號、姓名、專業(yè)、年級、出生、性別標題JLable學號、姓名、專業(yè)、年級……面板容器JPanelJp按鈕JButton確定、清空、返回表4.3主要成員變量(屬性)方法名稱返回類型功能備注Add無類型創(chuàng)建添加學生信息界面構造方法表4.4主要方法3.類Cha成員變量描述變量類型名稱ArrayList對象類型ArrayLista面板容器JPanelJp按鈕JButton確定、清空、返回標題JLable請輸入內容:單行文本JTextFieldNULL多行文本框JTextAreaNULL滾動條JScrollPaneNULL表4.5主要成員變量(屬性)方法名稱返回類型功能備注Cha無類型創(chuàng)建查找學生信息界面構造方法readDate無類型讀取studen.txt中的數據無Js無類型執(zhí)行查找無表4.6主要方法4.類Shan成員變量描述變量類型名稱ArrayList對象類型ArrayLista面板容器JPanelJp按鈕JButton確定、清空全部數據、返回標題JLable請輸入要刪除的……單行文本JTextFieldNULL表4.7主要成員變量(屬性)方法名稱返回類型功能備注Shan無類型創(chuàng)建刪除學生信息界面構造方法readDate無類型讀取studen.txt中的數據無Delete無類型執(zhí)行刪除無表4.8主要方法5.類Xiu成員變量描述變量類型名稱ArrayList對象類型ArrayLista面板容器JPanelJp按鈕JButton查找、修改、返回標題JLable學號、姓名、專業(yè)、年級……單行文本JTextField學號、姓名、專業(yè)、年級……表4.9主要成員變量(屬性)方法名稱返回類型功能備注Xiu無類型創(chuàng)建修改學生信息界面構造方法readDate無類型讀取studen.txt中的數據無Pc無類型執(zhí)行修改后保存無Cx無類型執(zhí)行查詢并顯示在框中無表4.10主要方法6.類Login1成員變量描述變量類型名稱ArrayList對象類型ArrayLista面板容器JPanelJp按鈕JButton確定標題JLable請輸入用戶名:單行文本JTextFieldNULL密碼框JPasswordFieldpassWord表4.11主要成員變量(屬性)方法名稱返回類型功能備注Login1無類型創(chuàng)建登錄學生信息界面構造方法readDate無類型讀取studen.txt中的數據無Log無類型執(zhí)行查詢是否有該用戶無表4.12主要方法(四)結構圖及流程圖1.學生信息系統(tǒng)結構圖圖4.1學生信息系統(tǒng)結構圖2.添加學生信息圖4.2添加學生信息流程圖3.刪除學生信息圖4.3刪除學生信息流程圖4.修改學生信息圖4.4刪除學生信息流程圖5.查詢學生信息圖4.5刪除學生信息流程圖6.登錄圖4.6登錄學生信息系統(tǒng)流程圖五.程序的主要界面、代碼實現(xiàn)(一)登錄界面圖5.1登錄界面源代碼:classLogin1extendsJFrame{ JLabell1=newJLabel("用戶名:"); JLabell3=newJLabel("歡迎登錄學生信息管理系統(tǒng)!"); JLabell2=newJLabel("密碼:"); JPasswordFieldpassWord=newJPasswordField(); JButtonb1=newJButton("確定"); JTextFieldjtf=newJTextField(150); ArrayLista=newArrayList(); JPaneljp=newJPanel(); publicLogin1(){Fontf=newFont("黑體",Font.BOLD,15);//修改字體 l3.setFont(f);//修改字體 jp.add(l3); jp.add(l1); jp.add(jtf); jp.add(l2); jp.add(passWord); jp.add(b1); getContentPane().add(jp); jp.setLayout(null); intx=0,y=0; l3.setBounds(x+60,y+10,350,30); l1.setBounds(x+70,y+50,200,30); jtf.setBounds(x+130,y+60,80,25); l2.setBounds(x+70,y+100,200,40); passWord.setBounds(x+130,y+105,80,25); b1.setBounds(x+100,y+170,70,25); setSize(300,300);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setTitle("學生信息管理系統(tǒng)登錄");setVisible(true);b1.addActionListener( newActionListener(){ publicvoidactionPerformed(ActionEventae) { log(); } } ); //查詢是否有該用戶 } voidreadDate(){ try{ Scannersc=newScanner(newFile("admin.txt")); while(sc.hasNextLine())//一行一行的讀取 { Stringtemp=sc.nextLine(); a.add(temp);//txt中的所有數據,逐行將數據加載到ArrayList中 }}catch(Exceptionex){} } publicvoidlog(){ a.clear(); readDate(); booleanflag=true; if(jtf.getText().equals("")) { JOptionPane.showMessageDialog(null,"用戶名不能為空!"); }elseif(passWord.getText().equals("")) { JOptionPane.showMessageDialog(null,"密碼不能為空!"); }else { Stringsh=jtf.getText(); Stringsh2=passWord.getText(); for(inti=0;i<a.size();i++) { Stringstr=(String)a.get(i); if(str.indexOf(sh)>=0&&str.indexOf(sh2)>=0) { flag=false; dispose(); StudentMessages=newStudentMessage(); } } if(flag) {JOptionPane.showMessageDialog(null,"密碼錯誤"); jtf.setText(null); passWord.setText(null);} } } }(二)主界面圖5.2主界面源代碼:importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.io.*;importjava.util.*;publicclassStudentMessageextendsJFrame{ CInsteadc1=newCInstead(); Containerc; JButtonb1; JButtonb2; JButtonb3; JButtonb4; JButtonb5;JLabeltail;publicStudentMessage(){setContentPane(c1); c=getContentPane();Fontf=newFont("隸書",Font.BOLD,20);//修改字體b1=newJButton("添加"); b2=newJButton("刪除");b3=newJButton("修改"); b4=newJButton("查詢");b5=newJButton("退出"); tail=newJLabel("學生信息管理系統(tǒng)");tail.setFont(f);//修改字體JPaneljp=newJPanel();c.add(tail); c.add(b1); c.add(b2); c.add(b3); c.add(b4); c.add(b5); c.setLayout(null); intx=0,y=0; tail.setBounds(x+80,y+30,200,40); b1.setBounds(x+120,y+90,70,25); b2.setBounds(x+120,y+140,70,25); b3.setBounds(x+120,y+190,70,25); b4.setBounds(x+120,y+240,70,25); b5.setBounds(x+120,y+290,70,25); setSize(330,450); show(); setTitle("學生信息管理系統(tǒng)"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); b5.addActionListener( newActionListener(){ publicvoidactionPerformed(ActionEventae) {System.exit(0);} } ); //關閉 b4.addActionListener( newActionListener(){ publicvoidactionPerformed(ActionEventae) {Chac=newCha();} } ); //查詢 b1.addActionListener( newActionListener(){ publicvoidactionPerformed(ActionEventae) {Addc=newAdd();} } ); //添加b2.addActionListener( newActionListener(){ publicvoidactionPerformed(ActionEventae) {Shanc=newShan();} } ); //刪除b3.addActionListener( newActionListener(){ publicvoidactionPerformed(ActionEventae) {Xiuc=newXiu();} } ); //修改 setVisible(true);}publicstaticvoidmain(String[]args){Login1n=newLogin1();}classCInsteadextendsJPanel{ ImageIconicon; Imageimg; publicCInstead() { icon=newImageIcon(StudentMessage.class.getResource("12.jpg")); img=icon.getImage(); } publicvoidpaintComponent(Graphicsg) { super.paintComponent(g); g.drawImage(img,0,0,null); }}}(三)添加學生信息界面圖5.3添加學生信息界面源代碼:classAddextendsJFrame{ JLabell1=newJLabel("添加學生信息"); JLabell2=newJLabel("姓名:"); JLabell3=newJLabel("性別"); JLabell4=newJLabel("學號:"); JLabell5=newJLabel("專業(yè):"); JLabell6=newJLabel("年級:"); JLabell7=newJLabel("出生:"); JButtonb1=newJButton("確定"); JButtonb2=newJButton("清空"); JButtonb3=newJButton("返回"); JTextFieldjtf1=newJTextField(15);JTextFieldjtf2=newJTextField(15);JTextFieldjtf3=newJTextField(15);JTextFieldjtf4=newJTextField(15);JTextFieldjtf5=newJTextField(15);JTextFieldjtf6=newJTextField(15);JPaneljp=newJPanel();ArrayLista=newArrayList(); Filefile=newFile("student.txt"); publicAdd(){ Fontf=newFont("黑體",Font.BOLD,20);//修改字體 l1.setFont(f);//修改字體 jp.add(l1); jp.add(l2); jp.add(jtf1);jp.add(l3);jp.add(jtf2);jp.add(l4);jp.add(jtf3);jp.add(l5);jp.add(jtf4);jp.add(l6);jp.add(jtf5);jp.add(l7);jp.add(jtf6);jp.add(b1);jp.add(b2);jp.add(b3); getContentPane().add(jp); jp.setLayout(null); intx=0,y=0; l1.setBounds(x+130,y+30,200,40); l2.setBounds(x+80,y+90,70,25); l3.setBounds(x+80,y+130,70,25); l4.setBounds(x+80,y+170,70,25); l5.setBounds(x+80,y+210,70,25); l6.setBounds(x+80,y+250,70,25); l7.setBounds(x+80,y+290,70,25); jtf1.setBounds(x+120,y+90,150,25); jtf2.setBounds(x+120,y+130,150,25); jtf3.setBounds(x+120,y+170,150,25); jtf4.setBounds(x+120,y+210,150,25); jtf5.setBounds(x+120,y+250,150,25); jtf6.setBounds(x+120,y+290,150,25); b1.setBounds(x+60,y+340,70,25); b2.setBounds(x+140,y+340,70,25); b3.setBounds(x+230,y+340,70,25); setSize(350,500); setTitle("添加"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); b3.addActionListener( newActionListener(){ publicvoidactionPerformed(ActionEventae) {dispose();} } ); //關閉當前頁面 b2.addActionListener( newActionListener(){ publicvoidactionPerformed(ActionEventae) {jtf1.setText(null); jtf2.setText(null); jtf3.setText(null); jtf4.setText(null); jtf5.setText(null); jtf6.setText(null);} } ); //清空當前頁面 b1.addActionListener( newActionListener(){ publicvoidactionPerformed(ActionEventae) { try{ if(jtf1.getText().equals("")||jtf2.getText().equals("")||jtf3.getText().equals("")||jtf4.getText().equals("")||jtf5.getText().equals("")||jtf6.getText().equals("")) {JOptionPane.showMessageDialog(null,"不可以有空,請輸入完整信息!");} else { FileOutputStreamfos=newFileOutputStream(file,true); OutputStreamWriterosw=newOutputStreamWriter(fos); BufferedWriterbw=newBufferedWriter(osw); Stringstr1=jtf1.getText(); Stringstr2=jtf2.getText(); Stringstr3=jtf3.getText(); Stringstr4=jtf4.getText(); Stringstr5=jtf5.getText(); Stringstr6=jtf6.getText(); Strings1=newString(str1+""+str2+""+str3+""+str4+""+str5+""+str6); bw.write(s1); bw.newLine(); bw.flush(); bw.close(); osw.close(); fos.close(); } } catch(FileNotFoundExceptione1) { e1.printStackTrace(); } catch(IOExceptione2) { e2.printStackTrace(); } } } ); //寫入文檔中 } }(四)刪除學生信息界面圖5.4刪除學生信息界面源代碼:classShanextendsJFrame{ JLabell1=newJLabel("請輸入要刪除的學生的姓名或學號"); JTextFieldjtf=newJTextField(20); JButtonb1=newJButton("確定"); JButtonb2=newJButton("清空全部數據"); JButtonb3=newJButton("返回"); JPaneljp=newJPanel(); ArrayLista=newArrayList(); publicShan(){ Fontf=newFont("黑體",Font.BOLD,20);//修改字體 l1.setFont(f);//修改字體 jp.add(l1); jp.add(jtf);jp.add(b1);jp.add(b3);jp.add(b2); getContentPane().add(jp); jp.setLayout(null); intx=0,y=0; l1.setBounds(x+50,y+30,400,40); jtf.setBounds(x+100,y+100,200,25); b1.setBounds(x+100,y+170,70,25); b2.setBounds(x+140,y+220,140,25); b3.setBounds(x+230,y+170,70,25); setSize(440,300); setTitle("刪除"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); b3.addActionListener( newActionListener(){ publicvoidactionPerformed(ActionEventae) {dispose();} } ); //返回 b2.addActionListener( newActionListener(){ publicvoidactionPerformed(ActionEventae) {jtf.setText(null);} } ); //清空 b1.addActionListener( newActionListener(){ publicvoidactionPerformed(ActionEventae) {delete();} } ); //刪除 }voidreadDate(){ try{ Scannersc=newScanner(newFile("student.txt")); while(sc.hasNextLine()) { Stringtemp=sc.nextLine(); a.add(temp);//逐行將數據加載到ArrayList中 }}catch(Exceptionex){} }voiddelete(){ try{ a.clear(); readDate(); BufferedReaderbr=newBufferedReader(newFileReader("student.txt")); StringBuffersb=newStringBuffer(4096); Stringxx=jtf.getText(); booleanflag=false; booleanflag2=false; for(inti=0;i<a.size();i++) { Stringstr=(String)a.get(i); if(str.indexOf(xx)<0) { flag=true; } } if(flag) {JOptionPane.showMessageDialog(null,"系統(tǒng)中沒有這個學生!");} for(inti=0;i<a.size();i++) { Stringstr=(String)a.get(i); if(str.indexOf(xx)<0)//找到不要刪除的行 sb.append(str).append("\r\n"); else flag2=true; } if(flag2) {JOptionPane.showMessageDialog(null,"找到該生的信息,已刪除!");} br.close(); BufferedWriterbw=newBufferedWriter(newFileWriter("student.txt")); bw.write(sb.toString()); bw.close(); }catch(Exceptionex){} }}(五)修改學生信息界面圖5.5修改學生信息界面(修改前)圖5.5.1student.txt中的信息顯示圖5.6修改學生信息界面(修改后)圖5.6.1student.txt中的信息顯示源代碼:classXiuextendsJFrame{ JLabell1=newJLabel("要修改的學生:"); JLabell2=newJLabel("姓名:"); JLabell3=newJLabel("性別"); JLabell4=newJLabel("學號:"); JLabell5=newJLabel("專業(yè):"); JLabell6=newJLabel("年級:"); JLabell7=newJLabel("出生:"); JButtonb1=newJButton("查找"); JButtonb2=newJButton("修改"); JButtonb3=newJButton("返回"); JTextFieldjtf0=newJTextField(10); JTextFieldjtf1=newJTextField(15);JTextFieldjtf2=newJTextField(15);JTextFieldjtf3=newJTextField(15);JTextFieldjtf4=newJTextField(15);JTextFieldjtf5=newJTextField(15);JTextFieldjtf6=newJTextField(15);JPaneljp=newJPanel();ArrayLista=newArrayList(); publicXiu(){ jp.add(l1); jp.add(jtf0); jp.add(l2); jp.add(jtf1);jp.add(l3);jp.add(jtf2);jp.add(l4);jp.add(jtf3);jp.add(l5);jp.add(jtf4);jp.add(l6);jp.add(jtf5);jp.add(l7);jp.add(jtf6);jp.add(b1);jp.add(b2);jp.add(b3); getContentPane().add(jp); jp.setLayout(null); intx=0,y=0; l1.setBounds(x+70,y+30,200,40); jtf0.setBounds(x+160,y+40,80,20); l2.setBounds(x+80,y+90,70,25); l3.setBounds(x+80,y+130,70,25); l4.setBounds(x+80,y+170,70,25); l5.setBounds(x+80,y+210,70,25); l6.setBounds(x+80,y+250,70,25); l7.setBounds(x+80,y+290,70,25); jtf1.setBounds(x+120,y+90,150,25); jtf2.setBounds(x+120,y+130,150,25); jtf3.setBounds(x+120,y+170,150,25); jtf4.setBounds(x+120,y+210,150,25); jtf5.setBounds(x+120,y+250,150,25); jtf6.setBounds(x+120,y+290,150,25); b1.setBounds(x+60,y+340,70,25); b2.setBounds(x+140,y+340,70,25); b3.setBounds(x+230,y+340,70,25); setSize(350,500); setTitle("修改"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); b3.addActionListener( newActionListener(){ publicvoidactionPerformed(ActionEventae) {dispose();} } ); //關閉當前頁面 b1.addActionListener( newActionListener(){ publicvoidactionPerformed(ActionEventae) {cx();} } ); //查詢并顯示在框中 b2.addActionListener( newActionListener(){ publicvoidactionPerformed(ActionEventae) {pc();} } ); //修改后保存 } voidreadDate(){ try{ Scannersc=newScanner(newFile("student.txt")); while(sc.hasNextLine())//一行一行的讀取 { Stringtemp=sc.nextLine(); a.add(temp);//txt中的所有數據,逐行將數據加載到ArrayList中 }}catch(Exceptionex){} }publicvoidpc()//修改后保存{ try{ a.clear(); readDate(); BufferedReaderbr=newBufferedReader(newFileReader("student.txt")); StringBuffersb=newStringBuffer(4096); Stringxx=jtf0.getText(); for(inti=0;i<a.size();i++) { Stringstr=(String)a.get(i); if(str.indexOf(xx)<0)//找到不要刪除的行 sb.append(str).append("\r\n"); } br.close(); BufferedWriterbw=newBufferedWriter(newFileWriter("student.txt")); bw.write(sb.toString()); bw.close();} catch(Exceptionex){ } try{ if(jtf1.getText().equals("")||jtf2.getText().equals("")||jtf3.getText().equals("")||jtf4.getText().equals("")||jtf5.getText().equals("")||jtf6.getText().equals("")) {JOptionPane.showMessageDialog(null,"不可以有空,請輸入完整信息!");} else { FileOutputStreamfos=newFileOutputStream("student.txt",true); OutputStreamWriterosw=newOutputStreamWriter(fos); BufferedWriterbw=newBufferedWriter(osw); Stringstr1=jtf1.getText(); Stringstr2=jtf2.getText(); Stringstr3=jtf3.getText(); Stringstr4=jtf4.getText(); Stringstr5=jtf5.getText(); Stringstr6=jtf6.getText(); Strings1=newString(str1+""+str2+""+str3+""+str4+""+str5+""+str6); bw.write(s1); bw.newLine(); bw.flush(); bw.close(); osw.close(); fos.close(); } }catch(FileNotFoundExceptione1) { e1.printStackTrace(); }catch(IOExceptione2) { e2.printStackTrace(); }}publicvoidcx()//查詢并顯示在框中{try{ a.clear(); readDate(); booleanflag=true; Stringsh=jtf0.getText(); for(inti=0;i<a.size();i++) { Stringstr=(String)a.get(i); if(str.indexOf(sh)>=0) { Scannerss=newScanner(str); while(ss.hasNext()) { Stringa1=ss.next(); Stringa2=ss.next(); Stringa3=ss.next(); Stringa4=ss.next(); Stringa5=ss.next(); Stringa6=ss.next(); jtf1.setText(a1); jtf2.setText(a2); jtf3.setText(a3); jtf4.setText(a4); jtf5.setText(a5); jtf6.setText(a6); } flag=false; } } if(flag) {JOptionPane.showMessageDialog(null,"查無此人!");}}catch(Exceptionex){} } } (六)查詢學生信息界面圖5.7.查詢學生信息界面源代碼:classChaextendsJFrame{ JLabell1=newJLabel("請輸入的內容:"); JButtonb1=newJButton("確定"); JButtonb2=newJButton("清空"); JButtonb3=newJButton("返回"); JTextFieldjtf=newJTextField(20);JTextAreajta=newJTextArea(10,30);JPaneljp=newJPanel(); JScrollPanejsp=newJScrollPane();//為多行文本框加入滾動條 ArrayLista=newArrayList(); publicCha(){ jp.add(l1); jp.add(jtf); jp.add(jta); jp.add(jsp);jp.add(b1);jp.add(b2);jp.add(b3); getContentPane().add(jp); setSize(370,300); setTitle("查找"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); b3.addActionListener( newActionListener(){ publicvoidactionPerformed(ActionEventae) {dispose();} } ); //關閉當前頁面 b2.addActionListener( newActionListener(){ publicvoidactionPerformed(ActionEventae) {jtf.setText(null); jta.setText(null);} } ); //清空 b1.addActionListener( newActionListener(){ publicvoidactionPerformed(ActionEventae) {js();} } ); //執(zhí)行查詢}voidreadDate(){ try{ Scannersc=newScanner(newFile("student.txt")); while(sc.hasNextLine())//一行一行的讀取 { Stringtemp=sc.nextLine(); a.add(temp);//txt中的所有數據,逐行將數據加載到ArrayList中 }}catch(Exceptionex){} }publicvoidjs(){ a.clear(); readDate(); booleanflag=true; Stringsh=jtf.getText(); for(inti=0;i<a.size();i++) { Stringstr=(String)a.get(i); if(str.indexOf(sh)>=0) { Scannerss=newScanner(str); while(ss.hasNext()) { Stringa1=ss.next(); Stringa2=ss.next(); Stringa3=ss.next(); Stringa4=ss.next(); Stringa5=ss.next(); Stringa6=ss.next(); jta.append("姓名:"+a1+"\r\n"+"性別:"+a2+"\r\n"+"學號:"+a3+"\r\n"+"專業(yè):"+a4+"\r\n"+"年級:"+a5+"\r\n"+"出生年月:"+a6+"\r\n"); } flag=false; } } if(flag) {JOptionPane.showMessageDialog(null,"查無此人!");} }}六.設計結果的總結這幾周的JAVA課程設計,時間上說長不長,說短也不短,卻讓我學到了很多,第一點就是:JAVA很難,似乎是學不完的,你覺得自己了解一點,是總會發(fā)現(xiàn)還有很多自己所不懂的東西,還有很多自己所沒探知的領域,很多知識運用到實踐中很有一定的難度,看著自己的程序運行結果,突然發(fā)現(xiàn)JAVA真的很神奇,居然能運行出那么漂亮的系統(tǒng),雖然它依舊很簡陋。在我們上機調試程序的過程中,我遇到了很多的問題,自己設計是總是覺得沒有頭緒,無從下手。后來還是看了這一學期的java實驗的實驗報告,我才總結出如何寫的。遇到不懂得問題時,問問同學是一個好的方法,網絡是一個全能的幫手,不懂得問題都可以在上面找到答案。在這期末考試前期,學院給我們安排的課程設計周,總讓我們覺的有些為難我們,這樣一個復雜困難而又繁瑣的作業(yè),但是完成以后就會發(fā)現(xiàn),課程設計不僅讓我們鞏固了所學的知識,還使得我們學習到了更多平時所忽略的,最重要的是,它磨礪了我們,讓我們在大學的下一個階段能更好的成長。七.附錄或參考資料[1]耿祥義,張躍平.Java2實用教程(第三版)[M].北京:清華大學出版社,2006[2](美)霍斯特曼(Horstmann
C.S.)&nbs.Java2核心技術(卷Ⅱ高級特性原書第7版)/Sun公司核心技術叢書[M].機械工業(yè)出版社,2006[3][4]葉乃文,王丹java語言程序設計教程機械工業(yè)出版社2010.1[5]張桂珠劉麗陳愛國Java面向對象程序設計(第2版)北京郵電大學出版社[6]畢廣吉.Java程序設計實例教程[M].北京:冶金工業(yè)出版社,2007年基于C8051F單片機直流電動機反饋控制系統(tǒng)的設計與研究基于單片機的嵌入式Web服務器的研究MOTOROLA單片機MC68HC(8)05PV8/A內嵌EEPROM的工藝和制程方法及對良率的影響研究基于模糊控制的電阻釬焊單片機溫度控制系統(tǒng)的研制基于MCS-51系列單片機的通用控制模塊的研究基于單片機實現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調節(jié)器單片機控制的二級倒立擺系統(tǒng)的研究基于增強型51系列單片機的TCP/IP協(xié)議棧的實現(xiàn)基于單片機的蓄電池自動監(jiān)測系統(tǒng)基于32位嵌入式單片機系統(tǒng)的圖像采集與處理技術的研究基于單片機的作物營養(yǎng)診斷專家系統(tǒng)的研究基于單片機的交流伺服電機運動控制系統(tǒng)研究與開發(fā)基于單片機的泵管內壁硬度測試儀的研制基于單片機的自動找平控制系統(tǒng)研究基于C8051F040單片機的嵌入式系統(tǒng)開發(fā)基于單片機的液壓動力系統(tǒng)狀態(tài)監(jiān)測儀開發(fā)模糊Smith智能控制方法的研究及其單片機實現(xiàn)一種基于單片機的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機沖床數控系統(tǒng)的研究基于CYGNAL單片機的在線間歇式濁度儀的研制基于單片機的噴油泵試驗臺控制器的研制基于單片機的軟起動器的研究和設計H
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年北郵電子商務試題及答案
- 2025年護考聽力測試題及答案
- 2025年農民上崗考試題及答案
- 2025年國龍醫(yī)院面試題及答案
- 2025年邏輯錯位測試題及答案
- 2025年函授教育考試題及答案
- 2025年高中數學培優(yōu)試題及答案
- 2025年公民素質考試試題及答案
- 除了經典邁克爾遜白光干涉外Mirau型干涉(米勞干涉)的測量原理
- 2025年重藥控股面試題及答案
- 《苗圃生產與管理》教案-第二章 園林苗木的種實生產
- 2025年西安鐵路職業(yè)技術學院高職單招高職單招英語2016-2024歷年頻考點試題含答案解析
- 化工原理完整(天大版)課件
- 2025年陜西延長石油有限責任公司招聘筆試參考題庫含答案解析
- 《淞滬會戰(zhàn)》課件
- Excel辦公技巧培訓
- 運輸公司安全生產管理制度
- GB 11984-2024化工企業(yè)氯氣安全技術規(guī)范
- 《信息論緒論》課件
- GA/T 2149-2024機動車駕駛人安全教育網絡課程設置規(guī)范
- 新時代大學生勞動教育 課件 第5章 勞動素養(yǎng)及其養(yǎng)成
評論
0/150
提交評論