基于jsp(java)学生选课系统的设计和开发(含源文件)


获取项目源文件,联系Q:1225467431,可指导毕设,课设


摘要:随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。学生选课系统作为一种现代化的教学技术,以越来越受到人民的重视,是一个学校不可缺少的部分, 学生选课系统就是为了管理好选课信息而设计的。学生选课系统的将使选课管理工作规范化,系统化,程序化,避免选课管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改选课情况。
关键词:选课、课程信息发布、B/S、JSP
目录
TOC 1-3
HYPERLINK l _Toc262670706 第一节 Java技术 2
HYPERLINK l _Toc262670707 第二节 Servlet技术 3
HYPERLINK l _Toc262670708 第三节 Jsp技术 4
HYPERLINK l _Toc262670709 第四节 开发软件介绍 5
HYPERLINK l _Toc262670710 4.1 eclipse平台 5
HYPERLINK l _Toc262670711 4.2 Tomcat服务器 6
HYPERLINK l _Toc262670712 4.3 SQL server 2000 6
HYPERLINK l _Toc262670714 第一节 系统功能模块划分 8
HYPERLINK l _Toc262670715 第二节 系统功能类别划分 8
HYPERLINK l _Toc262670716 第三节 系统维护 9
HYPERLINK l _Toc262670717 3.1 课程基本资料维护 9
HYPERLINK l _Toc262670718 3.2 系部维护 10
HYPERLINK l _Toc262670719 3.3 管理员维护 10
HYPERLINK l _Toc262670720 第四节 学生选课 10
HYPERLINK l _Toc262670721 4.1 课程预览 10
HYPERLINK l _Toc262670722 4.2 选课 10
HYPERLINK l _Toc262670723 4.3 退课 11
HYPERLINK l _Toc262670724 4.4 修改密码 11
HYPERLINK l _Toc262670725 第五节 教师课程查询 12
HYPERLINK l _Toc262670726 5.1 查询课程情况 12
HYPERLINK l _Toc262670727 5.2 修改密码 12
HYPERLINK l _Toc262670729 第一节 系统功能设计图 13
HYPERLINK l _Toc262670730 第二节 数据库设计 13
HYPERLINK l _Toc262670731 第三节 页面及功能设计 14
第五章 总结
第一章 引言
随着国内高校校园网的建设,基于互联网的应用系统的开发正在蓬勃发展并发挥着较大的作用。例如,我国许多高校的网上招生系统,学校的各种管理信息系统,学校选课系统,还有一些医学院校开发出的网上诊所、远程诊断系统等等,都是基于校园网的应用系统。
学生选课系统是一个学校不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生选课系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
作为计算机应用的一部分,使用计算机对选课信息进行管理,有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事劳资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。
第二章 相关技术介绍
第一节 Java技术
Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet。
Java平台由Java虚拟机(Java Virtual Machine)和Java 应用编程接口(Application Programming Interface、简称API)构成。Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。现在Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。Java应用编程接口已经从1.1x版发展到1.2版。目前常用的Java平台基于Java1.4,最近版本为Java1.7。Java分为三个体系JavaSE(Java2 Platform Standard Edition,java平台标准版),JavaEE(Java 2 Platform,Enterprise Edition,java平台企业版),JavaME(Java 2 Platform Micro Edition,java平台微型版)。
Java的诞生是对传统计算机模式的挑战,对计算机软件开发和软件产业都产生了深远的影响:
(1)软件4A目标要求软件能达到任何人在任何地方在任何时间对任何电子设备都能应用。这样能满足软件平台上互相操作,具有可伸缩性和重用性并可即插即用等分布式计算模式的需求。
(2)基于构建开发方法的崛起,引出了CORBA国际标准软件体系结构和多层应用体系框架。在此基础上形成了Java.2平台和.NET平台两大派系,推动了整个IT业的发展。
(3)对软件产业和工业企业都产生了深远的影响,软件从以开发为中心转到了以服务为中心。中间提供商,构件提供商,服务器软件以及咨询服务商出现。企业必须重塑自我,B2B的电子商务将带动整个新经济市场,使企业获得新的价值,新的增长,新的商机,新的管理。
(4)对软件开发带来了新的革命,重视使用第三方构件集成,利用平台的基础设施服务,实现开发各个阶段的重要技术,重视开发团队的组织和文化理念,协作,创作,责任,诚信是人才的基本素质。
总之,目前以看到了Java对信息时代的重要性,未来还会不断发展,Java在应用方面将会有更广阔的前景。
第二节 Servlet技术
Servlet是建立基于Web的应用程序接口的基石。Servlet技术提供了一种普遍的编程模型,它也是JSP的基础。Servlet由支持Servlet服务器的Servlet引擎负责管理运行。当多个客户端请求一个Servlet时,引擎为每个客户端启动一个线程而不是启动一个进程,这些线程由Servlet引擎服务器来管理,与传统的CGI为每个客户端启动一个进程相比较,效率要高得多。
Servlet的生命周期主要有下列三个过程组成:
(1) 初始化ServletaServlet第一次被请求加载时,服务器初始化这个Servlet,即创建一个Servlet对象,这个对象调用init方法完成必要的初始化工作。
(2) 诞生的Servlet对象调用service方法响应客户的请求。
(3) 当服务器关闭时,调用destroy方法,销毁Servlet对象。
HttpServlet类的主要方法:
(1)init方法
Servlet第一次被请求加载时,服务器初始化一个Servlet,即创建一个Servlet对象,这个对象调用init方法完成必要的初始化工作。init()是HttpServlet类中的方法,我们可以在Servlet中重写这个方法。方法描述为:
public void init(ServletConfig config)throws ServletException
该方法在执行时,Servlet引擎会把一个ServletConfig类型的对象传递给init()方法,这个对象就被保存在Servlet对象中,直到Servlet对象被销毁。这个ServletConfig对象负责向Servlet传递服务设置信息,如果传递失败就会发生ServletException, Servlet将不能正常工作。当多个客户端请求一个Servlet时,引擎为每个客户端启动一个线程,那么Servlet类的成员变量会被所有的线程共享。
(2)service方法
当Servlet成功创建和初始化之后,Servlet就调用service方法来处理用户的请求并返回响应。service()是HttpServlet类中的方法,可以在Servlet中直接继承该方法或重写这个方法。方法描述为:
public void service(HttpServletRequest request,HttpServletResponse response)
throw ServletException,IOException
Servlet引擎将两个参数传递给该方法,其中一个参数对象是HttpServletRequest类型的对象,该对象封装了用户的请求信息,此对象调用相应的方法可以获取封装的信息,也就是说使用这个对象可以获取用户提交的信息;另外一个参数对象是HttpServletResponse类型的对象,该对象用来响应用户的请求。
service 方法和init方法不同的是,init方法只被调用一次,而service方法可能被多次调用,当后续的客户请求Servlet服务时,Servlet引擎将启动一个新的线程,在该线程中,Servlet调用service方法响应客户的请求,也就是说,每个客户的每次请求都导致service方法被调用执行,调用过程运行在不同的线程中,互不干扰。
(3) destroy方法
当Servlet引擎终止服务时,比如关闭服务器等,destroy()方法会被执行,销毁Servlet对象。Servlet可直接继承这个方法,一般不需重写。方法描述为:
public destroy()。
优点与不足:
我们已经简单了解了Servlet的存活期和HttpServlet类,但是并没有深入探索Servlet API。事实上,Java Servlet API既简单又有强大的功能,它使得我们能够在一个简单的编程模型的帮助下扩充任何Web服务器的功能。但是,Servlet的最大缺点是不能有效的管理页面的逻辑部分和页面的输出部分,导致Servlet代码非常混乱,不易于编写,用Servlet来管理网站是一件很困难的事情。为了克服Servlet的缺点,Sun公司将Java Servlet作为基础,推出了JSP技术,JSP让我们觉得开发网站是如此的简单容易。
第三节 Jsp技术
JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
JSP与Java Servlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
JSP的1.0规范的最后版本是1999年9月推出的,12月又推出了1.1规范。目前较新的是JSP1.2规范,JSP2.0规范的征求意见稿也已出台。
JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet 是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。
自JSP推出后,众多大公司都支持JSP技术的服务器,如IBM、Oracle、Bea公司等,所以JSP迅速成为商业应用的服务器端语言。
JSP可用一种简单易懂的等式表示为:HTML+Java=JSP。
第四节 开发软件介绍
4.1 eclipse平台
Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。
虽然大多数用户很乐于将 Eclipse 当作 Java IDE 来使用,但 Eclipse 的目标不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。
这种平等和一致性并不仅限于 Java 开发工具。尽管 Eclipse 是使用 Java 语言开发的,但它的用途并不限于 Java 语言;例如,支持诸如 C/C++、COBOL 和 Eiffel 等编程语言的插件已经可用,或预计会推出。Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。
基于 Eclipse 的应用程序的突出例子是 IBM 的 WebSphere Studio Workbench,它构成了 IBM Java 开发工具系列的基础。例如,WebSphere Studio Application Developer 添加了对 JSP、servlet、EJB、XML、Web 服务和数据库访问的支持。
4.2 Tomcat服务器
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。目前最新版本是6.0。Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
这里的诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。
4.3 SQL server 2000
SQL Server 是一个关系数据库管理系统,它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2 版本。在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了。Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本;Sybase 则较专注于SQL Server在UNIX 操作系统上的应用。在本书中介绍的是Microsoft SQL Server 以后简称为SQL Server或MS SQL Server。
SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统的最新版本。该版本继承了SQL Server 7.0 版本的优点同时又比它增加了许多更先进的功能,具有使用方便,可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。
第三章 系统分析
第一节 系统功能模块划分
本系统包括3个管理模块用户管理模块、课程管理模块、选课管理模块,用户模块分为3类用户,管理员、学生、老师。管理员实现课程管理、学生、教师管理、和新闻发布管理。本系统主要实现学生管理模块,而学生管理模块、课程管理模块、选课管理模块的与管理员和学生相关的主要模块。学生用户功能模块由四部分组成:个人信息、网上平台、系统公告和其他。
个人信息:显示出用户的所有个人信息并提供密码修改功能
网上平台:提供学生用户查看所有选课信息,用户可以查询自己想找的课程,通过课程名和上课时间两种方式查找。当用户点选课时,该课程就会添加到我的课表中,在数据库中选课表会添加一条记录。用户在我的课表中可以退选课程
系统公告:用户可以浏览系统通知。
其他功能:退出系统
学生用户界面设计用框架实现。页面头放在上框架,功能导航放在左框架,具体功能放在右框架。学生功能设计所有页面都放在student的文件夹中,所以以下所提到的页面均在student文件夹中。设置学生界面框架结构主页index.htm。其中左框架中的功能导航页面为student_left.jsp,右框架中的功能页面为student_body.jsp。
系统用session保存用户的学号。
第二节 系统功能类别划分
(1)用户类别:登录系统的身份定为三种,一是超级管理员(校领导),二是一般管理员(普通老师),三是学生,只有被授权的用户才可以使用本系统的资源。
(2)权限管理:系统需要经过有效的身份验证可以登录。用户的身份不同,使用的系统资源也不同。学生只可以选择网上选课,重选网上选课,及修改自己的密码。一般管理员(普通教师)为添加课程题目,修改课程题目,查询课程题目,留言等功能。超级管理员(校领导)拥有整个系统的全部使用权。
(3)教师管理:校领导才有此功能,可添加教师,及教师信息查询及编辑。
(4)添加系别:一般管理员(教师)可以添加系别信息。
(5)添加课程题目:添加新的课程名称,在添加之前可根据条件先查询。
(6)查询课程题目:普通老师可根据一定条件课程题目,并可对及修改,但要求只能修改及删除本人所出的题目。
(7)查询学生所选课程:可根据条件查询所有课程,状态,被哪些学生所选中。
(8)留言管理:用户可以在线留言,及查看留言。从而达到师生时时交流。
(9)学生选课:学生可根据普通老师所出的课程题目,进行选择(修改)。但只能选一个作为自己的课程题目。
第三节 系统维护
网上平台由两部分组成:选课信息和我的课表
选课信息:学生用户查看所有选课信息,并提供用户模糊查询,使用户可以查询自己想找的课程,模糊查询通过课程名和上课时间两种方式查找。在课程列表中当用户点选课栏时,该课程就会添加到我的课表中,在数据库中选课表会添加一条记录。
我的课表:学生选课后可以通过查看我的课表清楚的看到自己的选课情况,以及上课的时间、地点、学分等信息。当学生用户发现修要改动时可以选择退选项,取消选择。
选课信息:courseInfo.jsp 我的课表:noticeList.jsp
输出:教师基本资料报表。
3.1 课程基本资料维护
1、课程基本资料维护目标:
针对课程的基本资料今天添加、删除、更新、查询。
2、课程基本资料维护概述:
前提条件:管理员要对课程基本资料进行添加、删除、更新或查询。
角色:二级系统管理员。
输入:课程基本资料(课程号、课程名、课程简介、上课时间、上课地学时、学分、人数上限、当前人数、教师号)。
基本流程:登陆管理员系统验证当前用户权限选择【课程基本资料维护】管理员添加、删除或修改更新验证输入或修改的数据验证通过:更新数据库,验证不通过:给出提示信息要求用户重新输入。
输出:课程详细资料。
3.2 系部维护
1、系部资料维护目标:
针对系部资料进行添加、删除、更新、查询。
2、系部维护概述:
前提条件:管理员要对系部资料进行添加、删除、更新或查询。
角色:一级系统管理员。
输入:各系部资料(系部号、系部名称)。
基本流程:登陆管理员系统验证当前用户权限选择【系部资料维护】管理员添加、删除或修改更新验证输入或修改的数据验证通过:更新数据库,验证不通过:给出提示信息要求用户重新输入。
输出:无。
3.3 管理员维护
1、管理员维护目标:
设置各级管理员权限。
2、管理员维护概述:
角色:一级管理员。
输入:管理员权限。
基本流程:登陆系统验证权限设置管理员权限验证设置成功更新或失败返回。
第四节 学生选课
4.1 课程预览
1、课程预览目标:
让学生可以详细的了解课程情况。3.1.2课程预览概述:
前提条件:学生正确登陆。
角色:学生。
输入:无。
基本流程:登陆学生选课系统验证当前用户权限查看课程信息。
输出:课程详细信息。
4.2 选课
1、选课目标:
学生可以选择要选修的课程。
2、选课概述:
前提条件:正确登陆、点击选课项。
角色:学生。
输入:选择要修的课程。
基本流程:登陆选课系统验证权限选择要学的课程提交表单验证提交的数据。
输出:选课情况。
4.3 退课
1、退课目标:
由于主观或客观原因要求退课。
2、退课概述:
前提条件:正确登陆、现在退课项。
角色:学生。
输入:选择要退的课程。
基本流程:登陆选课系统验证权限删除要退的课程验证提交的数据(不能删除空数据)。
输出:成功或失败的信息。
4.4 修改密码
1、修改密码目标:
正确的修改学生的登陆密码。
2、修改密码概述:
前提条件:用旧的密码正确登陆。
角色:学生。
输入:旧密码、新密码、验证密码。
基本流程:登陆选课系统验证权限输入旧密码、新密码、验证密码提交验证旧密码是否正确、新密码和验证密码是否相同成功或失败。
输出:成功或失败信息。
第五节 教师课程查询
5.1 查询课程情况
1、查询课程目标:
正确查找课程人数情况。
2、查询课程概述:
前提条件:正确登陆。
角色:教师。
输入:
基本流程:登陆系统验证权限查看某课程报名人数情况。
输出:课程报名人数情况。
5.2 修改密码
1、修改密码目标:
正确的修改密码。
2、修改密码概述:
前提条件:正确登陆。
角色:教师。
输入:旧密码、新密码、验证密码。
基本流程:登陆选课系统验证权限输入旧密码、新密码、验证密码提交验证旧密码是否正确、新密码和验证密码是否相同成功或失败。
输出:成功或失败信息
第四章 系统功能设计
第一节 系统功能设计图
图1 系统功能设计图
第二节 数据库设计
数据库设计的任务是确定系统所需的数据库。数据库是表的集合,通常一个系统只需一个数据库。本次实验,我使用的是MySql数据库管理软件,建立了selectCourse数据库以及admin、student、teacher、course、stuCourse这五个表。
1、教师信息表:teacher 7个字段:
包括教师的工号teaID、姓名teaName、所在学院teaAcademy、办公室teaOffice、联系电话teaPhone、邮箱teaEmail、登录密码:teaPassword
2、课程信息表:course 10个字段:
课程编号courID、名称courName、上课星期courDay、上课时间courTime、起始周startWeek、结束周endWeek、上课地点courPlace、人数courNumber、任课教师工号courTeaID、学分courScore
3、学生信息表:student 6个字段
学号stuID、姓名stuName、所在学院stuAcademy、专业stuSubject、所在班级stuClass、登录密码stuPassword
4、学生选课表:stuCourse 2个字段
学号stuID、课程编号courID、
5、管理员信息表:Admin 2个字段
管理员用户名adminName、管理员密码adminPassword
其中,由于教师对课程是1对多的映射,课程对教师是多对1的映射,根据数据库设计原则,将teaID存入课程信息表中。由于学生和课程是多对多的映射,根据数据看设计原则,建立新的选课表stuCourse。
第三节 页面及功能设计
1、如果登录时用户名或密码有误,会出现相应的错误提示信息;如果正确,则正式进入选课系统。
图2 主界面
2、以教师one的身份登录,包括下面几项:
1) 查看该教师的授课课表;
2) 修改教师基本信息;
3) 修改登录密码。
图3 教师主界面
3、以学生3286的身份登录,显示学生主界面:
1) 查看学生课表:
图4 学生课表界面
2) 选择新的课程:(可实现动态的选定和删除,点击确定会显示更新后的课表)。如图5,新选择了两门课程:
图5 学生选课界面
点击完成提交后,新的课表:
图6 新的课表界面
3) 修改学生基本信息:
4、管理员登录后,管理主界面如下:
共有管理学生信息、管理教师信息、管理课程信息等几个模块。
1) 管理学生信息
① 查看所有学生信息,并可以对其进行添加、删除、修改;
② 其中,修改包括修改其个人信息、修改其登录密码、选择新的课程、查看该生课表等四项功能(与学生登录后的功能类似)。
2) 管理教师信息
① 查看所有教师信息,并可以对其进行添加、删除、修改;
③ 其中,修改包括修改其个人信息、修改其登录密码、查看授课课表等三项功能(与教师登录后的功能类似)。
3) 课程信息管理
① 查看所有课程信息,并可对其修改、删除。
② 发布一门新的课程:(可以看到,教师的信息是与数据库中内容同步的,而不是手动随意输入的。
图7 课程信息管理界面

PAGE
2
获取项目源文件,联系Q:1225467431,可指导其它毕设,课设

展开阅读全文

没有更多推荐了,返回首页