随着在校大学生人数的不断增加,教务系统的数据量也不断的上涨。针对学生选课这一环节,本系统从学生网上自主选课以及教师的课程信息发布两个大方面进行了设计,基本实现了学生的在线信息查询、选课功能、教师添加课程介绍,本人介绍,安排考试时间,录入考试成绩等。以及管理员添加不同权限的用户和对课程信息发布的管理等功能。其中我主要负责学生选课退选,以及教师录入成绩等功能的实现。
本系统是利用Browser/Server(B/S)结构,以Visual Studio 2012为主要开发工具,配合Dreamweaver、Fireworks等软件为辅助开发工具,采用ASP.NET编程技术,使用SQL Server 2008数据库服务器,并使用C#.NET语言开发的在线学生选课系统。
关键词:选课;课程信息发布;SQL Server;ASP.NET;C#.NET
1 绪 论
随着无纸化办公的一步步实现,信息的自动处理以及网络式的信息交互方式越来越被人们认可和应用。让计算机来管理学生的信息是现在各个高校都在积极进行的工作之一,也是高校教学管理工作的重要内容之一。网上选课与传统的选课方式相比更加节约资源,同时,随着学生选课自主权的增加,网上选课有效的避免了“走关系”等不良现象,使教学更加透明。
MIS系统的飞速发展,技术的成熟以及应用领域的不断扩大,为网上信息的交互提供了一个良好的平台和方便的操作界面。由于MIS系统基于用户需求的设计方法,使得该系统的使用更加的人性化、个人化、更贴近用户。网上选课系统是针对在校学生和教师使用,从学生的角度来说,由于学校教学制度的改革,现在大部分高等院校开始实行的是学生的自主选课模式,传统的教学模式——学生按照学校安排好的课程上课——已经不能适应新型的教学手段,如果仍然通过纸上的方式选课,一方面浪费的大量的人力、物力资源,另一方面浪费时间以及在人为的统计过程中不可避免出现的差错等情况。随着高校人数的增多,这种弊端会越来越多的暴露出来。因此,利用网络,使学生只要在计算机前输入自己的个人选课信息即可完成原来几倍的作业量。从教师的角度来说,同样是节省了大量的工作量,由于教师提出代课申请完成课程发布的工作较学生选课而言更加的复杂,因此通过网上进行课程发布能大幅度的减少教师的工作量,减少错误的发生几率。作为教师,也只要通过自己的电脑来操作即可,不用再奔波于教务处和办公室之间。以MIS系统的构建思想来实现网上选课系统可以最大程度的做到实用性,可扩展性和可维护性相结合,安全性以及规范化原则。计算机的高速发展,给人类带来方便,使人类在繁重的工作中的得到了解脱。计算机技术、通信技术、网络技术为代表的现代信息技术的飞速发展,人类社会正从工业时代阔步迈向信息时代。现在是信息的社会,计算机毕竟是我们使用的工具,主要的工作还是要我们自己来完成的。随着环境变迁与科学技术的发展,近半个世纪以来,信息系统的内容、工具与作用都发生了很大的变化。今天的信息管理系统不仅广泛的应用了信息技术,还深入的溶入了现代管理思想、数学方法和系统方法。信息管理系统的内容及作用在深度和广度上都有了很大的扩展,它包括常规的数据处理、综合信息分析及决策支持等多层次内容,它不仅对管理还对组织的各方面产生影响,并且承担着组织结构和组织运作方式的设计任务,性质还被认为隐含着管理制度与管理模式。
随着计算机技术和网路技术的发展,各高校相继建成了自己的校园网络,并充分利用校园网提供新环境、新手段为学校的教学、科研和教务管理服务。近年来,我们学校的招生规模不断扩大以及校区的合并,在校学生人数明显增多,加之学生分校区管理,给原本繁杂的院级选修课人工选课工作增加了不少教务工作量。网上选课系统的开发,可以使得选修课程的设置维护、学生选/退课及成绩查询、任课教师查询选课名单及成绩录入统计等工作均能在互联网上完成。这不仅减轻了教务人员的工作负担,也大大方便了全校师生对选课信息的维护、查询。
我们使用 MICROSOFT公司的Visual Studio.NET和MS SQL Server 2008作为开发工具, 使用ASP.NET技术和VB.NET作为编程语言,用Microsoft Windows XP Professional 版本2002 Service Pack 2 简体中文版,Internet Information Services Manager做为开发平台。
本系统可以方便老师、学生更方便的选课。实现全校学生选课在线查询。还可以对新来的学生信息进行信息录入。由于学生上课情况复杂,可以实现信息修改,及时调整学生的基本情况。
2 系统概述
2.1在线选课系统概述
学生选课系统是一个学校不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生选课系统应该能够为学生提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对选课信息进行管理,有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
我们所做的学生选课系统是针对河北工程学院的人文选修课,现在高校中使用的选课系统有两种,一种是河北工程学院正在使用的教务系统,使用起来不是很方便,操作不直观。另一种也是ASP.NET开发的教务管理系统,他的操作相对与河北工程学校正在使用的系统已经非常明了,不过他做的是一个通用型的系统,虽然功能都具备,但是在实际应用中可能不符合某些学校的特殊需求。我们所做的系统只是实现人文选修课的选课,所以功能上远比不上上面说提到两个教务管理系统,只是借鉴了上面两个系统中选课子系统的一些东西。来使我们的系统更方便、更加人性化。
学生在线选课系统的后台数据库是学生、老师、课程的信息。前台的各种操作最终影响到的都是后台的数据库系统。前台通过ASP.NET实现网络的编程,完成对整个系统的查询、修改、添加功能。学生可以在线选课,退选课程并能查看个人信息和当前学期课程表,还有上传作业和在线答疑的附加功能。教师可以录入学生成绩,查看和更改自己的信息,并添加所授课程简介,查看本学期所授课程的课程表,下载学生作业和在线答疑等功能。
该系统设置有权限控制部分,登陆系统首先判断权限,它所面向的操作群主要分四类:第一类为学生管理人员,他们具有对数据库中学生的记录进行修改、添加和删除的权限。第二类为教师管理人员,他们具有对数据库中教师的记录进行修改、添加和删除的权限。第三类为课程管理人员,他们具有对数据库中课程的记录进行修改、添加和删除的权限。第四类为超级管理人员,他们除了有以上三类用户所具有的功能以外,还有对系统进行维护的功能。
2.2 理论基础
2.2.1 ASP.NET简介
ASP.NET是ASP的下一代的版本,但是ASP.NET并非是从ASP3.0演化而来的,而是从头到尾彻底重新改写了。在许多方面,ASP.NET与ASP有着本质不同,它是一个用于Web开发的全新框架,其中包含了许多新的特性。ASP.NET完全基于模块与组件,提供了更易于编写、结构更清晰的代码,这些代码很容易进行再进行利用和共享,具有更好的可扩展性与可定制性,ASP.NET使Web表单更为直观,并且面向对象技术促进了组件的再利用。另外,ASP.NET中还包括页面事件、Web控件、缓冲技术以及服务器控件和对数据捆绑的改进。供ASP.NET使用的库以及在Microsoft.NET框架中允许通过Web使用客户商用函数,数据处理方面更是引入了许多激动人心的新技术,正是这些新特性让ASP.NET远远超过ASP,同时也提供给Web开发人员更好的灵活性,有效缩短了Web应用程序的开发周期, ASP.NET与Windows 2000 Server/ Windows Server 2003的完美组合,为中小型乃至企业级的Web商业模型提供了更为稳定高效安全的运行环境。
ASP.NET的发展与其原理技术
ASP.NET它是一种在微软公司的Web服务器IIS上开发交互网页的新技术。微软公司最初在IIS3.0版上使用它以取代CGI。随着Windows NT在WWW上的使用日益增多,ASP.NET已经成为了开发动态网站、构筑Internet和Internet应用的最佳选择。它能执行内嵌在网页中的代码,还提供了一系列组件,执行一些高级功能,其中最常见的是ActiveX数据对象(ADO),它使得创建各种动态网页变得更简单。
目前运行ASP.NET的系统需求硬件环境:
CPU:至少主频Intel PentiumⅡ 133MHz以上
内存:最少128MB
磁盘空间:370MB(完全安装)至少250 MB,安装时系统至少有600 MB的剩余硬盘空间
ASP.NET首选的编译工具是Visual Studio.NET,开发语言有C# 、Visual Basic和JavaScript.NET。
与以前的Web开发模型相比,ASP.NET提供了数个重要的优点:
增强的性能:ASP.NET是在服务器上运行的编译好的公共语言运行库代码。与被解释的前辈不同,ASP.NET可利用早期绑定、实时编译、本机优化和盒外缓存服务。这相当于在编写代码行之前便显著提高了性能。
世界级的工具支持:ASP.NET框架补充了Visual Studio集成开发环境中的大量工具箱和设计器。WYSIWYG编辑、拖放服务器控件和自动部署只是这个强大的工具所提供功能中的少数几种。
威力和灵活性:由于ASP.NET基于公共语言运行库,因此 Web 应用程序开发人员可以利用整个平台的威力和灵活性。.NET框架类库、消息处理和数据访问解决方案都可从Web无缝访问。ASP.NET也与语言无关,所以可以选择最适合应用程序的语言,或跨多种语言分割应用程序。另外,公共语言运行库的交互性保证在迁移到ASP.NET 时保留基于COM的开发中的现有投资。
简易性:ASP.NET使执行常见任务变得容易,从简单的窗体提交和客户端身份验证到部署和站点配置。例如,ASP.NET页框架使您可以生成将应用程序逻辑与表示代码清楚分开的用户界面和在类似Visual Basic的简单窗体处理模型中处理事件。另外,公共语言运行库利用托管代码服务(如自动引用计数和垃圾回收)简化了开发。
可管理性:ASP.NET采用基于文本的分层配置系统,简化了将设置应用于服务器环境和Web应用程序。由于配置信息是以纯文本形式存储的,因此可以在没有本地管理工具帮助的情况下应用新设置。此“零本地管理”哲学也扩展到了 ASP.NET 框架应用程序的部署。只需将必要的文件复制到服务器,即可将ASP.NET框架应用程序部署到服务器。不需要重新启动服务器,即使是在部署或替换运行的编译代码时。
可缩放性和可用性:ASP.NET 在设计时考虑了可缩放性,增加了专门用于在聚集环境和多处理器环境中提高性能的功能。另外,进程受到ASP.NET运行库的密切监视和管理,以便当进程行为不正常(泄漏、死锁)时,可就地创建新进程,以帮助保持应用程序始终可用于处理请求。
自定义性和扩展性:ASP.NET随附了一个设计周到的结构,它使开发人员可以在适当的级别“插入”代码。实际上,可以用自己编写的自定义组件扩展或替换ASP.NET 运行库的任何子组件。实现自定义身份验证或状态服务一直没有变得更容易。
安全性:借助内置的Windows身份验证和基于每个应用程序的配置,可以保证应用程序是安全的。
ASP.NET为Web的应用程序开发者引入了许多新特性,这些特性包括已编译的服务器端代码、一种将服务器端逻辑与客户端布局相分离的代码隐藏(code-behind)技术、可扩展的服务器端控件模型、设计良好且易于使用的数据绑定模型、xcopy部署、以及客户和服务器上的窗体身份验证支持。然而,除了上述特性外,ASP.NET还为我们提供了一种统一:语言、工具、库、部署模型、系统设计和诊断支持的统一。使我们开发Web应用程序再也不用区别对待网页所用的组件与架构中其他地方所用的组件;再也不用脚本调试器来诊断网页中存在的错误,可以摆脱许多不同规格的脚本语言的束缚,使用拿手的.NET语言构建网页。
ASP.NET的核心是许多.NET类,它们间密切合作,对HTTP请求提供服务。在这些类中,一些类在系统程序集中定义,作为基础库的一部分,并在.NET运行时装入;一些类被载入全局程序集缓存,还有一些类从与应用程序关联的虚拟目录中的本地程序集中载入。所有这些类都被载入ASP.NET工作者进程内的应用程序域中,而且它们相互作用对给定的请求做出响应。
ASP.NET的另一重大转变是进程模型(process model)。ASP.NET进程是从inetinfo.exe Internet信息服务器(IIS)进程中分离出来的一个单独的进程aspnet_wp.exe,ASP.NET中的进程模型与IIS中有关的进程隔离设置无关。尽管IIS仍然是访问ASP.NET应用程序的典型入口点,在物理上侦听响应的端口,分发请求,但是它的作用有所减弱,并且它所处理的许多任务都可以有ASP.NET在它自己的工作者进程中完成。
第一次访问ASP.NET网页时你会惊奇的发现,ASP.NET不同于ASP的最显著的地方是装载页面所需时间。ASP.NET装载页面的速度较慢。然而,以后对该网页的访问时间却是快的惊人。第一次访问网页所需的开销包括:加载ASP.NET工作者进程,对.aspx文件进行语法分析,并将它编译成一个程序集。这一点与ASP引擎执行服务器端代码是不同的,后者总是将服务器端代码交给一个解释器(Jscript或VBScript)进行处理。而ASP.NET网页始终被编译成.NET类,并保存在程序集中。由于.NET类中即包括服务器端代吗又包括静态HTML语句,因此,只要第一次访问了某个网页,以后生成该网页时只需执行已编译的代码即可。这样就解决了传统ASP脚本模型的所有有关效率低下的问题。此外,因为.aspx文件被编译成一个单独的代码文件,并把它编译成一个程序集,所以,在一个.aspx文件不可能使用多种服务器端语言。[1~3]
2.2.2 VB. NET简介
C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司 .NET windows网络框架的主角。
C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言。它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。
C#是面向对象的编程语言。它使得程序员可以快速地编写各种基于MICROSOFT .NET平台的应用程序,MICROSOFT .NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。
C#使得C++程序员可以高效的开发程序,且因可调用由 C/C++ 编写的本机原生函数,因此绝不损失C/C++原有的强大的功能。因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。如果你问一个面向对象程序设计高手什么是面向对象程序设计语言?那么你可能将听到几个绝对少不了的单词,比如:类、接口、消息隐匿、封装、继承、多态等等。
⑴面向对象编程的优点:
面向对象编程有几个优点,比如:易于进行代码维护,可扩展性好,代码重用技术。这些优点是过程编程所没有的。
⑵易于维护:
在面向对象编程中模块性是与生俱来的,实体表现为类和名字空间中具有相同功能的类,你可以向名字空间中增加一个类却不会影响名字空间的其他成员。
⑶可扩展性:
面向对象编程支持扩展性,如果你有一个有某种功能的类,你可以很快的扩展这个类,创建另一个具有扩展功能的类。
⑷代码重用:
自从功能被压缩到一个类中并且类作为一个独立的实体存在,提供一个类库就变得非常容易了,事实是任何一个.NET Framework程序员都可以使用.NET Framework类库,.NET Framework类库是一个有丰富类的类库,提供很强的功能,更可贵的是你可以很容易的扩展这些功能来满足你的需要。
面向对象编程的特征的使用,首先从最简单的开始。
类,在面向对象编程技术中类是主要的焦点,简单的说,类是一种提供功能的数据类型。类名的第一个字母必须是大写,并且后来的并发连结词的第一个字母均为大写。一个好的类名应该象GeneralManager, SmallDictionary, StringUtil。
类成员,一个类有像域、属性、子程序和函数那样的成员,子程序和函数又叫方法.
对象实例,一个类是一个模板或代表实体的蓝图。由于要使用类的域、方法或其他成员。在面向对象编程中,对象被称为类的实例,因此创建一个对象的过程又被称为实例化。
名字空间,当写.NET应用程序时,需要写类和其他数据类型。为使应用程序更有条理,组织性更好,需要将他们聚合进名字空间中,这也是微软用.NET Framework类库的原因。微软.NET Framework sdk文档中的.NET Framework类库中包含了80多个名字空间,包括常用的重要的名字空间,如System, System.IO, System.Drawing, System.Windows.Forms等等。举例而言,在Employee类中的PrintSalary 方法,我们使用了system名字空间中的console类。如果在程序中要经常使用一个名字空间,可以采取引用该名字空间的方法,这样在每次调用其成员时就用不作重复写名字空间了。在不同的名字空间允许有相同名字的类,正确地引用一个类最普通的实践是提到过的在类名前面的名字空间。如system名字空间中的Console的引用方法是:System.Console。
访问类型,在很多例子中,当你写出一个类后,你要将类提供给其他人访问并且使用它的功能,他们可调用这个类的方法或访问类的域。面向对象编程的一大好处是可以对类成员的访问进行限制。这就意味作,你能够完全控制想显示的内容。你可以让其他程序员访问类中的方法,也可以不让其他程序访问,除非是来自类的内部。在面向对象编程中不同的访问限制提供了不同的信息隐藏方式,从另外一个方面来说,你可以保护你不想显示的类成员变量。[4~6]
2.2.3 MS SQL Server简介
SQL Server是一个后台数据库管理系统,它功能强大操作简便,日益为广大数据库用户所喜爱。越来越多的开发工具提供了与SQL Server的接口。SQL Server 是一个关系数据库管理系统,它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的。于1988年推出了第一个OS/2 版本,在Windows NT推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft将SQL Server移植到Windows NT系统上,专注于开发推广SQL Server的Windows NT版本。SQL Server 2000是Microsoft公司推出的SQL Server数据库管理系统的最新版本,该版本继承了SQL Server 7.0版本的优点,同时又比它增加了许多更先进的功能、具有使用方便、可伸缩性好与相关软件集成程度高等优点。
MS SQL Server不但可以应用于大中型数据库管理中,建立分布式关系数据库,并且也可以开发桌面数据库。事实上,SQL Server数据库处理的基本结构,采取关系型数据库模式,尽管如此,相信大家都可以轻易的发现,在SQL Server的数据库处理方式,则是使用面向对象的操作方式与精神,也就是说,SQL Server的所有功能,都可以基于系统已经建立好的一些对象来达成,是面向对象的一个系统结构。SQL Server企业管理器是SQL Server的主要管理工具,它提供了一个遵从MMC标准的用户界面,使用户得以:定义SQL Server实例组。将个别服务器注册到组中。为每个已注册的服务器配置所有 SQL Server选项。在每个已注册的服务器中创建并管理所有 SQL Server数据库、对象、登录、用户和权限。在每个已注册的服务器上定义并执行所有SQL Server管理任务。通过唤醒调用SQL查询分析器,交互地设计并测试SQL语句、批处理和脚本,唤醒调用为SQL Server定义的各种向导。[7-8]
结 论
时光飞逝,流年似水,短短的设计即将结束,现在回头想想半年的设计,我对自己的这次设计有了更深,更新的体会。
在设计中我深知自己掌握的知识还远远不够,掌握的一些理论知识应用到实践中去,总会出现这样或那样的问题,不是理论没有掌握好,而是光知道书本上的知识是远远不够的,一定要把理论知识和实践结合起来。把学到的知识应用到时间中去,多做多练,才可以把理论的精华发挥出来。知识不是知道,了解就好,一定要去应用它,发展它,让它在现实生活中得到充分的应用,从而解决一些问题,这才是学习的根本目的。而且知识又不是单一的,它是互相联系的,学科与学科之间都有着内在的联系。计算机是一门非常复杂且庞大的学科,一项课题往往需要多项技术才可以完成的。在设计阶段,通过对课题的深入分析与研究,迫使我对技术有了一定的了解。在遇到问题时,得到了指导老师与同学的悉心帮助,使我感受到集体的力量是无穷的。
通过这次设计,我学会了和别人配合工作,因为一个人所学的知识不可能面面俱到的,只有通过合作,发挥自己的优点,体现团队精神,才能使工作做得更为出色。通过这次设计,我学到了许多书本上学不到的知识,增强了自己的动手能力。即将毕业我十分珍惜这次锻炼的机会,我按部就班的完成了自己的设计任务,但由于自己的知识水平有限,仍然存在很多的不足之处,恳请老师多多指教!当今的社会是竞争的社会,而人才的竞争则是竞争的焦点,毕业设计对于我们即将离校的同学来说,是离校前很好的一次锻炼,使我们各方面的能力都有了很大的提高,为我们踏出校门,走上社会增强了能力与自信!
计算机技术的高速发展,使我深深地认识到只有不断的加强学习,才能在计算机技术方面不至于被淘汰,今后,我还要加强学习,努力使自己成为一位专业的计算机人员,为我自己所从事的工作服务。
致 谢
首先非常感谢学校能开设这个课题,为本人日后从事计算机方面的工作提供了经验,奠定了基础。
本次毕业设计大概持续了半年的时间,现在终于到结尾了。经过这次毕业设计,我的能力有了很大的提高,比如操作能力、分析问题的能力、合作精神、严谨的工作作风等方方面面都进步了。这期间凝结了很多人的心血,在此我表示由衷的感谢。没有他们的帮助,我将无法顺利完成这次设计。
首先,我要特别感谢崔老师对我的悉心指导,在设计期间崔老师帮助我收集文献资料,理清设计思路,指导操作方法,并对我所做的课题提出有效的改进方案。老师渊博的知识、严谨的作风、诲人不倦的态度和学术上精益求精的精神让我受益终生。
另外,还要感谢同学四年来对我的关心与支持,感谢各位老师在学习期间对我的严格要求。同时也要感谢身边朋友的热心帮助,没有你们的支持与关心,就没有我今天的毕业设计!