【计算机软件毕业设计】高校教学管理系统的设计与实现-网上答疑管理模块.docx
河北农业大学 本科毕业论文(设计)题 目:高校教学管理系统的设计与实现-网上答疑管理模块 摘要现在高校教学产生的信息量越来越庞大,随着计算机科学技术的发展,一款能够帮助高校管理教学的软件十分必要,根据这种需求,建立了高校教学管理系统,该系统能够实现让教师通过网络进行学生网上答疑管理,加了老师和学生的互动性,提高了老师的效率,为高校教学质量的提高奠定了基础。本论文主要介绍的是高校教学管理系统的网上答疑管理模块,分析了系统中该模块的功能需求和实现该功能的技术原理。本文还介绍了教学管理系统的总体架构,该系统采用的是三层B/S架构。在设计数据库时使用了Mysql,使用了JSP进行编程,另外还用到、Servlet、JavaBean等技术进行系统开发。本模块实现的功能是教学管理系统的网上答疑管理功能,主要包括教师对于学生问题的管理功能,学生对于自己问题的管理功能,教师回复学生问题的功能,以及管理学生和老师账号的功能。该模块的使用大大增加了教师和学生的互动性,能够让教师及时帮助学生解决学习中所遇到的问题,同时通过网络实现资源共享,所有学生都能够分享到教师的答案,从而提高学习效率和教学质量。关键词:网上答疑管理模块,JSP, 浏览器/服务器,高校教学管理系统Abstract Now the teaching of information has become more and more big,with the development of computer science and technology, a help of university teaching management software is very necessary, according to the demand, we set up the teaching management system, the system can realize the teacher to students through the network problem sets job management, online examination management, on-line question-answering management, practice management four big functions, thus greatly increased the teacher and the students interactive, also greatly improve the efficiency of the teacher, which laid a foundation for the improvement of teaching quality in colleges and universities.Are mainly introduced in this paper the teaching management system of the on-line question-answering management module, analyzes the functions of the module in the system requirements, and realize the function of technical principle, at the same time, the paper has analyzed the feasibility of the module. This article also introduces the overall architecture of the teaching management system, including the module of online question-answering system has carried on the detailed design and introduction. In the design of database, made a relatively complete database table structure, made clear the relationship of each table. In addition, the system USES a three-tier B/S structure, using JSP programming, also use the tomcat, Servlet, JavaBean and Mysql technology for system development.This module implements the function of the teaching management system on-line question-answering management functions, management functions mainly includes the teacher to students, students for their own problem of management function, the function of the teachers respond to students' problems, as well as the function of the students and the teacher account management. The use of the module has greatly increased the interaction of teachers and students, can make teachers timely help students to solve the problems encountered in the learning, at the same time through the network to realize resources sharing, all the students are able to share the answer to the teacher, so as to improve the learning efficiency and teaching quality.Key Words:Mysql,JSP, The Browser/Server,Online Question-Answering Management Module目录1 概述11.1开发背景11.2设计目的及内容11.2.1设计目的11.2.2设计内容11.3 技术概述21.3.1 B/S模式简介21.3.1 MYSQL简介21.3.3 MVC模式简介21.4硬件和软件要求31.4.1硬件要求31.4.2软件要求31.5基本环境31.6系统开发命名规则31.6.1命名规则32 系统分析42.1可行性分析42.2需求分析42.2.1系统需求分析42.2.2系统主要设计类42.3功能分析52.3.1用户基本功能52.3.2后台管理52.3.3板块管理63 数据库设计73.1数据库概要结构设计73.2数据库逻辑结构设计74 系统界面设计94.1系统界面设计95主要代码125.1配置文件12结论21致谢22参考文献231 概述1.1开发背景互联网的高速发展为现代教育事业发展注入了新的活力,建立起基于互联网的远程教育体系已经成为现代教育所关注的热点。原来传统的教学,教师只能通过课堂短短的时间来向学生传授知识,教师与学生缺乏交流机会,教师只能通过布置纸质作业和考试来检测学生的学习成果。同时,教师回答单个学生问题时只能把知识传授给一个学生,实现不了所有学生共享问题的思路和答案,只有通过课堂教学才能实现共享,而这些知识由于学生能力的不同,需求也不一样,但是所有学生还必须得听课,这样就浪费了学生的时间,降低了学习效率。而高效教学管理系统的应用能够更加快捷的传递信息,让教师和学生互动的机会更多,教师可以通过系统的习题作业管理功能来布置学生作业检测学生学习成果,通过在线考试管理来考核学生,通过在线答疑管理功能来实现师生互动,并能把问题答案和解题思路存储在数据库里,实现资源共享,学生可以根据不同需求来查找自己所要的答案和方法,节省了大量时间,使学生学习更加高效。高校教学管理系统是现代化教学的手段,它运用计算机网络为工具帮助教师进行教学管理,在这个过程中它运用了多媒体技术和网络技术等多种技术手段。通过这种教学系统,高效教学质量能够得到快速提高。教育与互联网的结合,这是一种先进的教学理念,丰富了教育教学的手段,使中国的教育现代化进程向前迈进了一大步。1.2设计目的及内容1.2.1设计目的高效教学管理系统的网上答疑管理模块设计的主要目的是让教师能够通过互联网实现远程教学,对学生提出的问题进行答疑。教师也可以对学生的问题进行分类、筛选管理,并把问题储存在数据库中,方便学生查阅,实现资源共享。另外,学生也可以提出问题,更改自己的信息,对数据库中的问题进行搜索查阅学习。1.2.2设计内容实现高校教学管理系统的网上答疑管理模块主要是对学生提出问题数据和老师答疑数据信息的管理,包括提出问题,删除问题,修改问题,以及对精典问题加精置顶的功能。同时,也能实现学生更改自身信息,教师管理学生信息的功能。1.3 技术概述1.3.1 B/S模式简介B/S(浏览器/服务器模式)1是随着Internet结束的兴起,对C/S结构的一种改进。在这个结构下,软件应用的业务逻辑完全在应用服务器端实现,用户表现完全在Web服务器实现,客户端直需要浏览器即可进行业务处理,是一种全新的软件系统构造技术。这种结构更成为当今应用软件的首选体系结构。1.3.1 Mysql简介MySQL 2是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。1.3.3 MVC模式简介MVC模式3是"Model-View-Controller"的缩写,中文翻译为"模式-视图-控制器"。MVC应用程序总是由这三个部分组成。Event(事件)导致Controller改变Model或View,或者同时改变两者。只要Controller改变了Models的数据或者属性,所有依赖的View都会自动更新。类似的,只要Controller改变了View,View会从潜在的Model中获取数据来刷新自己。MVC设计思想:MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层模型层、视图层、控制层。 MVC的优点:将视图展示和应用逻辑清晰的分离开来,降低了模型和视图之间的耦合性,使得系统设计时具有更高的灵活性。首先,最重要的是应该有多个视图对应一个模型的能力。在目前用户需求的快速变化下,可能有多种方式访问应用的要求。例如,订单模型可能有本系统的订单,也有网上订单,或者其他系统的订单,但对于订单的处理都是一样,也就是说订单的处理是一致的。按MVC设计模式,一个订单模型以及多个视图即可解决问题。这样减少了代码的复制,即减少了代码的维护量,一旦模型发生改变,也易于维护。 其次,由于模型返回的数据不带任何显示格式,因而这些模型也可直接应用于接口的使用。1.4硬件和软件要求1.4.1硬件要求CPU:Inter(R) Core(TM)2 Duo CPU 2.10GHzHDD:300GRAM:2.00GB1.4.2软件要求操作系统:Windows XP/Windows 8。数据库:mysql 6.5。开发工具:Myecplise6.5。辅助开发工具: navicat for mysql。浏览器:IE9.0。1.5基本环境以Java语言为基本开发语言,通过运用集成开发环境Myecplise(6.5)4,Tomcat6.05服务器等相关知识,利用Java语言的面向对象的特性及MVC设计思想,设计一个企业物流管理方案,模拟一个企业物流管理系统的出入库管理模块。1.6系统开发命名规则1.6.1命名规则(1)项目中命名规则6项目中各个子项均以子项功能名称的英文组合,类名以对应的意思命名,组成的所有单词的首字母大写;类中的方法依据功能而定,方法命名首单词的首字母小写,其他单词首字母均大写;项目中的页面命名是项目名为前缀加上相应功能名。(2)数据库命名规则数据库名称与项目名称相同,数据库中表命名规则是表名称英文意思的单词或多个单词的组合,单词首个字母大写;表中字段名是相应字段的英文单词或多个单词的组合,单词首歌字母大写。2 系统分析2.1可行性分析原来传统教学的教学方式在管理学生信息上存在很多缺点,如过程操作复杂,手续复杂,效率低下,数据信息不可靠,这些缺点严重制约了现代教学质量的提高和发展空间。随着计算机网络技术的发展,将互联网7技术与教育教学有机结合起来的理念已经成为一种先进的教学观念,因此高校教学管理系统是从实际出发,满足现代高校教学的需求,并参照国外的先进教学模式开发而成,该模块主要实现了学生能够提出不同类别的问题的功能,教师回答学生问题的功能,学生搜索问题的功能,以及一些相关操作,具有操作简单,交互界面清晰,数据准确性高的特点,大大提高了教师与学生的交互性,实现了教学资源共享,从而大大提高了教学质量和教学效率,因此该系统在性能上具有可行性。本系统采用的是JSP开发语言,调试比较简单,技术上已经发展成熟能够满足需求,所以在技术上也存在可行性。本系统开发成本低,并且本系统开发成功后,与传统的教学方式相比,具有高效率,低成本、高质量的特点,可以节省大量人力、物力、财力,所以经济上也存在可行性。综上所诉,本系统的开发在性能,技术,经济上都是完全可靠的。2.2需求分析2.2.1系统需求分析(1) 教师操作的功能:回答学生问题、管理学生问题(置顶/加精/删除)、修改学生信息(2) 学生操作的功能:在不同板块提出问题、搜索问题、查看管理自己提出的问题2.2.2系统主要设计类· Class ConnectionManager:该类实现连接数据库,打开数据库,创建Connection连接,及关闭数据库和相关资源的功能。该类设计为单例模式。· com.dao:该包中的类提供对数据库各表操作。· Com.entity: 该包中的类提供了数据库表对应的实体类· com.service:该服务提供系统中服务方法的功能· com.action:该包中类提供了程序的逻辑结构的实现,起到控制跳转和实现的作用2.3功能分析2.3.1用户基本功能登录页面要求用户输入用户帐户、密码和验证码。在输入用户帐户、密码验证码之后,系统将验证用户帐户和密码及验证码是否正确,如果验证成功,就使用户处于登录状态。否则,系统显示用户帐户或密码错误的提示信息。2.3.1.1 发起问题当登录后,点击发帖,就可以对自己不会的问题发起帮助,然后问题就会以论坛帖子的形式发出,当别人看到也便可以对其进行回帖2.3.1.2 回复问题当看到别人的问题会,如果自己会,可以点击回复进行回答(前提是登陆状态下才可回复)2.3.2后台管理系统的这项功能只有超级管理员有权限执行,普通管理员没有此项权限。2.3.2.1 用户管理单击“查看用户”,可以显示所有用户的基本信息并可以对其进行操作。2.3.2.2 板块管理单击“计算机”,可以显示计算机类的所有问题并可以对其进行操作。单击“机械类”,可以显示机械类的所有问题并可以对其进行操作。单击“金融类”,可以显示金融类的所有问题并可以对其进行操作。2.3.2.2添加管理员该功能可以为某个后台添加管理员。添加管理员要求有两个:一是必须已经是注册用户。二是不行高级管理员才能操作。2.3.2.3删除管理员该功能可以删除某个仓库的管理员。删除管理员需要查找需要删除的管理员的信息,查询所有员工的信息,直接点击“删除”,完成删除管理员的操作。2.3.3板块管理板块管理,超级管理员和普通管理员都有权限进行操作。2.3.3.1问题置顶实现问题的置顶。2.3.3.2问题加精实现问题的加精操作。加精:管理员管理问题列表,实现加精的操作。3 数据库设计3.1数据库概要结构设计本系统数据库采用Mysql数据库8,系统数据库名称为bbs_db。数据库中包含3张表。(1) 用户信息表,包括的数据项有:ID、用户名、密码、性别、电话、qq、Email、头像、权限等。(2) 问题表,包括的数据项有:ID,标题、内容、发起人、发起时间、是否置顶、是否加精、所属板块、点击量等。(3) 回复表,包括的数据项有:回复内容、回复时间、回复人、所属问题ID等3.2数据库逻辑结构设计根据上述数据库的需求分析和概念结构设计9,设计了名称为bbs_db的数据库。数据库bbs_db由下面多个表格组成,各个表的命名及字段命名10都是以相应名称的首字母组合而成,各个表格的设计结果如下表所示,每个表格表示在数据库中相对应的一个表。(1) 用户表,如:表3-1 表3-1 用户表列名字段类型长度允许为空1uidint 11不允许2unamevarchar255允许3passwordvarchar 255允许4sexvarchar 255允许5phonevarchar255允许6qqvarchar255允许7emailvarchar 255允许8photovarchar255允许9userableint1允许10questionvarchar255允许11answervarchar255允许(2) 问题表,如:表3-2 。表3-2问题表列名字段类型长度允许为空1Bbs_idint 11不允许2Bbs_titlevarchar255允许3Bbs_contentvarchar 255允许4Bbs_sendervarchar 255允许5Bbs_sendTimevarchar255允许6Bbs_idGoodvarchar255允许7Bbs_isGoodTimevarchar 255允许8Bbs_blo_idint11允许9pointint11允许(3) 回复表,如:表3-3 。表3-3 回复表列名字段类型长度允许为空1Reply_idint 11不允许2Bbs_idvarchar255允许3Reply_contentvarchar 255允许4Reply_timevarchar 255允许5replyervarchar255允许4 系统界面设计4.1系统界面设计打开网页后的界面如下图4-1,. 从菜单栏中选择进行的操作。图 4-1 首页系统前台共主要分为7个模块:第一部分:计算机类的问题。如下图4-2,图 4-2 计算机类问题模块第二部分:机械类问题。如下图4-3,图 4-3 机械类问题模块第三部分:工商类,如下图4-4,图 4-4 工商类问题模块第四部分:用户登录注册模块,包括用户的登录,注册和修改用户信息。如下图4-5,产品管理.图 4-5 用户模块第五部分:登录模块,。如下图4-6,图 4-6 登录第六部分:注册模块第七部分:个人信息模块,包括查看个人信息,修改信息。5主要代码5.1配置文件配置文件web.xml中主要用于配置各个servlet和验证登录的过滤器。当输入的网页或者跳转出现错误时,就会自动跳转的错误页面,默认打开页面为首页。 <servlet> <servlet-name>action</servlet-name><servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <init-param> <param-name>debug</param-name> <param-value>3</param-value> </init-param> <init-param> <param-name>detail</param-name> <param-value>3</param-value> </init-param> <load-on-startup>0</load-on-startup> </servlet> <servlet> <description>检测邮箱是否存在</description> <servlet-name>CheckMailServlet</servlet-name> <servlet-class>com.servlet.CheckMailServlet</servlet-class> </servlet> <welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>CheckServlet</servlet-name> <url-pattern>/CheckServlet</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <error-page> <error-code>404</error-code> <location>/404.jsp</location> <!- 表示当系统发生404就是不存在请求地址的错误的时候,页面跳转到404.html页面。 -> </error-page> <error-page> <error-code>500</error-code> <location>/404.jsp</location> <!- 表示当系统发生500也就是操作异常错误的时候,页面跳转到error.jsp页面。 -> </error-page></web-app>5.2部分功能代码5.2.1 ConnectionManager代码主要作用是通过jdbc加载驱动,然后连接数据库,通过获取Connection 的对象来获取得到操作数据库的对象来操作数据库private Connection con;private PreparedStatement pst;public static ConnectionManager mydb=new ConnectionManager();public static ConnectionManager conn=new ConnectionManager();public ConnectionManager()try Class.forName("com.mysql.jdbc.Driver"); catch (ClassNotFoundException e) e.printStackTrace();public static Connection getConnection()Connection conn=null;String url="jdbc:mysql:/localhost:3306/bbs_db"try conn=DriverManager.getConnection(url,"root","rootadmin"); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();return conn;5.2.2 Dao代码主要可以得到用户的信息,并且可以修改用户信息,通过数据库的limit指令,可以实现分页功能,得到较少的数据量加快程序的读取速度,:public UserBean getUser(String uname) Connection conn=null; Statement sta=null; ResultSet rs=null; ArrayList list=new ArrayList(); UserBean user=new UserBean(); String sql="select photo from user_tb INNER JOIN bbs_tb ON user_tb.uname='"+uname+"'" conn=ConnectionManager.getConnection(); try sta=conn.createStatement();rs=sta.executeQuery(sql);if(rs.next()user.setPhoto(rs.getString(1); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace(); return user;/* * 得到我的帖子并分页 */public ArrayList myBbs(int nowpage,String uname) String sql="selectbbs_id,bbs_title,bbs_sendTime,bbs_blo_id,point from bbs_tb where bbs_sender='"+uname+"' limit " + (nowpage - 1) * 15 + ",15"Connection conn = null;Statement sta = null;ResultSet rs = null;ArrayList arr=new ArrayList();try conn = ConnectionManager.getConnection();sta = conn.createStatement();rs = sta.executeQuery(sql);while(rs.next() BbsInfoBean bbs=new BbsInfoBean();bbs.setBbs_id(rs.getInt(1);bbs.setBbs_title(rs.getString(2);bbs.setBbs_sendTime(rs.getString(3);bbs.setBbs_blo_id(rs.getInt(4);bbs.setPoint(rs.getInt(5);arr.add(bbs); catch (Exception e) / TODO: handle exceptione.printStackTrace();return arr;5.2.3 action代码主要是逻辑结构的控制,先判断用户输入的账号和密码是否正确,如果正确跳转到首页,如果错误,则跳转到登录页面重新登录,并提示输入的账号或者密码错误,如果已经登录,可以查看自己的信息:public ActionForward changeSave(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) DynaActionForm userForm = (DynaActionForm) form;/ TODO Auto-generated method stubString uname=userForm.getString("uname");String password=userForm.getString("password");UserBean user=new UserBean();user.setUname(uname);user.setPassword(password);UserServer us=new UserServer();boolean bool=us.changeSave(user);if(bool)return mapping.findForward("ok");elseString str = "信息有误,请确认后再输入"request.setAttribute("error1", str);return mapping.findForward("notcan");public ActionForward userExit(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) request.getSession().removeAttribute("uname0"); HttpSession session=request.getSession(); UserBean user=(UserBean)session.getAttribute("user"); session.invalidate(); return mapping.findForward("userExit");/* * 得到用户的个人信息 * param mapping * param form * param request * param response * return */public ActionForward getUserInfo(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) String uname = (String) request.getSession().getAttribute("uname0");UserBean user = new UserBean();user.setUname(uname);UserServer us = new UserServer();user = us.getUserInfo(user);request.setAttribute("user", user);return mapping.findForward("showInfo");5.2.4 Service代码主要是把dao层的方法加进去,实现了业务分层,这样做的目的是让程序更安全,并且思路更清晰,让程序的结构更整齐,代码的可读性更高/查询各版块帖子