基于JAVA的学生选课系统设计与实现 计算机

基于JAVA的学生选课系统设计与实现   计算机
基于JAVA的学生选课系统设计与实现   计算机

基于JAVA的课程管理系统的设计与实现

摘要

课程管理系统是一个学校中不可缺少的部分。课程管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式对课程进行查询、更新、选课等,这种管理方式存在着许多缺点,如:效率低、执行速度慢,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。

随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对选课信息进行管理,具有手工管理无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、成本低、效率高等。这些优点能够极大地提高学生选课系统的效率,也是企业、学校的科学化、正规化管理和与世界接轨的重要条件。因此,开发这样一套管理系统已成为很有必要的事情。

JAVA是一门很优秀的编程语言,具有面向对象、与平台无关、安全、稳定和多线程等特点,是目前软件设计中极为健壮的编程语言。本文中介绍了用JAVA 语言实现课程管理系统的全部过程。

关键词课程管理 / Eclipse / Java / SQL Server

目录

第一章前言--------------------------------------------------------- 3第一节开发背景------------------------------------------------- 4第二节开发目标------------------------------------------------- 4第三节项目意义------------------------------------------------- 5第二章系统分析----------------------------------------------------- 6第一节需求分析------------------------------------------------- 6一功能需求----------------------------------------------------- 6二性能需求----------------------------------------------------- 6三其他需求----------------------------------------------------- 7四业务流分析--------------------------------------------------- 7五数据流分析--------------------------------------------------- 7第二节可行性研究报告------------------------------------------- 7第三节数据库选择----------------------------------------------- 8第四节运行环境------------------------------------------------- 8

1 数据库应用系统开发简介---------------------------------------- 8

2.mysql server简介-------------------------------------------- 9第三章概要设计---------------------------------------------------- 10第一节功能模块划分-------------------------------------------- 10第二节系统功能结构图------------------------------------------ 10第四章详细设计---------------------------------------------------- 12第一节系统E-R图示-------------------------------------------- 12第二节信息要求---------------------------------------------- 14第三节模块设计------------------------------------------------ 15第四节数据表--------------------------------------------------- 16第五章数据库的实施和维护------------------------------------------ 19一.存储过程设计----------------------------------------------- 19二.触发器设计------------------------------------------------- 23第六章系统实现---------------------------------------------------- 25

一.用户登录界面------------------------------------------------ 25

二. 登录到学生界面图------------------------------------------- 26

三.学生成绩查询------------------------------------------------ 28

四.教师管理页面----------------------------------------------- 29

五.用户管理操作------------------------------------------------ 30

六.学生信息管理------------------------------------------------ 31第七章测试-------------------------------------------------------- 35结论--------------------------------------------------------------- 38致谢语------------------------------------------------------------- 38参考文献----------------------------------------------------------- 40

第一章前言

数据库是从60年代初发展起来的计算机技术。经过四十来年的发展,数据库技术己经趋于成熟。Web数据库在新的Internet环境中发生了很大的变化。就数据应用而言呈现出多样化的空间,如数字图书馆、电子出版物、电子商务、远程教育系统等的出现,给web数据库技术提出了更多、更高的要求。同时,随着国内高校校园网的建设,基于互联网的应用系统的开发正在蓬勃发展并发挥着较大的作用。例如,我国许多高校的网上招生系统,学校的各种管理信息系统,学校选课系统,还有一些医学院校开发出的网上诊所、远程诊断系统等等,都是基于校园网的应用系统。

国外的教学科研软件与国内相比开发的早而且比较成熟。早在七十年代末,美国就建成了NSFNET(国家科学基金网),其课题的申报及课题的进展情况汇报都在网上进行。其网上教学教务管理系统也十分完善,世界各地的学生可以坐在家里通过互联网完成入学报名、选课、考试、毕业论文、取得学位这一学习生活的全过程。目前,国际上已具规模的远程教育学校就有数百所之多,网上教育正在各地发挥着巨大的作用,为世界各国培养出大批人才。所有这些都表明,基于Internet的校园网的应用已深入到校园内的各个方面。

