java學(xué)生成績(jī)管理系統(tǒng)+課程設(shè)計(jì)_第1頁(yè)
java學(xué)生成績(jī)管理系統(tǒng)+課程設(shè)計(jì)_第2頁(yè)
java學(xué)生成績(jī)管理系統(tǒng)+課程設(shè)計(jì)_第3頁(yè)
java學(xué)生成績(jī)管理系統(tǒng)+課程設(shè)計(jì)_第4頁(yè)
java學(xué)生成績(jī)管理系統(tǒng)+課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩55頁(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)介

1、java 學(xué)生成績(jī)管理系統(tǒng) 課程設(shè)計(jì)高級(jí)語(yǔ)言程序設(shè)計(jì) (2) 課程設(shè)計(jì)任務(wù)書(shū)題 目 學(xué)生成績(jī)管理程序?qū)W生姓名 黃濤 學(xué)號(hào) 201001030126 專業(yè)班級(jí) 數(shù)學(xué) 1001【問(wèn)題描述】本學(xué)期我班共有 6 門課程,期末要對(duì)每個(gè)學(xué)生的成績(jī)進(jìn)行統(tǒng)計(jì)處理。 每個(gè)學(xué)生都有相同的信息,適合用 Java 的類來(lái)描述。 Student 包含的信息 有學(xué)號(hào)、姓名和 6 科成績(jī) (初等數(shù)論、經(jīng)濟(jì)學(xué)、數(shù)值計(jì)算、思政原理、 Java 語(yǔ)言和抽象代數(shù) ) 。定義一個(gè) Student 類創(chuàng)建對(duì)應(yīng)方法,實(shí)現(xiàn)對(duì) Student 對(duì) 象的操作 ( 增、刪、改、查詢、成績(jī)排序、成績(jī)統(tǒng)計(jì)等功能 ) 供其對(duì)象調(diào) 用。前者可以定義為

2、Student 類的成員變量,后者可以定義為 Student 類 的成員函數(shù)?!拒浖δ堋?. 定義 Student 類。2. 能進(jìn)行學(xué)生信息和各科成績(jī)信息的錄入。3. 能進(jìn)行對(duì) Student 對(duì)象的操作 ( 增、刪、改、查詢、成績(jī)排序、成績(jī)統(tǒng)設(shè) 計(jì)等功能 ) 。 計(jì)5. 利用 swing 實(shí)現(xiàn)良好的 GUI 界面。 內(nèi)6. 能響應(yīng)鼠標(biāo)或者鍵盤事件。 容【基本要求】 與1. 對(duì) Student 對(duì)象的操作 ( 增、刪、改、查詢、成績(jī)排序、成績(jī)統(tǒng)計(jì)等功要 能) 依靠編寫的成員方法實(shí)現(xiàn)。 求2. 采用用戶界面采用圖形用戶界面,響應(yīng)鼠標(biāo)事件。3. 編寫主方法,對(duì)所編寫的 Student 類進(jìn)行全面

3、測(cè)試。需要輸入的 Student 數(shù)據(jù)通過(guò)鍵盤輸入,同時(shí)顯示在屏幕上。得到的處理結(jié)果數(shù)據(jù)通過(guò) I/O 流 寫入磁盤文件保存,同時(shí)顯示在屏幕上。4. 源程序中要有充分的注釋,報(bào)告中要有詳細(xì)的流程圖和文字材料。5. 運(yùn)行的結(jié)果以及圖形用戶界面要進(jìn)行屏幕拷貝,插入報(bào)告中。 【提交成 果】1. “高級(jí)語(yǔ)言程序設(shè)計(jì) (2) 課程設(shè)計(jì)任務(wù)書(shū)”和“高級(jí)語(yǔ)言程序設(shè)計(jì)(2) 課程設(shè)計(jì)報(bào)告”打印件各一份 ;2. 先將上面兩項(xiàng)內(nèi)容的 word 文檔,通過(guò)電子郵件交到指導(dǎo)教師,待許可 后,打印裝袋。起止時(shí)間 2012 年 12 月 24 日 至 2012 年 12 月 30 日指導(dǎo)教師簽名 李元覺(jué) 2012 年 12

4、 月 22 日 系(教研室)主任簽名 郝華寧 2012 年 12月 22 日 學(xué)生簽名 年 月 日 高級(jí)語(yǔ)言程序設(shè)計(jì) (2) 課程設(shè)計(jì)報(bào)告專業(yè):數(shù)學(xué)與應(yīng)用數(shù)學(xué) 班級(jí):數(shù)學(xué)1001 學(xué)號(hào):201001030126姓名: 黃濤 完成日期 :2012.12.30 指導(dǎo)教師 : 李元覺(jué)1、程序設(shè)計(jì)說(shuō)明書(shū)【設(shè)計(jì)題目】 學(xué)生成績(jī)管理程序【問(wèn)題描述】本學(xué)期我班共有 6 門課程,期末要對(duì)每個(gè)學(xué)生的成績(jī)進(jìn)行統(tǒng)計(jì)處理。每個(gè)學(xué)生 都有相同的信息,適合用 Java 的類來(lái)描述。 Student 包含的信息有學(xué)號(hào)、姓名和6科成績(jī)(初等數(shù)論、經(jīng)濟(jì)學(xué)、數(shù)值計(jì)算、思政原理、 Java 語(yǔ)言和抽象代數(shù) )。定 義一個(gè) Stud

