




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、軟 件 學(xué) 院課程設(shè)計報告書課程名稱 java web 程序設(shè)計教程課程設(shè)計 設(shè)計題目 學(xué)生個人成績管理系統(tǒng) 專業(yè)班級 學(xué) 號 姓 名 指導(dǎo)教師 2011年 12 月目錄1 設(shè)計時間:12 設(shè)計目的13設(shè)計任務(wù)14 設(shè)計內(nèi)容14.11需求分析14.12系統(tǒng)功能圖24.13數(shù)據(jù)庫設(shè)計24.2詳細(xì)設(shè)計34.21各子系統(tǒng)的詳細(xì)設(shè)計34.22抽象數(shù)據(jù)類型的定義4運(yùn)行界面5主要代碼75總結(jié)期望19參考文獻(xiàn)21成績評定211 設(shè)計時間:2011-12-122011-12-162 設(shè)計目的JavaEE課程設(shè)計是對所學(xué)JavaEE與中間件課程的小結(jié),是提高學(xué)生對所學(xué)知識綜合應(yīng)用能力的一種方式,是集中實踐性環(huán)節(jié)
2、之一。要求同學(xué)們對課程中所學(xué)習(xí)到的知識綜合運(yùn)用,開發(fā)有一定規(guī)模的Java Web程序。3設(shè)計任務(wù)設(shè)計一個學(xué)生個人成績管理系統(tǒng)包括以下功能:(1)用戶以合法身份登錄系統(tǒng)后,才能進(jìn)行所有操作;用戶可以添加、查看、修改和刪除自己的成績信息;計算各課程的平均分。(2)添加學(xué)生成績:學(xué)生添加成績信息(包括學(xué)號、姓名、課程名稱、成績);(3)查看學(xué)生成績:查看所有課程的成績;(4)刪除成績:學(xué)生可以刪除自己的成績;(5)計算成績平均分:計算出所有成績的平均分4 設(shè)計內(nèi)容4.1概要設(shè)計4.11需求分析 成績管理成為學(xué)校教學(xué)管理中十分重要又相當(dāng)復(fù)雜的管理工作之一,單純的采用傳統(tǒng)的手工處理已經(jīng)不符合教育和管理的
3、要求,而計算機(jī)具有運(yùn)算速度快,處理能力強(qiáng)等特點(diǎn),很自然地進(jìn)入到這一應(yīng)用領(lǐng)域中。因此為了保證學(xué)校的信息流暢,工作高效,有必要設(shè)計一個學(xué)生成績管理系統(tǒng)。這不但能使教務(wù)人員從復(fù)雜的成績管理中解脫出來,而且對于推動教學(xué)的發(fā)展也起到了非常重要的作用。隨著學(xué)校規(guī)模的不斷擴(kuò)大,專業(yè),班級,學(xué)生的數(shù)量急劇增加,有關(guān)學(xué)生成績的各種信息量也成倍增長,而目前許多高校的學(xué)生成績管理仍停留在復(fù)雜的人工操作上,重復(fù)工作較多,工作量大,效率低,因此,迫切需要開發(fā)基于互聯(lián)網(wǎng)的個人成績管理系統(tǒng)。此次課程設(shè)計為設(shè)計一個就是設(shè)計一個這樣的學(xué)生個人成績管理系統(tǒng),該系統(tǒng)要求用戶以合法身份登錄后才能進(jìn)行所有操作。該用戶可以添加、查看、修
4、改和刪除自己的學(xué)生成績信息及計算各成績的平均分。4.1.2系統(tǒng)功能圖: 學(xué)生個人信息管理系統(tǒng)用戶以合法身份登錄添加學(xué)生成績查看學(xué)生成績刪除學(xué)生成績計算平均成績修改學(xué)生成績4.1.3數(shù)據(jù)庫設(shè)計:在數(shù)據(jù)庫中建立Scores表包括:(字段名稱,數(shù)據(jù)類型,長度,字段描述)。Scores表: 表1-1字段名稱數(shù)據(jù)類型長度字段描述idint4主鍵,自增長snoint4學(xué)號snamevarchar50姓名cnamevarchar50課程名gradeint4成績 4.2詳細(xì)設(shè)計程序流程圖:NY開始用戶登錄是否成功查看學(xué)生成績刪除學(xué)生成績添加學(xué)生成績計算平均成績結(jié)束4.2.1各子系統(tǒng)的詳細(xì)設(shè)計1.登錄子系統(tǒng)“i
5、ndex.jsp”用于用戶登錄,輸入用戶名和密碼登錄失敗時跳轉(zhuǎn)到“error.jsp”頁面,重新輸入用戶名和密碼。登錄成功進(jìn)入“success.jsp”頁面,點(diǎn)擊相應(yīng)按鈕進(jìn)行相應(yīng)操作。2.查詢子系統(tǒng)“showAllScore.jsp”用于顯示所有成績信息包括:學(xué)號,姓名,課程名,成績。建立超鏈接到其他三個子系統(tǒng)的頁面。3.刪除子系統(tǒng)“delete.jsp”用于刪除成績,輸入要刪除的學(xué)號點(diǎn)擊刪除。4.添加子系統(tǒng)Add.jsp用于填加成績,輸入要添加的數(shù)據(jù),點(diǎn)擊添加。5.計算平均成績子系統(tǒng) “acc.jsp”用于計算平均成績,點(diǎn)擊進(jìn)入所對應(yīng)的servlet進(jìn)行處理。4.2.2 抽象數(shù)據(jù)類型的定義所
6、需要導(dǎo)入的包及建立的包表4-1 包定義表包名類名功能scores .Dao.java增加信息顯示信息刪除信息平均成績信息com.scores.domainscores.java成績屬性User.java用戶屬性com.scores .serviceScores Service.java成績服務(wù)UserService.java用戶服務(wù)com. scores.servletAcctServlet.java計算平均成績控制層DeleteServlet.java刪除成績控制層UpdateServlet.java修改成績控制層LoginServlet.java登錄控制層AddServlet.java添加
7、成績控制層表4-2 頁面定義表頁面名稱作用add.jsp添加頁面delete.jsp刪除頁面update,jsp修改頁面error.jsp登陸失敗頁面,返回登錄界面index.jsp用戶界面Sava.jsp操作頁面ShowAllCost.jsp顯示頁面success.jsp登陸成功頁面,跳轉(zhuǎn)至用戶界面acci.jsp計算平均成績頁面4.2.3運(yùn)行界面登錄界面如下 登錄成功和失敗的頁面如下: 增刪改查操作的成績表格:添加后表為:刪除掉張思成績后表格如下:將李四的成績改為99后表格如下:4.2.4主要代碼1.登錄的JSP代碼:<form action="servlet/LoginS
8、ervlet" method="get"> 用戶名<inputtype="text" name="username"/> 密 碼<input type="password" name="password"/><br> <input type="submit" value="登錄"/>登錄失敗進(jìn)入error.jsp頁面重新輸入用戶名和密碼,登錄成功進(jìn)入success.jsp頁面,進(jìn)行相關(guān)操作。2
9、.SERVLET控制層代碼:添加成績代碼: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&q
10、uot;, list); request.getRequestDispatcher("/add.jsp").forward(request, response);刪除成績代碼:public class DeleteServlet extends HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException ScoreService scoreservice=new ScoreService(
11、); List list=scoreservice.getDeleteScores(); request.setAttribute("allscores", list); request.getRequestDispatcher("/delete.jsp").forward(request, response);修改成績代碼public class UpdateServlet extends HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse resp
12、onse)throws ServletException, IOException ScoreService scoreservice=new ScoreService(); List list=scoreservice.getAddScores(); request.setAttribute("allscores", list); request.getRequestDispatcher("/update.jsp").forward(request, response);查詢成績代碼:public class ScoreServlet extends
13、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("/show
14、AllScores.jsp").forward(request, response);計算平均成績代碼:public class ScoreServlet extends HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException ScoreService scoreservice=new ScoreService(); List list=scoreservice.getAllScores();
15、request.setAttribute("allscores", list); request.getRequestDispatcher("/acc.jsp").forward(request, response);3.DAO層代碼:DAO類的類名為“ScoreDao”,該類使用JDBC技術(shù)實現(xiàn),用于和數(shù)據(jù)庫交互,進(jìn)行相關(guān)的增、刪、改、查操作,它的實現(xiàn)代碼如下:public class ScoreDAO private static Score scores;public static List getAllScores()Connection con
16、=DBConnection.getConnection();tryList 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.s
17、etCname(rs.getString("cname"); score.setGrade(rs.getInt("grade"); list.add(score);mit();return list; catch(SQLException e) e.printStackTrace(); return null;public static List getAddScores() throws SQLExceptionConnection con=DBConnection.getConnection(); tryList list=new ArrayList
18、();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.getStr
19、ing("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();tryList list=new ArrayList();PreparedStatement ps=con.prepareStatem
20、ent("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");
21、 list.add( score);return list; catch(SQLException e) e.printStackTrace(); return null;public static List getUpdateScores()Connection con=DBConnection.getConnection();tryList list=new ArrayList();PreparedStatement ps=con.prepareStatement("update*scores set sno=? sname=? cname=? grade=?");Re
22、sultSet 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
23、e) e.printStackTrace(); return null;public static List getAccScores()Connection con=DBConnection.getConnection();tryList list=new ArrayList();PreparedStatement ps=con.prepareStatement("select*from scores");ResultSet rs=ps.executeQuery();while(rs.next() Score score=new Score(); score.setSno
24、(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
25、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() Sc
26、oreDAO 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.實體類代碼:Score實體: User實體:public class Sc
27、ore 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ù)庫代碼:public class DBConnection public static Connection getConnection() final String driverName="com.microsoft.jdbc.s
28、qlserver.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.setAutoCom
29、mit(false); System.out.println(con); return con; catch(SQLException e) e.printStackTrace(); return null; 7. JSP頁面:showAllScores.jsp:<body> <table border=1> <tr> <td>學(xué)號</td> <td>姓名</td> <td>課程名</td> <td>成績</td> </tr> <% List l
30、ist=(List) request.getAttribute("allscores"); if(list!=null) for(Iterator it=list.iterator();it.hasNext();) Score score=(Score)it.next(); %> <tr> <td><%=score.getSno() %></td> <td><%=score.getSname() %></td> <td><%=score.getCname() %>
31、;</td> <td><%=score.getGrade() %></td> <tr> <% %> <a href="add.jsp">添加成績</a> <a href="delete.jsp">刪除成績</a> <a href="update.jsp">修改成績</a> <a href="acc.jsp">計算平均成績</a> </body&
32、gt;Save.jsp:<body> <form action="servlet/servlet?arg=3" method="get"> <table border=1> <tr><td>學(xué)號</td><td> <input type="text" name="sno" ></td></tr> <tr><td>姓名</td><td> <inp
33、ut type="text" name="sname"></td></tr> <tr><td>課程名</td><td><input type="text" name="cname"></tr> <tr><td>成績</td><td><input type="text" name="grade"></td>
34、</tr> </table> <input type="submit" name="submit" value="提交"> </body>增刪改查操作jsp頁面:<table border=1> <tr> <th>學(xué)號</th> <th>姓名</th> <th>課程</th> <th>成績</th> </tr> <% List list=(List)
35、request.getAttribute("allscores"); if(list!=null) for(Iterator it=list.iterator();it.hasNext();) Score score=(Score)it.next(); %> <tr> <td><%=score.getSno()%></td> <td><%=score.getSname()%></td> <td><%=score.getCname()%></td> &
36、lt;td><%=score.getGrade()%></td> </tr> <% %>配置文件WEB.XML<servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>LoginServle
37、t</servlet-name> <servlet-class>com.scores.servlet.LoginServlet</servlet-class></servlet><servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name>
38、<servlet-name>AddServlet</servlet-name> <servlet-class>com.scores.servlet.AddServlet</servlet-class></servlet><servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE comp
39、onent</display-name> <servlet-name>DeleteServlet</servlet-name> <servlet-class>com.scores.servlet.DeleteServlet</servlet-class></servlet><servlet> <description>This is the description of my J2EE component</description> <display-name>This is
40、 the display name of my J2EE component</display-name> <servlet-name>ScoreServlet</servlet-name> <servlet-class>com.scores.servlet.ScoreServlet</servlet-class></servlet><servlet> <description>This is the description of my J2EE component</description&
41、gt; <display-name>This is the display name of my J2EE component</display-name> <servlet-name>UpdateServlet</servlet-name> <servlet-class>com.scores.servlet.UpdateServlet</servlet-class></servlet><servlet> <description>This is the description of m
42、y J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>AccServlet</servlet-name> <servlet-class>com.scores.servlet.AccServlet</servlet-class></servlet><servlet-mapping> <servlet-
43、name>LoginServlet</servlet-name> <url-pattern>/servlet/LoginServlet</url-pattern></servlet-mapping><servlet-mapping> <servlet-name>AddServlet</servlet-name> <url-pattern>/servlet/AddServlet</url-pattern></servlet-mapping><servlet-mapp
44、ing> <servlet-name>DeleteServlet</servlet-name> <url-pattern>/servlet/DeleteServlet</url-pattern></servlet-mapping><servlet-mapping> <servlet-name>ScoreServlet</servlet-name> <url-pattern>/servlet/ScoreServlet</url-pattern></servlet-mapping><servlet-mapping> <servlet-name>UpdateServlet</servlet-name> <url-pattern>/servlet/UpdateServlet&
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程制圖基礎(chǔ) 05第三章學(xué)習(xí)資料
- 江蘇省常州市新北區(qū)重點(diǎn)名校2025屆初三中考模擬沖刺卷(提優(yōu)卷)(一)生物試題含解析
- 山東經(jīng)貿(mào)職業(yè)學(xué)院《管理學(xué)經(jīng)典閱讀》2023-2024學(xué)年第二學(xué)期期末試卷
- 唐山師范學(xué)院《工程估價與實務(wù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 卓越學(xué)術(shù)之路
- 二零二五版車輛質(zhì)押借款合同書范例
- 天津家庭裝修合同書
- 轉(zhuǎn)診合作協(xié)議書模板
- 私人借款延期補(bǔ)充協(xié)議書
- 引領(lǐng)家居設(shè)計創(chuàng)新
- 2025春季學(xué)期國開電大本科《人文英語3》一平臺在線形考綜合測試(形考任務(wù))試題及答案
- 陜西氣象部門招聘筆試真題2024
- 針灸推拿治療失眠的禁忌
- 學(xué)校中層干部選拔任用實施方案
- 電氣工程及其自動化畢業(yè)論文-基于PLC的高空作業(yè)車電控系統(tǒng)設(shè)計
- 河南省駐馬店市部分學(xué)校2024-2025學(xué)年高三下學(xué)期3月月考地理試題(含答案)
- 云南省昭通市2024-2025學(xué)年七年級上學(xué)期期末地理試題(含答案)
- 2025年湖南省新華書店有限責(zé)任公司招聘筆試參考題庫含答案解析
- 2025至2030年中國聲音感應(yīng)控制電筒數(shù)據(jù)監(jiān)測研究報告
- 福格行為模型(中文版)
- DB50T 1041-2020 城鎮(zhèn)地質(zhì)安全監(jiān)測規(guī)范
評論
0/150
提交評論