《基于WEB的选排课系统.doc》由会员分享,可在线阅读,更多相关《基于WEB的选排课系统.doc(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、吉林大学珠海学院毕业论文(设计)基于WEB的选排课系统The Course Selecting and Arranging System Based on WEB完成日期 2013 年 4 月毕业论文开题报告基于WEB的选排课系统摘要目前,选排课系统在学校使用广泛。我们学校使用的正方教务管理系统就是一个典型的例子。本人做这个系统已经持续有较长的一段时间。在这期间,个人主要完成系统分析、设计和编码。主要工作包括搜集资料、需求分析和设计。需求分析主要是确定系统的功能。设计包括UI设计和数据库设计。编码过程,分层次分模块逐一进行。画界面原型,构建Servlet服务层。处理基本信息,实现选课和排课的功
2、能。实现基本功能后,本人开始做系统测试和论文的撰写。经过两个多月的努力,选排课系统毕业设计基本完成。本系统采用Java语言开发,界面用JSP设计,数据库用SQL Server2000,部署环境用tomcat。根据系统的需求,已经实现如下功能:一、用户登录和权限管理;二、基本信息的录入和修改;三、查看课程和课表;四、学生选课和退课;五、课程安排和智能排课。综合分析了一下,选排课系统与个人在学校做过的课程设计相比存在较大的差别。本系统涵盖信息量大,功能模块多。课题难度较大,具有一定的挑战性。个人认为选排课系统具有重要的意义。选排课系统比较贴近生活和贴近实际,并且它具有一定的学术性,对于进一步深入研
3、究选排课系统存在一定的帮助。关键词:数据库;JSP;Servlet;课程;选排课;设计The Course Selecting and Arranging System Based on WEBAbstractCurrently, the course selecting and arranging system widely used in schools. The square academic management system used in our school is a typical example.I do this system which has continued for
4、 a longer period of time. During this period, I completed the systems analysis, design and coding. The main task is to collect information requirements analysis and design. Requirements analysis is to determine the function of the system. Design work including UI design and database design. In the c
5、ourse of coding, different levels of sub-modules one by one. painting interface prototype, build SERVLET service layer. Deal with the basic information, and complete the course selecting and arranging feature. After the realization of the basic functions, I start doing system tests and writing paper
6、s. After more than two months of efforts, the course selecting and arranging system graduate design basically completed.The system developed by the Java language. The system interface design with JSP. The system database uses SQL Server2000. The system deployment environment uses tomcat. According t
7、o the requirements analysis, the system has completed the functions in the follows: First, user login and rights management. Second, entry and alter the basic informations. Third, the student views courses and curriculum; Fourth, students course and withdrawn. Fifth, arranging the curriculum and doi
8、ng the smart timetable.Comprehensive analysis, there is a big difference between the course selecting and arranging and curriculum design which done by the individuals in the school. This system covers a large amount of information and multi-function modules. The subject is difficulty, and with some
9、 challenging. Personally think that the course selecting and arranging System is of great significance. The course selecting and arranging system is more closely to the life and close to reality. It has a certain academic and exist some help for further study.Key words:Database;JSP;Servlet;Course ;C
10、ourse Selecting and Arranging System;Design目录1 绪论11.1 研究背景 11.2 开发环境简介 11.2.1 Java语言简介11.2.2 JSP介绍21.2.3 数据库的简介22 需求分析42.1 系统需求分析 42.1.1 按用户划分系统42.1.2 按功能划分系统42.2 系统功能分析图 53 总体设计63.1 系统结构图 63.2 总体功能设计 73.2.1 系统设计目标73.2.2 总体设计73.3 数据库设计 83.3.1 系统数据分析83.3.2 系统ER图83.4 数据流图 93.5 数据字典 103.5.1 登录用户表103.5.
11、2 学生表103.5.3 老师表113.5.4 课程表113.5.5 系别表123.5.6 班级表123.5.7 课程时间表123.5.8 教室表133.5.9 课表表133.5.10 选课表133.5.11 专业表143.5.12 学生课程表144 设计思想与实现154.1 用户登陆模块 154.2 查询课程模块 164.3 查询课表模块 174.4 选课和退课模块 184.5 排课模块 194.6 信息录入和信息维护模块 204.7 课程安排模块 204.8 排课管理模块 215 系统测试与运行245.1 系统测试 245.2 系统运行环境 246 结束语25参考文献26致谢271 绪论1
12、.1 研究背景当今社会,科学技术和信息技术迅猛发展。各个领域都朝着信息化过度。在这种背景下,学校也充分利用了科技的成果,把大量的工作转移到教务管理系统中,从而大大提高了学校的教学管理和工作效率。选排课系统是教务系统的重要组成部分,在现实中使用广泛。这种系统具有重要的意义。首先它为学校提供了一种高效的数据管理方式,高校通过使用这种系统,可以对学生信息、课程信息、教室信息、选课信息等进行系统化规范化的管理。其次,选排课系统作为一个独立应用的小系统,具有一定的研究意义。因为系统设计的表比较多,关联也比较强,对数据库设计要求也较高。另外是算法,实现课程安排和智能排课,这些内容都是很好地演绎了课堂教学,
13、从而真正体现出学以致用。在选排课系统出现之前,学校使用人工方式进行选课和排课。手工方式有许多不足,如安全性差和效率低。并且时间久了,会出现大批文件,这不利于选排课的管理。现在使用选排课系统,把人的工作交给计算机处理,这样不但减轻工作负担,还能够为用户提供充足的信息和快捷的查询手段。一个优秀的系统离不开先进的技术。选排课系统正是科技的一个产物。使用选排课系统进行教务管理有着许多优点。例如:查询快捷、安全性高、存储量大、保密性好、成本低等。现在几乎各大高校都在使用教务管理系统。几乎每一位在校的大学生每学期都要进行选课。所以对即将毕业的大四学生来说,对选排课系统并不陌生。而个人就有一种好奇,特想知道
14、身边这个熟悉的系统背后到底隐藏了有多少知识和智慧。因此,趁着毕业设计这个机会,可以深入探讨一下选排课的原理和应用。1.2 开发环境简介本系统所使用的开发集成工具是Eclipse, 本系统采用的语言是Java,界面设计用JSP,数据库用SQL Server2000,部署环境用tomcat。1.2.1 Java语言简介Java起源较晚但是发展很快。它是一种纯面向对象的高级编程语言。它具有跨平台的特性。Java平台由Java虚拟机(Java Virtual Machine)和Java 应用编程接口(Application Programming Interface、简称API)构成。现在大多数操作系
15、统都已支持Java平台。这样极大地扩展了Java程序的通用性,实现一次编写,多次运行。Java分为三个体系J2SE(Java2 Standard Edition) 标准版,J2EE(Java2 Enterprise Edition) 企业级应用版,J2ME(Java 2 Micro Edition) 移动开发版。本系统采用的是J2SE标准版。Java语言是一种高级语言。它在计算机编程语言中占有重要地位。Java思想是一种哲学的思想。博大精深!面向过程到面向对象的转变是人类编程的一大飞跃。社会发展需要革命,同理,计算机发展也是需要革命。Java才出现无疑就是一场革命。这场革命推开了计算机编程的大
16、门。世界上很多程序员都热衷于用Java语言。通过Java语言做出的应用也是数不胜数。Java具有23中设计模式,这使得Java开发和设计变得更加灵活和快捷。正因为Java拥有众多的优良特性,才受到广大程序员的青睐。Java从1995诞生到现在已走过18年的历程。如今,Java作为一门成熟而又精良的编程语言,在IT发展大潮中将继续发挥其独特的作用和魅力。1.2.2 JSP介绍JSP是一种动态页面编程技术。它是由Sun公司倡导和建立的一种动态技术标准。JSP页面可以嵌入Java代码,这是JSP与HTML页面的主要区别。JSP实现组件也数据分离,客户端请求Java代码,服务器将结果数据返回给前台客户
17、端。支持基于组件的设计,使基于Web的应用程序的开发变得灵活和快捷。Java SERVLET是JSP的技术基础,而且大型的Web应用程序的开发需要Java SERVLET和JSP配合才能完成。JSP主要面向互联网。JSP吸收Java的优点,开发起来相对容易。JSP的指令和脚本。常用指令有page指令和include指令。JSP声明变量有特定格式。JSP的表达式也有格式有特定的格式。使用JSP需要熟悉它的语法结构。JSP与Servlet的通信方式。Servlet请求方式有两种,分别是Get请求和Post请求。Get请求效率高,但安全性偏差,适合本地请求,Post请求,安全性高,但效率相对低,适合
18、远程服务请求。本系统通信方式全部采用Get请求。JSP传参数方式采用键值对的方式。JSP页面通过request.getAttribute()方法获得请求的参数值,如:getAttribute(xuesheng),获得key=xuesheng的值。JSP向Servlet服务器传递页面参数用form.action,并把URL和参数写入action。Servlet接收JSP页面参数的方法getParameter();如request.getParameter(username),获得key=username的值。1.2.3 数据库的简介数据库技术是计算机科学技术中发展最快的领域之一,也是应用最广的技
19、术之一,它已成为计算机信息系统与应用系统的核心技术和重要基础2。数据库系统特点:一、数据结构化;二、数据的共享性高,冗余度低,以扩充;三、数据独立性高2。自SQL成为国际标准语言后,各个数据库厂家纷纷退出各自的SQL软件或与SQL的接口软件,这就使大多数数据库均用SQL作为共同的数据存取语言和标准接口,使不同数据库系统之间的互操作有了共同的基础SQL已成为数据库领域中的主流语言。这个意义十分重大2。数据库的出现和发展使得软件行业发展更加稳健。数据库,顾名思义,存储数据的仓库。大部分应用都离不开数据库。数据库实现程序与数据分离。在一定程度上,数据库改变了软件开发模式。SQL Server是由Mi
20、crosoft开发和推广的关系数据库管理系统(DBMS)。SQL Server 2000包含许多插件。服务管理器一般用来启动服务和停止服务。查询分析器用于SQL操作,如创建表,数据的增删改查。而企业管理器是提供可视化操作,可以看到有那些数据库、视图和表,还可以在这里附件数据库。联机丛书相当于帮助文档,在使用查询分析器时经常要查看联机丛书,可以帮助我们写出更好更高效的SQL。2 需求分析2.1 系统需求分析本系统分为三类使用者。系统管理员、学生和教师。管理员成功登录后,可以多方面、全方位地管理系统。学生成功登录系统后,拥有查看课程内容信息和查看已安排好的课表信息的操作。学生还拥有选择所需课程和退
21、选不必要的课程的操作。老师成功登录系统后,可以查看课程内容和查看课表信息。2.1.1 按用户划分系统(1)学生模块。学生根据自己ID号和password进入系统。具有如下功能:查看课程内容,可以查看课程内容信息和查看已安排好的课表信息。选择所需课程和退选不必要的课程的操作。(2)教师模块。老师根据自己ID号和password进入系统。可以查看课程内容和查看课表信息。老师还可录入教室、专业等信息。(3)管理员模块。管理员根据自己ID号和password进入系统,可以多方面、全方位地管理系统。管理员可以录入和维护系统信息。能确认学生近期的选课。能排列各科课程时间。提交智能排课。2.1.2 按功能划
22、分系统(1)用户登录的系统模块主要的使用者:系统管理员、学生和教师。用户登录模块功能:用户登录时,根据自己的身份选择登录类型。登录类型分三种:系统管理员、学生和教师。不同使用者访问系统会有不同的操作权限。学生和老师点击登录成功后,跳转到课程查询模块。系统管理员点击登录成功后,跳转到课表查询模块。(2)选课系统模块主要的使用者:学生和教师。选课系统模块主要实现五个功能:一、查询使用者要上的课程。二、按条件查询课程相关内容,按老师名称查询和课程内容查询两个条件。三、选择需要上的课程和退选不需要的课程。四、使用者可以根据需要修改自己的password。五、退出系统,选择注销。(3)课程管理系统模块主
23、要的使用者:系统管理员。课程管理子系统有五大功能:一、教师信息录入和维护。二、课程内容录入和维护。三、课室信息录入和维护。四、确定各科课程的上课时间。五、系统智能自动排课。2.2 系统功能分析图本系统面向对象是学生、老师和管理员,分别具有不同的操作权限。选课子系统老师管理员学生教师信息管理修改密码信息维护查询课程学生信息管理课程信息管理教室信息管理课程管理排课管理注册查询课程查询课表选课退课修改密码注册2-1 系统功能分析图3 总体设计3.1 系统结构图根据系统功能模块分析,选排课系统结构图:选课子系统用户登录子系统学生选课子系统课程管理子系统查询课程课表查询查询课程信息选课和退课管理员教师学
24、生选课确认进入排课系统3-1 系统总体结构图排课子系统教师信息管理信息维护智能排课信息维护信息录入信息维护信息录入排课结果课程信息管理教室信息管理课程安排排课管理信息录入安排课程3-2 排课子系统结构图3.2 总体功能设计3.2.1 系统设计目标选排课系统总的设计实现以下目标:* 使用者可以根据自己ID和password登录系统。* 不同使用者具有不同操作权限,系统管理员具有最高权限。* 基本信息(包括课程、教室等信息)能录入和维护。* 学生可以有条件地选择课程和退选课程。* 管理员可以安排课程。* 智能排课。3.2.2 总体设计根据系统设计目标,总体设计如下:(1)登录子系统设计登录管理员学
25、生或老师课表查询查询课程查询课程信息进入排课管理3-3 登录流程图(2)选课子系统设计选课和退课选课修改密码退课注销退出选课确认管理员3-4 选课退课流程图(3)排课子系统设计排课管理信息录入和维护课程安排查询课程智能排课课表查询3-5 排课流程图3.3 数据库设计3.3.1 系统数据分析通过对选排课系统的分析,可以得出该系统涉及到多个实体:课程、班级、课程时间,教室和系统用户(包括学生用户、教师用户和管理员)。(1)数据项关联课程:(教学周,课时)班级:(系别,年级,人数)课程时间:(课程名,开始时间,结束时间)教室:(容纳人数)学生:(班级)教师:(课程)(2)实体对象之间的对应关系:学生
26、与班级:多对一的关系。教师与课程:多对多的关系。班级与课程:多对多的关系。班级与课程时间:多对多的关系。课程与课程时间:多对多的关系。课程时间与教室:多对多的关系。3.3.2 系统ER图通过对系统实体数据关系的分析,可以画出如下E-R图:学号姓名教师号姓名学生表教师表课程班级属于讲授安排课程教室课程时间年级班级号课程号教学周课时课程名系别人数课程号课程名开始时间结束时间排课教室号教室名结束时间3-3 系统E-R图3.4 数据流图以下为数据流图:选排课管理系统顶层数据流图如下:选排课系统管理员老师学生各类信息全部课表排课标准学生个人信息学生个人课表课程详细信息选课和退课信息教师个人信息教师个人课
27、表3-4 系统顶层数据流图3.5 数据字典3.5.1 登录用户表描述:对系统登录用户的记录,登录基本信息包括: username、 mima和quanxian三个项。表3-1 登录用户表3.5.2 学生表描述:学生表记录学生信息,包括:xueshengid、xingming和banjiid。表3-2 学生表3.5.3 老师表描述:老师表记录老师信息,包括:laoshiid 、xingming和kechengid 。表3-3 老师表3.5.4 课程表描述:课程表记录课程信息,包括:kechengid、kechengming、zhuanyeid、nianji、jiaoxuezhou、keshi和z
28、huangtai。表3-4 课程表3.5.5 系别表描述:系别表记录系别信息,包括:xibieid和xibie。表3-5 系别表3.5.6 班级表描述:班级表记录班级信息,包括:banjiid、banji、nianji、xibieid、zhuanyeid和renshu。表3-6 班级表3.5.7 课程时间表描述:课程时间表记录课程时间信息,包括:kechengid、begintime和endtime。表3-7 课程时间表3.5.8 教室表描述:班级表记录班级信息,包括:jiaoshiid、jiaoshi和renshu。表3-8 教室表3.5.9 课表表描述:班级表记录班级信息,包括:kebia
29、oid、zhuanyeid、nianji、xingqi、kejie、kechengid、banjiid、laoshiid和jiaoshiid。表3-9 学生表3.5.10 选课表描述:选课表记录选课信息,包括:xuankeid、xueshengid和kechengid。表3-10 学生表3.5.11 专业表描述:专业表记录专业信息,包括:zhuanyeid和zhuanye。表3-11 专业表3.5.12 学生课程表描述:学生课程表记录学生课程信息,包括:xueshengkechengid、xueshengid、kechengid、xuefen和feiyong。表3-12 学生课程表4 设计思想
30、与实现整个企业选排课系统采用分层设计思想,模块化独立开发。访问的URL:http:/localhost:8080/arrangement/jsp/。注意:localhost指的是本地IP。4.1 用户登陆模块系统的布局采用简约的table布局。系统为了提高效率、减少页面跳转,结合本人的开发之便,对系统做了精简设计。如下是登录首页。如果是学生可以直接登录或注册,如果是其他用户,可以在左侧目录“用户登录”进行选择。图4-1 登陆界面主要实现代码:String name = request.getParameter(username);String pwd = request.getParamete
31、r(userpwd);String admin = request.getParameter(admin);String xuesheng = request.getParameter(xuesheng);String laoshi = request.getParameter(laoshi);String str = ;LoginBean lb = new LoginBean();int flag = lb.login(name,pwd);RequestDispatcher rd=request.getRequestDispatcher(str);rd.forward(request,res
32、ponse);4.2 查询课程模块查询课程模块提供系统所有课程信息的查询。课程信息包括课程号、课程名、开始时间、结束时间和授课老师。这个模块,学生老师管理员用户均可操作。查询的课程信息按列表形式展示。在列表中,可以点击任意的课程名和授课老师进行详细查询。图4-2 学生查询课程查询界面,可以点击课程名一栏进入“查询课程信息”页面。查询课程信息功能中,提供两个查询条件,分别是按老师查询和按课程查询。查询的结果包括课程号、课程名、开始时间、结束时间、教学周、总课时、专业、年级和授课老师9个信息。图4-3 学生查询课程信息4.3 查询课表模块上面对课程信息做了查询,接下来是对课表的查询。课程表查询也是
33、本系统的重点模块。课程表查询提供多个查询条件,分别是专业、课程、年级、班级等等。图4-4 查询课表信息主要实现代码:Validate v = new Validate();String zhuanyeid = request.getParameter(zhuanyeid);String zhuanye = request.getParameter(zhuanye);String kechengid = request.getParameter(kechengid);String kecheng = request.getParameter(kecheng);String nianjiid =
34、request.getParameter(nianjiid);String nianji = null;if(request.getParameter(nianji) != null & !request.getParameter(nianji).equals()nianji = v.getUnicode(request.getParameter(nianji);String banjiid = request.getParameter(banjiid);String banji =request.getParameter(banji);String xingqiid = request.ge
35、tParameter(xingqiid);String xingqi = request.getParameter(xingqi);String laoshiid = request.getParameter(laoshiid);String laoshi = request.getParameter(laoshi);String kejieid = request.getParameter(kejieid);String kejie = request.getParameter(kejie);String jiaoshiid = request.getParameter(jiaoshiid)
36、;String jiaoshi = request.getParameter(jiaoshi);String sql = select * from kebiao;if(zhuanyeid != null & zhuanyeid.equals(1)sql += where zhuanyeid=+zhuanye+;KechengbiaoBean kb = new KechengbiaoBean();ArrayList list = kb.getKebiao(sql);request.setAttribute(list,list);RequestDispatcher rd=request.getR
37、equestDispatcher(jsp/paike/kebiaochaxun.jsp);rd.forward(request,response);4.4 选课和退课模块选课和退课只限定学生和老师用户操作。主要实现代码:选课方法public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException HttpSession session = request.getSession();ArrayList login = (ArrayList)se
38、ssion.getAttribute(login);Stringxueshengid = (String)login.get(0);XuankeBean xb = new XuankeBean();ArrayList xuesheng = xb.getXuesheng(xueshengid);ArrayList allkecheng = xb.getAllKecheng(xueshengid);ArrayList xuankecheng = xb.getXuanKecheng(xueshengid);ArrayList tuike = xb.tuike(xueshengid);int xuef
39、en = xb.getXuefen(xueshengid);int feiyong = xb.getFeiyong(xueshengid);if(xuefen = 5)request.setAttribute(xuefen,1);if(feiyong = 2)request.setAttribute(feiyong,1);request.setAttribute(xuesheng,xuesheng);request.setAttribute(allkecheng,allkecheng);request.setAttribute(xuankecheng,xuankecheng);request.
40、setAttribute(tuike,tuike);用户界面如图4-5:图4-5 选课退课用户界面4.5 排课模块访问的URL:http:/localhost:8080/arrangement/jsp/paike/paikeindex.jsp。排课模块只有管理员身份才能访问。首先,以管理员用户登录(用户名/密码:admin/123),从目录中找到“排课管理”,系统会自动链接到上面的URL。在打开的新的界面中,左边有5个菜单项,即对应5个功能,分别是教师信息管理,课程信息管理,教室信息管理,课程安排和排课管理。主界面如图4-6:图4-6 排课模块主页面4.6 信息录入和信息维护模块管理员进入排课
41、系统可以修改和维护教师信息、课程信息和教室信息。管理员可以录入新教师的姓名和所教课程。教师录入页面,图4-7图4-7 教师录入页面管理员可以对老师的所教课程进修修改或删除。教师维护页面:图4-8图4-8 教师维护页面4.7 课程安排模块课程安排模块,管理员可以定义课程的开始时间和结束时间,并提交。主要实现代码:1、JSfunction update(id,i) form.action=KechenganpaiServlet?kechenganpaiUpdate=1&id=+id+&i=+i;form.submit();2、kechenganpaiServlet类首先获得页面参数String k
42、echenganpaiUpdate = request.getParameter(kechenganpaiUpdate);String id = request.getParameter(id);String i = request.getParameter(i);String beginyue = request.getParameter(beginyue+i);String beginri = request.getParameter(beginri+i);String endyue = request.getParameter(endyue+i);String endri = reque
43、st.getParameter(endri+i);3、日期判断校验(省略)4、执行更新KechenganpaiBean kb = new KechenganpaiBean();if(kechenganpaiUpdate != null & kechenganpaiUpdate.equals(1)kb.update(id,begintime,endtime);5、把结构返回页面展示RequestDispatcher rd=request.getRequestDispatcher(jsp/paike/kechenganpai.jsp);rd.forward(request,response);课程
44、安排页面,图4-9图4-9 课程安排页面4.8 排课管理模块排课管理是本系统的最后一个模块,也是最核心的一个模块。这个模块有两个功能,一是智能排课,二是排课结果展示。智能排课是一个相对复杂的过程。下面简单分析一下:1、JSP页面:aptitudepaike.jspSERVLET: AptitudePaikeServlet.java2、JSfunction tijiao()form.action=AptitudePaikeServlet;form.submit();3、准备工作:String zhuanye = request.getParameter(zhuanye);String nianj
45、i = null;if(request.getParameter(nianji) != null & !request.getParameter(nianji).equals()nianji = v.getUnicode(request.getParameter(nianji);AptitudePaikeBean ab = new AptitudePaikeBean();根据专业ID 和年级ID获得课程信息getKecheng(String zhuanye,String nianji)select a.*,b.*,c.* from kecheng a,kechengtime b,zhuanye c where a.kechengid=b.kechengid and a.zhuanyeid=c.zhuanyeid and a.zhuanyeid=+zhuanye+ and a.nianji=+nianji+根据专业ID 和年级ID获得班级getBanji(String zhuanye,String nianj
限制150内