5、ent 類創(chuàng)建對(duì)應(yīng)方法,實(shí)現(xiàn)對(duì) Student 對(duì)象的操作 ( 增、刪、改、查 詢、成績(jī)排序、成績(jī)統(tǒng)計(jì)等功能 ) 供其對(duì)象調(diào)用。前者可以定義為 Student 類的成 員變量,后者可以定義為 Student 類的成員函數(shù)。【軟件功能】1. 定義 Student 類。2. 能進(jìn)行學(xué)生信息和各科成績(jī)信息的錄入。3. 能進(jìn)行對(duì) Student 對(duì)象的操作 ( 增、刪、改、查詢、成績(jī)排序、成績(jī)統(tǒng)計(jì)等 功能)。. 利用 swing 實(shí)現(xiàn)良好的 GUI 界面。 56. 能響應(yīng)鼠標(biāo)或者鍵盤事件。7. 為學(xué)成成績(jī)信息建立文件操作信息管理和相應(yīng)的文件源,可以方便的調(diào)用 上一保存的數(shù)據(jù)。還可以對(duì)數(shù)據(jù)進(jìn)行其他操作。

6、【算法思想】1. 創(chuàng)建 Student 類,把學(xué)生的信息和成績(jī)通過(guò)這個(gè)類對(duì)應(yīng)到每個(gè)學(xué)生。既把學(xué) 生的基本情況封裝到這個(gè) Student 類中。2. 創(chuàng)建變長(zhǎng)數(shù)組列表 ArrayList ,將所有的學(xué)生信息按每個(gè)人為單 位放入到這個(gè)數(shù)組中,利用數(shù)組的循環(huán)便于對(duì)學(xué)生成績(jī)的各種操作3. 創(chuàng)建 StuC 類, Student 管理類 StuC 創(chuàng)建對(duì)應(yīng)方法,實(shí)現(xiàn)對(duì) Student 對(duì)象的 操作( 增、刪、改、查詢、成績(jī)排序、成績(jī)統(tǒng)計(jì)等功能 ) 供其對(duì)象調(diào)用。既把所有的對(duì)學(xué) 生成績(jī)的操作處理方法封裝到這個(gè)類中。4. 創(chuàng)建文件流對(duì)信息的輸入輸出管理。保存上次進(jìn)行操作的信息,為程序建立 存貯的數(shù)據(jù)源,可以方

7、便的調(diào)用和修改。5. 為登陸界面插入圖片用 MyPanell的類來(lái)實(shí)現(xiàn),為教師主界面和學(xué)生主界面 添加圖片背景。6. 把每個(gè)學(xué)生的信息看成是一個(gè)一維數(shù)組,通過(guò)對(duì)每個(gè)學(xué)生數(shù)組的每門課程成 績(jī)的訪問(wèn)求出每個(gè)人的總成績(jī)。7. 利用每個(gè)學(xué)生的總成績(jī)利用冒泡排序法對(duì)學(xué)生的成績(jī)從高到底排序,統(tǒng)計(jì)輸 出時(shí)按新排好的成績(jī)由高到低輸出統(tǒng)計(jì)結(jié)果?!绢惖脑O(shè)計(jì)】1. Student 類Student 屬性: name( 姓名) num( 學(xué)號(hào)) Shulun( 初等數(shù)論成績(jī) ) JingJi( 經(jīng)濟(jì) 學(xué)成績(jī))ShuZhi(數(shù)值計(jì)算方法成績(jī))SiZheng(思政概論成績(jī))Java(Java 成績(jī)) DaiShu( 近世

8、代數(shù)成績(jī) )Sum(成績(jī)總和)操作: Student() , getName(), setName(String name) , getNum() , setNum() ,getShuLun() ,setShuLun() ,getJingJi() ,setJingJi(int JingJi),getShuZhi() ,setShuZhi(int ShuZhi) ,getJava() ,setJava(int Java) , getDaiShu() ,getsum() ,setDaiShu(int DaiShu) ,setsum(int sum) ,getSiZheng() , setSiZhe

