版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软 件 学 院课程设计报告书课程名称 JavaEE 课程设计 设计题目 试卷分析报告产生系统 专业班级 软件工程10-3班 学 号 1020010303 姓 名 韩飞 指导教师 刘佳旭 2013年01月目录1 设计时间2013年1月21日-2013年1月23日2 设计目的JavaEE课程设计是对所学JavaEE与中间件课程的小结,是提高学生对所学知识综合应用能力的一种方式,是集中实践性环节之一。要求同学们对课程中所学习到的知识综合运用,开发有一定规模的Java Web程序。3 设计任务(1)功能描述:用户以合法身份登录系统后,才能进行所有操作;用户可以添加、查看和删除学生成绩;用户添加完所有学
2、生的成绩后,统计出60分、60=成绩75、75=成绩90、90=成绩=100这四个分数段的学生人数。(2)添加学生成绩:学生添加成绩信息(包括学号、姓名、成绩);(3)查看学生成绩(4)删除学生成绩(5)统计各分数段人数:统计出每个分数段的学生人数4 设计内容4.1需求分析功能要求为:用户可以添加、删除、查看学生成绩,学生成绩中包括学号、姓名、成绩三项信息。总体目标、具体目标系统数据建模数据功能建模图4-1为系统的数据流图,4-2为进一步分解后的数据流图。图 4-1 数据流图登陆用户学生统计管理系统登陆要求操作反馈删除操作统计操作查看操作返回添加操作返回数据返回数据要求统计要求删除用户信息登陆
3、登陆用户添加查看删除统计用户信息用户信息登录信息要求添加要求查看图 4-2 详细数据流图5 概要设计5.1 数据库设计图5-1为成绩的E-R图。成绩表学号姓名成绩图5-1 E-R图本程序使用的数据库系统为SQL Server 2000,数据库名称为“mydb”,数据表名称为“score”,表结构如表5-1所示。成绩表(学号,姓名,成绩),主码为学号。列名数据类型长度允许空备注numberVarchar50Y学号namevarchar50Y姓名scoreint4Y 成绩表4-1 成绩表详细设计5.2 层次结构图图 5-2 层次结构图学生统计管理系统用户登陆成绩分类添加成绩查看成绩删除成绩6 详细
4、设计6.1 程序流程图图6-1为整个系统的程序流程图。开始输入用户名和密码判断正误显示成绩添加成绩删除成绩成绩分类显示成绩成绩分类添加成绩删除成绩结束YYYYYNNNNN图 6-1 程序流程图6.2 模块程序流程图(1)图6-2为登陆流程图。图 6-2 登陆程序流程图开始输入用户名和密码LoginServletUserService判断正误Index.jsp结束YN开始ListAllScoresServletScoreDAO.getAllScores()访问数据库ResuleSet结束ResuleSetshowAllScores.jsp(2)图6-3为查看所有成绩流程图。图 6-3 查看所有成
5、绩流程图(3)图6-4为查看添加成绩流程图。图 6-4 添加成绩流程图开始addScore.jspAddScoreServletScoreDAO.addScore()访问数据库结束showAllScores.jsp(4)图6-5为查看删除成绩流程图。图 6-5 删除成绩流程图开始deleteScore.jspDeleteScoreServletScoreDAO.deleteScore()访问数据库结束showAllScores.jsp(5)图6-6为查看成绩分类流程图。图 6-6 查看成绩分类流程图开始ClassifyAllScoresServlet访问数据库ScoreDAO.Classify
6、AllScores()结束classifyAllScores.jsp7 编码与实现7.1 数据库的实现图7-1为数据库创建截图,其中t_chengji表为所创建的成绩表。图7-1 数据库创建图7-2为成绩表的设计。图7-2 成绩表实现7.2 创建Java Web工程图7-4 Java Web工程目录结构图图7-4为Java Web工程student_score的截图。“ScoreDAO.java”为和数据库交互,进行增、删、改、查操作。“Score.java”代表成绩信息的实体类。“Segment.java”代表成绩段信息的实体类。“User.java”代表用户信息的实体类。“UserServ
7、ice.java”判断用户登陆信息是否正确的业务层。“AddScoreServlet.java”为接收页面表单数据并增加成绩信息的Servlet类,继承“HttpServlet”。“ClassifyAllScoresServlet.java”为将数据库中成绩信息分类的Servlet类,继承“HttpServlet”。“DeleteScoreServlet.java”为接收页面表单数据并删除相应成绩信息的Servlet类,继承“HttpServlet”。“ListAllScoresServlet.java”为列出数据库中所有成绩信息的Servlet类,继承“HttpServlet”。“Login
8、Servlet.java”为接收页面表单登陆信息并验证用户信息的Servlet类,继承“HttpServlet”。“DBConnection.java”为获得数据库连接的工具类。“SQL Server JDBC Driver”为与数据库SQL Server 2005连接的驱动包。“Web.xml”为配置Servlet中元素和元素的XML文件。“addScore.jsp”为增加学生成绩的JSP页面。“classifyAllScores.jsp”为分类学生成绩的JSP页面。“deleteScore.jsp”为删除学生成绩的JSP页面。“index.jsp”为主页面。“login.jsp”为登陆页面
9、。“loginError.jsp”为登陆失败页面。“showAllScores.jsp”为显示所有学生成绩的JSP页面。7.3 工具类的实现工具类名为“DBConnection”,该类用于获得数据库的连接,它的实现代码如下:public class DBConnection public static Connection getConnection()final String driverName=com.microsoft.sqlserver.jdbc.SQLServerDriver;final String url=jdbc:sqlserver:/localhost:1433;datab
10、asename=mydb;tryClass.forName(driverName);catch(ClassNotFoundException e)e.printStackTrace();tryConnection con=DriverManager.getConnection(url, sa, sa);con.setAutoCommit(false);return con;catch(SQLException e)e.printStackTrace();return null;7.4 实体类的实现实体类有三类。(1)第一类的类名为“Score”,该类拥有代表成绩信息的私有属性以及各个属性的se
11、t、get方法,它的实现代码如下:public class Score private int id;private String name;private int score;public int getId() return id;public void setId(int id) this.id = id;/省略其他的get、set方法(2)第二类的类名为“Segment”, 该类拥有代表成绩分类信息的私有属性以及各个属性的set、get方法,它的实现代码如下:public class Segment private String segment;private int num;publ
12、ic String getSegment() return segment;public void setSegment(String segment) this.segment = segment;/省略其他的get、set方法(3)第三类的类名为“User”,该类拥有代表用户信息的私有属性以及各个属性的set、get方法,它的实现代码如下:public class User private String username;private String userpsw;public String getUsername() return username;public void setUse
13、rname(String username) this.username = username;/省略其他的get、set方法7.5 DAO类的实现DAO类的类名为“ScoreDao”,该类使用JDBC技术实现,用于和数据库交互,进行相关的增、删、查、统计操作,它的实现代码如下:public class ScoreDAO /查询所有成绩信息public List getAllScores() Connection con = DBConnection.getConnection();String listSQL = select * from scores;List list = new Ar
14、rayList();try PreparedStatement psmt = con.prepareStatement(listSQL);ResultSet rs = psmt.executeQuery();while (rs.next() Score score = new Score();score.setId(rs.getInt(id);score.setName(rs.getString(name);score.setScore(rs.getInt(score);list.add(score);mit();return list; catch (SQLException
15、e) e.printStackTrace(); finally if (con != null) try con.close(); catch (SQLException e) e.printStackTrace();return null; /添加成绩信息public boolean addScore(Score score) throws Exception Connection con = DBConnection.getConnection();String listSQL = insert into scores values(?,?,?);PreparedStatement pst
16、mt = con.prepareStatement(listSQL);try pstmt.setInt(1, score.getId();pstmt.setString(2, score.getName();pstmt.setInt(3, score.getScore();pstmt.executeUpdate();mit();return true; catch (SQLException e) con.rollback();e.printStackTrace(); finally con.close();return false; /删除成绩信息public boolean
17、deleteScore(Score score) throws Exception Connection con = DBConnection.getConnection();String listSQL = delete from scores where id=?;PreparedStatement pstmt = con.prepareStatement(listSQL);try pstmt.setInt(1, score.getId();pstmt.executeUpdate();mit();return true; catch (SQLException e) con.
18、rollback();e.printStackTrace(); finally con.close();return false; /成绩分类查询public List classifyAllScores()Connection con = DBConnection.getConnection();List list = new ArrayList();tryPreparedStatement psmt1 = con.prepareStatement(select * from scores where 0=score and score60);PreparedStatement psmt2
19、= con.prepareStatement(select * from scores where 60=score and score75);PreparedStatement psmt3 = con.prepareStatement(select * from scores where 75=score and score90);PreparedStatement psmt4 = con.prepareStatement(select * from scores where 90=score and score=100);Segment segment1=new Segment();Seg
20、ment segment2=new Segment();Segment segment3=new Segment();Segment segment4=new Segment();/第一段计数ResultSet rs = psmt1.executeQuery();int count=0;while(rs.next()count+;segment1.setSegment(0=score60);segment1.setNum(count);/第二段计数rs = psmt2.executeQuery();count=0;while(rs.next()count+;segment2.setSegmen
21、t(60=score75);segment2.setNum(count);/第三段计数rs = psmt3.executeQuery();count=0;while(rs.next()count+;segment3.setSegment(75=score90);segment3.setNum(count);/第四段计数rs = psmt4.executeQuery();count=0;while(rs.next()count+;segment4.setSegment(90=score=100);segment4.setNum(count);list.add(segment1);list.add
22、(segment2);list.add(segment3);list.add(segment4);mit();return list;catch(SQLException e)e.printStackTrace();finally if (con != null) try con.close(); catch (SQLException e) e.printStackTrace();return null;7.6 Servlet类的实现Servlet类共有5个类。(1)第一个Servlet类的类名为“AddScoreServlet”,该类继承了“HttpServlet”,该类用于
23、接收页面表单中的数据并将数据传递到DAO类进行添加成绩操作,它的实现代码如下:public class AddScoreServlet extends HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException doPost(request,response);public void doPost(HttpServletRequest request, HttpServletResponse response
24、)throws ServletException, IOException request.setCharacterEncoding(GBK);int id=0;if(!request.getParameter(id).equals()&request.getParameter(id)!=null)id=Integer.parseInt(request.getParameter(id);String name=(String)request.getParameter(name);int score=0;if(!request.getParameter(score).equals()&reque
25、st.getParameter(score)!=null)score=Integer.parseInt(request.getParameter(score);Score score1=new Score();score1.setId(id);score1.setName(name);score1.setScore(score);ScoreDAO scoreDAO=new ScoreDAO();tryscoreDAO.addScore(score1);catch(Exception e)e.printStackTrace();List list=scoreDAO.getAllScores();
26、request.setAttribute(allScores, list);request.getRequestDispatcher(/showAllScores.jsp).forward(request, response);(2)第二个Servlet类的类名为“ClassifyAllScoresServlet”,该类继承了“HttpServlet”,用于DAO将成绩分类信息传递给“classifyAllScores.jsp”页面。实现代码如下:public class ClassifyAllScoresServlet extends HttpServlet public void doGe
27、t(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException ScoreDAO scoreDAO=new ScoreDAO();List list=scoreDAO.classifyAllScores();request.setAttribute(classifyAllScores, list);request.getRequestDispatcher(/classifyAllScores.jsp).forward(request, response);public
28、 void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException this.doGet(request, response);(3)第三个Servlet类的类名为“DeleteScoreServlet”,该类继承了“HttpServlet”,用于将JSP页面所要删除的成绩信息传递给DAO进行删除操作。实现代码如下:public class DeleteScoreServlet extends HttpServlet public void doGe
29、t(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException doPost(request,response);public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException request.setCharacterEncoding(GBK);int id = 0;if(!request.getParame
30、ter(id).equals()&request.getParameter(id)!=null)id=Integer.parseInt(request.getParameter(id);Score score=new Score();score.setId(id);ScoreDAO scoreDAO=new ScoreDAO();tryscoreDAO.deleteScore(score);catch(Exception e)e.printStackTrace();List list=scoreDAO.getAllScores();request.setAttribute(allScores,
31、 list);request.getRequestDispatcher(/showAllScores.jsp).forward(request, response);(4)第四个Servlet类的类名为“ListAllScoresServlet”,该类继承了“HttpServlet”,用于将DAO中所查询出的所有成绩信息传递给“showAllScores.jsp”页面。该类实现代码如下:public class ListAllScoresServlet extends HttpServlet public void doGet(HttpServletRequest request, HttpS
32、ervletResponse response)throws ServletException, IOException ScoreDAO scoreDAO=new ScoreDAO();List list=scoreDAO.getAllScores();request.setAttribute(allScores, list);request.getRequestDispatcher(/showAllScores.jsp).forward(request, response);public void doPost(HttpServletRequest request, HttpServlet
33、Response response)throws ServletException, IOException this.doGet(request, response);(5)第五个Servlet类的类名为“LoginServelt”,该类继承了“HttpServlet”,用于将“login.jsp”页面内的表单信息传递给“UserService”进行判定。如果正确验证则将转到“index.jsp”页面,否则将转到“loginError.jsp”页面。该类实现代码如下:public class LoginServlet extends HttpServlet public void doGet
34、(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException String username=request.getParameter(username);String userpsw=request.getParameter(userpsw);User user =new User();user.setUsername(username);user.setUserpsw(userpsw);UserService userService=new UserService
35、();if(userService.CheckLogin(user)HttpSession session =request.getSession();session.setAttribute(name, username);request.getRequestDispatcher(/index.jsp).forward(request, response);elserequest.getRequestDispatcher(/loginError.jsp).forward(request, response);public void doPost(HttpServletRequest requ
36、est, HttpServletResponse response)throws ServletException, IOException this.doGet(request,response);7.7 页面的实现本程序有6个主要的页面。(1)“login.jsp”页面包含一个由用户名文本框、密码框、提交按钮和重置按钮组成的表单。它的实现代码如下: 用户名称: 用户密码: (2)“index.jsp”页面包含“显示所有成绩”、“统计所有成绩”超链接,用于控制页面跳转。它的实现代码如下: 显示所有成绩 统计所有成绩 (3)“showAllScores.jsp”页面包含成绩信息列表和添加、删除
37、、返回三个超链接,用于实现“添加成绩”、“删除成绩”、“返回”三个功能。它的实现代码如下: 学号 姓名 成绩 添加 删除 返回 (4)“addScore.jsp”页面包含学号文本框、姓名文本框、成绩文本框、提交按钮、返回超链接,用于数据添加到数据库。它的实现代码如下: 学号: 姓名: 成绩: 返回 (5)“deleteScore.jsp”页面包含一个学号文本框、一个删除按钮、一个返回超链接。用于对所填学号的删除。它的实现代码如下: 请输入要删除成绩的学号: 返回 (6)“classifyAllScores.jsp”页面用于显示成绩分数段的人数信息。它的实现代码如下:分数段人数返回7.8 配置“
38、web.xml”文件LoginServletservlet.LoginServletListAllScoresServletservlet.ListAllScoresServletAddScoreServletservlet.AddScoreServletDeleteScoreServletservlet.DeleteScoreServletClassifyAllScoresServletservlet.ClassifyAllScoresServletLoginServlet/servlet/LoginServletListAllScoresServlet/servlet/ListAllSco
39、resServletAddScoreServlet/servlet/AddScoreServletDeleteScoreServlet/servlet/DeleteScoreServletClassifyAllScoresServlet/servlet/ClassifyAllScoresServlet8 运行与测试(1)登陆测试。在浏览器中输入地址“http:/localhost:8080/1210/login.jsp”进入登陆界面,如8-1图所示。图 8-1 登陆界面接下来输入用户名称和用户密码,本程序假设唯一用户“1234”具有唯一密码“1324”。当输入用户名或密码错误时进入“login
40、Error.jsp”页面,如8-2图所示。图 8-2 登陆失败界面当输入用户名和密码都是“1234”时,登陆成功,进入“index.jsp”界面。如图8-3所示。图 8-3 登陆成功(2)添加成绩。点击添加进入“addScore.jsp”如图8-5所示。图 8-5 添加成绩输入学号、姓名、成绩后点击提交按钮完成添加。如图8-6所示。图 8-6 添加成绩成功(4)删除成绩测试。点击删除进入“deleteScore.jsp”界面,如图8-7所示。图 8-7 删除成绩点击删除即可完成删除操作,如图8-8所示。图 8-8 删除成绩成功点击返回回到”index.jsp”界面。(5)点击图7.3中的统计所有成绩进入“classifyAllScores.jsp”界面,完成成绩分段操作,如图8-9所示。图 8-9 成绩分段9 总结与展望本次试验是在自己看书查看相关资料完成的,虽然程序简单,实现功能不多,但是经过本次试验我真正的认识了web开发。该学生成绩管理系统,主要实
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- AI赋能自动驾驶模拟训练:技术原理与工程落地实践
- 2026年中国茶产业劳动力老龄化问题对策
- 2026年外贸企业样品管理流程优化与成本控制
- 2026年医院公共卫生科工作职责
- 2026年骨折术后(出院)康复锻炼与健康指导
- 2026年管理会计综合实训项目教程
- 2026年基于用户社交关系的裂变营销设计
- 2026年乡村大龄劳动力(4050)灵活就业培训
- 2026年运维值班与交接班管理制度
- 2026年医院预算绩效管理审计评价
- 2025优化企事业单位突发环境事件应急预案备案的指导意见
- 2024年上海见证员考试试题
- 2025年华侨港澳台生联招考试高考化学试卷试题(含答案解析)
- 微瓦斯隧道安全控制要点
- 2024年云南高中学业水平合格考历史试卷真题(含答案详解)
- 《TCL分析报告》课件
- DB51-T 1764-2023 机械式停车设备修理保养安全技术规范
- 糖尿病足与介入治疗(新ppt课件)
- 岗位系数说明正式公示版
- 第四种检查器介绍
- 马克思主义基本原理第一章案例
评论
0/150
提交评论