基于JAVA的学生选课系统设计与实现 计算机Word下载.docx
《基于JAVA的学生选课系统设计与实现 计算机Word下载.docx》由会员分享,可在线阅读,更多相关《基于JAVA的学生选课系统设计与实现 计算机Word下载.docx(36页珍藏版)》请在冰豆网上搜索。
从系统开发的复杂程度来看,计算机辅助排课与选课是高校教务系统中的两个关键子系统,目前不少教务系统尚未很好地解决排课与选课问题。
本文主要对高校教务管理系统中计算机课表编排与选课子系统的基本功能、设计思想、需求分析以及实现技术进行探讨。
我想大家肯定都经历过学生时代,也许很多人还对那个时候的选课记忆犹新,每个学期都要排着长长的队伍去选。
现在,我们已经进入到Internet时代了,选课系统自然也要随着更新。
大学中,公选课较多,学生可根据自己的专业及兴趣选择公选课程进行学习,本系统将从教学部门的要求出发,实现公选课的选择、查询与统计。
第一节开发背景
当今时代是飞速发展的信息时代。
在各行各业中离不开信息处理,这正是计算机被广泛应用玉信息管理系统的环境。
计算机的好处在于利用它能够进行信息管理。
使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。
尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。
计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。
本系统就是为了管理学生课程选修信息而设计的。
学生选课作为一种信息资源的集散地,包含很多的信息数据的管理。
由于数据繁多,容易丢失,且不易查找。
总的来说,缺乏系统,规范的信息管理手段。
尽管有的学校有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发基本环境。
数据处理手工操作,工作量大,出错率高,出错后不易更改。
造成时间上的浪费,基于这个问题,是有必要建立一个课程管理系统,使学生选课信息管理工作规范化,系统化,程序化,避免学生选课管理的随意性,提高信息处理的速度和准确性,能够及时,准确,有效的查询和修改选课情况。
第二节开发目标
本系统根据学校实际项目要求及所针对的用户群体,预期制定出主要实现的如下目标:
1.网页风格学校平台的特点,界面简单大方。
2.充分为用户着想,提供细致周到的技术支持。
3.方便教师或管理员修改信息。
4.为网站管理员提供方便、快捷的网站维护平台。
5.严格限制不动的用户权限。
第三节项目意义
课程管理系统是一个学校不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以课程管理系统能够为用户提供充足的信息和快捷的查询手段,但是一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点如:
效率低,保密性差,另外时间一长,将产生大量的文件和数据,这对于查找,更新和维护都带来了不少的困难。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻的认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对课程管理信息进行操作,有着手工管理无法比拟的优点:
检索迅速,查找方便,可靠性高,存储量大,保密性好,成本低等。
这些优点能够极大的提高人事劳资管理的效率,也是企业的科学化,正规化管理,与世界接轨的重要条件。
因此,开发这样一套软件成为很有必要的事情,在下面的各章中我们将以开发一套学生课程管理系统为例,谈谈其开发过程和所涉及的问题及解决办法。
本文所做的主要工作如下:
1.介绍了个性化页面的背景及运用java语言和eclipse运行环境的原理。
2.阐述整个系统的系统结构及工作原理,分析系统实现中的特殊性,难点和重点。
3.设计实现用户管理,课程管理,选课信息录入管理,新生信息录入管理,新来老师信息录入管理和课程的浏览等页面。
4.分析并解决实现中的若干技术问题。
第二章系统分析
第一节需求分析
在本系统进入开发阶段之前,已针对课程管理系统的各方面因素做了综合的构思;
并仔细浏览了Internet上的多个网站,总结它们的优缺点,并调查其运行成本和成效;
同时认真的把自己对项目的想法告诉周围对此有兴趣的老师和同学,听取他们的意见和建议。
经过多方面的考核与研究,大致确定了学生选课测试系统所需要满足的功能与性能:
一功能需求
课程管理系统主要满足三方面的需求,这三个方面分别是学生,教师和管理员。
学生的需求是查询院系的课程,学生选课情况及学生信息的修改;
教师对学生选课情况进行操作。
同时形成学生选课查看确认;
选课管理员的功能最为复杂,包括对学生,教师,选课进行管理和统计,及系统状态的查看,维护并生成选课报表。
学生可以直接查看选课情况,学生可以根据本人学号和密码进行登录系统,还可以进行本人学科成绩情况的查询和维护部分个人信息。
一般情况下,学生只应该查询和维护本人的选课情况和个人信息,若查询和维护其他学生的选课信息,就要知道其他学生的学号和密码。
所以有了个人密码不但满足了学生的要求,还保护了学生的个人隐私。
二性能需求
一般用户并不具备计算机专业知识,若程序性能有一定的缺陷或可对其隐藏,但一旦异常暴露,对于计算机专业知识较少的用户来说降一发不可收拾。
对于一个专业的开发人员来讲,其项目在满足用户提出的功能实现外,首先应保证性能良好;
对于一个基于B/S的项目,更要顾及当前各种先进的黑客技术,有备无患!
综上所属,本系统的性能需求大致如下:
Ø
系统的多数模块(尤其是后台几乎所有的)都有相应的特殊操作,所以在进入模块之前要对用户所具有的权限等用户信息做出严格检测,预防非法操作。
数据库的连接应采用连接池技术,合理、有效的分配、回收资源。
系统运行过程中会产生许多异常(其中大多数是预期效果),要有良好的异常处理机制,即要显示界面友好又要体现程序严谨。
学生在选修课程时教师会在后台严格控制,系统设计时要充分考虑到线程之间的并发与冲突。
注重系统所需时间与空间上的资源消耗和运行效果。
三其他需求
本系统有较好的可维护性、可靠性、可理解性、效率。
易于用户理解和操作。
可维护性包括了可读性、可修改性、可测试性、等含义。
可靠性通常包括正确性和健壮性。
开发过程中,在各种矛盾的目标之间作权衡,并在一定的限制的条件下(经费、时间、可用的软、硬件资源等),使上述各方面最大限度的得到满足。
四业务流分析
课程管理系统的业务流程:
首先由系统管理员等有录入权限的用户将各自权限范围内的信息进行录入,然后保存信息到数据库中。
有权限的人可以对这些库信息进行修改和删除。
所有用户均可以进行信息查询和统计,有权限用户还可以基于已有信息进行选修课程。
五数据流分析
课程管理管理系统的数据流程:
首先由教师或系统管理员等有录入权限的用户将各自权限范围内的信息进行录入处理,然后保存信息到数据库中。
有权限的人可以对这些库信息进行修改和删除处理。
所有用户均可以进行信息查询和统计。
第二节可行性研究报告
1.技术可行性-----本系统需要一台装有java,eclipse及sqlserver运行环境的计算机即可,对机器本身没有太大的要求,一般当前学校或个人电脑完全可满足要求。
对于软件技术要求,现在的程序设计语言已非常成熟,再运用图形图像制作工具来制作生动活泼的网页。
2.经济可行性-----由于本系统是为学生选课管理使用的系统,装上该应用软件,即可使用系统,系统成本主要集中在系统软件的开发上,当系统投入运行后可以为学校节约大量的人力,物力。
所带来的效益远远大于系统软件的开发成本。
在经济上完全可行。
3.操作可行性-----界面设计时充分考虑管理人员的习惯,使得操作简单;
数据录入迅速,规范,可靠,统计准确;
制表灵活;
适应力强;
容易扩充。
第三节数据库选择
在目前这种信息多元化,服务智能化的时代,应用软件往往与数据库形影不离。
碍于JAVA技术的跨平台特性,我们在实际应用中很少见到微软的数据库产品要去搭配使用,而是MySql和Orcale居多,本项目最终决定选用MySql作为后台数据库。
第四节运行环境
鉴于数据库的选择,本系统仅能在Windows系统上运行,需装有MYSQL。
在工程中,本系统采用MyEclipse作为开发及测试环境。
1数据库应用系统开发简介
在数据库应用系统开发之前,对开发数据库的基本概念应当了解,对数据库的结构、开发数据库应用程序的步骤、开发体系及方法都应当有相当清晰的了解和认识。
数据库应用系统开发的目标是建立一个满足用户长期需求的产品。
开发的主要过程为:
理解用户的需求,然后,把它们转变为有效的数据库设计。
把设计转变为实际的数据库,并且这些数据库带有功能完备、高效能的应用。
数据库技术在计算机软件邻域研究中一直是非常重要的主题,产生于60年代,30多年来数据库技术得到了迅速发展,并已形成较为完整的理论体系和一大批实用系统。
并且,近年来,随着WorldWideWeb(WWW)的猛增及Internet技术的迅速发展,使得数据库技术之时成为最热门技术之一。
用户数据目前表明,大多数主流数据库管理系统把用户数据表示为关系。
现在把关系看作数据表。
表的列包含域或属性,表的行包含对应业务环境中的实体的记录。
并非所有的关系都同样符合要求,有些关系比其它关系更结构化一些。
2.mysqlserver简介
MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司。
在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)。
其中,stu_id(学生学号)字段作为主关键字。
字段名
数据类型
长度
主键否
是否为空
stu_id
char
10
主键
不为空
stu_name
stu_tsex
2
stu_birthd
datetime
class
16
教师信息表(tea_tab):
教师信息表用于存放教师类用户的基本信息,包括教师编号(tea_id)教师姓名(tea_name)、教师性别(tea_sex)、教师生日(tea_birthd)、教师职称(post)、所在院系(department)8项基本信息。
其中,tea_id(编号)字段作为该表的主键(primarykey),惟一标识了一个管理员(教师)用户记录的信息。
tea_id
tea_name
tea_sex
tea_birthd
post
dept
20
学生成绩表(s_table):
成绩信息表主要用于存放学生类用户的选课号所对应的选课成绩。
包括课程编号(cou_id)、学生学号(stu_id)、学生成绩(score)3个字段。
其中,cou_id(课程编号)与stu_id(学生学号)作为主关键字。
是否主键
cou_id
score
int
教师授课表(t_tab):
教师授课表用于授课课程号和地点。
包括授课课程号(cou_id)、教师编号(tea_id)、上课地点(location)3个字段。
其中,cou_id(授课课程号)、tea_id(教师编号)作为主关键字。
place
课程表(cou_table):
课程表用于存放课程各项信息。
包括判课程编号(cou_id)、课程名称(co_name)、学分(point)和选课人数(stu_num)4个字段。
其中,cou_id(课程编号)作为主关键字。
Char
cou_name
point
8
stu_num
Int
所有用户账户表(logon):
统一记录管理员、教师和学生的账号密码,包括账号(user_id)、密码(password)、2个字段。
其中,user_id(账号)为主键。
user_id
password
charr
2.关系模型
第五章数据库的实施和维护
一.存储过程设计
1.某个老师所有学生:
createprocallstudent1--某个老师所有学生
@achar(10)
as
begin
selectx.stu_id,x.stu_name,t.cou_name,z.score
fromStu_Table1x,t_taby,scroetablez,cou_tabt
wherex.stu_id=z.stu_idandy.cou_id=z.cou_idandt.cou_id=y.cou_id
andy.tea_id=@a
end
2.成绩录入参数是学生号,课程名,成绩:
createprocinputPerform1--成绩录入参数是学生号,课程名,成绩
@stuidchar(10),
@cnamechar(16),
@crorechar
(2)
begin
declare@abchar(16)
set@ab=(selectcou_idfromcou_tabwherecou_name=@cname)
updatescroetable
setscore=@crore
wherestu_id=@stuidandcou_id=@ab
3.插入教师授课表参数是课程号,用户名,地点:
usechoose
createprocinsertteach1--插入教师授课表参数是课程号,用户名,地点
@cou_idchar(16),
@user_idchar(10),
@divarchar(10)
begin
insertintot_tabvalues(@cou_id,@user_id,@di)
end
4.显示所有的课程无参数:
createprocAllCouse
selectx.Cou_ID,x.Cou_Name,x.Point,y.Tea_Name,y.Post,z.Location,x.Stu_num
fromCou_x,Tea_tab1y,T_tabz
wherex.Cou_ID=z.Cou_IDandy.Tea_ID=z.Tea_ID
end
5.删除某个用户名,参数账号:
createprocDeleteLogon(@idchar(10))
deletefromLogon
whereUser_ID=@id
6.删除某个学生,参数是学号:
createprocDeleteStudent(@idchar(10))//
deletefromStu_Table1
whereStu_ID=@id
7.删除某个教师,参数是教师号:
createprocDeleteTeacher(@idchar(10))
deletefromTea_tab1
whereTea_ID=@id
8.插入用户表记录,参数是账号和密码:
createprocInsertLogon(@idchar(10))
insertintoLogon
values(@id,@id)
9.插入到学生表记录,参数学生好,学生名,性别,生日,班级:
createprocInsertStudent(@user_idchar(10),@usernamechar(10),@sexchar
(2),@birthdatetime,@classchar(10))
insertintoStu_Table1values(@user_id,@username,@sex,@birth,@class)
return
10.插入到教师表记录,参数教师号,教师名,性别,生日,职位,院系:
createprocInsertTeacher(@use