




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
本科學(xué)生綜合性實驗報告課程名稱:Java開發(fā)技術(shù)工程名稱:學(xué)生成績管理系統(tǒng)學(xué)生姓名學(xué)號指導(dǎo)教師開課學(xué)期2023至2023學(xué)年第一學(xué)期完成時間2023年1月3日目錄摘要21工程研究開發(fā)的背景及意義21.1本課題設(shè)計學(xué)術(shù)價值、理論意義和實踐意義21.2本課題設(shè)計擬研究的主要問題21.3重點和難點31.4研究方法、預(yù)期效益31.5本工程創(chuàng)新點和特色32需求分析32.1開發(fā)背景32.2工程目標(biāo)42.3運行環(huán)境42.4任務(wù)說明書43技術(shù)路線及關(guān)鍵技術(shù)73.1系統(tǒng)總體功能圖73.2學(xué)生成績管理系統(tǒng)的功能模塊簡介:103.3系統(tǒng)運用的主要技術(shù):233.4數(shù)據(jù)庫設(shè)計243.5連接數(shù)據(jù)庫274測試報告及系統(tǒng)評價284.1系統(tǒng)簡介:284.2系統(tǒng)特色及缺點:285系統(tǒng)使用說明295.1用戶操作指南:296個人感受及收獲377大作業(yè)總結(jié)37感謝388參考文獻:38摘要人類已進入21世紀,科學(xué)技術(shù)突飛猛進,經(jīng)濟知識和信息產(chǎn)業(yè)初見端倪,特別是信息技術(shù)和網(wǎng)絡(luò)技術(shù)的訊速開展和廣泛應(yīng)用,對社會的政治,經(jīng)濟,軍事,文化等領(lǐng)域產(chǎn)生越來越深刻.學(xué)生成績管理系統(tǒng)是一個教育單位不可缺少的局部,它的內(nèi)容對于學(xué)校的決策者和管理者來說都至關(guān)重要。本次大作業(yè)的學(xué)生成績管理系統(tǒng)是用java編程+SQLserver2000數(shù)據(jù)庫+SQL查詢語言實現(xiàn)的.重點介紹了學(xué)生成績管理系統(tǒng)的實現(xiàn)過程:包括系統(tǒng)需求分析、功能設(shè)計、數(shù)據(jù)庫設(shè)計、系統(tǒng)實現(xiàn)、系統(tǒng)測試和調(diào)試等。關(guān)鍵字:成績管理統(tǒng)計信息管理數(shù)據(jù)庫1工程研究開發(fā)的背景及意義1.1本課題設(shè)計學(xué)術(shù)價值、理論意義和實踐意義現(xiàn)在的社會知識經(jīng)濟在世界經(jīng)濟開展的地位越來越高,國家綜合國力和國際競爭能力越來越取決于教育開展,科學(xué)技術(shù)和知識創(chuàng)新的水平,教育在經(jīng)濟和社會開展過程中將呈現(xiàn)出越來越突出的重要作用。學(xué)生成績管理系統(tǒng)是一個教育單位不可缺少的局部,它的內(nèi)容對于學(xué)校的決策者和管理者來說都至關(guān)重要,所以學(xué)生成績管理系統(tǒng)應(yīng)該能夠為用戶提供充足的信息和快捷的查詢手段。但是有些學(xué)校還是使用傳統(tǒng)人工的方式管理學(xué)生成績,填寫各種表格,這種管理方式存在著許多缺點,如:效率低,保密性差,另外所用其時間長,產(chǎn)生大量的文件和數(shù)據(jù),這對于查找,更新和維護都帶來了不少的困難。在此次大作業(yè)中,我綜合java編程、SQL數(shù)據(jù)庫和SQL查詢語言來實現(xiàn)一個簡單的學(xué)生成績管理系統(tǒng)。1.2本課題設(shè)計擬研究的主要問題一個完整的學(xué)生管理系統(tǒng)包括四個功能模板:〔1〕根本信息管理:包括對學(xué)生、教師、課程、成績信息進行查找、刪除、修改和添加?!?〕課表查詢:學(xué)生和教師都可以對自身的課表進行查詢?!?〕統(tǒng)計功能:對學(xué)生單科成績、總成績、所有學(xué)生成績的平均分進行統(tǒng)計,并作出相應(yīng)的排名?!?〕圖形界面,將學(xué)生單科成績用柱形圖表示出來,清晰簡單地表示出成績的分布情況。1.3重點和難點〔1〕界面要求美觀,需熟練掌握利用java語言來布局?!?〕數(shù)據(jù)庫多個表聯(lián)系,利用視圖或者存儲過程,需熟練掌握數(shù)據(jù)庫的操作?!?〕模糊查找和精確查找,在界面上要求兩者兼容,數(shù)據(jù)庫上要求聯(lián)系緊密?!?〕統(tǒng)計功能,單科和總成績要求進行統(tǒng)計?!?〕圖形界面,系統(tǒng)主界面參加背景圖片以及成績統(tǒng)計時以不同顏色的柱形圖形象表達。1.4研究方法、預(yù)期效益本次課程設(shè)計屬于很普遍的應(yīng)用研究類,我只是在大家做的根底上加上我自己的的想法以及設(shè)計。同時結(jié)合我們現(xiàn)在學(xué)生的成績情況來進行設(shè)計。我采用的方法是理論分析結(jié)合實際來進行研究的,通過學(xué)習(xí)經(jīng)驗來建立模型,在此根底上對學(xué)生成績管理系統(tǒng)進行設(shè)計。這個系統(tǒng)將在12月下旬設(shè)計結(jié)束,界面美觀,使用方便,功能較全的一個原型系統(tǒng)。此系統(tǒng)可以應(yīng)用于落后的鄉(xiāng)村的中小學(xué)教學(xué)管理。1.5本工程創(chuàng)新點和特色〔1〕本系統(tǒng)采用java和數(shù)據(jù)庫結(jié)合的方式開發(fā),可以對大量的數(shù)據(jù)進行存儲和操作?!?〕本系統(tǒng)使用java開發(fā),具有跨平臺特性?!?〕本系統(tǒng)功能俱全,具有學(xué)生、教師、課程的信息管理和多條件的成績查詢和課程查詢,成績統(tǒng)計和利用柱形圖反響成績分布?!?〕系統(tǒng)具有平安性,用戶只能通過用戶名和密碼訪問。同時設(shè)定三種用戶:管理員、學(xué)生、教師。不同的用戶權(quán)限不同。2需求分析2.1開發(fā)背景當(dāng)今時代是飛速開展的信息時代,在各行各業(yè)中離不開信息處理,這正是計算機被廣泛應(yīng)用于信息管理系統(tǒng)的環(huán)境。計算機的最大好處在于利用它能夠進行信息管理.使用計算機進行信息控制,不僅提高了工作效率,而且大大的提高了其平安性.尤其對于復(fù)雜的信息管理,計算機能夠充分發(fā)揮它的優(yōu)越性.。管理信息系統(tǒng)是進行信息的采集、存儲、加工、維護和使用的系統(tǒng),它是隨著管理科學(xué)和技術(shù)科學(xué)的開展而形成的。學(xué)生成績管理系統(tǒng)是一個教育單位不可缺少的局部,它的內(nèi)容對于學(xué)校的決策者和管理者來說都至關(guān)重要,所以學(xué)生成績管理系統(tǒng)應(yīng)該能夠為用戶提供充足的信息和快捷的查詢手段,對學(xué)生來說可以輕松的查閱自己在校的成績,個人信息和課表查詢等,但是一直以來在落后的鄉(xiāng)村一些中小學(xué)人們都是靠傳統(tǒng)人工的方式管理學(xué)生成績,這種管理方式存在著許多缺點,如:效率低,保密性差,另外時間一長,將產(chǎn)生大量的文件和數(shù)據(jù),這對于查找、更新和維護都帶來了不少的困難。隨著科學(xué)技術(shù)的不斷提高,計算機科學(xué)日漸成熟,其強大的功能已為人們深刻認識,它已進入人類社會的各個領(lǐng)域并發(fā)揮著越來越重要的作用,作為計算機應(yīng)用的一局部,使用計算機對學(xué)生成績信息進行管理,有著手工管理所無法比較的優(yōu)點,例如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、本錢低等。這些優(yōu)點能夠極大地提高學(xué)生成績管理的效率,也是企業(yè)的科學(xué)化,正規(guī)化管理,與世界接軌的重要條件。因此,開發(fā)這樣的一套成績管理系統(tǒng)成為很有必要的事情。學(xué)生成績管理系統(tǒng)提供了比較全面的學(xué)生成績管理管理功能,方便系統(tǒng)管理員對學(xué)生成績等信息的添加、修改、刪除、查詢、統(tǒng)計等操作。2.2工程目標(biāo)〔1〕管理員能夠?qū)崿F(xiàn)對整個學(xué)生信息的添加、修改、刪除、查詢等操作?!?〕管理員能夠?qū)崿F(xiàn)對整個教師信息的添加、修改、刪除、查詢等操作?!?〕管理員能夠?qū)崿F(xiàn)對整個課程信息的添加、修改、刪除、查詢等操作?!?〕學(xué)生、教師、管理員對整個成績的查詢?!?〕教師、學(xué)生查詢課表?!?〕系統(tǒng)對成績具有統(tǒng)計計算的功能,將成績情況用柱形圖形象地表現(xiàn)出來,并對成績進行排名,包括單科和總成績。〔7〕不同的角色不同的權(quán)限。2.3運行環(huán)境學(xué)生成績對運行環(huán)境沒有很高的要求,而且可以跨平臺運行,包括現(xiàn)有的linux和uniux等操作系統(tǒng)。但是讓學(xué)生成績管理系統(tǒng)反響操作更快,我推薦用戶使用如下的配置:最正確配置:CPU2GHz內(nèi)存512M硬盤80GWindowsXP/linux/uniuxJDK1.6.0,Java程序開發(fā)環(huán)境Eclipse/MyEclipse,SQLsever20002.4任務(wù)說明書任務(wù)概述:通過在網(wǎng)上看一些學(xué)生成績管理系統(tǒng)的源代碼,設(shè)想自己系統(tǒng)該有的功能框架。將自己的設(shè)想和網(wǎng)上的進行比照,將自己的系統(tǒng)不斷地完善。一下是此次大作業(yè)的工程進度安排表:表2.4-工程進度表階段任務(wù)時間方案完成工作實際完成情況階段一:分析選題階段2023年11月20日-2023年11月30日接到大作業(yè)任務(wù)后,對供選題目進行分析,并通過查詢資料及相關(guān)信息,結(jié)合我們所學(xué)習(xí)的知識及的具體情況,選擇相應(yīng)的題目并且確定工作方案。通過網(wǎng)上查閱地資料,結(jié)合自身目前所學(xué)的知識,并且結(jié)合了老師的相關(guān)意見,最終個人選擇了學(xué)生成績管理系統(tǒng)。該系統(tǒng)是桌面應(yīng)用系統(tǒng),結(jié)合數(shù)據(jù)庫和java來完成。階段二:程序編寫及調(diào)試階段階段二:程序編寫及調(diào)試階段2023年12月1日-2023年12月9日思考程序的大體方向及主題思路,確定程序所包含的相關(guān)功能,同時完成對程序流程、模塊以及相關(guān)類的設(shè)計。個人經(jīng)過一番思考,確定程序大體的思路及程序包含的功能,即為教學(xué)單位提供一個能對學(xué)生成績統(tǒng)計與管理,學(xué)生信息,教師信息,授課信息管理的系統(tǒng)。然后畫出了程序主體的流程圖,將系統(tǒng)分成三個大模塊模塊。成績信息成績統(tǒng)計根本信息管理2023年12月10日-2023年12月15日在前期設(shè)定的流程圖和系統(tǒng)模塊化的根底上,完成程序所有的具體局部代碼的編寫及各種相關(guān)功能的實現(xiàn)。經(jīng)過一段的時間的編寫,建立好數(shù)據(jù)庫,同時完成了程序各個具體局部的實現(xiàn),完成了三個模塊及其他布局函數(shù)的編寫,具體如下:〔1〕Manage_student.java實現(xiàn)學(xué)生信息的添加、刪除、查詢、修改功能?!?〕Manage_course.java實現(xiàn)課程信息的添加、刪除、查詢、修改功能?!?〕Manage_teacher.java實現(xiàn)教師信息的添加、刪除、查詢、修改功能?!?〕Manage_teach實現(xiàn)授課的添加、刪除、查詢、修改功能?!?〕SignalCount.java實現(xiàn)分數(shù)的計算〔6〕SignalCount.java實現(xiàn)分數(shù)的計算〔7〕Photo.java實現(xiàn)分數(shù)的分布圖,將數(shù)據(jù)以柱形圖的形式表示出來?!?〕DataManager.java實現(xiàn)數(shù)據(jù)庫的連接。階段三:程序編寫及調(diào)試階段階段三:報告撰寫階段階段三:報告撰寫階段階段三:程序完善階段2023年12月16日-2023年12月21日完成了整個程序的編寫工作之后,將數(shù)據(jù)庫中的數(shù)據(jù)對我們的程序進行完善的測試,確保程序的準確性。使用所準備的數(shù)據(jù)庫中不同的數(shù)據(jù)對程序進行測試,并且對得出的結(jié)果進行分析,最終得出測試結(jié)果沒有錯誤的結(jié)論。確定程序沒有錯誤,整個程序的具體情況與個人最初的目標(biāo)相吻合。2023年12月22日-2023年12月27日完成大作業(yè)報告中的需求分析及程序分析局部的填寫?;谠诘谝浑A段所作的工作并結(jié)合收集的相關(guān)資料,我們用了很短的時間完成這一局部的填寫。2023年12月28日-2023年12月31日完成大作業(yè)報告技術(shù)路線及測試報告局部的填寫?;谠诘诙A段所作的工作,對整個程序經(jīng)過細致的分析最后對其進行邏輯的歸類,完成了技術(shù)路線這一局部的填寫;再對前期所作的測試的結(jié)果進行分析、匯總、總結(jié),完成了測試局部的填寫。因為程序需要添加很多注釋,再加上程序的內(nèi)容較多以及對前期測試結(jié)果的整理,使得這一局部花費了相對較長的時間2023年1月1日—2023年1月3日完善程序代碼以及實驗報告由于前階段代碼出現(xiàn)了一定的錯誤,對其進行修改,并取得成功。3技術(shù)路線及關(guān)鍵技術(shù)3.1系統(tǒng)總體功能圖〔1〕系統(tǒng)結(jié)構(gòu)圖學(xué)生成績管理系統(tǒng)學(xué)生成績管理系統(tǒng)管理員學(xué)生老師學(xué)生信息管理教師信息管理課程信息管理成績信息管理課程授課管理查詢成績查詢個人課表查詢成績統(tǒng)計查詢成績查詢教師課表查詢成績統(tǒng)計圖3.1-系統(tǒng)總結(jié)構(gòu)圖〔2〕系統(tǒng)流程圖:在系統(tǒng)設(shè)計中,將用戶分成三種權(quán)限,不同權(quán)限的用戶,那么訪問的內(nèi)容不同、控制的信息也不同,系統(tǒng)結(jié)構(gòu)圖如圖3.1,系統(tǒng)流程圖如圖3.2。開始開始選擇用戶登錄輸入用戶名密碼正確退出結(jié)束操作Y圖3.2-系統(tǒng)流程圖〔3〕在系統(tǒng)結(jié)構(gòu)圖中,我們可以看到管理員對學(xué)生、課程、成績、教師的根本信息有增刪改除的功能,以下是具體功能模塊結(jié)構(gòu)圖:學(xué)生信息管理學(xué)生信息管理學(xué)生信息添加學(xué)生信息修改學(xué)生信息查詢學(xué)生信息刪除圖3.3-學(xué)生信息管理模塊教師信息管理教師信息管理教師信息添加教師信息修改教師信息查詢教師信息刪除圖3.4-教師信息管理模塊課程信息管理課程信息管理課程信息添加課程信息修改課程信息查詢課程信息刪除圖3.5-課程信息管理模塊成績信息管理成績信息管理成績信息添加成績信息修改成績信息查詢成績信息刪除成績統(tǒng)計圖3.6-成績信息管理模塊3.2學(xué)生成績管理系統(tǒng)的功能模塊簡介:〔1〕根本信息管理〔以學(xué)生為例〕if(obj==tianjia)//添加 {Sno=tf_xuehao.getText().trim();Sname=tf_xingming.getText().trim();sex=tf_xingbie.getText().trim();age1=Integer.parseInt(tf_nianling.getText().trim());tel_no=tf_dianhua.getText().trim();classno=tf_banhao.getText().trim();addr=tf_dizhi.getText().trim();if(Sno.length()==0||Sname.length()==0||sex.length()==0||age1==0||Sno.length()==0||tel_no.length()==0||addr.length()==0||classno.length()==0) { JOptionPane.showMessageDialog(this,"請?zhí)砑油暾畔ⅲ?,"提示信息",JOptionPane.QUESTION_MESSAGE); }else {try {ps=con.prepareStatement("insertintostudentvalues(?,?,?,?,?,?,?)");ps.setString(1,Sno);ps.setString(2,Sname);ps.setString(3,sex);ps.setString(4,classno);ps.setString(5,addr);ps.setInt(6,age1);ps.setString(7,tel_no); JOptionPane.showMessageDialog(this,"確定添加嗎?","提示信息",JOptionPane.QUESTION_MESSAGE);tf_xuehao.setText("");tf_xingming.setText("");tf_xingbie.setText("");tf_nianling.setText("");tf_dianhua.setText("");tf_dizhi.setText("");tf_banhao.setText("");rs=ps.executeQuery(); }catch(SQLExceptionsql) { JOptionPane.showMessageDialog(this,"添加成功!","提示信息",JOptionPane.QUESTION_MESSAGE); } } }if(obj==xiugai)//修改 { Stringno=shuru.getText().trim();Sno=tf_xuehao.getText().trim();Sname=tf_xingming.getText().trim();sex=tf_xingbie.getText().trim();age1=Integer.parseInt(tf_nianling.getText().trim());tel_no=tf_dianhua.getText().trim();addr=tf_dizhi.getText().trim();classno=tf_banhao.getText().trim();try {ps=con.prepareStatement("updatestudentsetSno=?,Sname=?,sex=?,classno=?,addr=?,age=?,tel_no=?whereSno=?");ps.setString(1,Sno);ps.setString(2,Sname);ps.setString(3,sex);ps.setString(4,classno);ps.setString(5,addr);ps.setInt(6,age1);ps.setString(7,tel_no);ps.setString(8,no); JOptionPane.showMessageDialog(this,"確定修改嗎?","提示信息",JOptionPane.QUESTION_MESSAGE);tf_xuehao.setText("");tf_xingming.setText("");tf_xingbie.setText("");tf_banhao.setText("");tf_dizhi.setText("");tf_nianling.setText("");tf_dianhua.setText(""); JOptionPane.showMessageDialog(this,"修改成功!","提示信息",JOptionPane.INFORMATION_MESSAGE);rs=ps.executeQuery();rs.next(); }catch(SQLExceptionsql) { JOptionPane.showMessageDialog((Component)null,sql.getMessage(),"提示信息",JOptionPane.QUESTION_MESSAGE); } }if(obj==shanchu)//刪除 {try { Stringno=shuru.getText().trim();ps=con.prepareStatement("deletefromstudentwhereSno=?");ps.setString(1,no); JOptionPane.showMessageDialog(this,"確定刪除嗎?","提示信息",JOptionPane.QUESTION_MESSAGE);tf_xuehao.setText("");tf_nianling.setText("");tf_xingming.setText("");tf_dianhua.setText("");tf_dizhi.setText("");tf_xingbie.setText("");tf_banhao.setText("");rs=ps.executeQuery(); JOptionPane.showMessageDialog(this,"刪除成功!","提示信息",JOptionPane.INFORMATION_MESSAGE); }catch(SQLExceptionsqlex) { sqlex.getMessage(); } }if(obj==qingkong)//清空 {shuru.setText("");tf_xuehao.setText("");tf_nianling.setText("");tf_xingming.setText("");tf_dianhua.setText("");tf_dizhi.setText("");tf_xingbie.setText("");tf_banhao.setText(""); }}}主要功能:添加、刪除、修改、查詢學(xué)生根本信息。實現(xiàn)目的:對于每個新的學(xué)年都有大量的學(xué)生入錄,對學(xué)生信息的添加是必不可少的。同時,在管理員的日常工作過程中,難免不出現(xiàn)錯誤。所以對其信息修改功能也是必不可少的,刪除那么是在學(xué)生開除學(xué)籍時可以使用。同時課程、教師、成績信息和學(xué)生信息操作是相同的?!?〕成績統(tǒng)計://統(tǒng)計各科平均分publicStringSubjectAvg(Stringsubject){ Strings=null;floatt=0;this.Connect();if(subject.equals("計算機網(wǎng)絡(luò)")) { s="selectavg(grade)fromtranscriptwhereCno=003125";try{st=this.Connect().prepareStatement(s);rs=st.executeQuery();while(rs.next()) { t=rs.getFloat(1); } }catch(Exceptione){ e.printStackTrace(); } }if(subject.equals("數(shù)據(jù)庫系統(tǒng)原理")) { s="selectavg(grade)fromtranscriptwhereCno=003126";try{st=this.Connect().prepareStatement(s);rs=st.executeQuery();while(rs.next()) { t=rs.getFloat(1); } }catch(Exceptione){ e.printStackTrace(); } }if(subject.equals("多媒體技術(shù)根底")) { s="selectavg(grade)fromtranscriptwhereCno=003127";try{st=this.Connect().prepareStatement(s);rs=st.executeQuery();while(rs.next()) { t=rs.getFloat(1); } }catch(Exceptione){ e.printStackTrace(); } }if(subject.equals("概率論與數(shù)理統(tǒng)計")) { s="selectavg(grade)fromtranscriptwhereCno=003128";try{st=this.Connect().prepareStatement(s);rs=st.executeQuery();while(rs.next()) { t=rs.getFloat(1); } }catch(Exceptione){ e.printStackTrace(); } }returnFloat.toString(t); }//總分平均分統(tǒng)計publicStringallAvg(){floatsum=0;intcount=0;// st=this.Connect().prepareStatement(sql); Strings="selectsum(grade)astotalfromtranscript"; System.out.println("s="+s);try{st=this.Connect().prepareStatement(s);rs=st.executeQuery(); System.out.println("rs="+rs);if(rs.next()) { sum=rs.getFloat("total"); System.out.println("sum="+sum); }rs=null; s="selectsum(grade)fromtranscriptwhereCno=001325";st=this.Connect().prepareStatement(s);rs=st.executeQuery();if(rs.next()) { sum=sum+rs.getFloat(1); }rs=null; s="selectsum(grade)fromtranscriptwhereCno=001326";st=this.Connect().prepareStatement(s);rs=st.executeQuery();if(rs.next()) { sum=sum+rs.getFloat(1); }rs=null; s="selectsum(grade)fromtranscriptwhereCno=001328";st=this.Connect().prepareStatement(s);rs=st.executeQuery();if(rs.next()) { sum=sum+rs.getFloat(1); }rs=null; s="selectcount(distinctSno)fromtranscript";st=this.Connect().prepareStatement(s);rs=st.executeQuery();if(rs.next()) { count=rs.getInt(1); } }catch(Exceptione){ e.printStackTrace(); }if(count==0)return"0";else { sum=sum/count;returnFloat.toString(sum); } }//獲得各科的分數(shù)段人數(shù)publicintgethigh(Stringsubject,intgrade){//總的人數(shù)intnum=0; Strings=null;this.Connect();if(subject.equals("計算機網(wǎng)絡(luò)")) {if(grade==60) s="selectcount(sno)fromtranscripta,coursebwheregrade<60anda.Cno=b.CnoandCname='計算機網(wǎng)絡(luò)'";if(grade==70) s="selectcount(sno)fromtranscripta,coursebwheregrade<70andgrade>=60anda.Cno=b.CnoandCname='計算機網(wǎng)絡(luò)'";if(grade==80) s="selectcount(sno)fromtranscripta,coursebwheregrade<80andgrade>=70anda.Cno=b.CnoandCname='計算機網(wǎng)絡(luò)'";if(grade==90) s="selectcount(sno)fromtranscripta,coursebwheregrade<90andgrade>=80anda.Cno=b.CnoandCname='計算機網(wǎng)絡(luò)'";if(grade==100) s="selectcount(sno)fromtranscripta,coursebwheregrade<100andgrade>=90anda.Cno=b.CnoandCname='計算機網(wǎng)絡(luò)'";try{st=this.Connect().prepareStatement(s);rs=st.executeQuery();while(rs.next()) { num=rs.getInt(1); } }catch(Exceptione){ e.printStackTrace(); } }if(subject.equals("數(shù)據(jù)庫系統(tǒng)原理")) {if(grade==60) s="selectcount(sno)fromtranscripta,coursebwheregrade<60anda.Cno=b.CnoandCname='數(shù)據(jù)庫系統(tǒng)原理'";if(grade==70) s="selectcount(sno)fromtranscripta,coursebwheregrade<70andgrade>=60anda.Cno=b.CnoandCname='數(shù)據(jù)庫系統(tǒng)原理'";if(grade==80) s="selectcount(sno)fromtranscripta,coursebwheregrade<80andgrade>=70anda.Cno=b.CnoandCname='數(shù)據(jù)庫系統(tǒng)原理'";if(grade==90) s="selectcount(sno)fromtranscripta,coursebwheregrade<90andgrade>=80anda.Cno=b.CnoandCname='數(shù)據(jù)庫系統(tǒng)原理'";if(grade==100) s="selectcount(sno)fromtranscripta,coursebwheregrade<100andgrade>=90anda.Cno=b.CnoandCname='數(shù)據(jù)庫系統(tǒng)原理'";try{st=this.Connect().prepareStatement(s);rs=st.executeQuery();while(rs.next()) { num=rs.getInt(1); } }catch(Exceptione){ e.printStackTrace(); } }if(subject.equals("多媒體技術(shù)根底")) {if(grade==60) s="selectcount(sno)fromtranscripta,coursebwheregrade<60anda.Cno=b.CnoandCname='多媒體技術(shù)根底'";if(grade==70) s="selectcount(sno)fromtranscripta,coursebwheregrade<70andgrade>=60anda.Cno=b.CnoandCname='多媒體技術(shù)根底'";if(grade==80) s="selectcount(sno)fromtranscripta,coursebwheregrade<80andgrade>=70anda.Cno=b.CnoandCname='多媒體技術(shù)根底'";if(grade==90) s="selectcount(sno)fromtranscripta,coursebwheregrade<90andgrade>=80anda.Cno=b.CnoandCname='多媒體技術(shù)根底'";if(grade==100) s="selectcount(sno)fromtranscripta,coursebwheregrade<100andgrade>=90anda.Cno=b.CnoandCname='多媒體技術(shù)根底'";try{st=this.Connect().prepareStatement(s);rs=st.executeQuery();while(rs.next()) { num=rs.getInt(1); } }catch(Exceptione){ e.printStackTrace(); } }if(subject.equals("概率論與數(shù)理統(tǒng)計")) {if(grade==60) s="selectcount(sno)fromtranscripta,coursebwheregrade<60anda.Cno=b.CnoandCname='概率論與數(shù)理統(tǒng)計'";if(grade==70) s="selectcount(sno)fromtranscripta,coursebwheregrade<70andgrade>=60anda.Cno=b.CnoandCname='概率論與數(shù)理統(tǒng)計'";if(grade==80) s="selectcount(sno)fromtranscripta,coursebwheregrade<80andgrade>=70anda.Cno=b.CnoandCname='概率論與數(shù)理統(tǒng)計'";if(grade==90) s="selectcount(sno)fromtranscripta,coursebwheregrade<90andgrade>=80anda.Cno=b.CnoandCname='概率論與數(shù)理統(tǒng)計'";if(grade==100) s="selectcount(sno)fromtranscripta,coursebwheregrade<100andgrade>=90anda.Cno=b.CnoandCname='概率論與數(shù)理統(tǒng)計'";try{st=this.Connect().prepareStatement(s);rs=st.executeQuery();while(rs.next()) { num=rs.getInt(1); } }catch(Exceptione){ e.printStackTrace(); } }returnnum; }//獲得總的人數(shù)publicintcount(){intcount=0; Strings="selectcount(distinctSno)fromtranscript";this.Connect();try{st=this.Connect().prepareStatement(s);rs=st.executeQuery();while(rs.next()) { count=rs.getInt(1); } }catch(Exceptione){ e.printStackTrace(); }returncount;}主要功能:對各科成績和總成績進行統(tǒng)計,算出它的平均分。同時顯示每科小于60或者大于60分的同學(xué)成績列表。并且用直方圖將每個分數(shù)段的學(xué)生數(shù)量形象地表示出來。主要目的:在實際的學(xué)生成績管理過程中,計算平均分是很重要的,便于學(xué)校和老師對學(xué)生總體成績的了解。從而不斷發(fā)現(xiàn)新的教學(xué)方法來提高總體學(xué)生的學(xué)習(xí)成績。同時成績分布圖給予協(xié)助?!?)管理員界面及主函數(shù)入口模塊:MainAndGUI.java//主界面〔管理員界面〕importjavax.swing.*importjava.awt.*;importjava.awt.event.*;importjava.text.DateFormat;importjava.util.Date;publicclassGradeextendsJFrame{ privatestaticfinallongserialVersionUID=1L; //定義主框架 privateJFrameframe=newJFrame("學(xué)生成績管理系統(tǒng)"); //定義菜單欄 privateJMenuBarBar=newJMenuBar(); //定義菜單 privateJToolBarstatusBar=newJToolBar();//狀態(tài)欄status privateJMenuJMedit=newJMenu("成績信息"); privateJMenuJMcount=newJMenu("統(tǒng)計"); privateJMenuJMhelp=newJMenu("幫助"); privateJMenuJMinfor=newJMenu("根本信息管理"); //定義菜單項 privateJMenuItemJMIinput=newJMenuItem("信息添加"); privateJMenuItemJMImodify=newJMenuItem("成績查詢"); privateJMenuItemJMIall=newJMenuItem("成績統(tǒng)計"); privateJMenuItemJMIgraphics=newJMenuItem("圖形統(tǒng)計"); //privateJMenuItemJMIsignal=newJMenuItem("個人成績"); privateJMenuItemJMIhelp=newJMenuItem("系統(tǒng)信息"); privateJMenuItemtohelp=newJMenuItem("幫助主題"); privateJMenuItemJMstudent=newJMenuItem("學(xué)生信息管理"); privateJMenuItemJMteacher=newJMenuItem("教師信息管理"); privateJMenuItemJMcourse=newJMenuItem("課程信息管理"); privateJMenuItemJMts=newJMenuItem("授課管理"); privateJMenuItemJMsc=newJMenuItem("成績管理"); ImageIconimage; Icontupian; JLabellabel_pic; Componentcom=null; //定義文本標(biāo)簽 privateJLabeltext=newJLabel("",SwingConstants.CENTER); //定義面板 privateContainercon=frame.getContentPane(); //顯示當(dāng)前時間 DateFormatdf1=DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM);Dated=newDate();//當(dāng)前日期和時間Stringmystring=df1.format(d);JLabelStatusLabel1=newJLabel("歡送您的使用",SwingConstants.LEFT);//添加時間JLabelStatusLabel2=newJLabel("顯示當(dāng)前狀態(tài)",SwingConstants.CENTER);JLabelStatusLabel4=newJLabel(mystring,SwingConstants.CENTER); //構(gòu)造函數(shù) publicGrade(){ //把菜單欄參加框架 frame.setJMenuBar(Bar); //frame.setJToolBar(statusBar); //把菜單參加菜單欄 Bar.add(JMedit); Bar.add(JMcount); Bar.add(JMinfor); Bar.add(JMhelp); //把菜單項參加菜單 //JMedit.add(JMIinput); JMedit.add(JMsc); JMedit.addSeparator(); JMedit.add(JMImodify); JMcount.add(JMIall); JMcount.addSeparator(); //JMcount.add(JMIsignal); //JMcount.addSeparator(); JMcount.add(JMIgraphics); JMhelp.add(JMIhelp); JMhelp.addSeparator(); JMhelp.add(tohelp); JMinfor.add(JMstudent); JMinfor.addSeparator(); JMinfor.add(JMteacher); JMinfor.addSeparator(); JMinfor.add(JMcourse); JMinfor.addSeparator(); JMinfor.add(JMts); tupian=newImageIcon("pic\\lianhua.jpg");//加載圖片 label_pic=newJLabel(tupian); con.setLayout(newBorderLayout()); con.add(label_pic,BorderLayout.CENTER); com=label_pic; con.add(DesignStatusBar(),BorderLayout.SOUTH); //設(shè)置框架 frame.setLocation(200,200); frame.setSize(400,400); frame.setVisible(true); //增加監(jiān)聽器 JMImodify.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEventarg0){ score_querys=newscore_query(); s.setVisible(true); StatusLabel2.setText(JMImodify.getText()); }}); JMIall.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEventarg0){ newAllgradeCount(); StatusLabel2.setText(JMIall.getText()); }}); JMIgraphics.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEventarg0){ Photoa=newPhoto(); StatusLabel2.setText(JMIgraphics.getText()); }}); JMstudent.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEventarg0){ con.remove(com); Manage_studenta=newManage_student(); a.setVisible(true); con.add(a,BorderLayout.CENTER); com=a; StatusLabel2.setText(JMstudent.getText()); }}); JMteacher.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEventarg0){ con.remove(com); Manage_teachera=newManage_teacher(); a.setVisible(true); con.add(a,BorderLayout.CENTER); com=a; StatusLabel2.setText(JMteacher.getText()); }}); JMcourse.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEventarg0){ con.remove(com); Manage_coursea=newManage_course(); a.setVisible(true); con.add(a,BorderLayout.CENTER); com=a; StatusLabel2.setText(JMcourse.getText()); }}); JMts.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEventarg0){ con.remove(com); Manage_teacha=newManage_teach(); a.setVisible(true); con.add(a,BorderLayout.CENTER); com=a; StatusLabel2.setText(JMts.getText()); }}); JMsc.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEventarg0){ con.remove(com); Manage_scorea=newManage_score(); a.setVisible(true); con.add(a,BorderLayout.CENTER); com=a; StatusLabel2.setText(JMsc.getText()); }}); JMIhelp.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEventarg0){ JOptionPane.showMessageDialog(null,"學(xué)生成績管理系統(tǒng),馬文憑制作"); }}); tohelp.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEventarg0){ JOptionPane.showMessageDialog(null,"如有問題請加QQ771626930"); }}); } publicJPanelDesignStatusBar() { statusBar.setFloatable(false); JPanelpanel=newJPanel(); panel.setLayout(newGridLayout(1,5)); statusBar.add(panel); //添加狀態(tài)欄 panel.add(StatusLabel1); panel.add(StatusLabel2); panel.add(StatusLabel4); returnpanel; } publicstaticvoidmain(String[]args){ Gradea=newGrade(); }}主要功能:提供系統(tǒng)跟用戶接口的主界面,并提供了整個程序的入口地址,也就是主入口函數(shù)main(String[]arg){…}具體的界面請見下面的界面展示。實現(xiàn)目的:設(shè)定學(xué)生成績管理系統(tǒng)管理員界面,將功能選項放在主界面上,方便管理員使用。其中學(xué)生和教師界面和管理員界面大同小異,只是設(shè)定一些功能,如根本信息管理學(xué)生和教師不能進行操作。具體實現(xiàn):系統(tǒng)是一個簡單的界面,設(shè)定菜單欄和狀態(tài)欄,方便用戶使用。其中主要功能模板的函數(shù)分別為:〔1〕Manage_student.java實現(xiàn)學(xué)生信息的添加、刪除、查詢、修改功能?!?〕Manage_course.java實現(xiàn)課程信息的添加、刪除、查詢、修改功能?!?〕Manage_teacher.java實現(xiàn)教師信息的添加、刪除、查詢、修改功能?!?〕Manage_teach實現(xiàn)授課的添加、刪除、查詢、修改功能?!?〕SignalCount.java實現(xiàn)分數(shù)的計算?!?〕Photo.java實現(xiàn)分數(shù)的分布圖,將數(shù)據(jù)以柱形圖的形式表示出來?!?〕DataManager.java實現(xiàn)數(shù)據(jù)庫的連接?!?〕stu_course.java實現(xiàn)學(xué)生課表查詢?!?〕course_query.java實現(xiàn)教師課表查詢。模塊特色:〔1〕成績查詢豐富,可按學(xué)號、姓名、課程名進行模糊成績查詢?!?〕課程查詢豐富,可按學(xué)號、教師號、課程名、教師名、學(xué)生名進行查詢?!?〕成績統(tǒng)計:將學(xué)生的成績進行統(tǒng)計并用圖形界面柱形圖形象表示出來?!?〕界面友好,實現(xiàn)不同用戶的快速切換?!?〕系統(tǒng)易操作,用戶易掌握。3.3系統(tǒng)運用的主要技術(shù):技術(shù)一:數(shù)據(jù)庫技術(shù)在本次大作業(yè)中,采用了SQLserver2000數(shù)據(jù)庫。在數(shù)據(jù)庫中,通過編寫數(shù)據(jù)庫腳本生成score數(shù)據(jù)庫,同時在score中生成六張表和四個視圖:學(xué)生〔student〕、教師〔teacher〕、課程〔course〕、成績〔transcript〕、授課〔teach〕、管理員〔admin〕、成績視圖、學(xué)生課表視圖、教師課表視圖。在系統(tǒng)中,主要是對這五張表和四個視圖進行操作。所以首先需要連接數(shù)據(jù)庫,創(chuàng)立數(shù)據(jù)源StudentScore。在此次系統(tǒng)設(shè)計中,需熟練掌握SQL語句,充分使用聚合函數(shù)。如果在編寫Java語句的時候,數(shù)據(jù)庫語言如假設(shè)出錯,可以在SQLsever2000測試語句是否有錯,如果沒錯,可能是Java語句有錯或者參數(shù)沒有傳進去,在Java的界面可以用輸出結(jié)果來測試。同時利用巧妙使用數(shù)據(jù)庫中視圖來查詢學(xué)生成績、學(xué)生課表、教師課表。技術(shù)二:圖形界面學(xué)生成績管理系統(tǒng)主要是對學(xué)生成績進行管理,將學(xué)生成績直方分布圖表示。形象表現(xiàn)出學(xué)生成績的分布情況,方便學(xué)校老師對學(xué)生成績的掌握,以便教師不斷地改善自身的教育方法。技術(shù)三:多媒體學(xué)生成績管理系統(tǒng)中參加圖片作為系統(tǒng)界面背景,將界面美觀化,給與系統(tǒng)使用者視覺享受。3.4數(shù)據(jù)庫設(shè)計建數(shù)據(jù)庫:setnocountonsetdateformatymdusemastergoifnotexists(select*fromsysloginswherename='score')execsp_addloginscore,scorego/*createdatabase*/ifexists(select*fromsysdatabaseswherename='score')dropdatabasescoregocreatedatabasescoreonprimary(name='score',filename='d:\sqlDatabase\score.mdf',size=1,maxsize=5,filegrowth=1)logon(name=score_log,filename='d:\sqlDatabase\score_log',size=1,maxsize=5,filegrowth=1)go//建立學(xué)生表createtablestudent(Snochar(7)notnullprimarykey,check(Snolike'[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),Snamevarchar(10)notnull,sexchar(1)notnull,classnovarchar(20)notnull,addrchar(50)null,ageintnull,tel_novarchar(11)null,);//建立教師表createtableteacher(Tnochar(7)notnullprimarykey,check(Tnolike'[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),Tnamevarchar(20)notnull,sexchar(1)notnull,titlevarchar(8)notnull,ageintnull);//創(chuàng)立課程createtablecourse(Cnochar(6)notnullprimarykey,check(Cnolike'[0-9][0-9][0-9][0-9][0-9][0-9]'),Cnamevarchar(20)notnull,periodintnotnull,creditintnotnull);//創(chuàng)立成績createtabletranscript(Snochar(7)notnull,Cnochar(6)notnull,gradeintnotnull,primarykey(Sno,Cno),FOREIGNKEY(Sno)REFERENCESstudent(Sno),FOREIGNKEY(Cno)REFERENCEScourse(Cno));//創(chuàng)立授課表createtableteaching(Tnochar(7)notnull,Cnochar(6)notnull,primarykey(Tno,Cno),FOREIGNKEY(Tno)REFERENCESteacher(Tno),FOREIGNKEY(Cno)REFERENCEScourse(Cno));創(chuàng)立學(xué)生成績視圖createviewstu_scoreasselecta.Sno,Sname,classno,c.Cno,Cname,gradefromstudentasa,courseasb,transcriptascwherea.Sno=c.Snoandb.Cno=c.Cno創(chuàng)立教師查詢課表視圖createviewstudent_courseasselectt.Tno,Tname,title,c.Cno,Cnamefromcoursec,teachert,teachingbwherec.Cno=b.Cnoandt.Tno=b.Tno建立學(xué)生查詢課表視圖createviewstu_courseasselects.Sno,Sname,Cname,c.Cnofromstudents,transcriptt,coursecwheres.Sno=t.Snoandc.Cno=t.Cno3.5連接數(shù)據(jù)庫為方便數(shù)據(jù)庫的管理和使用,在系統(tǒng)開發(fā)過
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 家庭護理居間合同樣本
- 教育學(xué)工作匯報
- 窒息護理操作規(guī)程
- 礦山運輸糾紛處理合同
- 膜性腎病診療規(guī)范
- 舞蹈工作室教練聘用合同范本
- 2024珠海市索卡科技技工學(xué)校工作人員招聘考試及答案
- 2024溫州第二職業(yè)中等專業(yè)學(xué)校工作人員招聘考試及答案
- 2024清遠市清新區(qū)職業(yè)技術(shù)學(xué)校工作人員招聘考試及答案
- 2024河南省工業(yè)和信息化高級技工學(xué)校工作人員招聘考試及答案
- 【原創(chuàng)】學(xué)校書記中央八項規(guī)定精神學(xué)習(xí)心得
- 樓梯踏步抹灰標(biāo)準合同7篇
- 【廈門大學(xué)】DeepSeek大模型賦能高校教學(xué)和科研
- 西安房屋租賃合同(官方版)6篇
- 2025年商丘職業(yè)技術(shù)學(xué)院單招職業(yè)技能考試題庫含答案
- 2025年榆林城市投資經(jīng)營集團有限公司招聘筆試參考題庫含答案解析
- 2025屆高三化學(xué)二輪復(fù)習(xí) 化學(xué)工藝流程 課件
- 2024廣東深圳市龍崗區(qū)產(chǎn)服集團“春雨”第二批招聘筆試筆試參考題庫附帶答案詳解
- 提高水性玻璃烤漆水性金屬烤漆的耐溶劑耐水煮附著力和柔韌性的解決方案
- 內(nèi)蒙礦產(chǎn)資源產(chǎn)業(yè)投資基金總體方案
- 高二化學(xué)電離水解
評論
0/150
提交評論