在高等学校的教务管理工作中,课程表的编排是一项十分复杂、棘手的工作。在排课过程中,除了满足大量的制约条件以外,还必须解决许多冲突与矛盾,例如:两位教师不能同一时间在同一班级上课、一位教师不能在同一时间上两门课等等。利用计算机辅助进行课表编排工作,既提高了排课工作的科学性,又可大大减轻管理人员的工作强度,提高工作效率,从而使学校教务管理现代化迈上了一个新台阶。

我国不少高校都实行了学分制,它的核心是允许学生自由选课,即把学习的自主权交给学生。在这里,学生选课时的制约因素比较复杂,工作量也很大,而且往往需要在较短的时间内完成。运用计算机辅助选课,即能实时地对大量选课数据进行检验和统计,十分方便地输出选课结果,同时也避免了人工处理时容易产生的错误。

从系统开发的复杂程度来看,计算机辅助排课与选课是高校教务系统中的两

个关键子系统,目前不少教务系统尚未很好地解决排课与选课问题。本文主要对高校教务管理系统中计算机课表编排与选课子系统的基本功能、设计思想、需求分析以及实现技术进行探讨。

我想大家肯定都经历过学生时代,也许很多人还对那个时候的选课记忆犹新,每个学期都要排着长长的队伍去选。现在,我们已经进入到Internet时代了,选课系统自然也要随着更新。大学中,公选课较多,学生可根据自己的专业及兴趣选择公选课程进行学习,本系统将从教学部门的要求出发,实现公选课的选择、查询与统计。

第一节开发背景

当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用玉信息管理系统的环境。计算机的好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。

尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理学生课程选修信息而设计的。

学生选课作为一种信息资源的集散地,包含很多的信息数据的管理。由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。尽管有的学校有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发基本环境。

数据处理手工操作,工作量大,出错率高,出错后不易更改。造成时间上的浪费,基于这个问题,是有必要建立一个课程管理系统,使学生选课信息管理工作规范化,系统化,程序化,避免学生选课管理的随意性,提高信息处理的速度和准确性,能够及时,准确,有效的查询和修改选课情况。

第二节开发目标

本系统根据学校实际项目要求及所针对的用户群体,预期制定出主要实现的

如下目标:

1.网页风格学校平台的特点,界面简单大方。

2.充分为用户着想,提供细致周到的技术支持。

3.方便教师或管理员修改信息。

4.为网站管理员提供方便、快捷的网站维护平台。

5.严格限制不动的用户权限。

第三节项目意义

课程管理系统是一个学校不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以课程管理系统能够为用户提供充足的信息和快捷的查询手段,但是一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点如:效率低,保密性差,另外时间一长,将产生大量的文件和数据,这对于查找,更新和维护都带来了不少的困难。

随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻的认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。

作为计算机应用的一部分,使用计算机对课程管理信息进行操作,有着手工管理无法比拟的优点:检索迅速,查找方便,可靠性高,存储量大,保密性好,成本低等。这些优点能够极大的提高人事劳资管理的效率,也是企业的科学化,正规化管理,与世界接轨的重要条件。

因此,开发这样一套软件成为很有必要的事情,在下面的各章中我们将以开发一套学生课程管理系统为例,谈谈其开发过程和所涉及的问题及解决办法。

本文所做的主要工作如下:

1.介绍了个性化页面的背景及运用java语言和eclipse运行环境的原理。

2.阐述整个系统的系统结构及工作原理,分析系统实现中的特殊性,难点和重

点。

3.设计实现用户管理,课程管理,选课信息录入管理,新生信息录入管理,新

来老师信息录入管理和课程的浏览等页面。

4.分析并解决实现中的若干技术问题。

第二章系统分析

第一节需求分析

