您的当前位置:首页正文

javaEE学生个人成绩管理系统

2024-07-16 来源:V品旅游网
标准文档

软 件 学 院

课程设计报告书

课程名称 java web 程序设计教程课程设计 设计题目 学生个人成绩管理系统 专业班级 学 号 姓 名 指导教师

2011年 12 月

实用文案

标准文档

目录 1 设计时间: .................................................... 1 2 设计目的 ...................................................... 1 3设计任务 ...................................................... 1 4 设计内容 ...................................................... 1 4.1.1需求分析 .................................................. 1 4.1.2系统功能图 ................................................ 2 4.1.3数据库设计 ................................................ 2 4.2详细设计 ..................................................... 3 4.2.1各子系统的详细设计 .......................................... 3 4.2.2抽象数据类型的定义 .......................................... 4 4.2.3运行界面 ................................................... 5 4.2.4主要代码 ................................................... 7 5总结期望 ..................................................... 19 参考文献 ....................................................... 23 成绩评定 ....................................................... 23 实用文案

标准文档

1 设计时间: 2011-12-12——2011-12-16 2 设计目的 JavaEE课程设计是对所学JavaEE与中间件课程的小结,是提高学生对所学知识综合应用能力的一种方式,是集中实践性环节之一。要求同学们对课程中所学习到的知识综合运用,开发有一定规模的Java Web程序。 3设计任务 设计一个学生个人成绩管理系统包括以下功能: (1)用户以合法身份登录系统后,才能进行所有操作;用户可以添加、查看、修改和删除自己的成绩信息;计算各课程的平均分。 (2)添加学生成绩:学生添加成绩信息(包括学号、姓名、课程名称、成绩); (3)查看学生成绩:查看所有课程的成绩; (4)删除成绩:学生可以删除自己的成绩; (5)计算成绩平均分:计算出所有成绩的平均分 4 设计内容 4.1概要设计 4.1.1需求分析 成绩管理成为学校教学管理中十分重要又相当复杂的管理工作之一,单纯的采用传统的手工处理已经不符合教育和管理的要求,而计算机具有运算速度快,处理能力强等特点,很自然地进入到这一应用领域中。因此为了保证学校的信息流畅,工作高效,有必要设计一个学生成绩管理系统。这不但能使教务人员从复杂的成绩管理中解脱出来,而且对于推动教学的发展也起到了非常重要的作用。随着学校规模的不断扩大,专业,班级,学生的数量急剧增加,有关学生成绩的各种信息量也成倍增长,而目前许多高校的学生成绩管理仍停留在复杂的人工操作上,重复工作较多,工作量大,效率低,因此,迫切需要开发基于互联网的个人成绩管理系统。此次课程设计为设计一个就是设计一个这样的学生个人成绩管理系统,该系统要求用户以合法身份登录后才能进行所有操作。该用户可以添加、查看、修改和删除自己的学生成绩信息及计算各成绩的平均分。 4.1.2系统功能图: 实用文案

标准文档

学生个人信息管理系统 用户以合法身份登录 添加学生成绩 查看学生成绩 修改学生成绩 删除学生成绩 计算平均成绩 4.1.3数据库设计: 在数据库中建立Scores表包括:(字段名称,数据类型,长度,字段描述)。 Scores表: 表1-1 字段名称 id sno sname cname grade 数据类型 int int varchar varchar int 长度 4 4 50 50 4 字段描述 主键,自增长 学号 姓名 课程名 成绩 4.2详细设计 程序流程图: 实用文案

标准文档

开始 用户登录 N 是否成功 Y 查看学生成绩 添加学生成绩 删除学生成绩 计算平均成绩 结束 4.2.1各子系统的详细设计 1.登录子系统 “index.jsp”用于用户登录,输入用户名和密码登录失败时跳转到“error.jsp”页面,重新输入用户名和密码。登录成功进入“success.jsp”页面,点击相应按钮进行相应操作。 2.查询子系统 “showAllScore.jsp”用于显示所有成绩信息包括:学号,姓名,课程名,成绩。建立超链接到其他三个子系统的页面。 实用文案

