版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第第頁(yè)學(xué)號(hào):課程設(shè)計(jì)題目學(xué)生信息管理系統(tǒng)學(xué)院計(jì)算機(jī)科學(xué)與信息工程學(xué)院專業(yè)金融信息化服務(wù)外包班級(jí)學(xué)生姓名指導(dǎo)教師2015年12月28日課程設(shè)計(jì)任務(wù)書(shū)學(xué)生姓名:專業(yè)班級(jí):指導(dǎo)教師:工作單位:題目:學(xué)生信息管理系統(tǒng)已知技術(shù)參數(shù)和設(shè)計(jì)要求:時(shí)間要求為14周~18周。開(kāi)發(fā)工具java。開(kāi)發(fā)平臺(tái)JCreator4.50Pro。所用文本Txt。說(shuō)明文檔要求符合學(xué)校課程設(shè)計(jì)文檔規(guī)范。要求完成的主要任務(wù):(包括課程設(shè)計(jì)工作量及其技術(shù)要求,以及說(shuō)明書(shū)撰寫(xiě)等具體要求)設(shè)計(jì)一個(gè)學(xué)生信息管理系統(tǒng),應(yīng)用軟件的開(kāi)發(fā)環(huán)境的簡(jiǎn)要說(shuō)明,需求分析,數(shù)據(jù)設(shè)計(jì),功能設(shè)計(jì),程序的主要界面、代碼實(shí)現(xiàn),設(shè)計(jì)結(jié)果的總結(jié),附錄或參考資料登錄、查詢、增加、刪除、修改本系統(tǒng)中的各個(gè)表信息時(shí)間安排:1、需求分析,聯(lián)系實(shí)際,歷時(shí)2天。2、各種設(shè)計(jì)簡(jiǎn)要說(shuō)明需求分析,數(shù)據(jù)設(shè)計(jì),功能設(shè)計(jì),歷時(shí)4天。3、編碼,使用Java語(yǔ)言在JCreator4.50Pro集成開(kāi)發(fā)環(huán)境中實(shí)現(xiàn)本系統(tǒng)的添加、刪除、查詢、讀取txt文檔,歷時(shí)4天。4、界面設(shè)計(jì)與軟件測(cè)試。使用可視化界面設(shè)計(jì),完成系統(tǒng)各界面功能的設(shè)計(jì)與實(shí)現(xiàn)。完成本系統(tǒng)的初步測(cè)試與試運(yùn)行,歷時(shí)5天。5、java課程設(shè)計(jì)文檔的最后檢查與修訂,歷時(shí)1天指導(dǎo)教師簽名:年月日目錄一.應(yīng)用軟件的開(kāi)發(fā)環(huán)境的簡(jiǎn)要說(shuō)明 6(一)開(kāi)發(fā)環(huán)境: 6(二)運(yùn)行環(huán)境: 6二.需求分析 6(一)系統(tǒng)目標(biāo) 6(二)系統(tǒng)功能分析 61.功能需求: 62.非功能約束需求: 73.數(shù)據(jù)需求: 74.系統(tǒng)需求 7三.?dāng)?shù)據(jù)設(shè)計(jì) 7(一)數(shù)據(jù)流圖 7(二)數(shù)據(jù)字典 8數(shù)據(jù)項(xiàng) 8數(shù)據(jù)結(jié)構(gòu) 9數(shù)據(jù)流 9數(shù)據(jù)存儲(chǔ) 9處理過(guò)程 10四.功能設(shè)計(jì) 11(一)本系統(tǒng)的主要功能 11(二)Java源文件及其功能 11(三)詳細(xì)設(shè)計(jì) 121.主類StudentManager 122.類Add 123.類Cha 134.類Shan 13(四)結(jié)構(gòu)圖及流程圖 151.學(xué)生信息系統(tǒng)結(jié)構(gòu)圖 152.添加學(xué)生信息 163.刪除學(xué)生信息 164.修改學(xué)生信息 175.查詢學(xué)生信息 186.登錄 18五.程序的主要界面、代碼實(shí)現(xiàn) 19(一)登錄界面 19(二)主界面 21(三)添加學(xué)生信息界面 25(四)刪除學(xué)生信息界面 30(五)修改學(xué)生信息界面 33(六)查詢學(xué)生信息界面 38六.設(shè)計(jì)結(jié)果的總結(jié) 41七.附錄或參考資料 41一.應(yīng)用軟件的開(kāi)發(fā)環(huán)境的簡(jiǎn)要說(shuō)明(一)開(kāi)發(fā)環(huán)境:開(kāi)發(fā)環(huán)境的選擇會(huì)影響到j(luò)ava的設(shè)計(jì),所以在這里給出學(xué)生信息管理系統(tǒng)的開(kāi)發(fā)與運(yùn)行環(huán)境如下:開(kāi)發(fā)環(huán)境:WindowsXP開(kāi)發(fā)工具:JCreator4.50Pro文本文件管理系統(tǒng):txt(二)運(yùn)行環(huán)境:為了保證系統(tǒng)運(yùn)行的效率和可靠性。其運(yùn)行要求如下:運(yùn)行環(huán)境:JCreator4.50Pro以上客戶端:Windows98/NT/XP等硬件環(huán)境:服務(wù)器CPU:PIII500以上,內(nèi)存:256M以上客戶機(jī)CPU:P200MMX以上,內(nèi)存:32M以上二.需求分析(一)系統(tǒng)目標(biāo)本系統(tǒng)的用戶主要不是學(xué)生。通過(guò)一個(gè)學(xué)生信息管理系統(tǒng),使學(xué)生的信息管理工作系統(tǒng)化、規(guī)范化、自動(dòng)化,從而達(dá)到提高管理效率的目的。(二)系統(tǒng)功能分析1.功能需求:(1)驗(yàn)證用戶輸入的登錄信息。用戶只有輸入正確的登錄信息后,才能進(jìn)入信息管理系統(tǒng)。(2)查詢學(xué)生信息功能。選擇該功能后,可以查詢學(xué)生基本信息。(3)添加學(xué)生信息功能。選擇該功能后,可以添加學(xué)生的學(xué)生基本信息。(4)修改學(xué)生信息功能。選擇該功能后,可以修改學(xué)生的學(xué)生基本信息。(5)刪除學(xué)生信息功能。選擇該功能后,可以刪除學(xué)生的學(xué)生基本信息。(6)退出??梢酝顺霰拘畔⒐芾硐到y(tǒng)。2.非功能約束需求:(1)安全性:權(quán)限管理,身份檢驗(yàn)。(2)可靠性:基本能夠運(yùn)行,不會(huì)系統(tǒng)崩潰。(3)時(shí)間響應(yīng)速度:查詢,更新。3.數(shù)據(jù)需求:(1)學(xué)生信息的添加和刪除都需要管理人員來(lái)執(zhí)行。(2)輸入學(xué)生信息時(shí),要求學(xué)生信息完整。(3)登錄時(shí)要求輸入用戶名和匹配的密碼。4.系統(tǒng)需求(1)本系統(tǒng)只有輸入正確的用戶名和密碼,才能進(jìn)入系統(tǒng)。(2)但凡進(jìn)入系統(tǒng)的人,都可以執(zhí)行各種操作。三.?dāng)?shù)據(jù)設(shè)計(jì)(一)數(shù)據(jù)流圖圖2.1學(xué)生信息管理系統(tǒng)的頂層數(shù)據(jù)流圖根據(jù)基本系統(tǒng)模型,對(duì)其逐步細(xì)化,得到描述邏輯系統(tǒng)細(xì)化后的數(shù)據(jù)流圖,如圖2.2所示。圖2.2學(xué)生信息管理系統(tǒng)的0層數(shù)據(jù)流圖(二)數(shù)據(jù)字典數(shù)據(jù)項(xiàng)有了系統(tǒng)的數(shù)據(jù)流圖后,還有相當(dāng)多的數(shù)據(jù)信息如學(xué)生具體信息需要進(jìn)一步描述,這就是需要定義數(shù)據(jù)字典,才能把現(xiàn)有的系統(tǒng)描述清楚。圖2.3列出了系統(tǒng)的主要數(shù)據(jù)字1.數(shù)據(jù)項(xiàng):學(xué)號(hào)含義說(shuō)明:唯一識(shí)別學(xué)生的號(hào)碼別名:學(xué)生證號(hào)類型:字符型長(zhǎng)度:10取值范圍:0000000000—9999999999取值含義:前四位表示班級(jí)號(hào)、中間四位表示專業(yè)代碼、后兩位表示學(xué)生編號(hào)與其他數(shù)據(jù)項(xiàng)的邏輯關(guān)系:標(biāo)識(shí)項(xiàng)2.數(shù)據(jù)項(xiàng):姓名含義說(shuō)明:學(xué)生的名稱類型:字符型長(zhǎng)度:10取值范圍:所有漢字3.數(shù)據(jù)項(xiàng):性別含義說(shuō)明:識(shí)別學(xué)生性別 類型:字符型長(zhǎng)度:2取值范圍:男、女4.數(shù)據(jù)項(xiàng):專業(yè)含義說(shuō)明:表示該生所學(xué)的專業(yè)類型:字符型長(zhǎng)度:305.數(shù)據(jù)項(xiàng):年級(jí)含義說(shuō)明:該表該生所在的年級(jí)類型:字符型長(zhǎng)度:206.數(shù)據(jù)項(xiàng):出生含義說(shuō)明:該表該生出生年月類型:字符型長(zhǎng)度:4取值范圍:無(wú)(eg:1994.03.24)7.數(shù)據(jù)項(xiàng):用戶含義說(shuō)明:是否有登錄的權(quán)限類型:字符型長(zhǎng)度:10數(shù)據(jù)結(jié)構(gòu)1.數(shù)據(jù)結(jié)構(gòu):學(xué)生含義說(shuō)明:是學(xué)生信息管理系統(tǒng)的主要數(shù)據(jù),定義了一個(gè)學(xué)生的有關(guān)信息組成:姓名、學(xué)號(hào)、性別、專業(yè)、年級(jí)、出生2.數(shù)據(jù)結(jié)構(gòu):用戶含義說(shuō)明:是學(xué)生信息管理系統(tǒng)的數(shù)據(jù),定義了有關(guān)用戶的信息組成:用戶名、密碼數(shù)據(jù)流1.數(shù)據(jù)流:登錄信息說(shuō)明:用戶用來(lái)登錄學(xué)籍系統(tǒng)的用戶學(xué)生信息數(shù)據(jù)流來(lái)源:用戶數(shù)據(jù)流去向:用戶信息認(rèn)證組成:用戶名2.數(shù)據(jù)流:學(xué)生信息查詢結(jié)果說(shuō)明:用戶查看學(xué)生信息后得到的結(jié)果數(shù)據(jù)流來(lái)源:查詢學(xué)生信息數(shù)據(jù)流去向:用戶組成:姓名、學(xué)號(hào)、性別、專業(yè)、年級(jí)、出生數(shù)據(jù)存儲(chǔ)1.數(shù)據(jù)存儲(chǔ):學(xué)生信息數(shù)據(jù)說(shuō)明:記錄所有學(xué)生的學(xué)生信息資料庫(kù)流入數(shù)據(jù)流:相關(guān)人員輸入流出數(shù)據(jù)流:學(xué)生查詢學(xué)生信息數(shù)據(jù)量:由信息詳細(xì)情況而定存取方式:隨機(jī)存取5.數(shù)據(jù)存儲(chǔ):用戶登錄信息數(shù)據(jù)說(shuō)明:用戶的登錄信息流入數(shù)據(jù)流:管理員輸入或用戶輸入流出數(shù)據(jù)流:驗(yàn)證用戶信息數(shù)據(jù)量:由用戶登錄多少?zèng)Q定存取方式:隨機(jī)存取處理過(guò)程1.處理過(guò)程:查詢學(xué)生信息說(shuō)明:用戶獲得所查學(xué)生信息輸入:選擇查詢學(xué)生信息功能輸出:查詢結(jié)果處理:用戶進(jìn)入系統(tǒng)后,選擇查詢學(xué)生信息功能,獲得相應(yīng)信息2.處理過(guò)程:添加學(xué)生信息說(shuō)明:用戶添加學(xué)生信息輸入:選擇添加學(xué)生信息功能輸出:添加成功處理:用戶進(jìn)入系統(tǒng)后,選擇添加學(xué)生信息功能3.處理過(guò)程:刪除所查學(xué)生信息說(shuō)明:用戶刪除學(xué)生信息輸入:選擇刪除學(xué)生信息功能輸出:刪除結(jié)果處理:用戶進(jìn)入系統(tǒng)后,選擇刪除學(xué)生信息功能4.處理過(guò)程:修改學(xué)生信息說(shuō)明:學(xué)生修改學(xué)生信息輸入:選擇修改學(xué)生信息功能輸出:修改結(jié)果處理:用戶進(jìn)入系統(tǒng)后,選擇修改學(xué)生信息功能學(xué)生基本信息表(Student)數(shù)據(jù)類型特殊屬性描述String不為空姓名String不為空學(xué)號(hào)String不為空性別String不為空專業(yè)String不為空年級(jí)String不為空出生表3.1學(xué)生信息基本表四.功能設(shè)計(jì)(一)本系統(tǒng)的主要功能運(yùn)行該系統(tǒng)成功后,會(huì)出現(xiàn)一個(gè)登錄的界面,輸入正確的用戶名后,會(huì)出現(xiàn)一個(gè)主界面,上面有5個(gè)子菜單分別是添加、修改、查詢、刪除和退出。點(diǎn)擊它們會(huì)出現(xiàn)不同的界面,分別有不同的功能:1.StudentMessage.java該類負(fù)責(zé)創(chuàng)建學(xué)生信息管理系統(tǒng)的主窗口,該類還有main方法,程序從該類開(kāi)始執(zhí)行。2.Add.java該類創(chuàng)建的對(duì)象是StudentManager類的重要成員之一,負(fù)責(zé)提供添加學(xué)生基本信息的界面。3.Xiu.java該類創(chuàng)建的對(duì)象是StudentManager類的重要成員之一,負(fù)責(zé)提供查詢和修改學(xué)生基本信息的界面。4.Shan.java該類創(chuàng)建的對(duì)象是StudentManager類的重要成員之一,負(fù)責(zé)提供刪除學(xué)生基本信息的界面。5.Cha.java創(chuàng)建的對(duì)象是StudentManager類的重要成員之一,該類負(fù)責(zé)提供查詢學(xué)生基本信息的界面。6.Login1.java該類創(chuàng)建的對(duì)象是StudentManager類的重要成員之一,該類負(fù)責(zé)用戶登錄時(shí)的檢驗(yàn)。本系統(tǒng)是基于數(shù)據(jù)庫(kù)的學(xué)生信息管理系統(tǒng),實(shí)現(xiàn)了連接數(shù)據(jù)庫(kù),錄入、修改、查詢、刪除學(xué)生信息的功能。(二)Java源文件及其功能1.admin.txt該文件為登錄提供登錄的用戶名,Login1調(diào)用該文件。2.student.txt該文件為添加、修改、查詢、刪除操作提供學(xué)生信息,Add,Shan,Cha和Xiu調(diào)用該文件。(三)詳細(xì)設(shè)計(jì)1.主類StudentManager成員變量描述變量類型名稱按鈕JButtonb1(添加)按鈕JButtonb2(刪除)按鈕JButtonb3(修改)按鈕JButtonb4(查詢)按鈕JButtonb5(退出)面板容器JPanelJp表4.1主要成員變量(屬性)方法名稱返回類型功能備注Studentmessage無(wú)類型創(chuàng)建窗口構(gòu)造方法main無(wú)類型執(zhí)行程序程序的主函數(shù)表4.2主要方法2.類Add成員變量描述變量類型名稱ArrayListArrayLista單行文本JTextField學(xué)號(hào)、姓名、專業(yè)、年級(jí)、出生、性別標(biāo)題JLable學(xué)號(hào)、姓名、專業(yè)、年級(jí)……面板容器JPanelJp按鈕JButton確定、清空、返回表4.3主要成員變量(屬性)方法名稱返回類型功能備注Add無(wú)類型創(chuàng)建添加學(xué)生信息界面構(gòu)造方法表4.4主要方法3.類Cha成員變量描述變量類型名稱ArrayList對(duì)象類型ArrayLista面板容器JPanelJp按鈕JButton確定、清空、返回標(biāo)題JLable請(qǐng)輸入內(nèi)容:單行文本JTextFieldNULL多行文本框JTextAreaNULL滾動(dòng)條JScrollPaneNULL表4.5主要成員變量(屬性)方法名稱返回類型功能備注Cha無(wú)類型創(chuàng)建查找學(xué)生信息界面構(gòu)造方法readDate無(wú)類型讀取studen.txt中的數(shù)據(jù)無(wú)Js無(wú)類型執(zhí)行查找無(wú)表4.6主要方法4.類Shan成員變量描述變量類型名稱ArrayList對(duì)象類型ArrayLista面板容器JPanelJp按鈕JButton確定、清空全部數(shù)據(jù)、返回標(biāo)題JLable請(qǐng)輸入要?jiǎng)h除的……單行文本JTextFieldNULL表4.7主要成員變量(屬性)方法名稱返回類型功能備注Shan無(wú)類型創(chuàng)建刪除學(xué)生信息界面構(gòu)造方法readDate無(wú)類型讀取studen.txt中的數(shù)據(jù)無(wú)Delete無(wú)類型執(zhí)行刪除無(wú)表4.8主要方法5.類Xiu成員變量描述變量類型名稱ArrayList對(duì)象類型ArrayLista面板容器JPanelJp按鈕JButton查找、修改、返回標(biāo)題JLable學(xué)號(hào)、姓名、專業(yè)、年級(jí)……單行文本JTextField學(xué)號(hào)、姓名、專業(yè)、年級(jí)……表4.9主要成員變量(屬性)方法名稱返回類型功能備注Xiu無(wú)類型創(chuàng)建修改學(xué)生信息界面構(gòu)造方法readDate無(wú)類型讀取studen.txt中的數(shù)據(jù)無(wú)Pc無(wú)類型執(zhí)行修改后保存無(wú)Cx無(wú)類型執(zhí)行查詢并顯示在框中無(wú)表4.10主要方法6.類Login1成員變量描述變量類型名稱ArrayList對(duì)象類型ArrayLista面板容器JPanelJp按鈕JButton確定標(biāo)題JLable請(qǐng)輸入用戶名:?jiǎn)涡形谋綣TextFieldNULL密碼框JPasswordFieldpassWord表4.11主要成員變量(屬性)方法名稱返回類型功能備注Login1無(wú)類型創(chuàng)建登錄學(xué)生信息界面構(gòu)造方法readDate無(wú)類型讀取studen.txt中的數(shù)據(jù)無(wú)Log無(wú)類型執(zhí)行查詢是否有該用戶無(wú)表4.12主要方法(四)結(jié)構(gòu)圖及流程圖1.學(xué)生信息系統(tǒng)結(jié)構(gòu)圖圖4.1學(xué)生信息系統(tǒng)結(jié)構(gòu)圖2.添加學(xué)生信息圖4.2添加學(xué)生信息流程圖3.刪除學(xué)生信息圖4.3刪除學(xué)生信息流程圖4.修改學(xué)生信息圖4.4刪除學(xué)生信息流程圖5.查詢學(xué)生信息圖4.5刪除學(xué)生信息流程圖6.登錄圖4.6登錄學(xué)生信息系統(tǒng)流程圖五.程序的主要界面、代碼實(shí)現(xiàn)(一)登錄界面圖5.1登錄界面源代碼:classLogin1extendsJFrame{ JLabell1=newJLabel("用戶名:"); JLabell3=newJLabel("歡迎登錄學(xué)生信息管理系統(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("學(xué)生信息管理系統(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中的所有數(shù)據(jù),逐行將數(shù)據(jù)加載到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,"密碼錯(cuò)誤"); 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("隸書(shū)",Font.BOLD,20);//修改字體b1=newJButton("添加"); b2=newJButton("刪除");b3=newJButton("修改"); b4=newJButton("查詢");b5=newJButton("退出"); tail=newJLabel("學(xué)生信息管理系統(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("學(xué)生信息管理系統(tǒng)"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); b5.addActionListener( newActionListener(){ publicvoidactionPerformed(ActionEventae) {System.exit(0);} } ); //關(guān)閉 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); }}}(三)添加學(xué)生信息界面圖5.3添加學(xué)生信息界面源代碼:classAddextendsJFrame{ JLabell1=newJLabel("添加學(xué)生信息"); JLabell2=newJLabel("姓名:"); JLabell3=newJLabel("性別"); JLabell4=newJLabel("學(xué)號(hào):"); JLabell5=newJLabel("專業(yè):"); JLabell6=newJLabel("年級(jí):"); 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();} } ); //關(guān)閉當(dāng)前頁(yè)面 b2.addActionListener( newActionListener(){ publicvoidactionPerformed(ActionEventae) {jtf1.setText(null); jtf2.setText(null); jtf3.setText(null); jtf4.setText(null); jtf5.setText(null); jtf6.setText(null);} } ); //清空當(dāng)前頁(yè)面 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,"不可以有空,請(qǐng)輸入完整信息!");} 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(); } } } ); //寫(xiě)入文檔中 } }(四)刪除學(xué)生信息界面圖5.4刪除學(xué)生信息界面源代碼:classShanextendsJFrame{ JLabell1=newJLabel("請(qǐng)輸入要?jiǎng)h除的學(xué)生的姓名或?qū)W號(hào)"); JTextFieldjtf=newJTextField(20); JButtonb1=newJButton("確定"); JButtonb2=newJButton("清空全部數(shù)據(jù)"); 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);//逐行將數(shù)據(jù)加載到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)中沒(méi)有這個(gè)學(xué)生!");} for(inti=0;i<a.size();i++) { Stringstr=(String)a.get(i); if(str.indexOf(xx)<0)//找到不要?jiǎng)h除的行 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){} }}(五)修改學(xué)生信息界面圖5.5修改學(xué)生信息界面(修改前)圖5.5.1student.txt中的信息顯示圖5.6修改學(xué)生信息界面(修改后)圖5.6.1student.txt中的信息顯示源代碼:classXiuextendsJFrame{ JLabell1=newJLabel("要修改的學(xué)生:"); JLabell2=newJLabel("姓名:"); JLabell3=newJLabel("性別"); JLabell4=newJLabel("學(xué)號(hào):"); JLabell5=newJLabel("專業(yè):"); JLabell6=newJLabel("年級(jí):"); 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();} } ); //關(guān)閉當(dāng)前頁(yè)面 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中的所有數(shù)據(jù),逐行將數(shù)據(jù)加載到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)//找到不要?jiǎng)h除的行 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,"不可以有空,請(qǐng)輸入完整信息!");} 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,"查無(wú)此人!");}}catch(Exceptionex){} } } (六)查詢學(xué)生信息界面圖5.7.查詢學(xué)生信息界面源代碼:classChaextendsJFrame{ JLabell1=newJLabel("請(qǐng)輸入的內(nèi)容:"); JButtonb1=newJButton("確定"); JButtonb2=newJButton("清空"); JButtonb3=newJButton("返回"); JTextFieldjtf=newJTextField(20);JTextAreajta=newJTextArea(10,30);JPaneljp=newJPanel(); JScrollPanejsp=newJScrollPane();//為多行文本框加入滾動(dòng)條 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();} } ); //關(guān)閉當(dāng)前頁(yè)面 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中的所有數(shù)據(jù),逐行將數(shù)據(jù)加載到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"+"學(xué)號(hào):"+a3+"\r\n"+"專業(yè):"+a4+"\r\n"+"年級(jí):"+a5+"\r\n"+"出生年月:"+a6+"\r\n"); } flag=false; } } if(flag) {JOptionPane.showMessageDialog(null,"查無(wú)此人!");} }}六.設(shè)計(jì)結(jié)果的總結(jié)這幾周的JAVA課程設(shè)計(jì),時(shí)間上說(shuō)長(zhǎng)不長(zhǎng),說(shuō)短也不短,卻讓我學(xué)到了很多,第一點(diǎn)就是:JAVA很難,似乎是學(xué)不完的,你覺(jué)得自己了解一點(diǎn),是總會(huì)發(fā)現(xiàn)還有很多自己所不懂的東西,還有很多自己所沒(méi)探知的領(lǐng)域,很多知識(shí)運(yùn)用到實(shí)踐中很有一定的難度,看著自己的程序運(yùn)行結(jié)果,突然發(fā)現(xiàn)JAVA真的很神奇,居然能運(yùn)行出那么漂亮的系統(tǒng),雖然它依舊很簡(jiǎn)陋。在我們上機(jī)調(diào)試程序的過(guò)程中,我遇到了很多的問(wèn)題,自己設(shè)計(jì)是總是覺(jué)得沒(méi)有頭緒,無(wú)從下手。后來(lái)還是看了這一學(xué)期的java實(shí)驗(yàn)的實(shí)驗(yàn)報(bào)告,我才總結(jié)出如何寫(xiě)的。遇到不懂得問(wèn)題時(shí),問(wèn)問(wèn)同學(xué)是一個(gè)好的方法,網(wǎng)絡(luò)是一個(gè)全能的幫手,不懂得問(wèn)題都可以在上面找到答案。在這期末考試前期,學(xué)院給我們安排的課程設(shè)計(jì)周,總讓我們覺(jué)的有些為難我們,這樣一個(gè)復(fù)雜困難而又繁瑣的作業(yè),但是完成以后就會(huì)發(fā)現(xiàn),課程設(shè)計(jì)不僅讓我們鞏固了所學(xué)的知識(shí),還使得我們學(xué)習(xí)到了更多平時(shí)所忽略的,最重要的是,它磨礪了我們,讓我們?cè)诖髮W(xué)的下一個(gè)階段能更好的成長(zhǎng)。七.附錄或參考資料[1]耿祥義,張躍平.Java2實(shí)用教程(第三版)[M].北京:清華大學(xué)出版社,2006[2](美)霍斯特曼(Horstmann
C.S.)&nbs.Java2核心技術(shù)(卷Ⅱ高級(jí)特性原書(shū)第7版)/Sun公司核心技術(shù)叢書(shū)[M].機(jī)械工業(yè)出版社,2006[3][4]葉乃文,王丹java語(yǔ)言程序設(shè)計(jì)教程機(jī)械工業(yè)出版社2010.1[5]張桂珠劉麗陳愛(ài)國(guó)Java面向?qū)ο蟪绦蛟O(shè)計(jì)(第2版)北京郵電大學(xué)出版社[6]畢廣吉.Java程序設(shè)計(jì)實(shí)例教程[M].北京:冶金工業(yè)出版社,2007年基于C8051F單片機(jī)直流電動(dòng)機(jī)反饋控制系統(tǒng)的設(shè)計(jì)與研究基于單片機(jī)的嵌入式Web服務(wù)器的研究MOTOROLA單片機(jī)MC68HC(8)05PV8/A內(nèi)嵌EEPROM的工藝和制程方法及對(duì)良率的影響研究基于模糊控制的電阻釬焊單片機(jī)溫度控制系統(tǒng)的研制基于MCS-51系列單片機(jī)的通用控制模塊的研究基于單片機(jī)實(shí)現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調(diào)節(jié)器單片機(jī)控制的二級(jí)倒立擺系統(tǒng)的研究基于增強(qiáng)型51系列單片機(jī)的TCP/IP協(xié)議棧的實(shí)現(xiàn)基于單片機(jī)的蓄電池自動(dòng)監(jiān)測(cè)系統(tǒng)基于32位嵌入式單片機(jī)系統(tǒng)的圖像采集與處理技術(shù)的研究基于單片機(jī)的作物營(yíng)養(yǎng)診斷專家系統(tǒng)的研究基于單片機(jī)的交流伺服電機(jī)運(yùn)動(dòng)控制系統(tǒng)研究與開(kāi)發(fā)基于單片機(jī)的泵管內(nèi)壁硬度測(cè)試儀的研制基于單片機(jī)的自動(dòng)找平控制系統(tǒng)研究基于C8051F040單片機(jī)的嵌入式系統(tǒng)開(kāi)發(fā)基于單片機(jī)的液壓動(dòng)力系統(tǒng)狀態(tài)監(jiān)測(cè)儀開(kāi)發(fā)模糊Smith智能控制方法的研究及其單片機(jī)實(shí)現(xiàn)一種基于單片機(jī)的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機(jī)沖床數(shù)控系統(tǒng)的研究基于CYGNAL單片機(jī)的在線間歇式濁度儀的研制基于單片機(jī)的噴油泵試驗(yàn)臺(tái)控制器的研制基于單片機(jī)的軟起動(dòng)器的研究和設(shè)計(jì)H
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 做圍墻合同范例
- 印刷底合同范例
- 多個(gè)人合租合同范例
- 流動(dòng)資金合同范例
- 法人土地出租合同范例
- 出租野餐用具合同范例
- 2025珠海市勞動(dòng)合同標(biāo)準(zhǔn)版
- 人才轉(zhuǎn)讓合同范例范例
- 國(guó)家債務(wù)合同范例
- 完整版100以內(nèi)加減法混合運(yùn)算4000道149
- 2024年護(hù)校隊(duì)安全工作制度(3篇)
- 安全生產(chǎn)知識(shí)負(fù)責(zé)人復(fù)習(xí)題庫(kù)(附參考答案)
- 2024年安徽省廣播電視行業(yè)職業(yè)技能大賽(有線廣播電視機(jī)線員)考試題庫(kù)(含答案)
- 山東省濟(jì)南市濟(jì)陽(yáng)區(qū)三校聯(lián)考2024-2025學(xué)年八年級(jí)上學(xué)期12月月考語(yǔ)文試題
- 糖尿病酮酸癥中毒
- Unit 6 Food Lesson 1(說(shuō)課稿)-2024-2025學(xué)年人教精通版(2024)英語(yǔ)三年級(jí)上冊(cè)
- 東北師大附屬中學(xué)2025屆高一物理第一學(xué)期期末質(zhì)量檢測(cè)試題含解析
- HSE(健康、安全與環(huán)境)計(jì)劃書(shū)
- GB/T 44570-2024塑料制品聚碳酸酯板材
- 雨的形成課件教學(xué)課件
- 金蛇納瑞2025年公司年會(huì)通知模板
評(píng)論
0/150
提交評(píng)論