在本系统进入开发阶段之前,已针对课程管理系统的各方面因素做了综合的构思;并仔细浏览了Internet上的多个网站,总结它们的优缺点,并调查其运行成本和成效;同时认真的把自己对项目的想法告诉周围对此有兴趣的老师和同学,听取他们的意见和建议。经过多方面的考核与研究,大致确定了学生选课测试系统所需要满足的功能与性能:

一功能需求

课程管理系统主要满足三方面的需求,这三个方面分别是学生,教师和管理员。学生的需求是查询院系的课程,学生选课情况及学生信息的修改;教师对学生选课情况进行操作。同时形成学生选课查看确认;选课管理员的功能最为复杂,包括对学生,教师,选课进行管理和统计,及系统状态的查看,维护并生成选课报表。学生可以直接查看选课情况,学生可以根据本人学号和密码进行登录系统,还可以进行本人学科成绩情况的查询和维护部分个人信息。一般情况下,学生只应该查询和维护本人的选课情况和个人信息,若查询和维护其他学生的选课信息,就要知道其他学生的学号和密码。所以有了个人密码不但满足了学生的要求,还保护了学生的个人隐私。

二性能需求

一般用户并不具备计算机专业知识,若程序性能有一定的缺陷或可对其隐藏,但一旦异常暴露,对于计算机专业知识较少的用户来说降一发不可收拾。对于一个专业的开发人员来讲,其项目在满足用户提出的功能实现外,首先应保证性能良好;对于一个基于B/S的项目,更要顾及当前各种先进的黑客技术,有备无患!综上所属,本系统的性能需求大致如下:

?系统的多数模块(尤其是后台几乎所有的)都有相应的特殊操作,所以在进

入模块之前要对用户所具有的权限等用户信息做出严格检测,预防非法操作。

?数据库的连接应采用连接池技术,合理、有效的分配、回收资源。

?系统运行过程中会产生许多异常(其中大多数是预期效果),要有良好的异常处理机制,即要显示界面友好又要体现程序严谨。

?学生在选修课程时教师会在后台严格控制,系统设计时要充分考虑到线程之间的并发与冲突。

?注重系统所需时间与空间上的资源消耗和运行效果。

三其他需求

本系统有较好的可维护性、可靠性、可理解性、效率。易于用户理解和操作。可维护性包括了可读性、可修改性、可测试性、等含义。可靠性通常包括正确性和健壮性。开发过程中,在各种矛盾的目标之间作权衡,并在一定的限制的条件下(经费、时间、可用的软、硬件资源等),使上述各方面最大限度的得到满足。

四业务流分析

课程管理系统的业务流程:首先由系统管理员等有录入权限的用户将各自权限范围内的信息进行录入,然后保存信息到数据库中。有权限的人可以对这些库信息进行修改和删除。所有用户均可以进行信息查询和统计,有权限用户还可以基于已有信息进行选修课程。

五数据流分析

课程管理管理系统的数据流程:首先由教师或系统管理员等有录入权限的用户将各自权限范围内的信息进行录入处理,然后保存信息到数据库中。有权限的人可以对这些库信息进行修改和删除处理。所有用户均可以进行信息查询和统计。

第二节可行性研究报告

1.技术可行性-----本系统需要一台装有java,eclipse及sql server运行环

境的计算机即可,对机器本身没有太大的要求,一般当前学校或个人电脑完全可满足要求。对于软件技术要求,现在的程序设计语言已非常成熟,再运用图形图像制作工具来制作生动活泼的网页。

2.经济可行性-----由于本系统是为学生选课管理使用的系统,装上该应用软

件,即可使用系统,系统成本主要集中在系统软件的开发上,当系统投入运行后可以为学校节约大量的人力,物力。所带来的效益远远大于系统软件的开发成本。在经济上完全可行。

3.操作可行性-----界面设计时充分考虑管理人员的习惯,使得操作简单;数据

录入迅速,规范,可靠,统计准确;制表灵活;适应力强;容易扩充。

第三节数据库选择

