选课系统的设计与实现.docx
《选课系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《选课系统的设计与实现.docx(31页珍藏版)》请在冰豆网上搜索。
选课系统的设计与实现
毕业设计(论文)
题目:
选课系统的设计与实现
2014年11月20日
选课系统的设计与实现
电子信息工程系通信102202H孟阳王亚娟
摘要
随着在校大学生人数的不断增加,教务系统的数据量也不断的上涨。
针对学生选课这一环节,本系统从学生网上自主选课以及课程发布两个大方面进行了设计,基本实现了学生的在线信息查询、选课功能以及教师对课程信息发布的管理等功能,另外也初步解决了管理员在课程信息发布管理上的权限问题。
本程序前台采用Dreamweaver进行页面制作,后台由SQLServer数据库支持,通过使用JSP语言实现动态网页的效果,达到对数据库的操作以完成使用者的要求。
本文中除了有对程序的总体设计、详细设计、功能实现等主体部分外,在这之前还介绍了与网上选课系统相关的信息管理系统、网络编程技术、JSP编程语言、SQLServer数据库服务器等的基本内容及发展情况。
关键词:
选课,JSP,SQLServer
Thedesignandimplementationofelectivesystem
Departmentofelectronicandinformationcommunication102202HMengyangwangyajuan
Abstract
Thenumberofcollegestudentswithincreasing,theeducationaladministrationsystemdataquantityalsorise.Courseforstudentsofthisaspect,thesystemfromtheStudentOnlineAutonomouscourseandcoursereleasedtwomajoraspectsofthedesign,thebasicachievementofthestudentsinonlineinformation,selectionfunctionaswellasteachersofthecurriculummanagementinformationfunction,alsoapreliminarysettlementoftheadministratorsinthecurriculuminformationadministrationjurisdictionproblem.ProceduresforthefutureuseofDreamweaverpageproduction,backgroundbySQLServerdatabasesupport,throughtheuseofJSPlanguageimplementationofdynamicwebpageeffect,achievetheoperationonthedatabasetocompletetherequirementsofusers.Inthispaper,inadditiontotheprogram'soveralldesign,detaileddesign,functionalrealizationofthemaincomponent,beforethisalsointroducesonlinecourseselectionsystemrelatedinformationmanagementsystem,networkprogrammingtechnology,JSPprogramminglanguage,SQLServerdatabaseserversuchasthebasiccontentsanddevelopmentsituation.
KeyWords:
Coursechoosing,JSP,SQLServer
第1章概述
1.1项目开发的背景
随着计算机及互联网的普及,传统的教务人工管理很难适应新环境,传统的选课方式是随堂报名,无法预见上课人数,浪费教学资源。
以现代网络技术环境为依托,讲传统选课模式转换为利用现代网络技术进行选课操作和管理的网上选课系统已经成为一项重要的改革。
现有的选课系统存在以下不足:
(1)系统运行不够稳定
现有的选课系统时常无法登陆,这显然是网络服务器的不稳定造成的,应该在发布前进行充分的性能测试
(2)操作复杂,不够人性化
网上选课应该满足操作简单方便,但是现有的系统忽略了操作的简单性,从而导致选课要经过多个步骤,系统界面不够友好,不够人性化。
(3)系统性能差
没有进行充分的优化,导致在选课高峰的时候,大量同学同时选课经常会出现登陆和选课速度极慢,甚至出现服务器瘫痪死机的现象,导致某些学生不能正常的选课。
1.2项目开发的目的
学生选课系统的开发目的是使学生选课从随堂报名转变成网络选课,为学生和管理员之间提供方便条件。
对选课系统的实际情况进行调研之后,进行详细的需求分析,对现有的选课系统进行改进,开发出一套新型的选课系统,从中领悟系统开发的思想,掌握系统开发的流程和方法。
随着选课系统的不断完善,高校的管理将越来越依赖于信息化的管理。
所以系统开发将围绕学生选课的实际情况,使之能迅速适应网络学校的需要。
选课系统的现实意义:
网上选课与传统的选课方式相比更加节约资源,同时,随着学生选课自主权的增加,网上选课有效的避免了“走关系”等不良现象,使教学更加透明。
第2章可行性分析及总体设计原则
2.1可行性分析
可行性分析也称为可行性研究,是在调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、社会等方面进行分析和研究,以避免投资失误,保证新系统的开发成功[2]。
可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。
下面将分别从技术、经济、社会三个方面对网络教学平台的建设进行分析和研究。
2.1.1技术可行性
根据学生选课系统功能、性能及实现系统的各种约束条件,根据系统目标来衡量所需的技术是否具备,本系统是一个基于数据库管理和查询的系统,现有的技术已较为成熟,硬件、软件的性能要求、环境条件等各项条件良好,估计利用现有技术条件应完全可以达到该系统的功能目标。
同时,考虑给予的开发期限也较为充裕,预计系统是可以在规定期限内完成开发的。
由以上分析可知,网络教学平台的开发在技术上是可行的。
2.1.2经济可行性
各大高校具有信息化的处理设施,并且拥有支持本系统的应用平台。
因此无需再投入资金购买其他设施。
系统的开发基于本人对程序开发的实践学习而来,学校无需资金投入,并且软件开发过程投入的成本不高,因此开发经费完全可以接受。
由以上分析可知,网络教学平台在经济上是可行的。
2.1.3社会可行性
本系统的社会可行性主要从法律因素、用户使用可行性两方面进行研究。
(1)法律因素
本系统是根据学生选课的实际情况开发研制的,是通过大量的调研得出的,系统的软件设计是在独立的环境下完成的,无可供抄袭的软件产品。
(2)用户使用可行性
本系统对用户的要求,除了需要具备在MicrosoftWindows平台上使用个人电脑的知识外,并不需要特别的技术能力。
使用系统的管理员,需要具备对Tomcat服务器的使用能力,在投入使用前,无需对操作系统的人员进行培训。
这样既减少投入成本又简化了操作环节。
由以上分析可知,本系统具有社会可行性。
2.2总体设计原则
本系统为了设计、实现和后期维护的方便,以及系统用户使用的便利,所以必须采取一定的设计原则[3]。
其主要设计原则有:
简单性:
在实现系统的功能的同时,尽量让系统操作简单易懂,这对于一个系统来说是非常重要的。
针对性:
本系统设计是针对管理的需求定向开发设计,所以具有专业突出和很强的针对性。
实用性:
要求本系统能够满足管理的需要,因此具有良好的实用性。
一致性:
页面整体设计风格以及命名规则的一致性:
整体框架和用图用色风格及变量、类名和其他元素的命名规则保持一致。
功能一致性:
完成同样的功能应该尽量使用同样的元素。
元素风格一致性:
界面元素的美观风格、摆放位置在同一个界面和不同界面之间都应该是一致的。
变量命名规则的一致性:
变量应该用统一的规则进行命名,做到任意变量均能从上下文推断其义。
先进性:
本系统采用JSP、Sqlserver2005作为系统开发工具和数据库,两个软件具有良好的兼容性和系统稳定性。
因此本设计具有良好的先进性[7]。
第3章系统分析
3.1业务流程分析
在进行业务流程分析时,需要按照原有信息流动过程,逐个地调查分析所有环节的处理业务、处理内容、处理顺序和对处理时间的要求,弄清各个环节需要的信息、信息来源、流经去向、处理方法、计算方法、提供信息的时间和信息形态(报告、报单、屏幕显示)等[4]。
业务流程分析可以帮助开发者了解该业务处理过程,发现和处理系统调查工作中的错误和疏漏。
业务流程分析是通过业务流程图来进行,即用一些规定的符号及连线来表示某个具体业务处理过程[5]。
具体的业务流程图,流程如图3.1所示。
图3.1管理员业务流程图
3.2数据流图
数据流程是指数据在系统中产生、传输、加工处理、使用、存储的过程[6]。
数据流程分析是把数据在现行系统内部的流动抽象的独立起来,舍去了具体组织机构、信息载体、处理工具、物质、材料等,单从数据流动过程来考查实际业务的数据处理模式。
数据流程与数据流程分析是今后建立数据库系统和设计功能模块处理过程的基础。
描述数据流程的工具是数据流程图以及其附带的数据字典、处理逻辑等图表。
其中数据流程图是描述系统逻辑模型的主要工具,它以少数几种符号综合地反映出信息在系统中的流动、存储和传递[7]。
在业务流程分析的基础上,对数据流进行了分析,从数据流动过程考察了实际业务的数据处理模式。
图3.2课程管理数据流程图
图3.3老师信息管理数据流程图
图3.4课表管理数据流程图
由于论文的篇幅限制不能一一列举数据流图,只给出了一部分比较重要的,其他都是按照此方法绘制的。
第4章系统设计
4.1系统功能设计
通过对学生选课系统进行全面的调查分析的基础上,制定出学生选课系统的系统总体规划。
系统设计包括系统总体设计、系统详细设计、系统数据库设计、系统开发工具、开发技术和开发模式等[14]。
学生选课管理系统功能模块图如下所示:
图4.1超级管理员功能模块图
学生选课系统超级管理员功能模块主要包括:
系统管理、课程管理、老师管理、学生管理、课表管理、修改密码。
图4.2老师功能模块图
学生选课系统老师功能模块主要包括:
个人信息查看、课表浏览。
图4.3学生功能模块图
学生选课系统学生模块功能主要包括:
个人信息查看、在线选课、我的课表浏览。
4.2系统数据库设计
数据库设计是系统设计中非常重要的一个环节[15]。
数据是一切系统设计的基础,通俗地说,数据库设计就像高楼大厦的根基一样,如果设计的不合理、不完善,将在系统开发过程中,甚至到后期的系统维护、功能变更和功能扩充时,引起较多问题,严重时甚至要重新设计,重做大量已完成工作。
4.2.1概念结构设计
根据系统分析的结果,具体分析不同实体用户,描述不同实体之间的关系,得出系统数据实体图和E-R图。
管理员实体属性图如图4.4所示:
图4.4管理员实体属性图
管理员信息包含:
管理员编号、用户名、密码。
学生信息实体属性图如图4.5所示:
图4.5学生信息实体属性图
学生信息包含:
ID、学号、年龄、性别、姓名、登录密码、登陆账号。
老师信息实体属性图如图4.6所示:
图4.6老师信息实体属性图
老师信息包含:
ID、老师编号、年龄、性别、姓名、登录密码、登陆账号。
课程信息实体属性图如图4.7所示:
图4.7课程信息实体属性图
课程信息包含:
课程编号、课程名称、课时。
课表信息属性图如图4.8所示:
图4.8课表信息实体属性图
课表信息包含:
授课老师、课程编号、课程名称、课时、上课时间、节次、上课教室。
4.2.2数据库表设计
(1)管理员信息表(t_admin)
管理员信息表主要用于系统管理员的信息,主要字段包括:
编号、登陆账号、登陆密码。
表4.1管理员信息表(t_admin)
字段名
数据类型
字段描述
长度
主键
ID
Int
编号
4
√
Name
varchar
登陆账号
50
Pwd
varchar
登陆密码
50
(2)课程信息表(t_kecheng)
课程信息表主要存储管理员发布的课程信息,主要字段包括:
课程编号、课程名称、课程介绍等。
表4.2课程信息表(t_kecheng)
字段名
数据类型
字段描述
长度
主键
id
Int
编号
4
√
bianhao
varchar
课程名称
50
mincheng
varchar
课程介绍
5000
keshi
varchar
课时
4
(3)学生信息表(t_xuesheng)
学生表主要存储学生的基本信息,主要字段包括:
ID、学号、姓名、性别、年龄、登录帐号、登录密码等。
表4.3学生信息表(t_xuesheng)
字段名
数据类型
字段描述
长度
主键
id
Int
编号
4
√
xuehao
varchar
学号
50
xingming
varchar
姓名
50
xingbie
varchar
性别
50
nianling
Int
年龄
4
banji
varchar
班级
50
loginname
varchar
登录帐号
50
loginpw
varchar
登陆密码
50
(4)老师信息表(t_laoshi)
老师信息表主要存储老师的基本信息,主要字段包括:
ID、老师编号、姓名、性别、年龄、登录帐号、登录密码等。
表4.4老师信息表(t_laoshi)
字段名
数据类型
字段描述
长度
主键
id
Int
ID
10
√
bianhao
varchar
老师编号
50
xingming
varchar
姓名
50
xingbie
varchar
性别
50
nianling
Int
年龄
50
zhicheng
varchar
职称
50
loginname
varchar
登录账号
50
loginpw
varchar
登陆密码
50
(5)课表信息表(t_kebiao)
老师信息表主要存储课表的基本信息,主要字段包括:
ID、课程ID、上课时间、节次、上课教室、老师ID、登录密码等。
表4.5老师信息表(t_kebiao)
字段名
数据类型
字段描述
长度
主键
id
Int
ID
10
√
kecheng_id
Int
课程ID
4
shijian
varchar
上课时间
50
jieci
varchar
节次
50
jiaoshi
varchar
上课教室
50
laoshi_id
Int
老师ID
4
(6)学生选课信息表(t_xuesheng_xuanke)
老师信息表主要存储学生选课的基本信息,主要字段包括:
ID、学生ID、课表ID等。
表4.6老师信息表(t_xuesheng_xuanke)
字段名
数据类型
字段描述
长度
主键
id
Int
ID
4
√
xuesheng_id
Int
学生ID
4
xuesheng_id
Int
课表ID
4
4.3系统开发工具与开发模式的选择
4.3.1开发工具
本系统主要使用JSP、Servlet技术对系统进行设计和开发。
JSP拥有Java程序设计语言“一次编写,各处执行”、“安全性、保密性高”等的特点[13];Servlet提供了Java应用程序的所有优势-可移植、稳健、易开发。
4.3.2开发模式
目前,在大多数B/S(Browser/Server)结构的Web应用中,浏览器直接通过HTML或者JSP的形式与用户交互,响应用户的请求。
虽然很直观,但是大多数管理信息系统操作的数据量都是惊人的,随着代码的增多会使JSP页面臃肿不堪,Web服务器的负荷过重。
因此,在中间层上采用基于模型视图控制器(MVC,Model-View-Controller)的设计模式。
Model层用来实现业务逻辑,View层用来显示用户界面,Controller层主要负责View层和Model层之间的控制关系。
具体实现时,把Servlet用作应用程序的控制器,把JSP文档作为视图,JavaBeans被用来表示模型。
所有的请求都被发送给作为控制器的Servlet,它接受请求,并根据请求信息将它们分发给适当的JSP来响应。
同时,Servlet还根据JSP的需求生成JavaBeans的实例并输出给JSP环境。
JSP可以通过直接调用方法或使用UseBean的自定义标签得到JavaBeans中的数据。
这种设计模式很好地实现了数据层与表示层的分离,使开发工作更加容易和迅速[14]。
在这种设计模式下,各层次之间的数据传递如图4.9所示。
图4.9数据传递图
第5章系统实现
5.1登录界面
5.1.1登录界面
此模块主要功能是用于登录本系统,不同权限的用户登录本系统会进入不同的管理模块界面,因为在后台对该用户进行的判断,首先将从前台页面提交的用户名和密码进行接受,之后在后台进行处理,按照用户名在数据库中进行查询如果查到该用户则将该用户的权限和密码全都取出来分别赋给两个字符串变量,判断从数据库中读出的密码与登录时输入的密码是否配比上,若两个密码相同则根据权限的值进入相应的页面,否则输出密码错误。
若用户未被管理员分配好权限那么也是无法登陆本系统的。
如下图所示:
图5.1登录界面
5.1.2登录流程
图5.2登录流程图
在用户名和密码处输入用户名和密码,在“用户类型”下拉列表框中选择“学生”,“教师”或者系统管理员账户并单击“登录”按钮,登录选课系统后会跳转到相应的页面,如果用户名或密码错误将转到报错页面。
当在登录页面,输入信息错误,将提供返回首页的功能。
5.2登陆首页面
超级管理员输入用户名和密码后,系统判断合法性正确后,登录到本系统,系统首页如下图所示:
图5.3管理员登录首页
管理员用户功能模块由四部分组成:
用户管理、网上平台和其他。
5.3密码修改模块
超级管理员登录本系统后,为了保证系统安全性,可以修改自己的密码,界面如下图所示:
图5.4管理员维护界面
管理员可以对密码进行修改。
5.4课程信息管理模块
该模块负责维护所有的课程信息,界面如下图示:
图5.5课程管理界面
管理员可以对课程进行删除与添加。
5.5老师信息管理界面
该模块负责管理所有的老师信息,设计界面如下图所示:
图5.6老师信息管理界面
管理员可以对教师的账户、密码与教师信息进行添加与删除。
5.6学生信息管理
超级管理员登录本系统后,可以管理学生的信息,如下图所示:
图5.7学生信息界面
管理员可以对学生的账户、密码与学生信息进行添加与删除。
5.7课表信息管理
本模块是系统的核心所在,管理员负责管理课表信息,然后学生登陆系统后可以在线选课,设计界面如下图所示:
图5.8在线讨论管理界面
管理员对课程与教师进行匹配,发布信息,然后学生登录系统后进行选课。
5.8课表录入模块
录入新的课表信息,设计界面如下图所示:
图5.9在线讨论管理界面
管理员对已有课程进行选择,然后确定上课时间、节次、地点以及授课老师对课表进行添加、删除。
第6章软件测试与分析
测试是开发时期最后一个阶段,是保证软件质量的重要手段。
软件测试就是在受控制的条件下对系统或应用程序进行操作并评价操作结果的过程,所谓控制条件应包括正常条件与非正常条件。
软件测试过程中应该故意地去促使错误的发生,也就是事情在不该出现的时候出现或者在应该出现的时候没有出现。
从本质上说,软件测试是“探测”,在“探测”中发现软件的毛病。
6.1系统测试的定义
软件测试是为了发现错误而执行程序的过程。
它不仅是软件开发阶段的有机组成部分,而且在整个软件工程(即软件定义、设计和开发过程)中占据相当大的比重。
软件测试是软件质量保证的关键环节,直接影响着软件的质量评估。
软件测试不仅要讲究策略,更要讲究时效性。
验收测试作为软件测试过程的最后一个环节,对软件质量、软件的可交付性和软件项目的实施周期起到"一锤定音"的作用。
6.2系统测试的目的及意义
软件危机曾经是软件界甚至整个计算机界最热门的话题。
为了解决这场危机,软件从业人员、专家和学者做出了大量的努力。
现在人们已经逐步认识到所谓的软件危机实际上仅是一种状况,那就是软件中有错误,正是这些错误导致了软件开发在成本、进度和质量上的失控。
有错是软件的属性,而且是无法改变的,因为软件是由人来完成的,所有由人做的工作都不会是完美无缺的。
问题在于我们如何去避免错误的产生和消除已经产生的错误,使程序中的错误密度达到尽可能低的程度。
6.3系统测试的重要性
软件测试在软件生命周期中占据重要的地位,在传统的瀑布模型中,软件测试学仅处于运行维护阶段之前,是软件产品交付用户使用之前保证软件质量的重要手段。
近来,软件工程界趋向于一种新的观点,即认为软件生命周期每一阶段中都应包含测试,从而检验本阶段的成果是否接近预期的目标,尽可能早的发现错误并加以修正,如果不在早期阶段进行测试,错误的延时扩散常常会导致最后成品测试的巨大困难。
事实上,对于软件来讲,不论采用什么技术和什么方法,软件中仍然会有错。
采用新的语言、先进的开发方式、完善的开发过程,可以减少错误的引入,但是不可能完全杜绝软件中的错误,这些引入的错误需要测试来找出,软件中的错误密度也需要测试来进行估计。
测试是所有工程学科的基本组成单元,是软件开发的重要部分。
自有程序设计的那天起测试就一直伴随着。
统计表明,在典型的软件开发项目中,软件测试工作量往往占软件开发总工作量的40%以上。
而在软件开发的总成本中,用在测试上的开销要占30%到50%。
如果把维护阶段也考虑在内,讨论整个软件生存期时,测试的成本比例也许会有所降低,但实际上维护工作相当于二次开发,乃至多次开发,其中必定还包含有许多测试工作。
6.4系统测试的常用方法
程序测试的主要方法分为两大类,白盒测试和黑盒测试。
白盒测试:
一种是以程序的内部逻辑结构为依据而设计测试用例的方法,因而又称结构测试或玻璃盒测试,将软件看成一个透明的白盒子,按照程序的内部结构和处理逻辑来选定测试用例,对软件的逻辑路径及过程进行测试,检查它与设计是否相符。
白盒测试就是要选取足够的测试用例,对源代码实行比较充分的覆