




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、軟 件 學(xué) 院課程設(shè)計(jì)報(bào)告書(shū)課程名稱 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í)間:12 設(shè)計(jì)目的13設(shè)計(jì)任務(wù)14 設(shè)計(jì)內(nèi)容14.11需求分析14.12系統(tǒng)功能圖24.13數(shù)據(jù)庫(kù)設(shè)計(jì)24.2詳細(xì)設(shè)計(jì)34.21各子系統(tǒng)的詳細(xì)設(shè)計(jì)34.22抽象數(shù)據(jù)類型的定義4運(yùn)行界面5主要代碼75總結(jié)期望19參考文獻(xiàn)21成績(jī)?cè)u(píng)定211 設(shè)計(jì)時(shí)間:2011-12-122011-12-162 設(shè)計(jì)目的JavaEE課程設(shè)計(jì)是對(duì)所學(xué)JavaEE與中間件課程的小結(jié),是提高學(xué)生對(duì)所學(xué)知識(shí)綜合應(yīng)用能力的一種方式,是集中實(shí)踐性環(huán)節(jié)
2、之一。要求同學(xué)們對(duì)課程中所學(xué)習(xí)到的知識(shí)綜合運(yùn)用,開(kāi)發(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.11需求分析 成績(jī)管理成為學(xué)校教學(xué)管理中十分重要又相當(dāng)復(fù)雜的管理工作之一,單純的采用傳統(tǒng)的手工處理已經(jīng)不符合教育和管理的
3、要求,而計(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ù)工作較多,工作量大,效率低,因此,迫切需要開(kāi)發(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)行所有操作。該用戶可以添加、查看、修
4、改和刪除自己的學(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)度字段描述idint4主鍵,自增長(zhǎng)snoint4學(xué)號(hào)snamevarchar50姓名cnamevarchar50課程名gradeint4成績(jī) 4.2詳細(xì)設(shè)計(jì)程序流程圖:NY開(kāi)始用戶登錄是否成功查看學(xué)生成績(jī)刪除學(xué)生成績(jī)添加學(xué)生成績(jī)計(jì)算平均成績(jī)結(jié)束4.2.1各子系統(tǒng)的詳細(xì)設(shè)計(jì)1.登錄子系統(tǒng)“i
5、ndex.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ù)類型的定義所
6、需要導(dǎo)入的包及建立的包表4-1 包定義表包名類名功能scores .Dao.java增加信息顯示信息刪除信息平均成績(jī)信息com.scores.domainscores.java成績(jī)屬性User.java用戶屬性com.scores .serviceScores Service.java成績(jī)服務(wù)UserService.java用戶服務(wù)com. scores.servletAcctServlet.java計(jì)算平均成績(jī)控制層DeleteServlet.java刪除成績(jī)控制層UpdateServlet.java修改成績(jī)控制層LoginServlet.java登錄控制層AddServlet.java添加
7、成績(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代碼:<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頁(yè)面重新輸入用戶名和密碼,登錄成功進(jìn)入success.jsp頁(yè)面,進(jìn)行相關(guān)操作。2
9、.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&q
10、uot;, 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(
11、); 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 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);查詢成績(jī)代碼: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);計(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();
15、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
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.實(shí)體類代碼:Score實(shí)體: User實(shí)體: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ù)庫(kù)代碼: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頁(yè)面:showAllScores.jsp:<body> <table border=1> <tr> <td>學(xué)號(hào)</td> <td>姓名</td> <td>課程名</td> <td>成績(jī)</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">添加成績(jī)</a> <a href="delete.jsp">刪除成績(jī)</a> <a href="update.jsp">修改成績(jī)</a> <a href="acc.jsp">計(jì)算平均成績(jī)</a> </body&
32、gt;Save.jsp:<body> <form action="servlet/servlet?arg=3" method="get"> <table border=1> <tr><td>學(xué)號(hào)</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>成績(jī)</td><td><input type="text" name="grade"></td>
34、</tr> </table> <input type="submit" name="submit" value="提交"> </body>增刪改查操作jsp頁(yè)面:<table border=1> <tr> <th>學(xué)號(hào)</th> <th>姓名</th> <th>課程</th> <th>成績(jī)</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. 本站所有資源如無(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《成本與管理會(huì)計(jì)(英文)》課件-3.1Cost flows in manufacturing business
- 音樂(lè)課介紹課件
- 高效節(jié)能電機(jī)項(xiàng)目招投標(biāo)方案(模板)
- 2025年果酒及配制酒項(xiàng)目發(fā)展計(jì)劃
- 2025年鋼結(jié)構(gòu)用H型鋼項(xiàng)目發(fā)展計(jì)劃
- 2025年太陽(yáng)能電池用多晶硅、非晶硅項(xiàng)目合作計(jì)劃書(shū)
- 2025年互聯(lián)網(wǎng)醫(yī)療平臺(tái)在線問(wèn)診服務(wù)質(zhì)量?jī)?yōu)化報(bào)告
- 2025年工業(yè)互聯(lián)網(wǎng)平臺(tái)漏洞掃描技術(shù)在物聯(lián)網(wǎng)安全防護(hù)中的應(yīng)用研究
- 時(shí)尚零售行業(yè)快時(shí)尚模式下的品牌合作與聯(lián)合營(yíng)銷報(bào)告
- 智慧城市的公共交通數(shù)據(jù)分析報(bào)告
- 文學(xué)概論考試要點(diǎn)試題及答案
- 2024–2025年中國(guó)數(shù)據(jù)標(biāo)注產(chǎn)業(yè)深度分析報(bào)告
- 學(xué)校粉刷門窗協(xié)議書(shū)
- 2025-2031年中國(guó)材料預(yù)浸料行業(yè)市場(chǎng)深度研究及發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 法人更換免責(zé)協(xié)議書(shū)
- 2025-2030年中國(guó)鄉(xiāng)村振興戰(zhàn)略行業(yè)市場(chǎng)發(fā)展分析及前景趨勢(shì)與投融資發(fā)展研究報(bào)告
- 小球彈簧(蹦極、蹦床)模型-高考物理一輪復(fù)習(xí)模型及解題技巧(解析版)
- 氫能分解與轉(zhuǎn)化技術(shù)創(chuàng)新-全面剖析
- 2025-2030天文望遠(yuǎn)鏡行業(yè)市場(chǎng)深度調(diào)研及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告
- 2025年小學(xué)教師資格考試《綜合素質(zhì)》邏輯推理能力測(cè)評(píng)題庫(kù)(附答案)
- 車輛傷害培訓(xùn)教育課件
評(píng)論
0/150
提交評(píng)論