在目前这种信息多元化,服务智能化的时代,应用软件往往与数据库形影不离。碍于JAVA技术的跨平台特性,我们在实际应用中很少见到微软的数据库产品要去搭配使用,而是MySql和Orcale居多,本项目最终决定选用MySql作为后台数据库。

第四节运行环境

鉴于数据库的选择,本系统仅能在Windows系统上运行,需装有MYSQL。在工程中,本系统采用MyEclipse作为开发及测试环境。

1数据库应用系统开发简介

在数据库应用系统开发之前,对开发数据库的基本概念应当了解,对数据库的结构、开发数据库应用程序的步骤、开发体系及方法都应当有相当清晰的了解和认识。数据库应用系统开发的目标是建立一个满足用户长期需求的产品。开发的主要过程为:理解用户的需求,然后,把它们转变为有效的数据库设计。把设计转变为实际的数据库,并且这些数据库带有功能完备、高效能的应用。数据库技术在计算机软件邻域研究中一直是非常重要的主题,产生于60年代,30多年来数据库技术得到了迅速发展,并已形成较为完整的理论体系和一大批实用系统。并且,近年来,随着World Wide Web(WWW)的猛增及Internet技术的迅速发展,使得数据库技术之时成为最热门技术之一。用户数据目前表明,

大多数主流数据库管理系统把用户数据表示为关系。现在把关系看作数据表。表的列包含域或属性,表的行包含对应业务环境中的实体的记录。并非所有的关系都同样符合要求,有些关系比其它关系更结构化一些。

2.mysql server简介

MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracal收购.对于Mysql 的前途,没有任何人抱乐观的态度.目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

第三章概要设计

第一节功能模块划分

?功能划分:

学生通过身份验证后进入主界面。主界面为学生提供3项选择:选

择课程,查看成绩,用户管理。教师通过身份验证后进入主页面。

主页面为教师提供4项选择:开课信息管理,成绩录入,学生选课

确认。

?功能描述:

学生:

●选择课程:

给出可选课程和初选课程的列表,可以在可选课程列表中选择任

一门所列课程,在初选课程中可以取消选择的课程。

●查看成绩:

学生通过成绩按钮可以查询出自己已修学分等信息。

●用户管理

修改登录密码。

管理员:

●教师信息管理

可以添加,删除教师的基本信息。

●学生信息管理

可以添加,删除学生的基本信息。

教师:

●授课信息管理

给出所有开设课程的列表,教师选择所教课程并设置学分,限

选人数,上课时间等信息。

●成绩录入

录入学生选修课程的成绩

●学生确认选课

根据学生班级编号,教师整理并确定学生选课生效

●用户管理

修改登录密码。

第二节系统功能结构图

系统的登录信息模块如图3.1所示:

图3.1 系统的前台模块如图3.2所示:

第四章详细设计第一节系统E-R图示

1.分E-R图

学生信息E-R图

教师信息E-R图

课程信息E-R图

学生成绩E-R图

教师授课信息E-R图

账户信息E-R图

2.总ER图

第二节 信息要求

1、系统总体数据流图如下:

进入选课 执行教师功能 模块信息 信息

用户 模块

更新 信息

2、 管理员实现对教师、学生账号的更新以及设置开课:

选课系统 管理学教

更新

3、学生选课、教师录入成绩等操作数据流如下:

个人信息表课程表

第三节模块设计

以下是系统的模块轮廓,在此我对自己负责的开课信息及用户管理模块进行详细描述,其他模块由其负责的同学进行描述。

?学生及教师信息模块

?开课信息及学生信息模块

?学生与成绩录入模块

?管理员管理模块

开课信息及用户管理模块主要有两个部分:

1.开课信息管理:给出所有开设课程的列表,教师选择所教课程并设置学分,限选人数,上课时间等信息。

2.用户管理模块:主要是学校管理工作人员的权限:学校工作人员有修改学生的选课的权限,所以需要对工作人员登录本模块进行更多的考虑,在此系统中,学校工作人员可以为学生加入选课或是登录记录,并打印生成相应的报表给用户查

