中南民族大学
毕业论文(设计)
学院: 计算机科学学院
专业:计算机科学与技术 年级:2007
题目: 网上选课系统设计与实现
学生姓名: 德吉卓嘎 学号:07061223
指导教师姓名:高志荣 职称:副教授
2011年5月8日
中南民族大学本科毕业论文(设计)原创性声明
本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。本人完全意识到本声明的法律后果由本人承担。
作者签名: 年 月 日
目 录
摘要 .................................................................................................................................................. 1 Abstract ............................................................................................................................................. 1 引言 .................................................................................................................................................. 2 1 系统相关技术介绍 ....................................................................................................................... 2
1.1 系统开发采用的技术方案——B/ S模式 ...................................................................... 2 1.2 MVC设计模式 .................................................................................................................. 3 1.3 JSP介绍 .......................................................................................................................... 3
1.3.1 将内容的生成和显示进行分离 ........................................................................... 3 1.3.2 强调可重用的组件 ............................................................................................... 3
2 系统开发工具及容器 ................................................................................................................... 4
2.1 开发工具 ........................................................................................................................... 4
2.1.1 MyEclipse简介 .................................................................................................... 4
2.1.2 DreamWaver简介 .................................................................................................. 4 2.2 数据库的选择 ................................................................................................................... 4
2.2.1 MySQL 简介 ........................................................................................................... 4 2.3 JDK版本的选择 ................................................................................................................ 4 2.4 容器 ................................................................................................................................... 4
2.4.1 Tomcat简介 .......................................................................................................... 4
3 需求分析....................................................................................................................................... 5
3.1可行性分析 ........................................................................................................................ 5 3.2 功能模块分析 ................................................................................................................... 5 3.3 软硬件环境需求 ............................................................................................................... 7 4 概要设计....................................................................................................................................... 7
4.1 系统功能结构 .................................................................................................................... 7 4.2 系统流程图 ....................................................................................................................... 7 4.3 系统数据库E-R模型 ....................................................................................................... 8 4.4 数据库表设计 ................................................................................................................... 9 5 详细设计..................................................................................................................................... 10
5.1 界面设计 ......................................................................................................................... 10 5.2 系统功能模块设计 ......................................................................................................... 11
5.2.1 公共模块 ............................................................................................................. 11 5.2.2管理员模块 .......................................................................................................... 12 5.2.3 学生模块 ............................................................................................................. 16
结束语 ............................................................................................................................................ 20 致 谢 .............................................................................................................................................. 20 参考文献......................................................................................................................................... 20
网上选课系统设计与实现
摘要:随着学校招生规模的不断扩大,许多高校出现了多个校区并存的局面,并且校区之间的
地理位置跨度非常大,给高校选课带来了很大的不便。高校选课系统就是为了解决这个问题而产生的,它利用高校现有的网络资源使学生可以通过网络轻松的实现选课功能,使教务人员可以方便快捷的统计各课程的选择情况。
学生选课系统是一款管理系统,囊括了学生管理和课程管理的基本过程。系统覆盖学生的选课、查看、修改密码等各个环节,软件的各个模块操作界面简单、实用,用户可以在最短的时间内掌握系统的使用方法。用户可以在最短时间内找到自己所需要的信息,该系统是一个基于B/S结构的Web项目,可以显著减轻教务人员的工作负担,大大提高工作效率,从而实现教务管理的数字化和网络化。系统采用Struts软件进行开发,用户数据选用MySQL进行统一管理。
关键词:B/S ;选课系统;数据库;Web项目
Design and Implementation of Online Course Selection System
Abstract:With the school's enrollment continues to expand, many universities there coexist many
campuses, and campus location between the span is very large, to the college enrollment is a big inconvenience. University course selection system is to solve this problem arise, it is use of the college network resources available so that students can easily achieve enrollment through the network function, so that academic staff can easily and quickly in the statistics of each course preference.
Class selection system is a management system, the system include the students management and curriculum management, the basic process. System covers course selection of students, view, modify your password and other links, the software interface of each module is simple, practical, users can master the system within the shortest possible time to use. Users Ke Yi in the shortest time to find their required information, the system yes one based on B / S structure of the Web Project, would greatly relieve academic staff burdens that greatly enhance the work efficiency, and realizing the Senate Management digitalization and network-based.System software using Struts, development, user data used for unified management of MySQL.
Key words:B / S ; Course elective system ; Database ; Web projects
1
引言
Internet的发展使我们的教育更加现代化,现在网上信息管理是我们现在教育中的一个热点。现在,教师学生跟学校的之间的信息传播只在一指之间,是为我们创造方便快速的途径。在安全性和信息更新化方面存在有一定的不足,各现有系统资料单独建立,共享性差;在以管理者为主体的方式中,信息取舍依赖管理者对于信息的认知与喜好,较不容易掌握用户真正的需求,也因此无法完全满足用户的需求。目前国家的教育体制也正处在不断改革、创新的阶段,我国教育部门充分吸取国外优秀的教学模式,结合国内多年的办学经验,逐步探索出适合中国特色的教学形式,国家教育部面向各级各类学校开展了全面学分制改革。因此,教学管理软件应充分依托校园网,实现教学信息的集中管理、分散操作、信息共享,使传统的教学管理朝数字化、无纸化、智能化、综合化的方向发展,并为进一步实现完善的计算机教学文件管理系统和全校信息系统打下良好的基础。《学生网上选课系统》是高校教学管理系统的重要组成部分。熟悉教学管理工作的全部过程,从教务工作的实际出发,解决工作中关键性的难点问题,并充分利用计算机网络功能,实现教学工作全过程的计算机管理,帮助具体管理人员从复杂烦琐工作中解放出来。使得教学管理走向无纸化办公和规范化、现代化管理。
由于 Internet 具有影响范围广,能够方便快捷的传递信息,具有近乎实时的交互性,本身又是一个巨大无比的信息库等诸多优点。随着在校大学生人数的不断增加,教务系统的数据量也不断的上涨。学生网上选课系统,可以提高教师,学生和学校的管理效率。我们的目标是用学生网上选课系统实现最快对全校选修课程发布以及新闻发布,使教师和学生最快知道,创造现代化的学习环境。学生选课是大学的主要管理工作之一,涉及到校、系、师、生的诸多方面,随着教学体制的不断改革,学生选课时的制约因素比较复杂,工作量也很大,而且往往需要在较短的时间内完成。在这里,运用计算机辅助选课,即能实时地对大量选课数据进行检验和统计,十分方便地输出选课结果,同时也避免了人工处理时容易产生的错误,可以最大程度的做到实用性,可扩展性和可维护性相结合,安全性以及规范化原则。
1 系统相关技术介绍
1.1 系统开发采用的技术方案——B/ S模式
信息技术的高速发展使网络计算模式不断更新。从单机时代的主机/终端模式、文件服务器时代的共享数据模式、客户机/服务器时代的Client/Server(客户机/服务器)模式,再到今天网络计算机时代的Browser/Server(浏览器/服务器)模式,计算模式发生了巨大变化,同时计算模式的不断进步使管理软件的架构发生了很大变化。
系统综合还应用了B/S模式[1],即Browser/Server(浏览器/服务器)结构,是对C/S结构的一种改进。B/S模式的好处还有运行维护比较简便,能实现不同的人员,从不同的地点,以不同的接入方式访问和操作共同的数据,解决了地域的限制。而基于互联网应用系统都采用Browser/S erver(浏览器/服务器)模式结构,在客户端中除Web浏览器外,要安装的软件便是一些插件和控件。这些插件被设计于服务器端,并通过网络下载到客户端,而控件则是第一次浏览下载并注册的。这是一种最小化的客户端安装及客户机模式,是目前客户服务器体系结构的发展方向。
2
1.2 MVC设计模式
Model模型-View视图-Controller控制器[2]是软件工程中的一种软件架构模式。它把软件
系统分为三个基本部分:Model模型,View视图和Controller控制器。 模型视图控制器模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。专业人员可以通过自身的专长分组: • 控制器Controller- 负责转发请求,对请求进行处理。 • 视图View - 界面设计人员进行图形界面设计。
• 模型Model - 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。
1.3 JSP介绍
JSP是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。该技术为创建显示动态生成内容的Web页面提供了一个简捷而快速的方法。JSP技术的设计目的是使得构造基于Web的应用程序更加容易和快捷,而这些应用程序能够与各种Web服务器,应用服务器,浏览器和开发工具共同工作。 JSP规范是Web服务器、应用服务器、交易系统、以及开发工具供应商间广泛合作的结果。在传统的网页HTML文件(*htm,*.html)中加入Java程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页(*.jsp)。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送 email 等等,这就是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低,可以实现无Plugin,无ActiveX,无Java Applet,甚至无Frame。JSP技术在多个方面加速了动态Web页面的开发:
1.3.1 将内容的生成和显示进行分离
使用JSP技术[3],Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求来变化的,例如请求帐户信息或者特定的一瓶酒的价格)。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和Beans中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBCTM技术访问数据库等),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性。 1.3.2 强调可重用的组件
JSP 作为一个很好的动态网页开发语言得到了越来越广泛的使用,在各类JSP 应用程序当
[4]是描述Java 中,JSP+JavaBean 的组合成为了一种事实上最常见的JSP程序的标准。JavaBean
的软件组件模型,有点类似于 Microsoft的COM 组件概念。在Java 模型当中,通过JavaBean 可以无限扩充Java 程序的功能,通过JavaBean 的组件可以快速地生成新的应用程序。对于程序员来说,最好的一点就是 JavaBean可以实现代码的重复利用。
JavaBean 是一种基于 Java 的软件组件。 JSP 对于在 Web 应用中集成 JavaBean 组件提供了完善的支持。这种支持不仅能缩短开发时间(可以直接利用经测试和可信任的已有组件,避免了重复开发),也为 JSP 应用带来了更多的可伸缩性。 JavaBean 组件可以用来执行复杂的计算任务,或负责与数据库的交互以及数据提取等。如果我们有三个 JavaBean ,它们分别具有显示新闻、股票价格、天气情况的功能,则创建包含所有这三种功能的 Web 页面只需要实例化这三个 Bean ,使用 HTML 表格将它们依次定位就可以了。 利用跨平台运行的 JavaBean 组件, JSP 为分离处理逻辑与显示样式提供了卓越的解决方案。
3
2 系统开发工具及容器
2.1 开发工具
本系统使用的开发工具,后台java代码编写使用MyEclipse Europa workbench 6.5,前台页面编辑使用DreamWaver 8。 2.1.1 MyEclipse简介
MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)[5]是对Eclipse IDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSF, CSS, Javascript, SQL, Hibernate。 2.1.2 DreamWaver简介
Dreamwaver是美国MACROMEDIA公司(现为Adobe收购)开发的集网页制作和管理网站于一身的所见即所得网页编辑器,它是第一套针对专业网页设计师特别发展的视觉化网页开发工具。
2.2 数据库的选择
2.2.1 MySQL 简介
MySQL是一个开放源码的关系数据库管理系统[6],MySQL由于性能高、成本低、可靠性好,已经成为最流行的开源数据库,被广泛地应用在中小型网站中。随着MySQL的不断成熟,它也逐渐用于更多大规模网站和应用。
MySQL 是一个真正的多用户、多线程的SQL数据库服务器。MySQL是现在流行的关系数据库中其中的一种,相比其它的数据库管理系统,MySQL具有小巧、功能齐全、查询迅捷等优点,MySQL 主要目标是快速、健壮和易用,关键的是它是免费的。
2.3 JDK版本的选择
Java Development Kit (JDK) 是Sun公司针对Java开发员的软件开发工具包。自从Java推出以来,JDK已经成为使用最广泛的Java SDK(Software development kit)。
本系统采用JDK 6 edition update 7版本。
2.4 容器
本系统页面采用JSP,所以对应的容器采用Apache Tomcat 6.0。
既然JSP/Servlet,那么它当然是不能直接运行的,必须把它放到某种运行环境当中,它才能发挥它的作用。这个环境就是我们讲的\"容器\"。容器也是 java 程序,它的主要功能除了为Servlet 提供运行环境,还有更重要的就是提供网络传输协议与java 程序实体的相互转换。客户端向服务器发送数据,遵循的是HTTP 协议的数据格式,服务器向客户端发送数据也是遵循HTTP协议的。在客户端和服务器端,可能存在着不同的编程语言编写的程序,比如java,C++等等。各种语言都有自己用于处理HTTP协议数据的方法(类),为了使用java提供的各种HTTP处理相关的类,必须将HTTP协议下的数据做一定的转换,转换成一些java object,这样才能使用java的方法进行数据处理。同理,当这些处理完成,又需要将这些java object转换回HTTP协议下的数据,反馈给客户端(JSP/Servlet当然存在与服务器端)。JSP/Servlet容器就扮演了完成这个双向转换的角色。 2.4.1 Tomcat简介
Tomcat[7]是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。由于Tomcat本身也内含了一个HTTP服务器,它也可以被视作一个单独的Web服务器。但是,不能将 Tomcat 和 Apache Web 服务器混淆,Apache Web Server 是一个用 C 语言实现的 HTTP web
4
server;这两个 HTTP web server 不是捆绑在一起的。Apache Tomcat 包含了一个配置管理工具,也可以通过编辑 XML 格式的配置文件来进行配置。
3 需求分析
3.1可行性分析
(1)技术可行性
学生选课系统是一款管理系统,系统包含课程管理的基本过程。系统覆盖学生的选课、查看、修改密码等各个环节,软件的各个模块操作界面简单、实用,用户可以在最短的时间内掌握系统的使用方法。用户可以在最短时间内找到自己所需要的信息。系统采用如今已广泛被人们接受的B/S结构,可以通过Internet协同工作,数据共享。系统软件采用现在流行且技术很成熟的框架Struts +MySQL平台进行开发并实现。可以进行高效的管理,提高工作效率。本系统具有以下特点:
具有良好的系统性能,友好的用户界面。 较高的处理效率,便于使用和维护。
采用成熟的技术开发,全系统具有较高的技术水平 尽可能地简化选课的管理工作,提高工作效率 (2)经济可行性
由于本系统是为学生选课管理使用的系统,该系统可以容易实现学生,老师与学校之间的联系,在Internet上实现完成部分教务工作,提高办事效率和周期。系统成本主要集中在系统软件的开发上,当系统投入运行后可以为学校节约大量的人力和物力,所带来的效益远远大于系统软件的开发成本,在经济上完全可行。 (3)操作可行性
界面设计时充分考虑管理人员的习惯,使得操作简单;数据录入迅速、规范、可靠;统计准确;制表灵活;适应力强;容易扩充。
3.2 功能模块分析
在本系统中,有两类用户:系统管理员和学生。两种不同的用户所具有的操作权限以及操作内容均不一样。
本选课系统给予管理员很大的自主权,负责向系统中添加学生和教师的个人信息以及教学楼教室信息以及开设课程等。学生登录网站可选择课程。系统超级管理员设置一个选课时间段,在到达时间段以前,普通管理员可以开设课程;到达选课时间段以后,学生可以登陆网站选择课程。管理员登陆网站后可以开设课程,为课程编辑上课时间和地点,当系统中出现时间地点冲突的时候,系统报告并推荐一个时间地点。
对于学生用户,到达选课时间段以后,每个学生除了必须选择必修课程外,至少还要选择两门选修课程。当时候超过选课时段后,系统自动锁定学生的选课课程[8]。系统可以根据学生的选课信息,生成一份学生自己的课表[9]。
根据上面的要求,从操作功能上可以分为两个类:一个是通用操作,主要实现用户的登录注销和修改密码等;另一种是为不同用户定制不同操作。 1.通用操作
(1)登录与注销
每个用户都可以用自己的帐号登录系统[10]。用户操作完成后退出系统,注销后可以重新登录系统。
5
(2)修改密码
每个用户第一次登录都用默认密码[11](初始密码为8888)。 2.用户功能
(1)系统管理员
设置选课时间段:系统管理员通过此项功能设置选课时段[12],只有在选课时间段里,学生才可以选择课程,超过次时间段,学生选课信息被自动所定,不得修改。
录入学生与教师个人信息:通过此项功能可以实现对教师和学生的个人信息添加删除。 录入教学楼教室信息:通过此项功能可以把学校里所有的教学楼教室的信息录入到系统中,以便给教师开设课程时候设置上课的教室。
开设课程{[13]:可以设置该课程教师、教室、时间、地点、最大人数和剩余人数,开设了课程后,可以灵活地设置上课时间和地点。 (2)学生用户
显示和修改个人信息:学生登录系统后,可以查看和修改学生的个人信息,如姓名,性别,电话等。
查看开设课程:学生登录后,可以查看所有开设的课程。查看该课程的信息,上课时间地点,开课教师信息等。
查看最终选课信息:学生登录系统后,可列出已选择的课程[14],若选课信息未被锁定,则可以退选。
选课功能用例图如图3-1所示:
图3-1 选课功能用例图
查看已选课程用例图如图3-2所示:
图3-2 已选课程用例图
账号管理用例图如图3-3所示:
图3-3账号管理用例图
6
3.3 软硬件环境需求
硬件平台:CPU:P4 1.8GHz以上;内存:256MB以上。 软件平台:
操作系统:Windows 2000/WinXP/Win2003 数据库:MySQL5.0
JSP 服务器:Tomcat 6.0; 开发工具包:JDK Version 1.6
4 概要设计
4.1 系统功能结构
学生选课系统的功能结构如图4-1所示
学生选课系统 用户登陆 学生模块 管理模块 基本信息 选择课程 查询已选课程 修改密码 学生信息管理 课程信息管理
图 4-1学生选课系统功能结构图
4.2 系统流程图
根据学生选课系统的操作流程,系统的流程图如图4-2、4-3所示
学生选课系统 添加学生信息 查询学生信息 学生信息管理 修改学生信息 添加课程信息 基本信息管理 查询课程信息 课程信息管理 修改课程信息 图4-2 学生选课系统流程图
管理员登陆 管理员
7
学生选课系统 学生登陆 查询可选课程 选择课程 选课信息管理 查询已选课程 查询个人信息 学生
图4-3学生选课系统流程图
4.3 系统数据库E-R模型
学生信息表:包含学号、姓名、性别、密码、学院、专业等基本信息。
课程信息表:包含课程号、课程名、教师、上课时间、上课地点、总人数等基本信息。 管理员信息表:包含管理员编号、密码等其他信息。 选课表:包含选择的课程号,课程名,任课教师等。 各分E-R图及总E-R图分别如图4-4至4-8所示:
管理员 选课表 编号 用户名 密码 学号 课程号
图4-5选课表实体及属性
图4-4管理员实体及属性
任课教师 学生 学号 姓名 性别 学院
图4-6 学生实体及属性
专业 8
课程 课程号课程名 教师 时间
图4-7 课程实体及属性
地点 1 添加 n 课程 m p 讲授 n 管理员 m 选修 学生 教师
图4-8 系统关系E-R图
4.4 数据库表设计
分析上述各实体的属性集,从中找出关系的主键,然后用关系式来表示实体(其中下划线的属性为主键)。表4-1至表4-5分别给出了主要表结构各实体的属性如下:
表4-1 admin
表名称 主要字段 数据类型 长度 属性 输入方式 Id 字符串 字符串 字符串 10 50 10 NN NN NN 输入 输入 输入 描述 管理员名字 密码 备注 用户名(主键) 管理员表 Name Password 备注 表名称 用户表 备注 用于定义登录系统的管理员,只有获得权限的管理员才能登录。 表4-2 Checkin
主要字段 数据类型 长度 属性 输入方式 Id Name Password 字符串 字符串 字符串 10 50 10 NN NN NN 输入 输入 输入 描述 姓名 密码 备注 用户名(主键) 用于学生的登录信息,只有注册的学生才能登录系统选课。 表4-3 select_course
表名称 主要字段 ID 选课表 CID Teacher 备注
数据类型 长度 属性 NN NN NN 输入方式 生成 描述 用户名(主键) 课程号(主键) 教师 备注 字符串 50 字符串 50 字符串 50 用于定义学生所选的课程,可以存储学生选择的所有课程 9
表4-4 student_infor
表名称 主要字段 数据类型 长度 属性 输入方式 S_id S_name 学生表 major grade College 备注 字符串 字符串 字符串 字符串 字符串 8 50 50 50 50 NN NN NN NN NN 输入 输入 选择 输入 输入 描述 用户名(主键) 姓名 专业 年级 学院 备注 用于存储学生的基本信息 表4-5 Course
表名称 主要字段 数据类型 长度 属性 输入方式 Id CID Cname 课程表 Teacher Place Time Sum Spare 备注 bigint 字符串 字符串 字符串 字符串 字符串 int int 10 200 150 150 150 150 10 10 NN NN NN NN NN NN NN NN 生成 输入 选择 选择 选择 选择 输入 输入 描述 编号(主键) 课程号 课程名 教师 教室 时间 总人数 剩余人数 备注 系统自动生成 存储所有开设课程的基本信息 5 详细设计
5.1 界面设计
(1)对于已注册用户通过如下的登录界面,能够保护系统的安全性,界面如图5-1所示:
图5-1 登录页面
(2)下面是管理员主页面如图5-2所示,通过菜单可以实现各个功能模块:
图5-2 管理员主页面
10
(3)下面是学生的主页面图5-3,通过菜单实现各个功能:
图5-3 学生主页面
5.2 系统功能模块设计
5.2.1 公共模块
(1)用户公共模块流程图如下图5-4所示:
用户登录 输入登录信息 验证用户名 密码 判断用户身份 管理模块首页 图5-4用户流程图
学生模块首页
用户登录JSP页面[15]图5-5所示
图5-5 用户登录页面
11
(2)密码修改流程图如下图5-6所示:
密码修改 从当前会话中获取 登录账号 输入验证身份信息与新密码 验证用户身份 生产提示信息返回 更新密码
图5-6密码修改流程图
密码修改JSP页面,用户选择密码修改连接进入密码修改JSP页面[16] 图5-7所示
图5-7 修改密码界面
5.2.2管理员模块
管理模块主要实现了管理学生信息,课程信息以及对学生选课情况进行统计输出的功能。在此模块中使用了一个框架[17]页面manager.jsp,其代码如下:
12
其中topFrame部分用于显示管理模块的主菜单页面top.jsp,页面运行结果如下图5-8所示:
图5-8管理模块的主菜单
(1)学生管理流程如下图5-9所示:
学生管理 增加新学生 设置为已毕业 输入新学生信息 写入数据库 显示出未毕业学生 设置为毕业 更新数据库
图5-9 学生管理流程图
在top.jsp页面中单击“学生管理”超链接,将进入dis_student.jsp页面[18],其中显示了所有的学生信息。如下图5-10所示。
图5-10 学生信息页面
13
在dis_student.jsp页面中单击“新增”超链接,将进入addstudent.jsp页面,如下图5-11所示
图5-11 增加学生页面
主要代码: try
{
ResultSet rt=stmt.executeQuery(\"select * from student_infor where ID='\"+ID+\"'\");
if(rt.next()){%>
<%}else{ String sql=\"insert into student_infor values('\"+college+\"','\"+profession+\"','\"+class_infor+\"','\"+ID+\"','\"+name+\"')\";
int result = stmt.executeUpdate(sql); String sql1=\"insert into checkin values('\"+ID+\"','\"+password+\"','\"+name+\"')\";
int result1 = stmt.executeUpdate(sql1); if(result!=0&&result!=0){ %>
<%
} } }
catch(Exception e){out.print(e);
System.err.println(e.getMessage()); }
14
(2)课程管理流程如下图5-12所示:
课程管理 增加新课程 根据条件查询课程 显示课程详细信息 设置为不可选 更新数据库
图5-12 课程管理流程
选举课程所属专业,输入课程信息 写入数据库
在top.jsp页面中单击“课程管理”超链接,将进入dis_Course.jsp页面[19],其中显示了所有的课程信息信息。如下图5-13所示
图5-13 课程管理页面
在该页面中单击“新增”按钮,将进入到addCourse.jsp页面,此页面主要用于创建新的课程,该页面运行效果如下图5-14所示:
图5-14 添加课程页面
15
主要代码: try
{
String sql=\"select * from course where time='\"+time+\"' and place='\"+place+\"'\"; //相同时间里一个教室只能开设一门课程
ResultSet rt=stmt.executeQuery(sql); if(rt.next()){
%>
<%
}else{
String sql2=\"insert into course(CID,Cname,teacher,place,time,Sum,spare)
values('\"+CID+\"','\"+Cname+\"','\"+teacher+\"','\"+place+\"','\"+time+\"','\"+Sum+\"','\"+spare+\"')\";
int result = stmt.executeUpdate(sql2);
%>
<%
} }
catch(Exception e){out.print(e);
System.err.println(e.getMessage()); } %>
(3)退出系统
退出系统是在exit.jsp页面中完成,在该页面中只需将当前的用户会话销毁,并跳出框架返回到项目的首页即可。 5.2.3 学生模块
学生模块中的大部分功能都是由StuUserAction类来完成的,StuUserAction继承了DispatchAction类,是一个Struts的控制器。在StuUserAction类中编写insert()方法,用于向数据库插入学生的基本信息;编写welcome()方法此方法将根据学生编号查询出学生的基本信息,然后返回到学生模块的首页——student.jsp页面;编写exit()方法,该方法将对于退出系统的请求,在该方法中首先将用户会话对象销毁,然后返回项目首页;编写selected()方法,用于查询学生已经选过的课程;编写select()方法,用于查询学生可选的所有课程;编写selctting()方法,用于执行学生选课操作,将学生标号与所选的课程编号关联起来;编写courseInfo()方法,用于查询课程的详细信息。
16
学生主页面如下图5-15所示:
图5-15 学生登录主页面
(1)学生基本信息页面如下图5-16所示:
图5-16个人信息页面
(2)学生选课页面
在学生模块页面中单击“选课”超链接,程序将调用学生模块控制器类StuUserAction中的select方法将此学生可以选择的所有课程查询出来,然后显示在select.jsp页面[21]中,其运行效果如下图5-17所示:
图5-17 选课页面
主要代码: try
{ ...
String sql=\"select * from select_course where ID='\"+ID+\"' and CID='\"+CID+\"'\";//检查是否选过该课程
ResultSet rs=stmt.executeQuery(sql);
17
String sql3=\"select * from course where CID='\"+CID+\"' and teacher='\"+teacher+\"' and spare>0\";//列出还有剩余学生的课程
ResultSet rst=st.executeQuery(sql3); if(!rs.next()&&rst.next()){ String sql1=\"insert into select_course values('\"+ID+\"','\"+CID+\"','\"+teacher+\"')\";
stmt.executeUpdate(sql1);
String sql2=\"update course set spare=spare-1 where CID='\"+CID+\"' and teacher='\"+teacher+\"'\";
stmt.executeUpdate(sql2);%> <% }else{%>
<% } }
catch(Exception e){out.print(e); System.err.println(e.getMessage()); }
(3)课程查询及退选页面
Selected.jsp页面[21]用于显示学生已选过的课程信息,学生可以从中查询到自己已经学过哪些课程,正在学习哪些课程及选择退选课程,其运行效果如下图5-18所示:
图5-18退课页面
主要代码: try
{ ......
String sql1=\"delete from select_course where CID='\"+CID+\"' and ID='\"+ID+\"'\";
stmt.executeUpdate(sql1);
18
String sql2=\"update course set spare=spare+1 where CID='\"+CID+\"' and teacher='\"+teacher+\"'\";//退选的课程人数加1
stmt.executeUpdate(sql2);%> <%}
catch(Exception e){out.print(e); System.err.println(e.getMessage()); }
(4)修改密码页面
在登录修改密码页面stuUpdate.jsp中,学生可以修改自己的登录密码,只要输入正确的原始密码即可进行密码修改。密码修改操作通过updatePwd.do请求调用用户模块中的密码修改控制器类UpdatePwdAction进行身份验证以及更新数据库中的旧密码。其运行效果如下图5-19所示:
图5-19 修改密码页面
主要代码:
try{ ......
if(!(user.ChkLogin(username,oldpassword))) {%>
<% } else{
if(user.ModifyPassword(username,newpassword)) {
IsSucceed = \"1\"; } } }
catch(Exception e){
out.println(\"error:\"+e.getMessage()); }%>
19
结束语
本文主要探讨了基于J2EE的网络选课系统的开发。并且全面分析、设计、实施一套符合高校要求的选课系统。在设计过程中,采用了MVC模式下的Struts2框架进行功能实现。在表示层中以Web页面作为主要客户端。采用了MY SQL数据库开发设计系统在逻辑上分成三层:表示层、业务层和数据层。其中表示层用来表示信息和收集数据。它将系统的开发代码和用户接口内容分离,其结构更模块化;业务层用于实现应用程序中的商务逻辑,将商务逻辑用JAVA语言开发成COM+组件,程序代码更安全,移植更方便,执行效率也更高;数据层包括数据的定义、维护、访问和更新,以及管理并响应业务服务的数据请求等功能。由于框架本身的优势,使得该系统易于维护,可扩展性强。容器采用Apache Tomcat,解决了线程问题,使得可以在同一时间容纳多个用户。
该系统的应将为学校管理部门提供一个全新的工作环境,为促进学校教育教学管理的科学化、规范化、信息化提供了有力的支持,提升了学校教学管理信息化的水平,从而使该系统成为学校日常管理工作中离不开的关键应用,同时为日后的软件维护提供了良好和完备的接口。
然而,系统仍然存在很大的改进空间,可以通过进一步的设计提高性能和实用性。
由于条件限制,并非采取部署到专业的服务器上,所以系统不够稳定。在实际应用中,在处理海量数据方面,网页的数据容量及网络的安全保障则会成为系统的瓶颈。
由于本人的水平有限,对其中的某些问题未能进行深入的分析和研究,还需要在今后的工作中努力学习和探讨。文中的不足之处,敬请各位老师和读者指正。
致 谢
首先衷心感谢我的指导老师高志荣,论文从选题、设计到撰写、定稿,自始至终都得到了高老师的悉心指导和帮助。
经过近三个月的时间,基本上完成了规定的设计任务。在这三个月的设计学习中,我不仅加深掌握了专业知识及专业技能,更重要的是通过毕业设计这个过程这个经历,了解了课题研究的整个过程,为今后更深入的学习和工作奠定坚实的基础。在这次课题研究及论文编写中,高志荣老师给予了大量的建议及指导,在她的帮助下,课题的疑难问题能够得以成功解决,课题能够如期顺利地完成。同时,老师严谨的治学态度和实事求是的科研精神在课题研究中时刻影响着我,这将成为我在以后学习工作中的榜样,激励着我进步。
在此特别感谢高志荣老师的悉心教导!同时也衷心的感谢计科院的领导给予我们学习上、生活上、思想上的引导和帮助!
感谢计科院所有领导老师对我们学业的关心!
参考文献
[1] 刘中兵,李伯华,邹晨等.JSP数据库项目案例导航.清华大学出版社.2006年. [2] 陈永静.浅析教务管理现代化.科技资讯.2007年24期:97.
[3] Liu Buxing,Solution of Chinese Mess Code in JSP Design[J], Electric power
professional technology journal, 2009,(3)
[4] 李章兵,刘建勋,龚波.基于Web的毕业设计教务管理系统的安全设计.学术研究; 2007.5. [5] 褚幼莉.强化教务管理 提高教学质量.中国科技信息.2005年第24期:288. [6] 吴亚峰,索依娜.Java Web项目案例开发[D]. 电子工业出版社.2009年.
20
[7] WU De-yan, Research of Mess Code of Applications Running on Tomcat Server[J], Computer
Knowledge And Technology,2008,3(4):393-395
[8] 李曙光.JSP开发实例完全剖析.中国电力出版社.2006年.
[9] 朱锦晶.基于B/S结构网上选课系统的建模分析.科教文汇(中旬刊).2007年11期. [10] 赵广辉;基于WEB的选课系统的设计与实现[J];武汉理工大学学报;2005
[11] 计磊,李里,周伟;精通J2EE—Eclipse、Struts、Hibernate及Spring整合应用案例;人民邮电
出版社;2006年
[12] 杨三平,林萍.基于C/S和B/S的现代高校教务管理系统研究.软件导刊.2007.07.
[13] 张琳,黄仙绞.基于C/S和B/S模式的高校教务管理系统的设计和实现.电脑知识与技术.
2006.02.
[14] 黄志强.基于MVC及Struts的教学门户信息系统的构建.中国教育信息化.2007年21期. [15] 陆容幸.J2EE平台上MVC设计模式的研究与实现.计算机应用研究.2003. [16] 张新曼.精通JSP—Web开发技术与典型应用.人民邮电出版社.2007年.
[17] 吴岳,翁敬农.用Struts和Hibernate构筑Web应用开发策略.计算机工程与设计.2006年4
月27卷7期.
[18] 王小玲.加强学校教务管理工作的措施.教学与管理.2005年12月:11-12 [19] 许丽环.高校教务管理原则探究; 高教研究.2006年6月:8-9.
[20] 孙卫琴.基于MVC的Java Web 设计与开发.电子工业出版社.2004年. [21] 张新曼; 精通JSP—Web开发技术与典型应用;人民邮电出版社;2007年
21
因篇幅问题不能全部显示,请点此查看更多更全内容