9、ng(int SiZheng)2. StuC 類, Student 管理類 StuC 創(chuàng)建對(duì)應(yīng)方法,實(shí)現(xiàn)對(duì) Student 對(duì)象的操作 ( 增、刪、改、查詢、持久化、成績(jī)排序、成績(jī)統(tǒng)計(jì)等功能 ) 供其對(duì)象調(diào)用。StuC屬性: al( 學(xué)生類數(shù)組 ArrayList al=new ArrayList();)file( 文件 )操作: adds(Student s)( 將學(xué)生 s 添加到數(shù)組 al 中去) ,del(int n) , sum() , sort()( 實(shí)現(xiàn)排序功能 ) ,toString() ,paint() ,stor()( 輸出流 ) , read() , Student fin

10、d(intn)3. Login 類,登陸界面要求輸入登陸者輸入用戶名和密碼,分別設(shè)教師登陸和 學(xué)生登陸兩個(gè)登陸選項(xiàng)。Login屬性 : 用戶名 密碼 退出登陸教師登陸 學(xué)生登陸操作 :TeacherEnter() ,StudentEnter() , Close()4. TeacherMainForm 類,教師登陸主界面TeacherMainForm屬性: 增加 查詢 修改 刪除統(tǒng)計(jì)保存退出操作:actionPeformed(ActionEvent e)(按鈕事件響應(yīng))shutDown()(保存)5. Stude ntMa in Form 類,學(xué)生登陸進(jìn)入主界面,窗口通過(guò)菜單只能實(shí)現(xiàn)學(xué)生成 績(jī)的

11、查詢功能,其他功能權(quán)限被限制。6. AddFI類,學(xué)生成績(jī)添加類權(quán)限僅限用于教師可見(jiàn)可操作,在此類中教師可 以添加學(xué)生成績(jī)信息。7. Delet類,學(xué)生成績(jī)刪除類權(quán)限僅限于教師可見(jiàn)可操作,教師通過(guò)此類可以 對(duì)學(xué)生成績(jī)信息做刪除處理。8. XiuGai類,學(xué)生成績(jī)修改類權(quán)限僅限于教師可見(jiàn)可操作,教師通過(guò)此類可 對(duì)學(xué)生的成績(jī)基本情況進(jìn)行修改。9. SIDFind類,按學(xué)生學(xué)號(hào)查詢學(xué)生成績(jī)類權(quán)限對(duì)教師和學(xué)生都可見(jiàn)可操作, 學(xué)生和教師可以通過(guò)學(xué)生學(xué)號(hào)對(duì)學(xué)生的基本成績(jī)進(jìn)行查詢。10. T ongji類,統(tǒng)計(jì)類是班級(jí)學(xué)生總體成績(jī)及依據(jù)總分大小排名情況的統(tǒng)計(jì), 權(quán)限僅限于教師?!居脩艚缑妗?.用戶登錄界面2

12、.教師主界面3.學(xué)生主界面【程序技巧】1. 設(shè)置登錄界面,需要用戶名和相符的密碼才能進(jìn)入,設(shè)置了訪問(wèn)權(quán)限。2.為不同的用戶設(shè)置不同的登陸界面,既保證了權(quán)限又方便了用戶的需求。3.教師主界面采用窗體菜單和按鈕結(jié)合的組合界面,將主要功能按鈕放在窗口上便于操 作,并為每個(gè)主要功能按鈕添加了按鈕圖片和注釋,視窗美觀易操作。4.介于學(xué)生窗口的權(quán)限限制,專門為學(xué)生創(chuàng)建學(xué)生界面,學(xué)生界面只有訪問(wèn)權(quán)沒(méi)有管理操作 權(quán)。符合生活實(shí)際需要。5. 程序創(chuàng)建Student類,創(chuàng)建ArrayList vStudent數(shù)組列表對(duì)學(xué)生類中的信息進(jìn)行存儲(chǔ),Student管理類StuC的創(chuàng)建對(duì)學(xué)生信息的管理。6. 采用文件10流