看。院系管理人功能的信息量大,数据安全性和保密性要求最高。本功能实现对选课信息,教师信息,总体选课情况信息的查询和统计,工作人员和管理人员查看及维护。学校管理员可以浏览,查询,修改,统计选课的基本信息。这部分功能应该是由院系工作人员执行,但是,删除某条学生选课基本信息记录时,应实现对该学生选课的级联删除。

第四节数据表

1.系别信息表

学生信息表(stu_tab):

学生信息表主要用于存放学生类用户的基本信息。包括学生学号(stu_id)、学生姓(stu_name)、性别(stu_sex)、生日(stu_birthd)、班级(class)。

教师信息表(tea_tab):

教师信息表用于存放教师类用户的基本信息,包括教师编号(tea_id)教师姓名(tea_name)、教师性别(tea_sex)、教师生日(tea_birthd)、教师职称(post)、所在院系(department)8项基本信息。其中,tea_id(编号)字段作为该表的

学生成绩表(s_table):

成绩信息表主要用于存放学生类用户的选课号所对应的选课成绩。包括课程编号(cou_id)、学生学号(stu_id )、学生成绩(score)3个字段。

教师授课表(t_tab):

教师授课表用于授课课程号和地点。包括授课课程号(cou_id)、教师编号(tea_id)、上课地点(location)3个字段。其中,cou_id(授课课程号)、

课程表用于存放课程各项信息。包括判课程编号(cou_id)、课程名称(co_name)、学分(point)和选课人数(stu_num)4个字段。其中,cou_id

统一记录管理员、教师和学生的账号密码,包括账号(user_id)、密码(password)、2个字段。其中,user_id(账号)为主键。

2.关系模型

第五章数据库的实施和维护

一.存储过程设计

1.某个老师所有学生:

create proc allstudent1 --某个老师所有学生

@a char(10)

as

begin

select x.stu_id,x.stu_name, t.cou_name,z.score

from Stu_Table1 x,t_tab y,scroetable z,cou_tab t where x.stu_id=z.stu_id and y.cou_id=z.cou_id and t.cou_id=y.cou_id

and y.tea_id=@a

end

2.成绩录入参数是学生号,课程名,成绩:

create proc inputPerform1--成绩录入参数是学生号,课程名,成绩

@stuid char(10),

@cname char(16),

@crore char(2)

as

begin

declare @ab char(16)

set @ab=(select cou_id from cou_tab where cou_name=@cname)

update scroetable

set score=@crore

where stu_id=@stuid and cou_id=@ab

end

3.插入教师授课表参数是课程号,用户名,地点:

use choose

create proc insertteach1--插入教师授课表参数是课程号,用户名,地点

@cou_id char(16),

@user_id char(10),

@di varchar(10)

as

begin

insert into t_tab values(@cou_id,@user_id,@di)

end

4.显示所有的课程无参数:

create proc AllCouse

as

begin

select

x.Cou_ID,x.Cou_Name,x.Point ,y.Tea_Name,y.Post,z.Location,x.Stu_num from Cou_ x,Tea_tab1 y,T_tab z

where x.Cou_ID=z.Cou_ID and y.Tea_ID=z.Tea_ID

end

5.删除某个用户名,参数账号:

create proc DeleteLogon(@id char(10))

as

begin

delete from Logon

where User_ID=@id

end

6.删除某个学生,参数是学号:

create proc DeleteStudent(@id char(10))//

as

begin

delete from Stu_Table1

where Stu_ID=@id

end

7.删除某个教师,参数是教师号:

create proc DeleteTeacher(@id char(10))

as

begin

delete from Tea_tab1

where Tea_ID=@id

end

8.插入用户表记录,参数是账号和密码:

create proc InsertLogon(@id char(10))

as

begin

insert into Logon

values(@id,@id)

end

9.插入到学生表记录,参数学生好,学生名,性别,生日,班级:

create proc InsertStudent(@user_id char(10),@username char(10),@sex

相关主题
相关文档
最新文档