學(xué)生成績管理系統(tǒng)課程設(shè)計(JAVA版)_第1頁
學(xué)生成績管理系統(tǒng)課程設(shè)計(JAVA版)_第2頁
學(xué)生成績管理系統(tǒng)課程設(shè)計(JAVA版)_第3頁
學(xué)生成績管理系統(tǒng)課程設(shè)計(JAVA版)_第4頁
學(xué)生成績管理系統(tǒng)課程設(shè)計(JAVA版)_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 課 程 設(shè) 計 報 告課程設(shè)計名稱:學(xué)生成績管理系統(tǒng)系 : 三系 學(xué)生姓名: * 班 級: 計算機(jī)3班 學(xué) 號: * 成 績: 指導(dǎo)教師: * 開課時間:2021-2021學(xué)年 2 學(xué)期一設(shè)計題目學(xué)生成績管理系統(tǒng)二主要內(nèi)容學(xué)生成績管理系統(tǒng)從功能上劃分可分為以下幾大模塊:學(xué)生信息管理模塊:設(shè)置學(xué)生根本信息,并可以對學(xué)生信息進(jìn)展添加、修改、刪除。課程信息管理:設(shè)置課程號,課程名,任課教師等課程信息,并可以對課程信息進(jìn)展添加、修改、刪除。成績信息管理模塊:設(shè)置成績信息,并可以對成績信息進(jìn)展添加、修改、刪除。還可以用關(guān)鍵字查詢并調(diào)出數(shù)據(jù)庫里的學(xué)生根本成績信息的修改、刪除等。輸出查詢的學(xué)生成績信息,并

2、對學(xué)生成績總分,平均分等進(jìn)展統(tǒng)計。三具體要求1.具有良好的系統(tǒng)性能,友好的用戶界面2.較高的處理效率,便于使用和維護(hù)3.采用成熟的技術(shù)開發(fā),是系統(tǒng)具有較高的技術(shù)水平和較長的生命周期4.系統(tǒng)盡可能簡化重復(fù)工作,提高工作效率簡化數(shù)據(jù)查詢、降低統(tǒng)計難度四進(jìn)度安排序號內(nèi) 容時間天1調(diào)試工具使用2概要設(shè)計13詳細(xì)設(shè)計24調(diào)試分析5測試結(jié)果16總結(jié)和完成設(shè)計報告2合 計7五成績評定正文系統(tǒng)的需求分析和功能設(shè)計需求分析:該學(xué)生成績管理系統(tǒng)的開發(fā)是為了能夠讓用戶方便、快速的查找有關(guān)于一些學(xué)生的根本信息。同時該學(xué)生成績管理系統(tǒng)的建立也要要求能夠節(jié)約用戶時間和節(jié)約系統(tǒng)資源等。該系統(tǒng)是由以下幾局部組成:系統(tǒng)管理、學(xué)

3、生管理、課程管理、成績管理和信息管理。在系統(tǒng)管理功能中有退出功能;學(xué)生成績管理功能中有增加學(xué)生、修改學(xué)生和刪除學(xué)生;課程管理功能中有增加課程、修改課程和刪除課程;成績管理功能中成績增加和成績修改;信息管理功能中學(xué)生信息查詢、課程信息查詢和成績查詢。在查詢功能中還有一些子功能。功能設(shè)計:學(xué)生成績管理系統(tǒng)分為3大功能模塊,分別為:學(xué)生信息管理、課程管理、成績管理。系統(tǒng)各個局部及其包括的具體功能模塊如圖1所示。學(xué)生成績管理系統(tǒng)學(xué)生信息管理課程信息管理成績信息管理信息查詢學(xué)生信息修改學(xué)生信息刪除課程信息添加課程信息修改課程信息刪除成績信息添加成績信息修改成績信息刪除學(xué)生信息查詢課程信息查詢成績信息查詢

4、按學(xué)號查詢按姓名查詢按性別查詢按專業(yè)查詢按班級查詢按課程名查詢按任課教師查詢按科目查詢圖1 系統(tǒng)功能構(gòu)造圖(1) 數(shù)據(jù)庫概念構(gòu)造設(shè)計局部E-R圖學(xué)生實體圖:共有6中屬性,包括學(xué)號、姓名、性別、出生日期、專業(yè)、籍貫等6種屬性,如圖2所示。學(xué)生學(xué)號姓名籍貫專業(yè)性別出生日期圖2學(xué)生實體圖課程實體圖,課程信息實體共有3種屬性,包括課程號,課程名,任課教師等3種屬性,如圖3所示。課程課程號任課教師課程名圖3課程實體圖成績信息學(xué)號考試成績課程名成績實體圖,成績信息實體共有3種屬性,包括學(xué)生學(xué)號,課程名稱,平考試成績,成績信息實體圖如圖4所示。 圖4成績信息實體圖系統(tǒng)E-R圖如圖5所示11nn學(xué)生學(xué)號姓名籍

