复习、巩固JavaWeb、数据库、AJAX、JQuery、HTML的基础知识,进一步加深对JSP(Java Server Pages)层框架框架技术的理解和掌握;课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。
培养学生在项目开发中团队合作精神、创新意识及能力。
2.2 业务需求分析
2.2.1 学生需求分析
学生可以看到学校信息及放假日期,可以查看考试成绩,查看班级其他同学联系方式,可以修改个人信息。
2.2.2 教师需求分析
教师可以看到学校信息及通知,添加考试及登录学生成绩,查看其它教师联系方式,修改个人信息。
2.2.3 管理员需求分析
管理员要对教师,学生资料进行管理。可以查看教师列表,学生列表,对教师及学生的信息进行,增加,删除,修改,查找。可以发布考试及统计分析成绩,可以管理年级,班级,课程,还可以修改本系统。
3 系统开发环境与工具
3.1 系统开发环境
网站运用eclipse IDEA开发工具,MySQL数据库,详细信息如下:
- 操作系统平台:Windows10
- 数据库平台:MySQL+Navicat8.6
- 开发平台:My eclipse
- 运行环境:Tomcat9.0
- 系统架构:MVC(Model View Controller 模型-视图-控制器)设计模式
- 软件开发语言:Java+SQL
3.2 系统开发工具
开发工具:My eclipse
MyEclipse企业级工作平台(MyEclipseEnterprise Workbench ,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。
MyEclipse 是一个十分优秀的用于开发Java, J2EE的 Eclipse 插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse可以支持Java Servlet,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse是几乎囊括了所有主流开源产品的专属eclipse开发工具。
Java中间件服务器:Tomcat 9
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。
JDK开发工具包:JDK1.8
JDK 全称Java Development Kit 是Java语言的软件开发工具包,JDK是整个Java开发的核心,他包含了Java的运行环境(JVM+Java系统类库)和Java工具。个人理解:如果说JRE是客户需要安装的,那么JDK就是开发人员所必须的,Java的开发是建立在JDK的基础上的,只有安装了JDK才能实现Java代码的编译(Javac)与运行(Java)以及其他的更多对于Java代码的操作。
数据库: MySQL和Navicat for MySQL
MySQL是一个关系型数据库管理系统, 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。Navicat for MySQL 是一套管理和开发 MySQL的理想解决方案,支持单一程序,可同时连接到 MySQL。这个功能齐备的前端软件为数据库管理、开发和维护提供了直观而强大的图形界面,给 MySQL新手以及专业人士提供了一组全面的工具。
4 系统设计
4.1 系统结构设计
学生信息管理系统架构图如图4-1-1所示:
4.2 E-R图
学生信息管理系统E-R图如图4-2-1所示:
4.3 数据库设计
本系统将数据存储在11个表中,分别是:
用户表
其中Type表示身份类型,1代表学生,2代表教师,3代表管理员。
教师表
系统信息表
学生表
其中CLazzid表示学生所属班级,Gradeid表示学生所属年级。
年级表&年级课程表
其中Gradeid表示课程所属年级,Courseid表示该年级的课程。
考试表
其中Type表示考试类型,1为统考,2为平时考试,Remark表示考试备注, Courseid表示考试科目。
考试成绩表
课程表&任课教师表
班级表
5 详细设计
5.1 登录界面设计
系统通过request.getParamete方法来读取用户账号密码及验证码。通过Integer.parseInt(request.getParameter("type"))方法获取用户登陆类型。使用VCodeGenerator.java来生成随机验证码,通过if(!sVcode.equalsIgnoreCase(vcode)语句来判断用户验证码是否一致,如果不同则返回"vcodeError"验证码错误,如果相同则将账号密码进行封装。通过User loginUser = service.getAdmin(user)语句与数据库中账号密码相匹配,如果匹配失败则返回"loginError"。并重新登录,如果匹配相同通过request.getSession().setAttribute("user", loginUser)语句将其存储到session中,并登录系统,登录界面如图5-1-1所示。
5.2 功能设计
5.2.1 学生功能设计
学生界面分为三个区域,分别是页面上部的信息栏,左侧导航栏,以及主要显示界面,如图所示。主要显示界面通过jsp中{systemInfo.schoolName}获取数据库中学校名称,通过{systemInfo.noticeStudent}获取学校通知。如图5-2-1所示。
页面上信息栏为系统名称及学生姓名,通过request.getRequestDispatcher方法进入学生界面,使用jsp中{user.name}语句获取数据库的学生姓名。点击退出按钮可以退出系统。通过request.getSession().removeAttribute("user")退出系统清除用户数据,通response.sendRedirect(contextPath+"/index.jsp")过语句使用户跳转到登录界面index实现退出登录。
左侧功能栏分别提供成绩查询,班级通讯录,及个人信息修改等操作。
学生点击教学管理时如图5-2-2所示。
学生点击成绩查询时,通过StudentDaoImpl().getStudentList方法来获取该学生在数据库中的考试列表,通过examstudent.jsp中语句调用studentExamList(request, response)方法显示考试列表。当学生点击查看成绩示使用List<Map<String, Object>> list = dao.getScoreList(exam)语句获取该学生数据库中的该科成绩,通过examstudent.jsp中语句调用columnList(request, response)将成绩显示在页面上。当学生点击班级信息时如图5-2-3所示。
通过getStudentList(String account, Page page)方法获取本班同学的班级表,可以看到其他同学的信息及联系方式,当学生选择一个同学说时点击查看按钮通过getStudent(String account)方法查看该同学的信息。通过getPhoto(HttpServletRequest request, HttpServletResponse response)方法来查看该同学的照片,学生点击系统管理时如图5-2-4所示。
通过使用editStudent(Student student)方法来实现修改学生姓名,性别,手机号,qq号并通过List
完整代码:https://download.csdn.net/download/weixin_55771290/87395378