13、,對(duì)數(shù)據(jù)進(jìn)行保存。7. 用類將所有的功能封裝成為一個(gè)公用類,通過(guò)主類對(duì)其他類進(jìn)行調(diào)用模塊劃分及調(diào)用關(guān)系】1. 模塊劃分 :程序開(kāi)始系統(tǒng)登陸教師登陸 學(xué)生登陸 退出登陸查詢 增加 退出 成績(jī)查詢刪除 修改統(tǒng)計(jì) 保存 退出退出程序程序結(jié)束2. 主要模塊之間的調(diào)用關(guān)系及各自功能1) 主要模塊 (1模塊一 : 登錄模塊2模塊二 : 教師登陸模塊3模塊三 : 學(xué)生登陸模塊4模塊四 : 學(xué)生成績(jī)添加模塊5模塊五 : 學(xué)生成績(jī)查詢模塊6模塊六 : 學(xué)生成績(jī)修改模塊7模塊七 : 學(xué)生成績(jī)刪除模塊8模塊八 : 學(xué)生成績(jī)統(tǒng)計(jì)模塊9模塊九 : 退出模塊10模塊十: 保存模塊(2) 模塊調(diào)用關(guān)系如下圖 登陸模塊 模塊

14、一學(xué)生登陸模塊 教師登陸模塊 模塊三 模塊二成績(jī)添成績(jī)修成績(jī)刪退出 成績(jī)統(tǒng)成績(jī)查保存 加模塊 改模塊 除模塊 模塊 計(jì) 模塊 詢模塊 模塊 模塊四 模塊六 模塊七 模塊八 模塊九 模塊五 模塊十【模塊流程圖】1. 登陸模塊流程圖開(kāi)始輸入用戶 名密碼選擇登陸選項(xiàng)學(xué)生登陸 退出登陸 教師登陸結(jié)束2. 教師主界面模塊流程圖開(kāi)始教師主界面退出 統(tǒng)計(jì) 增加 刪除 修改 查詢輸入查詢 退出統(tǒng)計(jì)學(xué)學(xué)生學(xué)號(hào) 輸入刪除成績(jī) 生成績(jī) 對(duì)學(xué)生這學(xué)號(hào) 系統(tǒng) 成 績(jī)修輸出查詢改 學(xué)生信息 確認(rèn)刪除輸出統(tǒng)添加學(xué)生計(jì)結(jié)果成績(jī)信息退出結(jié)束3. 學(xué)生主界面模塊流程圖開(kāi)始學(xué)生主界面退出查詢輸入學(xué)號(hào)退出學(xué)生登陸界面輸出查詢學(xué)生信息

15、退出結(jié)束【運(yùn)行說(shuō)明】安裝運(yùn)行eclipse。1.eclipseI IM 13 JtGOUffrimsrc中,再2. 在eclipse中新建黃濤為項(xiàng)目名的java項(xiàng)目,將程序打包放入 在項(xiàng)目下創(chuàng)建img文件件存放需要用到的圖片。 J_ LagirtJjvda JF E intern ;ii:zry”:.imgng*工即髯i G.,prig3. 運(yùn)行Login.java 程序,運(yùn)行程序進(jìn)入登陸界面;4. 輸入用戶名和登陸密碼,選擇登陸用戶類型。5. 進(jìn)入教師主界面或?qū)W生主界面。6. 進(jìn)入教師主界面后有對(duì)學(xué)生成績(jī)添加,查詢,修改,刪除和統(tǒng)計(jì)等操作, 對(duì)學(xué)生成績(jī)的錄入與管理。退出教師登陸界面前必須對(duì)本

16、次的所有操作進(jìn)行一個(gè)整 體保存,才能保證下一次打開(kāi)時(shí)上次所操作的數(shù)據(jù)能顯示,保存功能在窗口菜單的 系統(tǒng)菜單下。7. 進(jìn)入學(xué)生登陸界面,學(xué)生只能對(duì)學(xué)生成績(jī)進(jìn)行查看沒(méi)有對(duì)成績(jī)的管理的權(quán) 限。8.本次操作的文件路徑為File file = newFile(e:/JAVA/1208/mydata.txt);2、程序上機(jī)調(diào)試報(bào)告【語(yǔ)法錯(cuò)誤及其排除】1. 關(guān)于static關(guān)鍵字修飾類方法的問(wèn)題,用static修飾方法稱為類方法, 不用static修飾的稱為實(shí)例方法。類方法可以相互調(diào)用,但不能調(diào)用實(shí)例的方 法。2.在編寫類方法時(shí),方法明后忘記“()”,導(dǎo)致編譯錯(cuò)誤。3. 在輸程序過(guò)程中,由于不斷的中英文切換

