基于Web的选课系统设计与实现.docx
《基于Web的选课系统设计与实现.docx》由会员分享,可在线阅读,更多相关《基于Web的选课系统设计与实现.docx(42页珍藏版)》请在冰豆网上搜索。
基于Web的选课系统设计与实现
毕业论文
姓名:
班级:
系部:
专业:
论文题目:
基于WEB的选课系统设计与实现
指导教师:
职称:
2013年7月
摘要
本论文主要论述的是基于web的选课系统的系统维护模块的设计和实现设计学生选课系统维护模块系统的目的是对选课信息进行管理。
学生选课系统维护模块主要完成的是系统管理与维护功能。
课题研究过程中,首先对系统管理模块进行了详细的需求分析,经分析得到系统管理模块主要完成如下的功能:
用户基本信息,选课信息录入,查看,修改,删除,从而实现能够在线选课,在线添加课程,在线查询课程等功能。
系统管理模块是整个系统的指挥中心,保证整个系统在校园网上安全有效的运作。
之后跟进需求提出了系统管理模块的总体设计方案。
并进行了详细设计和编码实现,系统使用ASP。
NET作为开发语言,SQLServer2000作为数据库。
代码中通过使用进行中的Session,尽量使用存储过程和尽量减少数据库连接的打开时间等手段来提高性能。
论文中对课题的设计和开发进行了完整地论述。
系统开发完成后,对课题要求的功能设计出测试用例,进行功能测试,测试结果证明学生选课系统的维护模块实现了对该模块的功能需求,完成了课题的主要任务。
关键词:
自动化;性能;SQL
Summary
Thisthesisinvestigatestheelectivesystemoftheweb-basedsystemmaintenancemoduledesignanddesignstudentelectivesystemmaintenancemodulesystemiselectiveinformationmanagement.Studentelectivesystemmaintenancemoduleofthecompletionofsystemmanagementandmaintenancefunctions.Theresearchprocess,thesystemmanagementmodule,adetailedneedsanalysis,analysisofsystemmanagementmodulemainlyperformsthefollowingfunctions:
basicuserinformation,courseselectioninformationinput,view,modify,deleteinordertoachievethatonlineelectiveaddcoursesonline,onlinequeryfeaturessuchascurriculum.Thesystemmanagementmoduleisthecommandcenterofthewholesystem,toensurethesafeandeffectiveoperationoftheentiresysteminthecampusnetwork.Afterfollow-updemandfortheoveralldesignofthesystemmanagementmodule.AnddetaileddesignandcodingsystemtouseASP.NETasadevelopmentlanguage,theSQLServer2000asdatabase.ByusingthecodeintheSession,tomakeuseofstoredproceduresandtominimizethedatabaseconnectionopentimemeanstoimproveperformance.
Thepaperintegrityofthedesignanddevelopmentofthesubject.Systemdevelopmentiscompleted,thesubjectofthefunctionaldesignrequirementsofthetestcasesforfunctionaltesting,testresultsprovethattheclassselectionsystemmaintenancemoduletoachievethefunctionalrequirementsofthemodule,completingthemaintaskofthesubject.
Keywords:
automation;performance;SQL
1引言
选课系统是一个学校不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生选课系统应该能够为用户提供充足的信息和快捷的查询手段。
但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:
效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
因此,开发这样一套软件成为很有必要的事情,在下面的各章中我们将以开发一套学生选课系统为例,谈谈其开发过程和所涉及到的问题及解决方法。
随着Internet技术不断发展,尤其是基于Web的信息发布和检索技术,.NET计算技术以及网络分布式对象技术的飞速发展,导致了很多应用系统的体系结构从C/S结构向更加灵活的B/S多级分布结构演变,使得软件系统的网络体系结构跨入一个新阶段。
本次设计主要采用B/S结构。
1.1C/S结构
C/S结构,即Client/Server(客户机/服务器)结构。
C/S结构把数据库内容放在远程的服务器上,相应的在客户机上需安装相应的软件。
C/S软件一般采用两层结构,其分布结构如图1.1所示。
它由两部分构成:
前端是客户机,接受用户的请求,并向数据库服务提出请求,通常是一个PC机;后端是服务器,即数据管理(Server)将数据提交给客户端,客户端将数据进行计算并将结果呈现给用户。
还要提供完善的安全保护及对数据的完整性处理等操作,并允许多个客户同时访问同一个数据库。
在这种结构中,服务器的硬件必须具有足够的处理能力。
图1.1
C/S结构在技术上很成熟,它的主要特点是交互性强、具有安全的存取模式、网络通信量低、响应速度快、利于处理大量数据。
但是该结构的程序是针对性开发,变更不够灵活,维护和管理的难度较大。
通常只局限于小型局域网,不利于扩展。
并且,由于该结构的每台客户机都需要安装相应的客户端程序,分布功能弱且兼容性差,不能实现快速部署安装和配置,因此缺少通用性,具有较大的局限性。
要求具有一定专业水准的技术人员去完成。
1.2B/S结构
B/S结构,即Browser/Server(浏览器/服务器)结构,就是只安装维护一个服务器(Server),而客户端采用浏览器(Browse)运行软件。
它是随着Internet技术的兴起,对C/S结构的一种变化和改进。
主要利用了不断成熟的WWW浏览器技术,是一种全新的软件系统构造技术。
B/S三层体系结构采用三层:
客户层/中间层/服务器结构,在数据管理层(Server)和用户界面层(Client)增加了一层结构,称为中间层,使整个体系结构成为三层。
三层结构是伴随着中间件技术的成熟而兴起的,核心概念是利用中间件将应用分为表示层、业务逻辑层和数据存储层三个不同的处理层次,如图1.2所示。
三个层次的划分是从逻辑上分的,具体的物理分法可以有多种组合。
中间件作为构造三层结构应用系统的基础平台,提供了以下主要功能:
负责客户机与服务器、服务器与服务器间的连接和通信;实现应用与数据库的高效连接;提供一个三层结构应用的开发、运行、部署和管理的平台。
这种三层结构在层与层之间相互独立,任何一层的改变不会影响其它层的功能。
图1.2
在B/S体系结构系统中,用户通过浏览器向分布在网络上的许多服务器发出请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器。
而其余如数据请求、加工、结果返回以及动态网页生成、对数据库的访问和应用程序的执行等工作全部由WebServer完成。
随着Windows将浏览器技术植入操作系统内部,这种结构已成为当今应用软件的首选体系结构。
显然B/S结构应用程序相对于传统的C/S结构应用程序是一个非常大的进步。
B/S结构的主要特点是分布性强、维护方便、开发简单且共享性强、总体拥有成本低。
但数据安全性问题、对服务器要求过高、数据传输速度慢、软件的个性化特点明显降低,这些缺点是有目共睹的,难以实现传统模式下的特殊功能要求。
例如通过浏览器进行大量的数据输入或进行报表的应答、专用性打印输出都比较困难和不便。
此外,实现复杂的应用构造有较大的困难。
1.3B/S结构与C/S结构的分析比较
1.3.1硬件环境不同
C/S建立在局域网的基础上,通过专门服务器提供连接和数据交换服务。
所处理的用户不仅固定,并且处于相同区域,要求拥有相同的操作系统。
B/S建立在广域网的基础上,信息自己管理,有比C/S更强的适应范围,一般只要有操作系统和浏览器就行。
与操作系统平台关系最小。
面向不可知的用户群。
1.3.2结构不同
C/S软件一般采用两层结构,而B/S采用三层结构:
这两种结构的不同点是两层结构中客户端参与运算,而三层结构中客户端并不参与运算,只是简单地接收用户的请求,显示最后的结果。
由于三层结构中的客户端并不需要参与计算,所以对客户端的计算机电脑配置要求较低。
虽然B/S采用了逻辑上的三层结构,但在物理上的网络结构仍然是原来的以太网或环形网。
这样,第一层与第二层结构之间的通信、第二层与第三层结构之间的通信都需占用同一条网络线路,网络通信量大。
而C/S只有两层结构,网络通信量只包括Client与Server之间的通信量,网络通信量低。
所以,C/S处理大量信息的能力是B/S无法比拟的。
1.3.3处理模式不同
B/S的处理模式与C/S相比,大大简化了客户端,只要装上操作系统、网络协议软件以及浏览器即可,这时的客户机成为瘦客户机,而服务器则集中了所有的应用逻辑。
1.3.4构件重用不同
在构件的重用性方面,C/S程序从整体进行考虑,具有较低的重用性。
而B/S对应的是多重结构,要求构件具有相对独立的功能,具有较好的重用性。
1.3.5系统维护不同
系统维护是在软件生存周期中开销最大的一部分。
C/S程序由于其本身的整体性,必须整体考察并处理出现的问题。
而B/S结构,客户端不必安装及维护。
B/S结构在构件组成方面只变更个别构件,开发、维护等工作都集中在服务器端。
当需要升级时,只需更新服务器端的软件,而不必更换客户端软件,实现系统的无缝升级。
这样就减轻了系统维护与升级的成本和工作量,使用户的总体拥有成本(TCO)大大降低。
2开发工具介绍
2.1ASP.NET简介
ASP.NET是统一的Web应用程序平台,它提供了为建立和部署企业级Web应用程序所必需的服务。
ASP.NET为能够面向任何浏览器或设备的更安全的、更强的可升级性、更稳定的应用程序提供了新的编程模型和基础结构。
ASP.NET是Microsoft.NETFramework的一部分,是一种可以在高度分布的Internet环境中简化应用程序开发的计算环境。
.NETFramework包含公共语言运行库,它提供了各种核心服务,如内存管理、线程管理和代码安全。
它也包含.NETFramework类库,这是一个开发人员用于创建应用程序的综合的、面向对象的类型集合。
ASP.NET提供了下面的优点:
可管理性:
ASP.NET使用基于文本的、分级的配置系统,简化了将设置应用于服务器环境和Web应用程序的工作。
因为配置信息是存储为纯文本的,因此可以在没有本地管理工具的帮助下应用新的设置。
配置文件的任何变化都可以自动检测到并应用于应用程序。
安全:
ASP.NET为Web应用程序提供了默认的授权和身份验证方案。
开发人员可以根据应用程序的需要很容易地添加、删除或替换这些方案。
易于部署:
通过简单地将必要的文件复制到服务器上,ASP.NET应用程序即可以部署到该服务器上。
不需要重新启动服务器,甚至在部署或替换运行的已编译代码时也不需要重新启动。
增强的性能:
ASP.NET是运行在服务器上的已编译代码。
与传统的ActiveServerPages(ASP)不同,ASP.NET能利用早期绑定、实时(JIT)编译、本机优化和全新的缓存服务来提高性能。
灵活的输出缓存:
根据应用程序的需要,ASP.NET可以缓存页数据、页的一部分或整个页。
缓存的项目可以依赖于缓存中的文件或其他项目,或者可以根据过期策略进行刷新。
国际化:
ASP.NET在内部使用Unicode以表示请求和响应数据。
可以为每台计算机、每个目录和每页配置国际化设置。
移动设备支持:
ASP.NET支持任何设备上的任何浏览器。
开发人员使用与用于传统的桌面浏览器相同的编程技术来处理新的移动设备。
扩展性和可用性:
ASP.NET被设计成可扩展的、具有特别专有的功能来提高群集的、多处理器环境的性能。
此外,Internet信息服务(IIS)和ASP.NET运行时密切监视和管理进程,以便在一个进程出现异常时,可在该位置创建新的进程使应用程序继续处理请求。
跟踪和调试:
ASP.NET提供了跟踪服务,该服务可在应用程序级别和页面级别调试过程中启用。
可以选择查看页面的信息,或者使用应用程序级别的跟踪查看工具查看信息。
在开发和应用程序处于生产状态时,ASP.NET支持使用.NETFramework调试工具进行本地和远程调试。
当应用程序处于生产状态时,跟踪语句能够留在产品代码中而不会影响性能。
与.NETFramework集成:
因为ASP.NET是.NETFramework的一部分,整个平台的功能和灵活性对Web应用程序都是可用的。
也可从Web上流畅地访问.NET类库以及消息和数据访问解决方案。
ASP.NET是独立于语言之外的,所以开发人员能选择最适于应用程序的语言。
另外,公共语言运行库的互用性还保存了基于COM开发的现有投资。
与现有ASP应用程序的兼容性:
ASP和ASP.NET可并行运行在IISWeb服务器上而互不冲突;不会发生因安装ASP.NET而导致现有ASP应用程序崩溃的可能。
ASP.NET仅处理具有.aspx文件扩展名的文件。
具有.asp文件扩展名的文件继续由ASP引擎来处理。
然而,应该注意的是会话状态和应用程序状态并不在ASP和ASP.NET页面之间共享。
2.2SQLSQRVER简介
上手容易:
大多数的中小企业日常的数据应用是建立在Windows平台上的。
由于SQLServer与Windows界面风格完全一致,且有许多"向导(Wizard)"帮助,因此易于安装和学习,有关SQLServer的资料、培训随处可得,并且目前国内具有MCDBA认证的工程师不在少数。
从另一个角度来讲,学习SQLServer是掌握其他平台及大型数据,如Oracle,Sybase,DB/2的基础。
因为这些大型数据库对于设备、平台、人员知识的要求往往较高,而并不是每个人都具备这样的条件,且有机会去接触它们。
但有了SQLServer的基础,再去学习和使用它们就容易多了。
IT行业的实践经验充分证明了这一点。
兼容性良好:
由于今天Windows操作系统占领着主导地的位,选择SQLServer一定会在兼容性方面取得一些优势。
另外,SQLServer2000除了具有扩展性,可靠性以外,还具有可以迅速开发新的因特网系统的功能。
尤其是它可以直接存贮XML数据,可以将搜索结果以XML格式输出等特点,有利于构建了异构系统的互操作性,奠定了面向互联网的企业应用和服务的基石。
这些特点在.NET战略中发挥着重要的作用。
3系统概述
学生管理是教务管理中的一个极为重要的环节,它是整个管理的核心和基础。
由于学校规模进一步扩大,学生人数逐年上升,学生情况的管理也变得越来越复杂。
面对如此繁杂的任务。
如果让个人去管理文档,就会显得费时费力。
尤其在管理成绩时,任务更加繁重,就选科管理本身来说,它是一项任务繁重、时效性较强的系统工作,它不但涉及学生个人成绩查询,更涉及到各教师的工作效率和质量。
近年来随着计算机的迅速发展,计算机已经在社会各个领域显示了它巨大的作用。
毋庸置疑,切实有效地把计算机管理引入学校教务管理中,对于促进学校管理制度,提高学校教学质量与办学水平有着显著意义。
3.1系统开发的目标
①升级、改造学院现有的办公自动化系统,完善学院网站建设,实现办公自动化结构的网络化,进一步提高学院的办公效率、工作水平,朝着信息化、网络化、现代化目标迈进。
②建立学院数字化教学系统,进一步提高办学效益和现代化教学水平。
③校园体验子系统,使整个机构完全实现信息化、自动化、网络化。
3.2系统需求
本选课管理系统可以说是一个综合性的学校选课管理系统,它集成了学生信息管理,教师信息管理多种功能,因而具有较强的实用性和先进性。
通过调查,要求系统需要有以下功能:
①由于该系统的使用对象多,要求有较好的权限管理;
②原始数据修改简单方便,支持多条件修改;
③方便的数据查询,支持多条件查询;
④在相应的权限下,删除数据方便简单,数据稳定性好。
可将系统划分成四个模块:
1.用户登录身份验证模块
2.系统管理员功能模块
3.学生管理功能模块
4.教师管理功能模块
3.2.1可行性分析
(1)技术可行性-----本系统仅需要一台装有Office软件的计算机即可,对机器本身没有太高的要求,一般当前学校或个人电脑完全可满足要求。
对于软件技术要求,现在的程序设计语言已非常成熟,要运用HTML样式,图形图象制作工具来制作生动活泼的网页及美观的图形文件或动画文件,数据库使用SQL Server2005中提供的数据库桌面工具ODBC。
(2)经济可行性-----由于本系统是为学生选课管理使用的系统,装上该应用软件,即可使用系统,系统成本主要集中在系统软件的开发上,当系统投入运行后可以为学校节约大量的人力,物力。
所带来的效益远远大于系统软件的开发成本。
在经济上完全可行。
(3)操作可行性-----界面设计时充分考虑管理人员的习惯,使得操作简单;数据录入迅速、规范、可靠;统计准确;制表灵活;适应力强;容易扩充。
第2章内容主要是:
系统需求分析包括,现有系统介绍;系统的实体分析,实体关系图。
3.3数据库的设计
3.3.1数据库系统分析
本系统的数据库实体主要有“学生”、“教师”、“教学楼”、“教室”、“课程”等。
其中“教师”与“课程”存在“开设”联系,并且一个教师可以开设N门课程,即“教师”与“课程”之间是一对多的关系。
同样“教学楼”与“教室”也存在一对多的关系。
一个学生可以学习N门课程,一门课程可以有M个学生学习,即“学生”与“课程”之间是多对多的关系。
同样“课程”与“教室”之间也是多对多的关系。
整个数据库可以用一个E-R图表示,如图3.1.1:
图3.1.1
E—R图中的实体图如下图3.1.2至3.1.9:
图3.1.2
图3.1.3
图3.1.4
图3.1.5
图3.1.6
图3.1.7
图3.1.8
图3.1.9
3.3.2数据库逻辑设计
数据库逻辑设计就是将图转换为关系模型的过程,即将所有实体和关系转换成一系列的关系模式。
转换过程中常见规则有:
(1)一个实体型转换为一个关系模式;
(2)一个一对一的联系可转换成一个独立的关系模式,也可与任意一端对应的关系模式合并;
(3)一个一对多的联系可以转换成一个独立的关系模式,也可与多的那一端对应的关系模式合并;
(4)一个多对多的关系转换成一个关系模式。
根据以上四条规则,下面将图转换成关系模型。
对于“教学楼”、“教室”和两者之间的关系,就可以根据规则(3)转换成两个关系模式
教学楼(教学楼ID,教学楼名称)
教室(教室ID,教学楼ID,教室名称)
对于“学生”、“课程”和它们之间的“选修”关系就可以规则(4)转换成三个关系模式。
学生(学号,姓名,性别,年龄,登陆密码,学分,地址,电话,电子邮件)
课程(课程编码,课程名称,开课教师编号,学分,最大人数,课程简介,前导课程编号)
选课(学号,课程编号,成绩)
依次类推,剩下的关系转换成下面三个关系模式:
教师(教师编号,姓名,性别,年龄,电话,电子邮件,个人简介)
课程时间地点(课程编号,开始周次,结束周次,上课时间,上课教室ID)
管理员(帐号,密码)
3.3.3数据库物理实现
经过数据库系统分析和逻辑设计后,数据库的结构已经非常清晰,剩下的就是用一种数据库软件实现这样的结构。
本系统中数据库采用MicrosoftSQLServer2000作为数据库。
首先我们在MicrosoftSQLServer2000的“企业管理器”创建一个数据库,我们命名为“SC”,如图3-1:
图3-1
选中SC数据库,向数据库中添加8个表:
Student,Teacher,Course,SC,CourseTime,Building,Room和Admin,每个表与逻辑设计中一种的关系模式相对应。
下面是每个数据表中的属性,包括属性列的名称、数据类型、长度、是否可以为空和备注说明等内容。
(1)Students表。
Students表用来存储学生的个人信息,使用学号作为主键,如图3-2:
图3-2
(2)Teachers表。
Teachers表用来存储教师的个人信息,用学校分配给教师的教师编号作为主键,这样可以避免重复,如图3-3:
图3-3
(3)Course表。
Course表用来存储课程信息,Course表以课程编号为主键,设置课程编号自动增加1(通过建表的时候对属性列设置“标识”,并设置“标识递增量”为1)。
表中开课教师Id为外键,所有“TId”的值必须是Teachers是表中的“TId”值。
设置外键关系可以通过在建立表的窗口中单击右键,在右键菜单中选择“关系”,在弹出的对话框中设置外键关系。
如图3-4:
图3-4
(4)SC表。
SC表用于存储学生的选课信息,在SC表中学号和课程编号是主键,同时也是外键。
如图3-5:
图3-5
(5)CourseTime表。
CourseTime表用来存放课程的上课时间和上课地点信息,其中课程编号和教室编号为外键。
如图3-6:
图3-6
(6)Building表。
Building表用来存放教学楼信息,Building表中教学楼编号为主键,自动增加1。
如图3-7:
图3-7
(7)Room表。
Room表用来存放教室信息,在Room表中,教室编号为主键,自动增加1,教学编号为外键。
如图3-8:
图3-8
(8)Admin表。
Admin表用来存放系统管理员信息,如图3-9:
图3-9
3.4系统的实现
在本系统中,有三类用户:
系统管理员,教师和学生。
三种不同的用户所具有的操作权限以及操作内容均不一样。
本选课系统给予教师很大的自主权,系统管理员只负责向系统中添加学生和教师的个人信息以及教学楼教室信息。
系统管理员不参与开设课程、选择课程等,一切均由教师、学生登陆网站自行完成。
系统管理员设置一个选课时间段,在到达时间段以前,教师可以开设课程;到达时间