标准文档

3.删除子系统 “delete.jsp”用于删除成绩,输入要删除的学号点击删除。 4.添加子系统 Add.jsp用于填加成绩,输入要添加的数据,点击添加。 5.计算平均成绩子系统 “acc.jsp”用于计算平均成绩,点击进入所对应的servlet进行处理。 4.2.2 抽象数据类型的定义 所需要导入的包及建立的包 表4-1 包定义表 包名 类名 scores .Dao.java com.scores.dao scores.java com.scores.domain User.java Scores Service.java com.scores .service UserService.java AcctServlet.java DeleteServlet.java com. scores.servlet UpdateServlet.java LoginServlet.java AddServlet.java 用户服务 计算平均成绩控制层 删除成绩控制层 修改成绩控制层 登录控制层 添加成绩控制层 用户属性 成绩服务 删除信息 平均成绩信息 成绩属性 功能 增加信息 显示信息 实用文案

标准文档

表4-2 页面定义表 页面名称 add.jsp delete.jsp update,jsp error.jsp index.jsp Sava.jsp ShowAllCost.jsp success.jsp acci.jsp 作用 添加页面 删除页面 修改页面 登陆失败页面,返回登录界面 用户界面 操作页面 显示页面 登陆成功页面,跳转至用户界面 计算平均成绩页面 4.2.3运行界面 登录界面如下 登录成功和失败的页面如下: 实用文案

标准文档

增删改查操作的成绩表格: 添加后表为: 删除掉张思成绩后表格如下: 实用文案

标准文档

将李四的成绩改为99后表格如下: 4.2.4主要代码 1.登录的JSP代码:

用户名 密 码
登录失败进入error.jsp页面重新输入用户名和密码,登录成功进入success.jsp页面,进行相关操作。 2.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\ 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(); List list=scoreservice.getDeleteScores(); request.setAttribute(\"allscores\ request.getRequestDispatcher(\"/delete.jsp\").forward(request, response); } 修改成绩代码 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\ request.getRequestDispatcher(\"/update.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(); request.setAttribute(\"allscores\ request.getRequestDispatcher(\"/showAllScores.jsp\").forward(request, response); 实用文案

标准文档

} 计算平均成绩代码: public class ScoreServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ScoreService scoreservice=new ScoreService(); 3.DAO层代码:DAO类的类名为“ScoreDao”,该类使用JDBC技术实现,用于和数据库交互,进行相关的增、删、改、查操作,它的实现代码如下: 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); List list=scoreservice.getAllScores(); request.setAttribute(\"allscores\ request.getRequestDispatcher(\"/acc.jsp\").forward(request, response); } 实用文案

标准文档

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()){ } return list;} 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); 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()){ } return list;} 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); 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()){ } return list;} 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); 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 false; return true; 实用文案

标准文档

} } 5.实体类代码: Score实体: User实体: 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.连接数据库代码: 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\ con.setAutoCommit(false); System.out.println(con); return con; } catch(SQLException e){ e.printStackTrace(); } 实用文案

标准文档

return null; } } 7. JSP页面: showAllScores.jsp:

<% List list=(List) request.getAttribute(\"allscores\"); if(list!=null){ for(Iterator it=list.iterator();it.hasNext();) { Score score=(Score)it.next(); %> <% } }%> 添加成绩删除成绩 实用文案

标准文档

修改成绩 计算平均成绩 Save.jsp:

学号 姓名 课程名 成绩
<%=score.getSno() %> <%=score.getSname() %> <%=score.getCname() %> <%=score.getGrade() %>
学号
姓名
课程名
成绩
增删改查操作jsp页面: <% List list=(List) request.getAttribute(\"allscores\"); if(list!=null){ for(Iterator it=list.iterator();it.hasNext();) { Score score=(Score)it.next(); %> 实用文案

标准文档

<%} }%> 配置文件WEB.XML This is the description of my J2EE component This is the display name of my J2EE component LoginServlet com.scores.servlet.LoginServlet This is the description of my J2EE component This is the display name of my J2EE component AddServlet com.scores.servlet.AddServlet This is the description of my J2EE component This is the display name of my J2EE component DeleteServlet com.scores.servlet.DeleteServlet This is the description of my J2EE component This is the display name of my J2EE component 实用文案

