1、软 件 学 院课程设计汇报书课程名称 JAVA EE课程设计 设计题目 学生课程设计成绩评定系统 专业班级 学 号 姓 名 指导老师 年 12 月目 录1 设计时间 32 设计目标 33设计任务 34 设计内容 3 4.1抽象数据类型定义.34.1.1程序所建立包 .34.1.2 程序所需要导入包 .44.2数据库部分实现 .44.2.1 E-R图 .44.2.2 逻辑设计 .54.3程序步骤 .64.4模块间层次关系 .74.5 系统代码实现 .74.6 测试结果 .154.6.1 登录测试结果 .154.6.2 显示测试结果 .15 4.6.3 添加测试结果 .16 4.6.4 删除测试结
2、果 .165 总结和展望 .17参考文件 .181 设计时间/12/12-/12/162 设计目标JavaEE课程设计是对所学JavaEE和中间件课程小结,是提升学生对所学知识综合应用能力一个方法,是集中实践性步骤之一。要求同学们对课程中所学习到知识综合利用,开发有一定规模Java Web程序。3设计任务(一)必备功效说明:(1)评定说明:评定指标有课程设计汇报成绩(权值为0.5,四种成绩为90、80、70、60)、上机考勤成绩(权值为0.2,四种成绩为90、80、70、60)、程序开发成绩(权值为0.3,四种成绩为90、80、70、60);最终成绩是这三个指标加权平均值。(2)功效描述:用户
3、以正当身份登录系统后,才能进行全部操作;用户能够添加、查看和删除课程设计信息(课程设计名称、指导老师、课程设计汇报成绩、上机考勤成绩、程序开发成绩)。(3)添加课程设计信息(4)查看课程设计信息(5)删除课程设计信息(6)计算每个课程设计最终成绩(二)开发语言和开发环境:MyEclipse、Java、数据库(sqlserver、mysql、oracle等任选一个)4 设计内容4.1 抽象数据类型定义4.1.1程序所建立包com.jdbc.domaincom.jdbc.daocom.jdbc.servletcom.jdbc.servicecom.jdbc.util4.1.2程序所需要导入包imp
4、ort java.sql.*;import java.util.*import java.io.*;import javax.servlet.*;import javax.servlet.http.*;4.2数据库部分实现4.2.1 E-R图上机考勤成绩程序开发成绩程序信息程序设计成绩图1程序信息E-R图4.2.2 逻辑设计1. 系统表表1 数据包course列名数据类型长度是否为空含义idbigint8N程序编码,主键,自动增加程序设计名称varchar50Y程序设计名称指导老师varchar50Y指导老师程序设计成绩varchar50Y程序设计成绩上机考勤成绩varchar50Y上机考勤成
5、绩程序开发成绩varchar50Y程序开发成绩4.3程序步骤图开始登录界面输入用户名和密码是否符合身份错误页面NY成功页面显示对应程序信息对程序设计进行评定结束图2 程序步骤图4.4模块间层次关系登录模块密器、解密模块成功模块密器、解密模块失败模块密器、解密模块计算模块删除模块显示模块添加模块图3 层次(调用)关系图4.5 系统代码实现 1.页面实现本程序四个关键页面:“login.jsp”,“error.jsp”,“showAllcourses.jsp”和“savaCourse.jsp”, “login.jsp”用于用户登录,它关键代码以下: 用户名 : 密码: “error.jsp”当登录
6、失败时,跳转到本页面,然后超链接到登录页面,它关键代码以下: 错误页面 你用户名或密码错误,请重新登录 “showAllcourses.jsp”用于显示全部课程信息和学分统计,它关键代码以下 base href= 显示页面 id 程序设计名称 指导老师 课程设计成绩 上机考勤成绩 程序开发成绩 添加程序 删除程序信息: “savaCourse.jsp”为添加程序信息,它关键代码以下: 学号 汇报成绩 考勤成绩 代码成绩 2.工具类实现工具类名为“DBConnection”,该类用于
7、取得数据库连接,它实现代码以下:public class DBConnection public static Connection getConnection()final String driverName=com.microsoft.jdbc.sqlserver.SQLServerDriver;final String url=jdbc:microsoft:sqlserver:/localhost:1433;databasename=course _shop;tryClass.forName(driverName);catch(ClassNotFoundException e)e.pri
8、ntStackTrace();tryConnection con=DriverManager.getConnection(url, sa, sa);con.setAutoCommit(false);return con;catch(SQLException e)e.printStackTrace();return null;3.实体类实现实体类类名有”Course”,”Program”,”Computer”,”Course”类拥有课程设计成绩私有属性及各个属性set、get方法,”Program”类拥有课程设计成绩私有属性及各个属性set、get方法,”Computer”类拥有课程设计成绩私有
9、属性及各个属性set、get方法,它实现代码以下:public class User private String course;private String Program;private String Computer;public String getCouursename() return Couursenamepublic void set Couursename (String username) this. Couursename = Couursename;4.DAO类实现DAO类类名为“CoursesDao”,该类使用JDBC技术实现,用于和数据库交互,进行相关增、删、改、查
10、操作,它实现代码以下:public class CoursesDAO public List getAllCourse()Connection con=DBConnection.getConnection();List list=new ArrayList();tryPreparedStatement ps=con.prepareStatement(select * from course);ResultSet rs=ps.executeQuery();while(rs.next()Course course =new Course();course.setId(rs.getLong(id);
11、course.setCourse(rs.getString(course);course.setProgram(rs.getString(program);course.setComputer(rs.getInt(computer);list.add(course);return list;catch(SQLException e)e.printStackTrace();return null;public boolean saveUser(Course course) throws ExceptionConnection conn=DBConnection.getConnection();S
12、tring listSQL=insert into course values(?,?,?);PreparedStatement pstmt=conn.prepareStatement(listSQL);trypstmt.setString(1, course.getCourse();pstmt.setString(2, course.getProgram();pstmt.setString(3, course.getComputer();pstmt.executeUpdate();mit();return true;catch(SQLException e)e.printStackTrace
13、();finallyconn.close();return false;public boolean deleteCourse(Course course)throws ExceptionConnection conn=DBConnection.getConnection();String listSQL=delete from course where id=?;PreparedStatement pstmt=conn.prepareStatement(listSQL);trypstmt.setLong(1, course.getId();pstmt.executeUpdate();mit(
14、);return true;catch(SQLException e)e.printStackTrace();finallyconn.close();return false;5.控制器类实现控制器类类名有“LoginServlet”、“ListAllCoursesServlet”和“deleteServlet”类,它们全部继承了“HttpServlet”,用于接收页面表单中数据和将DAO类传输数据发送到页面中和控制页面转向,它们实现代码分别以下:public class LoginServlet extends HttpServlet public void doGet(HttpServle
15、tRequest request, HttpServletResponse response)throws ServletException, IOException doPost(request,response);public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException String username=request.getParameter(username);String password=request.getPara
16、meter(password);User user=new User();user.setUsername(username);user.setPassword(password);HttpSession session=request.getSession();String forward= ;if(UserService.CheckLogin(user)forward=/index.jsp;session.setAttribute(name, username);elseforward=/error.jsp;RequestDispatcher rd=request.getRequestDi
17、spatcher(forward);rd.forward(request, response);6.Servic类实现Service类类名有“UserServlet”和“CourseServlet”类,是用于控制器类和DAO类之间数据传输连接,它们实现代码分别以下:public class UserService public static boolean CheckLogin(User user)if(user.getUsername().equals(admin)&user.getPassword().equals(123456)return true;else return false;
18、public class CourseService public List getAllCourses()CoursesDAO CourseDAO=new CourseDAO();return courseDAO.getAllCouse();4.6测试结果4.6.1登录测试结果图4 登录页面图5登录失败页面4.6.2显示测试结果图6显示页面4.6.3添加测试结果图7添加页面图8添加成功后课程信息4.6.4删除测试结果图9删除页面图10删除后课程信息5 总结和展望这次课程设计让我愈加了解JAVA EE这门课程。课设题目要求不仅要求对书本知识有较深刻了解,同时要求程序设计者有较强思维和动手能力和
19、愈加了解编程思想和编程技巧。这次课程设计让我有一个深刻体会,那就是细节决定成败,编程最需要是严谨,怎样严谨全部不过分,往往检验了半天发觉错误发生在某个括号,分号,引号,或数据类型上。 程序设计时,也不要怕碰到错误,在实际操作过程中犯部分错误还会有意外收获,感觉课程设计很有意思。在具体操作中这学期所学数据结构理论知识得到巩固,达成课程设计基础目标,也发觉自己不足之出,在以后上机中应愈加注意,同时体会到java语言含有语句简练,使用灵活,实施效率高等特点。发觉上机关键作用,尤其算术表示式有了深刻了解。另外,这次课程设计深入加强了我们利用java语言进行编程。同时我也意识到,开发程序早期计划要做充足,以免出现程序完成后发觉不足而带来修改麻烦。即使这只是一个小小程序,但对我们以后影响确实很大。参考文件1 范立峰,林果园 编著.Java Web 程序设计教程.北京:邮电出版社2 (美) Bruce Eckel 著.陈昊鹏 译.Java编程思想.第4版.北京:机械工业出版社3 baidu: 4 李艺兴,杨瑞龙 编著.java EE Web编程. 北京:机械工业出版社成绩评定成绩 老师签字