17、,致使一些標(biāo)點(diǎn)符號(hào)不合法。在 復(fù)查程序時(shí)也特別注意到此環(huán)節(jié)4. 在程序輸入時(shí)單詞的拼寫錯(cuò)誤如 Panel 容易寫成 Panle 等。在復(fù)查時(shí)我也 特別注意到此環(huán)節(jié)。5. 在添加圖片時(shí),沒(méi)有輸入正確的路徑和名稱,導(dǎo)致程序無(wú)法顯示運(yùn)行圖片。 【算法錯(cuò)誤及其排除】1. 在為登陸界面添加圖片時(shí)沒(méi)有添加成功,通過(guò)為登陸界面創(chuàng)建一個(gè)新的平 面類實(shí)現(xiàn),實(shí)現(xiàn)代碼如下。class MyPanel1 extends JPanel / 插入登陸界面圖片Image img=Toolkit.getDefaultToolkit().getImage(img/121.png);public void paint(Graph

18、ics g) g.drawImage(img,0,0,this);2. 實(shí)現(xiàn)不了對(duì)學(xué)生成績(jī)的保存,只能對(duì)本次操作的數(shù)據(jù)進(jìn)行數(shù)據(jù)處理。當(dāng)下 次再打開(kāi)時(shí)上一次的數(shù)據(jù)已不存在。解決辦法:利用10文件流對(duì)數(shù)據(jù)建立文件流。File file = new File(e:/JAVA/1208/mydata.txt);/創(chuàng)建文件0bject0utputStream out = null;/ 為文件創(chuàng)建輸出流try / 可能出現(xiàn)異常的語(yǔ)句out = new 0bject0utputStream(new File0utputStream(file);out.write0bject(al);out.close();

19、0bjectInputStream in = null;/ 為文件創(chuàng)建輸入流try / 可能出現(xiàn)異常的語(yǔ)句in = new ObjectInputStream(new FileInputStream(file);try / 可能出現(xiàn)異常的語(yǔ)句al = (ArrayList)in.readObject(); catch (ClassNotFoundException e) /異常捕獲處理al=null;in.close(); catch (FileNotFoundException e) /異常捕獲處理File file = new File(e:/JAVA/1208/mydata.txt);/

20、 創(chuàng)建文件并指定其存 儲(chǔ)路徑 catch (IOException e) /異常捕獲處理e.printStackTrace();/ 輸出異常棧堆3、程序測(cè)試結(jié)果【測(cè)試數(shù)據(jù)】1. 教師學(xué)生用戶登陸,用戶名 : 黃濤,密碼 :1234562. 選擇教師登陸,進(jìn)入教師登陸界面。3. 添加學(xué)生成績(jī)學(xué)號(hào) 姓名 初等數(shù)論 經(jīng)濟(jì)學(xué) 數(shù)值計(jì)算 思政概論 Java 抽象代數(shù) 101 王二小89 78 69 78 78 89 102 張小三 68 65 85 85 89 86 103 李小四 78 78 78 76 9587 104 王麻子 91 98 68 64 93 91 4. 查詢學(xué)號(hào) 103 的成績(jī)信息。

21、5. 修改學(xué)號(hào)為 104 的成績(jī),將數(shù)值計(jì)算成績(jī) 68 改成 86。6. 刪除 102 號(hào)的成績(jī)信息。7. 統(tǒng)計(jì)學(xué)生成績(jī)信息。8. 保存本次操作信息9. 顯示軟件信息。10. 我是王小二我要查我的成績(jī)。學(xué)生用戶登陸進(jìn)入學(xué)生登陸界面【輸出結(jié)果】1.登陸測(cè)試2.教師登陸界面3. 添加學(xué)生成績(jī)1對(duì)學(xué)生成績(jī)的添加2如果添加成功彈出提示信息,如果已存在彈出提示信息。tenl4. 查詢學(xué)號(hào)103的學(xué)生成績(jī)信息5修改學(xué)號(hào)為104的成績(jī),將數(shù)值計(jì)算成績(jī)68改成86.修改成功提示6.刪除102號(hào)的成績(jī)信息刪除成功提示7.統(tǒng)計(jì)學(xué)生成績(jī)信息8.保存本次操作信息菜單/系統(tǒng)/保存9.顯示軟件信息菜單/幫助/軟件信息10

22、.學(xué)生用戶登陸進(jìn)入學(xué)生登陸界面王小二進(jìn)入學(xué)生界面查詢自己的成績(jī),王小二的學(xué)號(hào)為101.點(diǎn)擊:菜單/成績(jī)查詢/各科成績(jī)查詢fWIbJ入皿丁暉_LL TrVMimrVdan2I If 比L1*ii 【收獲及體會(huì)】通過(guò)本次課程設(shè)計(jì)我對(duì)Java有了更深入的了解,從理論到實(shí)際操作,我覺(jué)得全靠理論是學(xué)不好Java的,必須通過(guò)大量的上機(jī)才能深入體會(huì)其中的奧妙。 本次我的課程設(shè)計(jì)為學(xué)生成績(jī)管理程序,我先通過(guò)大量的查閱資料,先看了些人家的 成績(jī)管理是咋做的,再和自己想要做的成績(jī)管理進(jìn)行對(duì)比,吸取人家的優(yōu)點(diǎn),最后 我將其它參考程序的所有優(yōu)點(diǎn)集結(jié)于我這個(gè)程序的一身。最終做出了我的這個(gè)學(xué)生 成績(jī)管理程序。在程序設(shè)計(jì)過(guò)

23、程中遇到了好多自己沒(méi)有學(xué)過(guò)得知識(shí),通過(guò)自己的閱 讀和查閱書(shū)籍資料學(xué)會(huì)并運(yùn)用。鞏固和加深了我對(duì)高級(jí)語(yǔ)言程序設(shè)計(jì)課程的基本知 識(shí)的理解和掌握,掌握 java 語(yǔ)言編程和程序調(diào)試的基本技能,利用 java 語(yǔ)言進(jìn)行基本的軟件設(shè)計(jì),提高運(yùn)用 java 語(yǔ)言解決實(shí)際問(wèn)題的能力。本次 java 課程設(shè)計(jì)我最大的收獲用一句話來(lái)概括,那就是 : 紙上得來(lái)終覺(jué)淺,知此事要躬行4、源程序代碼import static java.awt.BorderLayout.SOUTH; import java.awt.*;import javax.swing.*;import java.awt.event.*;import

24、java.io.*;import java.util.ArrayList;/ 定義學(xué)生類class Student implements Serializable private String name; /定義姓名private long num; /定義學(xué)號(hào)private int ShuLun; /定義課程初等數(shù)論private int ShuZhi; /定義課程數(shù)值計(jì)算方法private int SiZheng; / 定義課程思政原理private int Java; / 定義課程 java 高級(jí)程序設(shè)計(jì)語(yǔ)言private int DaiShu; / 定義課程近世代數(shù)private in

25、t sum=0;public Student() public Student( String name,long num, int ShuLun, int JingJi,int ShuZhi,intSiZheng,int Java,int DaiShu) super(); = name;this.num = num;this.ShuLun = ShuLun;this.JingJi = JingJi;this.ShuZhi = ShuZhi;this.SiZheng= SiZheng;this.Java= Java;this.DaiShu = DaiShu;/ 成員函數(shù)定義p

26、ublic String getName() return name;public void setName(String name) = name;public long getNum() return num;public void setNum(long num) this.num = num;public int getShuLun() return ShuLun;public void setShuLun(int ShuLun) this.ShuLun = ShuLun; public int getJingJi() return JingJi;public vo

27、id setJingJi(int JingJi) this.JingJi = JingJi;public int getShuZhi() return ShuZhi;public void setShuZhi(int ShuZhi) this.ShuZhi= ShuZhi;public int getSiZheng() return SiZheng;public void setSiZheng(int SiZheng) this.SiZheng = SiZheng; public int getJava() return Java; public void setJava(int Java)

28、this.Java = Java; public int getDaiShu() return DaiShu; public void setDaiShu(int DaiShu) this.DaiShu = DaiShu; public int getsum() return sum; public void setsum(int sum) this.sum = sum;public String toString() return Student name= + name + , num= + num + , shulun= + ShuLun+ , jingji= + JingJi + sh

29、uzhi= + ShuZhi + sizheng= + SiZheng+ ,java= + Java + daishu= + DaiShu + , sum= + sum+ ;/ 創(chuàng)建學(xué)生管理類class StuC 是一個(gè)變ArrayList al=new ArrayList();/ArrayList長(zhǎng)對(duì)象數(shù)組,稱為一個(gè)數(shù)組列表File file = new File(e:/JAVA/1208/mydata.txt);/ 創(chuàng)建文件public void adds(Student s) al.add(s); /添加public void del(int n) /刪除for(int i=0;ial.

30、size();i+) if(al.get(i).getNum()=n)al.remove(i);public void sum() /求總分for(int i=0;ial.size();i+) al.get(i).setsum(al.get(i).getShuLun()+al.get(i).getJingJi()+al.get( i).getShuZhi()+al.get(i).getSiZheng()+al.get(i).getJava()+al.get(i).getDaiShu();public void sort() /排序for (int i = 0; i al.size(); i+)

31、 for (int j = 0; j al.size()-1-i; j+) if (al.get(j).getsum() al.get(j+1).getsum() Object o=al.get(j);al.set(j, al.get(j+1);al.set(j+1, (Student) o);public void paint() for(int i=0;ial.size();i+) System.out.println(al.get(i);public String toString() return StuC al= + al + ;public void stor() / 輸出流Obj

32、ectOutputStream out = null;try / 可能出現(xiàn)異常的語(yǔ)句out = new ObjectOutputStream(new FileOutputStream(file); out.writeObject(al);out.close(); catch (FileNotFoundException e) e.printStackTrace();/ 輸出異常棧堆 catch (IOException e) e.printStackTrace();/ 輸出異常棧堆public void read() /輸入流ObjectInputStream in = null;try /

33、可能出現(xiàn)異常的語(yǔ)句in = new ObjectInputStream(new FileInputStream(file);try / 可能出現(xiàn)異常的語(yǔ)句al = (ArrayList)in.readObject(); catch (ClassNotFoundException e) /異常捕獲處理al=null;in.close(); catch (FileNotFoundException e) /異常捕獲處理創(chuàng)建文件并指定其存File file = new File(e:/JAVA/1208/mydata.txt);/ 儲(chǔ)路徑 catch (IOException e) /異常捕獲處理e

34、.printStackTrace();/ 輸出異常棧堆public Student find(int n) /查找for(int i=0;ial.size();i+) if(al.get(i).getNum()=n) return al.get(i);return null;/ 插入主界面圖片class MyPanel extends JPanel 獲取Image img=Toolkit.getDefaultToolkit().getImage(img/112.png);/ 圖片public void paint(Graphics g) g.drawImage(img,0,0,this);/

35、畫圖片class MyPanel1 extends JPanel /插入登陸界面圖片Image img=Toolkit.getDefaultToolkit().getImage(img/121.png);public void paint(Graphics g) g.drawImage(img,0,0,this);/ 登陸界面public class Login extends JFrame private TextField f1;private TextField f2;private JButton b1;private JButton b2;private JButton b3;pri

36、vate JButton b4;StuC scs=new StuC();/ 定義學(xué)生類public Login() /setBackground(new Color(20,56,225);Container cp=getContentPane();/ 獲取容器cp.setLayout(new GridLayout(4,1);/ 設(shè)置布局管理為網(wǎng)格四行一列Label l1=new Label( 用戶名);/ 創(chuàng)建標(biāo)簽了 l1 ,l2Label l2=new Label( 密 碼 );Panel p1=new Panel();/ 創(chuàng)建平面平, p1,p2,pPanel p2=new Panel()

37、;Panel p3=new Panel();MyPanel1 p4=new MyPanel1();/ 創(chuàng)建插入圖片平面 p4f1=new TextField(10);f2=new TextField(10);f2.setEchoChar(*);/ 回顯字符為 *b1=new JButton( 教師登陸 );/ 新建按鈕 b1, b2,b3b2=new JButton( 學(xué)生登陸 );b3=new JButton( 退出登陸 );p1.add(l1);/ 第一行添加 label 1p1.add(f1);p2.add(l2);p2.add(f2);p3.add(b1);p3.add(b2);p3.

38、add(b3);cp.add(p4);/ 面板 p4, p1,p2, p3 分別加入容器 cpcp.add(p1);cp.add(p2);cp.add(p3);b1.addActionListener(new TeacherEnter();/ 添加按鈕事件響應(yīng)b2.addActionListener(new StudentEnter();b3.addActionListener(new Close();class TeacherEnter implements ActionListener / 教師進(jìn)入登陸響應(yīng) public void actionPerformed(ActionEvent e

39、) if(f1.getText().equals( 黃濤)&(f2.getText().equals(123456) scs.read();/ 初始化,從文件讀入信息TeacherMainForm frame1 = new TeacherMainForm();/ 新建教師界面else JOptionPane.showMessageDialog(null, 用戶名或密碼錯(cuò)誤,請(qǐng)重新登錄);class StudentEnter implements ActionListener / 學(xué)生進(jìn)入登陸響應(yīng) public void actionPerformed(ActionEvent e) if(f1.

40、getText().equals( 黃濤)&(f2.getText().equals(123456) scs.read();/ 初始化,從文件讀入信息StudentMainForm frame1 = new StudentMainForm();/ 新建學(xué)生界面else JOptionPane.showMessageDialog(null, 用戶名或密碼錯(cuò)誤,請(qǐng)重新登錄);class Close implements ActionListener / 關(guān)閉登陸按鈕響應(yīng)public void actionPerformed(ActionEvent e) JButton bt=(JButton)e.

41、getSource();if(bt=b3) System.exit(0);/ 退出/ 主函數(shù) 程序開(kāi)始public static void main(String args) Login log=new Login();log.setTitle( 系統(tǒng)登錄 );log.setBounds(500, 200, 300, 300);log.setBackground(Color.blue);log.setVisible(true);/ 教師登陸界面class TeacherMainForm extends JFrame implements ActionListenerJMe nu mSystem

42、=n ew JMe nu(系統(tǒng));/ 系統(tǒng)菜單 JMenuItem mExit=new JMenuItem( 退出);JMe nultem mSave=new JMe nultem(” 保存”);JMe nu mHelp=new JMe nu(幫助);/ 幫助菜單JMenultem mAbout=new JMenultem( 軟件信息 );JMenuBar mBar=new JMenuBar();JPanel panel;JButton button1,button2,button3,button4,button5,button6;/按鈕組件JLabel label,labelTitle,la

43、bel1,label2,label3,label4,label5,label6;/標(biāo)簽組件/ 添加背景l(fā)magelcon 背景;/ 背景為整個(gè)界面的背景,通過(guò)添加圖片設(shè)置為背景 lcon icon1,icon2,icon3,icon4,icon5,icon6;/按鈕圖標(biāo)Box basebox,boxV1,boxV2,boxV3,boxV4,boxV5,boxV6;/box 組件TeacherMainForm() super( 數(shù)學(xué) 1001 班 2012 至 2013學(xué)年學(xué)生期末成績(jī)管理系統(tǒng) - 教師界面 ); setSize(561,495);setLocation(350,110);mSy

44、stem.add(mSave);/ 為菜單添加菜單項(xiàng)目 mSystem.add(mExit);mHelp.add(mAbout);mBar.add(mSystem);/ 將菜單添加到菜單條mBar.add(mHelp); setJMenuBar(mBar);/ 設(shè)置菜單條 mExit.addActionListener(this);/ 為菜單按鈕添加監(jiān)聽(tīng)事件 mAbout.addActionListener(this);mSave.addActionListener(this); setResizable(true);/ 添加背景,添加標(biāo)題,設(shè)置按鈕圖標(biāo) labelTitle=new JLab

45、el( 成績(jī)管理系統(tǒng) );/ 添加標(biāo)題Font font=new Font( 華文行楷 ,Font.BOLD+Font.TRUETYPE_FONT+Font.LAYOUT_LEFT_TO_RIGHT,70); labelTitle.setFont(font);/ 為標(biāo)題添加字體 labelTitle.setForeground(new Color(255,0,0);背景 = new ImageIcon(img/102.jpg);/ 設(shè)置背景圖片 label = new JLabel( 背景 );label.setBou nds(0, 0, 背景.getlco nWidth(), 背景.getl

46、co nH eight(); this.getLayeredPane().setLayout(null);icon1=new lmagelcon(img/1_.png);/ 為按鈕添加圖片 button1 = new JButton(icon1);button1.setContentAreaFilled (false); icon2=new lmagelcon(img/2_.png);button2 = new JButton(icon2); button2.setContentAreaFilled (false); icon3=new lmagelcon(img/3_.png);button

47、3 = new JButton(icon3); button3.setContentAreaFilled (false);icon4=new ImageIcon(img/4_.png);button4 = new JButton(icon4);button4.setContentAreaFilled (false);icon5=new ImageIcon(img/5_.png);button5 = new JButton(icon5);button5.setContentAreaFilled (false);icon6=new ImageIcon(img/6_.png);button6 = n

48、ew JButton(icon6);button6.setContentAreaFilled (false);/ 設(shè)置按鈕的解釋文字的字體和顏色,并把按鈕和其對(duì)應(yīng)的文字說(shuō)明用BoxLayout 布局/ 設(shè)置為上下對(duì)其形式Font font1=new Font( 華文行楷 ,Fon t.BOLD+Fo nt.TRUETYPE_FONT+Fo nt.LAYOUT_LEFT_TO_RIGHT,2 設(shè)置字體label1=new JLabel(查詢 );/ 標(biāo)簽注釋按鈕label2=new JLabel(增加);label3=new JLabel(刪除);label4=new JLabel(修改 );l

49、abel5=new JLabel(統(tǒng)計(jì));label6=new JLabel(退出);label1.setFont(font1);/為標(biāo)簽設(shè)置字體label2.setFont(font1);label3.setFont(font1);label4.setFont(font1);為標(biāo)簽設(shè)置顏色 為標(biāo)簽設(shè)置顏色 為標(biāo)簽設(shè)置顏色 為標(biāo)簽設(shè)置顏色 為標(biāo)簽設(shè)置顏色 為標(biāo)簽設(shè)置顏色label5.setFont(font1); label6.setFont(font1); label1.setForeground(new Color(0,0,255);/ label2.setForeground(new C

50、olor(0,0,255);/ label3.setForeground(new Color(0,0,255);/ label4.setForeground(new Color(0,0,255);/ label5.setForeground(new Color(0,0,255);/ label6.setForeground(new Color(255,0,0);/ boxV1=Box.createVerticalBox(); boxV2=Box.createVerticalBox(); boxV3=Box.createVerticalBox(); boxV4=Box.createVertica

51、lBox(); boxV5=Box.createVerticalBox(); boxV6=Box.createVerticalBox(); boxV1.add(button1);boxV1.add(Box.createVerticalStrut(0); boxV1.add(label1);boxV2.add(button2); boxV2.add(Box.createVerticalStrut(0); boxV2.add(label2);boxV3.add(button3); boxV3.add(Box.createVerticalStrut(0); boxV3.add(label3);box

52、V4.add(button4);boxV4.add(Box.createVerticalStrut(0);boxV4.add(label4);boxV5.add(button5);boxV5.add(Box.createVerticalStrut(0);boxV5.add(label5);boxV6.add(button6);boxV6.add(Box.createVerticalStrut(0);boxV6.add(label6);basebox=Box.createHorizontalBox();basebox.add(boxV1);basebox.add(Box.createHorizontalStrut(11);basebox.add(boxV2);basebox.add(Box.createHorizontalStrut(11);basebox.add(boxV3);basebox.add(Box.createHorizontalStrut(11);basebox.add(boxV4);basebox.add(Box.createHorizontalStrut(11);basebox.add(boxV5);basebox.add(Box.createHorizontalStrut(11);b

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論