标准文档

ScoreServlet com.scores.servlet.ScoreServlet This is the description of my J2EE component This is the display name of my J2EE component UpdateServlet com.scores.servlet.UpdateServlet This is the description of my J2EE component This is the display name of my J2EE component AccServlet com.scores.servlet.AccServlet LoginServlet /servlet/LoginServlet AddServlet /servlet/AddServlet DeleteServlet /servlet/DeleteServlet ScoreServlet 实用文案

标准文档

/servlet/ScoreServlet UpdateServlet /servlet/UpdateServlet AccServlet /servlet/AccServlet index.jsp 5 总结与展望 经历了一周的javaEE课程设计,我收获了很多,也感悟了很多。 第一,在乐趣中学习,在学习中寻找乐趣。学习任何东西时,兴趣是最好的老师,如果你每天只是把写程序当作谋生的手段的话,那样你学习起来也会很枯燥无味,也会学的很累。 第二,在实践中体会理论,在理论中理解实践。上课的时候认真听老师讲解,一些概念知识慢慢去理解,课后多做练习,熟能生巧,哪怕是你的记性再好,课后不去强化练习也没用,只有多练了,当你在做项目时你才能很熟练的写出你想要代码。平日在练习时若遇到不会的题目或是在项目中遇到解决不了的问题,首先不要急着去问老师,或是急着上百度搜答案,那样即使你得到了正确答案,以后在其它地方遇到同样的问题,你还是不知道怎么解决!所以说,在遇到问题时,自己先想想要怎么解决,回顾一下老师上课的内容,如果自己还是想不出什么好方法的话,也可以向同学请教请教,自己不懂的地方其他同学可能知道。如果还是没能解决,那只有问老师或是上网搜索查找相应的解决方法了。好好理解其解决思路。 第三,在操作中寻找不足,在更改中进步。不要满足于现状,要不断完善自己的知识体系,善实用文案

标准文档

于总结实践经验。要端正自己的学习态度,是主动去学,而不是被动!提高自学能力。学习编程的秘诀是:编程、编程、再编程。不仅要多实践,而且要快实践。我们在看书的时候,不要等到你完全理解了才动手敲,而是应该在看书的同时敲,程序运行的各种情况可以让你更快更牢固的掌握知识点。程序代码是软件开发最重要的成果之一,其中渗透了程序员的思想与灵魂。 第四,总结收获和感悟。总体上来讲,在本次课程设计的过程中,我收获了很多知识以外的东西,对javaEE有了进一步了解。做事情要主动寻找其中乐趣,还要多多开动脑筋,积极思考,不怕犯错,只有正视错误,才能在一次次的不断修改错误,不断运行中,尝试中得到进步,从而获得根本性的提高。今后,我会更加努力学习,争取将所学知识与时间操作完美的结合起来,真正做到理论与实践兼备的人,让自己不断提高和完善。 实用文案

标准文档

参考文献 [1] 屈辉立,陈可明,石武信.JSP网站编程教程[M].第1版, 北京:北京希望电子出版社,2005 [2] 白勇.用B/S模式构建在线考试系统[J],重庆电力高等专科学校学报,2003,10(4): 100~130. [3] Jiang Guo,Yuehong Liao,Behzad Parviz.A Survey of J2EE Application Performance Management Systems[J],Proceedings of the IEEE International Conference on Web Services (ICWS'04),2004.6(5):17~32. [4] javaEE管理范例:http://www.vbnew.net/down/2j.asp?id=14&cid=23[EB/OL] 成绩评定 成绩 教师签字 实用文案

标准文档

实用文案

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 版权所有
学号 姓名 课程 成绩
<%=score.getSno()%> <%=score.getSname()%> <%=score.getCname()%> <%=score.getGrade()%>