javaEE學(xué)生個(gè)人成績(jī)管理系統(tǒng).doc
《javaEE學(xué)生個(gè)人成績(jī)管理系統(tǒng).doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《javaEE學(xué)生個(gè)人成績(jī)管理系統(tǒng).doc(24頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
軟 件 學(xué) 院 課程設(shè)計(jì)報(bào)告書 課程名稱 java web 程序設(shè)計(jì)教程課程設(shè)計(jì) 設(shè)計(jì)題目 學(xué)生個(gè)人成績(jī)管理系統(tǒng) 專業(yè)班級(jí) 學(xué) 號(hào) 姓 名 指導(dǎo)教師 2011年 12 月 目錄 1 設(shè)計(jì)時(shí)間: 1 2 設(shè)計(jì)目的 1 3設(shè)計(jì)任務(wù) 1 4 設(shè)計(jì)內(nèi)容 1 4.1.1需求分析 1 4.1.2系統(tǒng)功能圖 2 4.1.3數(shù)據(jù)庫(kù)設(shè)計(jì) 2 4.2詳細(xì)設(shè)計(jì) 3 4.2.1各子系統(tǒng)的詳細(xì)設(shè)計(jì) 3 4.2.2抽象數(shù)據(jù)類型的定義 4 4.2.3運(yùn)行界面 5 4.2.4主要代碼 7 5總結(jié)期望 19 參考文獻(xiàn) 21 成績(jī)?cè)u(píng)定 21 1 設(shè)計(jì)時(shí)間: 2011-12-12——2011-12-16 2 設(shè)計(jì)目的 JavaEE課程設(shè)計(jì)是對(duì)所學(xué)JavaEE與中間件課程的小結(jié),是提高學(xué)生對(duì)所學(xué)知識(shí)綜合應(yīng)用能力的一種方式,是集中實(shí)踐性環(huán)節(jié)之一。要求同學(xué)們對(duì)課程中所學(xué)習(xí)到的知識(shí)綜合運(yùn)用,開發(fā)有一定規(guī)模的Java Web程序。 3設(shè)計(jì)任務(wù) 設(shè)計(jì)一個(gè)學(xué)生個(gè)人成績(jī)管理系統(tǒng)包括以下功能: (1)用戶以合法身份登錄系統(tǒng)后,才能進(jìn)行所有操作;用戶可以添加、查看、修改和刪除自己的成績(jī)信息;計(jì)算各課程的平均分。 (2)添加學(xué)生成績(jī):學(xué)生添加成績(jī)信息(包括學(xué)號(hào)、姓名、課程名稱、成績(jī)); (3)查看學(xué)生成績(jī):查看所有課程的成績(jī); (4)刪除成績(jī):學(xué)生可以刪除自己的成績(jī); (5)計(jì)算成績(jī)平均分:計(jì)算出所有成績(jī)的平均分 4 設(shè)計(jì)內(nèi)容 4.1概要設(shè)計(jì) 4.1.1需求分析 成績(jī)管理成為學(xué)校教學(xué)管理中十分重要又相當(dāng)復(fù)雜的管理工作之一,單純的采用傳統(tǒng)的手工處理已經(jīng)不符合教育和管理的要求,而計(jì)算機(jī)具有運(yùn)算速度快,處理能力強(qiáng)等特點(diǎn),很自然地進(jìn)入到這一應(yīng)用領(lǐng)域中。因此為了保證學(xué)校的信息流暢,工作高效,有必要設(shè)計(jì)一個(gè)學(xué)生成績(jī)管理系統(tǒng)。這不但能使教務(wù)人員從復(fù)雜的成績(jī)管理中解脫出來(lái),而且對(duì)于推動(dòng)教學(xué)的發(fā)展也起到了非常重要的作用。隨著學(xué)校規(guī)模的不斷擴(kuò)大,專業(yè),班級(jí),學(xué)生的數(shù)量急劇增加,有關(guān)學(xué)生成績(jī)的各種信息量也成倍增長(zhǎng),而目前許多高校的學(xué)生成績(jī)管理仍停留在復(fù)雜的人工操作上,重復(fù)工作較多,工作量大,效率低,因此,迫切需要開發(fā)基于互聯(lián)網(wǎng)的個(gè)人成績(jī)管理系統(tǒng)。此次課程設(shè)計(jì)為設(shè)計(jì)一個(gè)就是設(shè)計(jì)一個(gè)這樣的學(xué)生個(gè)人成績(jī)管理系統(tǒng),該系統(tǒng)要求用戶以合法身份登錄后才能進(jìn)行所有操作。該用戶可以添加、查看、修改和刪除自己的學(xué)生成績(jī)信息及計(jì)算各成績(jī)的平均分。 4.1.2系統(tǒng)功能圖: 學(xué)生個(gè)人信息管理系統(tǒng) 用戶以合法身份登錄 添加學(xué)生成績(jī) 查看學(xué)生成績(jī) 刪除學(xué)生成績(jī) 計(jì)算平均成績(jī) 修改學(xué)生成績(jī) 4.1.3數(shù)據(jù)庫(kù)設(shè)計(jì): 在數(shù)據(jù)庫(kù)中建立Scores表包括:(字段名稱,數(shù)據(jù)類型,長(zhǎng)度,字段描述)。 Scores表: 表1-1 字段名稱 數(shù)據(jù)類型 長(zhǎng)度 字段描述 id int 4 主鍵,自增長(zhǎng) sno int 4 學(xué)號(hào) sname varchar 50 姓名 cname varchar 50 課程名 grade int 4 成績(jī) 4.2詳細(xì)設(shè)計(jì) 程序流程圖: N Y 開始 用戶登錄 是否成功 查看學(xué)生成績(jī) 刪除學(xué)生成績(jī) 添加學(xué)生成績(jī) 計(jì)算平均成績(jī) 結(jié)束 4.2.1各子系統(tǒng)的詳細(xì)設(shè)計(jì) 1.登錄子系統(tǒng) “index.jsp”用于用戶登錄,輸入用戶名和密碼登錄失敗時(shí)跳轉(zhuǎn)到“error.jsp”頁(yè)面,重新輸入用戶名和密碼。登錄成功進(jìn)入“success.jsp”頁(yè)面,點(diǎn)擊相應(yīng)按鈕進(jìn)行相應(yīng)操作。 2.查詢子系統(tǒng) “showAllScore.jsp”用于顯示所有成績(jī)信息包括:學(xué)號(hào),姓名,課程名,成績(jī)。建立超鏈接到其他三個(gè)子系統(tǒng)的頁(yè)面。 3.刪除子系統(tǒng) “delete.jsp”用于刪除成績(jī),輸入要?jiǎng)h除的學(xué)號(hào)點(diǎn)擊刪除。 4.添加子系統(tǒng) Add.jsp用于填加成績(jī),輸入要添加的數(shù)據(jù),點(diǎn)擊添加。 5.計(jì)算平均成績(jī)子系統(tǒng) “acc.jsp”用于計(jì)算平均成績(jī),點(diǎn)擊進(jìn)入所對(duì)應(yīng)的servlet進(jìn)行處理。 4.2.2 抽象數(shù)據(jù)類型的定義 所需要導(dǎo)入的包及建立的包 表4-1 包定義表 包名 類名 功能 com.scores.dao scores .Dao.java 增加信息 顯示信息 刪除信息 平均成績(jī)信息 com.scores.domain scores.java 成績(jī)屬性 User.java 用戶屬性 com.scores .service Scores Service.java 成績(jī)服務(wù) UserService.java 用戶服務(wù) com. scores.servlet AcctServlet.java 計(jì)算平均成績(jī)控制層 DeleteServlet.java 刪除成績(jī)控制層 UpdateServlet.java 修改成績(jī)控制層 LoginServlet.java 登錄控制層 AddServlet.java 添加成績(jī)控制層 表4-2 頁(yè)面定義表 頁(yè)面名稱 作用 add.jsp 添加頁(yè)面 delete.jsp 刪除頁(yè)面 update,jsp 修改頁(yè)面 error.jsp 登陸失敗頁(yè)面,返回登錄界面 index.jsp 用戶界面 Sava.jsp 操作頁(yè)面 ShowAllCost.jsp 顯示頁(yè)面 success.jsp 登陸成功頁(yè)面,跳轉(zhuǎn)至用戶界面 acci.jsp 計(jì)算平均成績(jī)頁(yè)面 4.2.3運(yùn)行界面 登錄界面如下 登錄成功和失敗的頁(yè)面如下: 增刪改查操作的成績(jī)表格: 添加后表為: 刪除掉張思成績(jī)后表格如下: 將李四的成績(jī)改為99后表格如下: 4.2.4主要代碼 1.登錄的JSP代碼:登錄失敗進(jìn)入error.jsp頁(yè)面重新輸入用戶名和密碼,登錄成功進(jìn)入success.jsp頁(yè)面,進(jìn)行相關(guān)操作。 2.SERVLET控制層代碼: 添加成績(jī)代碼: public class AddServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ScoreService scoreservice=new ScoreService(); List list=scoreservice.getAddScores(); request.setAttribute("allscores", list); request.getRequestDispatcher("/add.jsp").forward(request, response); } 刪除成績(jī)代碼: public class DeleteServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ScoreService scoreservice=new ScoreService(); List list=scoreservice.getDeleteScores(); request.setAttribute("allscores", list); request.getRequestDispatcher("/delete.jsp").forward(request, response); } 修改成績(jī)代碼 public class UpdateServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ScoreService scoreservice=new ScoreService(); List list=scoreservice.getAddScores(); request.setAttribute("allscores", list); request.getRequestDispatcher("/update.jsp").forward(request, response); } 查詢成績(jī)代碼: public class ScoreServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ScoreService scoreservice=new ScoreService(); List list=scoreservice.getAllScores(); request.setAttribute("allscores", list); request.getRequestDispatcher("/showAllScores.jsp").forward(request, response); } 計(jì)算平均成績(jī)代碼: public class ScoreServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ScoreService scoreservice=new ScoreService(); List list=scoreservice.getAllScores(); request.setAttribute("allscores", list); request.getRequestDispatcher("/acc.jsp").forward(request, response); } 3.DAO層代碼:DAO類的類名為“ScoreDao”,該類使用JDBC技術(shù)實(shí)現(xiàn),用于和數(shù)據(jù)庫(kù)交互,進(jìn)行相關(guān)的增、刪、改、查操作,它的實(shí)現(xiàn)代碼如下: public class ScoreDAO { private static Score scores; public static List getAllScores(){ Connection con=DBConnection.getConnection(); try{ List list=new ArrayList(); PreparedStatement ps=con.prepareStatement("select*from scores"); ResultSet rs=ps.executeQuery(); while(rs.next()){ Score score=new Score(); score.setSno(rs.getInt("sno")); score.setSname(rs.getString("sname")); score.setCname(rs.getString("cname")); score.setGrade(rs.getInt("grade")); list.add(score); } con.commit(); return list; } catch(SQLException e){ e.printStackTrace(); } return null; } public static List getAddScores() throws SQLException{ Connection con=DBConnection.getConnection(); try{ List list=new ArrayList(); PreparedStatement ps=con.prepareStatement("insert into scores(sno,sname,cname,grade)values(?,?,?,?)"); ResultSet rs=ps.executeQuery(); while(rs.next()){ Score score=new Score(); score.setSno(rs.getInt("sno")); score.setSname(rs.getString("sname")); score.setCname(rs.getString("cname")); score.setGrade(rs.getInt("grade")); list.add(score); } return list;} catch(SQLException e){ e.printStackTrace(); } return null; } public static List getDeleteScores(){ Connection con=DBConnection.getConnection(); try{ List list=new ArrayList(); PreparedStatement ps=con.prepareStatement("delete*from scores where id=?"); ResultSet rs=ps.executeQuery(); while(rs.next()){ Score score=new Score(); score.setSno(rs.getInt("sno")); score.setSname(rs.getString("sname")); score.setCname(rs.getString("cname")); score.setGrade(rs.getInt("grade")); list.add( score); } return list;} catch(SQLException e){ e.printStackTrace(); } return null; } public static List getUpdateScores(){ Connection con=DBConnection.getConnection(); try{ List list=new ArrayList(); PreparedStatement ps=con.prepareStatement("update*scores set sno=? sname=? cname=? grade=?"); ResultSet rs=ps.executeQuery(); while(rs.next()){ Score score=new Score(); score.setSno(rs.getInt("sno")); score.setSname(rs.getString("sname")); score.setCname(rs.getString("cname")); score.setGrade(rs.getInt("grade")); list.add(score); } return list;} catch(SQLException e){ e.printStackTrace(); } return null; } public static List getAccScores(){ Connection con=DBConnection.getConnection(); try{ List list=new ArrayList(); PreparedStatement ps=con.prepareStatement("select*from scores"); ResultSet rs=ps.executeQuery(); while(rs.next()){ Score score=new Score(); score.setSno(rs.getInt("sno")); score.setSname(rs.getString("sname")); score.setCname(rs.getString("cname")); score.setGrade(rs.getInt("grade")); list.add(score); } return list;} catch(SQLException e){ e.printStackTrace(); } return null; } } 4.SERVICE層代碼: public class ScoreService { public List getAllScores(){ ScoreDAO soreDAO=new ScoreDAO(); return ScoreDAO.getAllScores(); } public List getAddScores(){ ScoreDAO soreDAO=new ScoreDAO(); return ScoreDAO.getAddScores(); } public List getDeleteScores(){ ScoreDAO soreDAO=new ScoreDAO(); return ScoreDAO.getDeleteScores(); } public List getUpdateScores() { ScoreDAO soreDAO=new ScoreDAO(); return ScoreDAO.getUpdateScores(); } } public class UserService { public static boolean CheckLogin(User user){ if(user.getUsername().equals("admain")&&user.getPassword().equals("123456")){ return true; } return false; } } 5.實(shí)體類代碼: Score實(shí)體: User實(shí)體: public class Score { public class User { private int sno; private String username; private String sname; private String password; //生成set和get方法 private String cname; private int grade;//生成set和get方法 6.連接數(shù)據(jù)庫(kù)代碼: public class DBConnection { public static Connection getConnection(){ final String driverName="com.microsoft.jdbc.sqlserver.SQLServerDriver"; final String url="jdbc:microsoft:sqlserver://localhost:1433;databasename=mydb"; try{ Class.forName(driverName); } catch(ClassNotFoundException e){ e.printStackTrace(); } try{ Connection con=DriverManager.getConnection(url,"sa","sa"); con.setAutoCommit(false); System.out.println(con); return con; } catch(SQLException e){ e.printStackTrace(); } return null; } } 7. JSP頁(yè)面: showAllScores.jsp:
學(xué)號(hào) | 姓名 | 課程名 | 成績(jī) | |||||||||||||
<%=score.getSno() %> | <%=score.getSname() %> | <%=score.getCname() %> | <%=score.getGrade() %> | |||||||||||||
學(xué)號(hào) | |
姓名 | |
課程名 | |
成績(jī) |
學(xué)號(hào) | 姓名 | 課程 | 成績(jī) |
---|---|---|---|
<%=score.getSno()%> | <%=score.getSname()%> | <%=score.getCname()%> | <%=score.getGrade()%> |
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- javaEE 學(xué)生 個(gè)人 成績(jī)管理系統(tǒng)
copyright@ 2023-2025 zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有 聯(lián)系電話:18123376007
備案號(hào):蜀ICP備2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)
本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!
鏈接地址:http://m.appdesigncorp.com/p-6594707.html