5、貫專業(yè)出生日期性別課程信息選課課程名課程號任課教師成績信息課程名學(xué)號成績考試(2) 數(shù)據(jù)庫邏輯構(gòu)造設(shè)計本系統(tǒng)采用ACCESS數(shù)據(jù)庫,各數(shù)據(jù)表構(gòu)造如下:學(xué)生信息表: 如表1所示表1 學(xué)生信息表課程信息表: 如表2所示表2 課程信息表成績信息表: 如表3所示表3 成績信息表2、源程序及注釋1增加學(xué)生代碼中主要代碼如下:public void actionPerformed(ActionEvent e) if(e.getSource()=clearInfo) /設(shè)置清空按鈕功能 sNum.setText(); sBirth.setText(); sMajor.setText(); sHome.set

6、Text(); sName.setText(); else if(e.getSource()=addInfo) /設(shè)置增加按鈕功能 String xh=sNum.getText(); String xm=sName.getText(); String xb; if(xb1.isSelected() /判斷所選人的性別 xb=男; else xb=女; String csrq=sBirth.getText(); String zy=sMajor.getText(); String jg=sHome.getText(); if(xh.equals() JOptionPane.showMessage

7、Dialog(this,學(xué)號不能為空!,操作提,JOptionPane.ERROR_MESSAGE); /創(chuàng)立學(xué)號不能為空提示信息框 else if(xm.equals() JOptionPane.showMessageDialog(this,姓名不能為空!,操作提示,JOptionPane.ERROR_MESSAGE); /創(chuàng)立姓名不能為空提示信息框 try /用來捕獲異常 Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); String url=jdbc:odbc:driver=Microsoft Access Driver (*.mdb);DBQ=s

8、tudent.mdb; /連接student數(shù)據(jù)庫Connection con=DriverManager.getConnection(url); /建立連接Statement stm=con.createStatement(); /創(chuàng)立Statement對象 /創(chuàng)立添加學(xué)生sql語句String str=insert into xs(xh,xm,xb,csrq,zy,jg) values(+xh+,+xm+,+xb+,+csrq+,+zy+,+jg+);int rs=stm.executeUpdate(sqlstr); /更新數(shù)據(jù)庫記錄if(rs0) /判斷記錄是否添加JOptionPane

9、.showMessageDialog(this,恭喜你,學(xué)生信息添加成功!,提示,JOptionPane.INFORMATION_MESSAGE); /創(chuàng)立信息添加成功提示框con.close(); / 關(guān)閉結(jié)果集stm.close(); /關(guān)閉語句catch(Exception E) /用來處理異常 public static void main(String arg) /創(chuàng)立主函數(shù)new StuInfo(); /調(diào)用StuInfo()方法2.修改學(xué)生代碼中主要局部代碼如下:public void actionPerformed(ActionEvent ae) if(ae.getSource

10、()=btnClear) /設(shè)置取消按鈕功能 sNum.setText(); sNum.requestFocus(); else if(ae.getSource()=btnOk) /設(shè)置確定按鈕功能 String xh=sNum.getText(); if(xh.equals() JOptionPane.showMessageDialog(this,學(xué)號不能為空!,警告,JOptionPane.ERROR_MESSAGE); 創(chuàng)立提示信息框 else StuInfo newst=new StuInfo(); newst.sNum.setText(xh); newst.sNum.setEnabl

11、ed(false); /把學(xué)號文本框禁用 newst.addInfo.setEnabled(false); /把增加按鈕設(shè)置為禁用 newst.modifyInfo.setEnabled(true); /把修改按鈕設(shè)置為可用 newst.deleteInfo.setEnabled(false); /把刪除按鈕設(shè)置為禁用 try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); String url= jdbc:odbc:driver=Microsoft Access Driver (*.mdb);DBQ=student.mdb;/連接student數(shù)據(jù)庫

12、Connection con=DriverManager.getConnection(url);/建立連接Statement stm=con.createStatement();/創(chuàng)立Statement對象String sql =select * from xs where xh=+xh+; /按學(xué)號查詢學(xué)生表中所有數(shù)據(jù) ResultSet rs= stm.executeQuery(sql); /執(zhí)行sql操作 while(rs.next() /循環(huán)執(zhí)行數(shù)據(jù)庫中每條記錄newst.sNum.setText(rs.getString(xh); / 獲取xh字段 newst.sName.setTe

13、xt(rs.getString(xm); / 獲取xm字段if(rs.getString(xb).equals(男) /獲取xb字段,判斷所選性別 newst.xb1.setSelected(true); else newst.xb2.setSelected(true); newst.sMajor.setText(rs.getString(zy); newst.sHome.setText(rs.getString(jg);int n=stm.executeUpdate(sql); / 執(zhí)行sql更新命令if(n0) /判斷是否修改數(shù)據(jù)庫JOptionPane.showMessageDialog

14、(null,成功修改一條新的紀(jì)錄!);elseJOptionPane.showMessageDialog(null, 更新失敗, 錯誤, JOptionPane.ERROR_MESSAGE); con.close(); /關(guān)閉結(jié)果集stm.close(); /關(guān)閉語句catch(Exception e)System.out.println(e); /輸出信息 public static void main(String args) /創(chuàng)造主函數(shù) new xiugai(); /調(diào)用xiugai()方法 3.學(xué)生刪除代碼中主要局部代碼:public void actionPerformed(Act

15、ionEvent e) if(e.getSource()=button) /設(shè)置刪除按鈕 tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver); String url= jdbc:odbc:driver=Microsoft Access Driver (*.mdb);DBQ=student.mdb; /連接student數(shù)據(jù)庫Connection conn=DriverManager.getConnection(url);/建立連接Statement stmt=conn.createStatement(); /創(chuàng)立Statement對象 String s

16、qlstr =delete from xs where xh=+sHome.getText()+;/創(chuàng)立刪除從xs表中刪除語句 int result= stmt.executeUpdate(sqlstr); /執(zhí)行更新命令 if (result0) /判斷是否刪除 JOptionPane.showMessageDialog(this,學(xué)生刪除成功!,提示,JOptionPane.INFORMATION_MESSAGE); conn.close(); / 關(guān)閉結(jié)果集 stmt.close(); /關(guān)閉語句 catch(Exception E) public static void main(St

17、ring arg) /創(chuàng)立主函數(shù)new scstudent(); /調(diào)用scstudent()方法3、運行例如及結(jié)果分析1.主界面結(jié)果分析:該界面是學(xué)生成績管理系統(tǒng)的主界面,從這界面可以看出有幾個功能系統(tǒng)。2.添加界面結(jié)果分析:在學(xué)生信息中輸入相應(yīng)的信息后按增加按鈕就會出現(xiàn)恭喜你,學(xué)生信息添加成功。 如果在輸入信息時,沒有輸入相應(yīng)的學(xué)號和姓名,那么會出現(xiàn)相應(yīng)的提示框提示學(xué)號和姓名不能為空。3.修改界面結(jié)果分析:在信息框中輸入課程號,按確定按鈕那么會跳出相應(yīng)的課程信息框,如果數(shù)據(jù)庫中有這一課程號,那么會把相應(yīng)的信息顯示出來,否那么只會顯示課程號。4.刪除界面結(jié)果分析:在信息框中輸入要刪除的學(xué)生學(xué)

18、號按確定按鈕,如果所輸入的學(xué)號在數(shù)據(jù)庫中存在,那么會跳出學(xué)生刪除成功提示框,否那么按確定按鈕無效。5.查詢界面結(jié)果分析:此結(jié)果會從所有的顯示數(shù)據(jù)中被提取出來,并不是只顯示查詢結(jié)果。4、調(diào)試和運行程序過程中產(chǎn)生的問題及采取的措施1.在調(diào)試程序時在定義公共類是出現(xiàn)問題,導(dǎo)致錯誤的原因是類名和java文件名不同,只要public去掉或把java文件名修改成與類名一致。2.在調(diào)試課程增加程序時,調(diào)試結(jié)果沒有顯示錯誤,但在運行時增加功能沒有實現(xiàn),導(dǎo)致錯誤的原因可能是數(shù)據(jù)庫問題,查找數(shù)據(jù)庫代碼和數(shù)據(jù)庫中相應(yīng)的表發(fā)現(xiàn)課程表中沒有xm這一字段,代碼中出現(xiàn)了,刪除這一字段即可。3.在調(diào)試主函數(shù)代碼時會出現(xiàn)一些找

19、不到符號的問題,有可能時你調(diào)用的子函數(shù)不在同一個文件下,也有可能是你調(diào)用的子函數(shù)不存在,還有可能是子函數(shù)沒有調(diào)試和運行。要想解決問題只要把相應(yīng)的java文件放在同一個文件下或創(chuàng)立相應(yīng)的子函數(shù)還可以把那些子函數(shù)調(diào)試和運行一邊,再調(diào)試主函數(shù)即可。4.在調(diào)試和運行后界面中出現(xiàn)的文字不全和文本框大小與窗體大小不搭調(diào),導(dǎo)致的原因是標(biāo)簽和文本框大小沒有設(shè)置好。只要重新設(shè)置一下大小即可。5、對系統(tǒng)相關(guān)功能的討論、分析,改良設(shè)想該學(xué)生成績管理系統(tǒng)的建立主要分為系統(tǒng)管理、學(xué)生管理、課程管理、成績管理和信息管理。在這幾個系統(tǒng)功能中有些功能的實現(xiàn)是運用繼承JFrame類和實現(xiàn)監(jiān)聽器ActionListener來實現(xiàn)

20、的。為了更好的實現(xiàn)功能可以創(chuàng)立構(gòu)造函數(shù)來實現(xiàn)初始化。同時也可以創(chuàng)造方法通過方法調(diào)用來實現(xiàn)相應(yīng)的功能。為了進(jìn)一步完善學(xué)生成績管理系統(tǒng)可以有以下改良設(shè)想:1.在信息查詢系統(tǒng)功能中增加補考信息查詢菜單項,再補考信息查詢菜單中設(shè)置補考學(xué)生信息查詢和成績及格學(xué)生信息查詢子菜單項。在補考學(xué)生信息查詢中添加補考是否通過信息查詢。2.在信息查詢系統(tǒng)功能中添加按學(xué)期查詢,在這個查詢中把學(xué)生這一學(xué)期的所有信息都顯示在界面上。3.在主界面中增加獲獎信息系統(tǒng)功能項,在這中添加獲獎信息,修改獲獎信息,刪除獲獎信息和獲獎信息查詢。在獲獎信息查詢中添加按等級查詢和按競賽查詢。在按等級查詢中只要等級名后按查詢按鈕就會顯示此等

21、級是否通過等這樣的信息;在按競賽查詢中輸入競賽名,那么會彈出你有沒有參加此競賽框,如有那么按確定按鈕,那么會顯示出此同學(xué)獲講情況。4.在主界面中添加評價信息系統(tǒng)功能項,此功能主要是為了實現(xiàn)一些人對學(xué)生的評價。在這項中分別添加輔導(dǎo)員評價、任課教師評價和同學(xué)評價。在輔導(dǎo)員評價中只要輸入學(xué)生的學(xué)號按確定按鈕就會跳出相應(yīng)的評價信息;在任課教師評價中輸入學(xué)生學(xué)號后按確定按鈕,那么會跳出要你輸入課程名信息框,輸入課程名后,在按確定按鈕那么會跳出課程名和任課教師名點擊查詢那么會顯示出相應(yīng)的信息;在同學(xué)評價中只要輸入學(xué)生學(xué)號即可。6、總結(jié)這次的課程設(shè)計任務(wù)是開發(fā)學(xué)生成績管理系統(tǒng),在開發(fā)的過程中可以看出自己對j

22、ava知識學(xué)到的很少,這次的課程設(shè)計能夠讓我學(xué)到很多java知識,同時也有利于期末考試。因為該系統(tǒng)的建立幾乎用到了java這學(xué)期所學(xué)的所有知識。這等于讓我復(fù)習(xí)了一邊java知識。在創(chuàng)立學(xué)生成績管理系統(tǒng)時,要想把界面布局好看些首先要會設(shè)置標(biāo)簽和文本框大小位置,在設(shè)置這時用setBounds( ),在這括號中有四個數(shù)字分別表示垂直、水平、長度和高度。同時為了防止誤操作一些按鈕和文本框可以利用setEnabled(false)來把按鈕和文本框禁用。要想使該學(xué)生成績管理系統(tǒng)實現(xiàn)添加、修改、刪除和查詢功能時就必須與數(shù)據(jù)庫連接起來。用以下代碼實現(xiàn)數(shù)據(jù)庫的連接:Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); String url=jdbc:odbc:drive=Micro

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論