学生选课系统设计与开发.docx
《学生选课系统设计与开发.docx》由会员分享,可在线阅读,更多相关《学生选课系统设计与开发.docx(40页珍藏版)》请在冰豆网上搜索。
学生选课系统设计与开发
编号2008451318
毕业设计论文
题目:
学生选课系统设计与开发
学生姓名
学号
系部
专业
班级
指导教师
评阅教师
2012年5月
学生选课系统设计与开发
Classselectionsystemdesignanddevelopment
毕业设计(论文)共36页
图纸共32张
完成日期2012年5月10日
答辩日期2012年5月12日
摘要
随着计算机网络迅速发展,信息资源统计和日常办公也迅速无纸化和网络化。
大量数据的搜集及处理通过网络实现已经非常普遍,且技术已经相当成熟,如国家公务员考试报名系统,学生电子档管理系统等。
本系统旨在使高校学生选课简单化、方便化和快捷化,抛弃了传统的ASP技术而是采用了B/S(Browser/Server)架构和ASP.NET技术用以实现。
本系统分为三种角色登陆,学生,教师和管理员都可以再浏览器端完成自己的各项工作,且本系统是服务器端执行,故效率较ASP网站有所提高。
关键词:
ASP.NET;ACCESS数据库;学生选课系统
ABSTRACT
Withtherapiddevelopmentofcomputernetworks,statisticsofinformationresourcesandthedailyofficeworkarebecomingpaperlessandnetworkingquickly.Largeamountsofdatacollectionandprocessingthroughthenetworkisverypopular.andthetechmologyisquitemature.suchastheNationalCivilServiceExaminationRegistrationSystem.studentelectronicrecordsmanagementsystems.Thesystemisdesignedtosimplifythecollegestudentscourseselection.theconvenienceandfastertechnology.abandoningthetraditionalASPtechnologyinsteadofusingtheB/SarchitectureandASP.NETtechnologytoachieve.
Systemisdividedintothreetypesoflandingtheroleofstudents.teachersandadministratorscanbecompletedinthebrowseralltheworkthemselves.andthissystemisaserver-sideimplemention.SomoreefficientthantheASPwebsiteincreased.
Keywords:
ASP.NET;AccessDatabase;CourseStudentSelectionSystem
第一章绪论
1.1开发背景
Internet正逐渐渗透入人们工作、生活中的各个角落。
它在地球上已经形成了一个新的大陆,即“第七个洲”——虚拟洲,任何企业和个人都在这个洲上。
面对Internet本身所具有的开放性、全球性、低成本、高效率等特点,传统的学生选课暴露出来的问题也越来越明显,如今在Internet上,你随处都可以看到很多的各类信息管理系统,如企业信息管理系统,电子商务系统,学校教务管理系统等各类信息管理系统的普及。
而针对学生选课等相关事项,涉及到导师发布课程或学生自选课程,目前主要还是由人为来处理操作,需要花费一定人力,这给整个工作带来了很多不便,而且容易出错。
因此就需要一个对此流程进行管理的电子系统,使得此过程更加方便,更加透明,更加高效,以节省更多的人力和不必要的工作。
1.2系统开发现状
目前的此类系统或多或少的存在以下的问题:
1、不清楚建立网站的目的或没有根据自己的目的详细策划网站的功能,只适应一时之需;结果页面的设计,包括系统内的链接和功能未能真正提供方便;
2、缺少一个针对有效管理学生选课工作的基于Web技术的B/S的管理系统,所以很多的管理系统远远达不到标准,没能很好地发挥管理系统应有的效果;
目前不少开发人员使用不同开发工具进行开发,例如:
●PHP是基于预处理HTML页面模型的一种脚本语言。
它大量地借用C和Perl语言的语法,并结合PHP自己的特性使Web开发者能够快速地写出动态产生页面。
●基于Java的JSP配置和部署相对其他脚本语言来说要复杂一些,所以在国内目前的应用并不广泛
●.NET可视化编程,提供基于组件、事件驱动的可编程网络表单,大大简化了编程。
刚刚开始,目前应用不高!
●JAVA一种由Sun公司提出的,从C++发展而来的面向对象的编程语言。
因此本系统通过对学生选课管理工作的初步了解,从系统结构的组织,功能的实现,技术的要求以及可行性等多方面进行考虑,采用Access后台数据库+ASP服务器端程序+客户端IE浏览器,是一个精练实用高效的组合模式。
认为本课题是一个适应现今学生选课管理工作需求的计算机信息管理系统,具有一定的实际开发价值和使用价值。
1.3系统开发意义
随着计算机信息技术、网络通讯等高新技术的发展,对高校选课管理提出了更高的要求。
这样不仅可以使教师从烦琐的事务中解脱出来,而且还能提供面向学生的快捷、灵活、方便的智能服务。
本课题旨在使目前校园内选课管理信息网络化,解决已往信息传递不方便、不快捷等问题,如假期学生因不在校而无法上交文档,学院或导师为安排工作而必须通知到各个学生等繁琐的操作,通过本系统可实现管理的网络化,方便教师和学生,提高工作效率和效果,节省人力资源等,提高高校的管理水平,有利于推动高校管理的“无纸化办公”进程。
随着无纸化办公的一步步实现,信息的自动处理以及网络式的信息交互方式越来越被人们认可和应用。
让计算机来管理学生的信息是现在各个高校都在积极进行的工作之一,也是高校教学管理工作的重要内容之一。
网上选课与传统的选课方式相比更加节约资源,同时,随着学生选课自主权的增加,网上选课有效的避免了“走关系”等不良现象,使教学更加透明。
1.4系统开发可行性分析
1.4.1课题调研
1.与实践活动和相关的文件和资料学生自行查阅。
2.本课题要求学生有熟练的ASP开发能力,有较强的自学能力以及一定的关系数据库理论开发功底。
3.具有对复杂表进行处理的能力。
4.具体问题再做详细调查研究并与指导老师联系。
1.4.2可行性分析
本系统的可行性包括以下几个方面的内容:
1.技术可行性。
由于校园网络的普遍应用,使得网上选课非常的方便,无需再进行网络的建设。
基于B/S模式的选课系统更加适合校园网,学生可以在校园网的任何地方完成选课过程。
Access数据库和ASP技术的有机结合,可以开发出实用、简便、高效的基于网络的信息管理席系统,因技术上市可以实现的。
2.经济可行性
校园网已经普及,因此在网络设备上不需要进行大的投入。
加之,B/S模式的系统只要求客户端具备浏览器的基本功能,就能实现网上选课。
因此在校园的计算机实验室、公共机房,无需安装软件,即可实现网上选课功能。
因此,从经济上来说,开发网上选课不需要很大的投入,硬件上只需web服务器和数据库服务器即可。
3.操作可行性
B/S模式的最大优势就是操作方便、如同浏览网页一样。
综上所述,网上选课系统在高校中是可行的。
第二章相关环境简介
2.1ASP简介
ASP是ActiveServerPage的缩写,意为“动态服务器页面”。
ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互,是一种简单、方便的编程工具。
ASP的网页文件的格式是.asp,现在常用于各种动态网站中。
ASP的含义从字面上说,ASP包含三方面含义:
●Active:
ASP使用了Microsoft的ActiveX技术。
ActiveX(COM)技术是现在Microsoft软件的重要基础。
它采用封装对象,程序调用对象的技术,简化编程,加强程序间合作。
ASP本身封装了一些基本组件和常用组件,有很多公司也开发了很多实用组件。
只要你可以在服务器上安装这些组件,通过访问组件,你就可以快速、简易地建立自己的WEB应用。
●Server:
ASP运行在服务器端。
这样就不必担心浏览器是否支持ASP所使用的编程语言。
ASP的编程语言可以是VBSCRIPT和JSCRIPT。
VBSCRIPT是VB的一个简集,会VB的人可以很方便的快速上手。
然而Netscape浏览器不支持客户端的VBSCRIPT,所以最好不要在客户端使用VBSCRIPT。
而在服务器端,则无需考虑浏览器的支持问题。
Netscape浏览器也可以正常显示ASP页面。
●Pages:
ASP返回标准的HTML页面,可以正常地在常用的浏览器中显示。
浏览者查看页面源文件时,看到的是ASP生成的HTML代码,而不是ASP程序代码。
这样就可以防止别人抄袭程序。
由此我们可以看出,ASP是在IIS下开发WEB应用的一种简单、方便的编程工具。
在了解了VBSCRIPT的基本语法后,只需要清楚各个组件的用途、属性、方法,就可以轻松编写出自己的ASP系统。
以下罗列了ActiveServerPages所独具的一些特点:
●使用VBScript、JScript等简单易懂的脚本语言,结合HTML代码,即可快速地完成网站的应用程序。
●无须compile编译,容易编写,可在服务器端直接执行。
●使用普通的文本编辑器,如Windows的记事本,即可进行编辑设计。
●与浏览器无关(BrowserIndependence),用户端只要使用可执行HTML码的浏览器,即可浏览ActiveServerPages所设计的网页内容。
ActiveServerPages所使用的脚本语言(VBScript、Jscript)均在WEB服务器端执行,用户端的浏览器不需要能够执行这些脚本语言。
●ActiveServerPages能与任何ActiveXscripting语言相容。
除了可使用VBScript或JScript语言来设计外,还通过plug-in的方式,使用由第三方所提供的其他脚本语言,譬如REXX、Perl、Tcl等。
脚本引擎是处理脚本程序的COM(ComponentObjectModel)物件。
●ActiveServerPages的源程序,不会被传到客户浏览器,因而可以避免所写的源程序被他人剽窃,也提高了程序的安全性。
●可使用服务器端的脚本来产生客户端的脚本。
●物件导向(Object-oriented)。
●ActiveXServerComponents(ActiveX服务器元件)具有无限可扩充性。
可以使用VisualBasic、Java、VisualC++、COBOL等编程语言来编写你所需要的ActiveXServerComponent。
2.2Access简介
MicrosoftAccess在很多地方得到广泛使用,例如小型企业,大公司的部门,和喜爱编程的开发人员专门利用它来制作处理数据的桌面系统。
它也常被用来开发简单的WEB应用程序.这些应用程序都利用ASP技术在InternetInformationServices运行。
它的使用方便程度和强大的设计工具为初级程序员提供许多功能。
一些专业的应用程序开发人员使用Access用作快速应用开发,特别是给街道上的推销员制作一个初型或独立应用程序的工具。
Access优点:
●存储方式简单,易于维护管理
●面向对象
●界面友好、易操作
Access是一个可视化工具,是风格与Windows完全一样,用户想要生成对象并应用,只要使用鼠标进行拖放即可,非常直观方便。
系统还提供了表生成器、查询生成器、报表设计器以及数据库向导、表向导、查询向导、窗体向导、报表向导等工具,使得操作简便,容易使用和掌握。
在基于微软IIS/PWS的网络平台上,通过服务器端运行的ASP程序来访问后台数据库,是一种最常见的模式了。
由于Access数据库的ODBC驱动程序支持的SQL指令全,执行效率高,所以Access后台数据库+ASP服务器端程序+客户端IE浏览器,是一个精练实用高效的组合模式。
在这种使用模式中,ASP程序无疑是最重要的,是沟通客户端和后台数据库之间的桥梁。
在ASP程序中,通过VBScript,建立对Access数据库连接,是客户能够访问后台数据库的前提。
Access数据库连接之建立Access数据库连接的常用方法:
●利用Server对象的MapPath函数,取得要打开数据库的完整的文件路径,并存储在变量DbPath中。
这其中,数据库名是我们需要指定的参数,应该用我们要打开的数据库的实际名称替代。
如果数据库名是直接作为常量出现,要用引号将其括起来,并且不能丢掉扩展名。
例如数据库是Test.mdb,则该行程序成为:
DbPath=Server.MapPath(“Test.mdb”)。
●建立一个ADO对象集中的Connection对象,也即连接对象。
这是建立数据库连接的初始步骤。
执行这行程序后,Conn成为一个连接对象。
●利用连接对象Conn的Open方法打开一个指定的数据库。
因为我们要打开的是Access数据库,所以要指定ODBC驱动程序参数,表示要透过Access的ODBC驱动程序来访问数据库:
driver={MicrosoftAccessDriver(*.mdb)};。
另一个参数dbq=&DbPath,运算后等效于dbq=Server.MapPath(数据库名),是利用了第一行的Server.MapPath(数据库名)函数,用来指定要打开的数据库文件。
到这里,就已经打开了数据库名指定的数据库。
如果数据库名是“test.mdb”,则打开Access数据库Test.mdb。
在这一行里指定的参数,要严格按照格式原样写出,不能省略或改动,也没有可变参数。
●建立一个ADO对象集中的Recordset对象,以便利用Recordset对象操作数据库(当然,这只是对数据库操作的多种方式之一)。
执行这行后,rs就成为一个Recordset对象。
●利用rs对象的Open方法打开数据库中的数据表。
●Access数据库连接之使用DSN连接数据库:
在定义DSN的过程中,就已经指定好了数据源需要的ODBC驱动程序,也指定好了数据库文件的实际路径和名字,我们在程序中,只需要引用预先定义的数据源名DSN即可。
2.3B/S简介
在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。
B/S的分层式结构一般分为三层,从下至上分别为:
数据访问层、业务逻辑层(又或成为领域层)、表示层。
三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。
通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交互。
表示层
位于最外层(最上层),离用户最近。
用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面。
业务逻辑层
业务逻辑层(BusinessLogicLayer)无疑是系统架构中体现核心价值的部分。
它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计,也即是说它是与系统所应对的领域(Domain)逻辑有关,很多时候,也将业务逻辑层称为领域层。
例如MartinFowler在《PatternsofEnterpriseApplicationArchitecture》一书中,将整个架构分为三个主要的层:
表示层、领域层和数据源层。
作为领域驱动设计的先驱EricEvans,对业务逻辑层作了更细致地划分,细分为应用层与领域层,通过分层进一步将领域逻辑与领域逻辑的解决方案分离。
业务逻辑层在体系架构中的位置很关键,它处于数据访问层与表示层中间,起到了数据交换中承上启下的作用。
由于层是一种弱耦合结构,层与层之间的依赖是向下的,底层对于上层而言是“无知”的,改变上层的设计对于其调用的底层而言没有任何影响。
如果在分层设计时,遵循了面向接口设计的思想,那么这种向下的依赖也应该是一种弱依赖关系。
因而在不改变接口定义的前提下,理想的分层式架构,应该是一个支持可抽取、可替换的“抽屉”式架构。
正因为如此,业务逻辑层的设计对于一个支持可扩展的架构尤为关键,因为它扮演了两个不同的角色。
对于数据访问层而言,它是调用者;对于表示层而言,它却是被调用者。
依赖与被依赖的关系都纠结在业务逻辑层上,如何实现依赖关系的解耦,则是除了实现业务逻辑之外留给设计师的任务。
数据层
数据访问层:
有时候也称为是持久层,其功能主要是负责数据库的访问,可以访问数据库系统、二进制文件、文本文档或是XML文档。
简单的说法就是实现对数据表的Select,Insert,Update,Delete的操作。
如果要加入ORM的元素,那么就会包括对象和数据表之间的mapping,以及对象实体的持久化。
优点:
1、开发人员可以只关注整个结构中的其中某一层;
2、可以很容易的用新的实现来替换原有层次的实现;
3、可以降低层与层之间的依赖;
4、有利于标准化;
5、利于各层逻辑的复用。
B/S结构即浏览器/服务器结构。
如图2-2所示B/S结构图
图2-2B/S结构图
第三章系统分析
3.1系统概述
该系统一般包括对课程的发布、更新、删除,学生选课文档信息、教师文档信息的上传(在指导时间前才可提交)和相关信息的发布、查询、更新、输出等功能。
如果人工直接操作的话,工作量将十分庞大,特别是,如果学生人数有几千或上万时,人工操作将变得相当繁杂。
用计算机可使人们从繁重而又单调的工作中解脱出来,仅用一些简单的操作便可及时准确地获得需要的信息。
学生选课管理系统是一个为适应当前选课需求而设计开发的软件系统。
该系统的前台采用的是ASP开发,Dreamweaver做页面设计,后台数据库采用的是Access数据库。
3.2系统需求分析
3.2.1角色分析
该系统的角色分为学生、教师(导师)和系统管理员。
学生和教师是系统的用户,而系统管理员是系统管理者,虽然系统管理者也是一个用户,但并不影响本系统的功能。
3.2.2功能分析
管理员功能
●管理员课程管理信息:
进行课程简介,对选课课程操作(改、审核、删除)
●学生管理信息:
通过此项功能可以实现对学生的注册时间、登录次数、登录密码、参与课题数、审核、密码修改、重选课程进行管理。
●还可以通过查询窗体搜索符合条件的学生信息。
●密码可由管理员修改后使用。
学生功能
●每个用户(管理员、教师、学生)都可以用自己的账号登录系统。
●用户操作完成后可退出系统,注销后可以重新登录系统。
●每个用户(管理员、教师、学生)第一次登录都使用默认密码,
●学生可以进行对课程列表的浏览进行选课,
●学生可以查看自己已选课程。
教师功能
●教师能发布新课程,包括课程名称,课时,学时,地点,教材,考核方式,所需器材等信息。
3.2.3模块分析
根据功能的不同,可以将本系统划分为四个模块
1)登录模块
i.用户登录身份验证用户名和密码,并根据不同的用户类型,跳转到对应的欢迎界面。
然后进入相应模块。
2)管理员模块
i.包括课程信息的修改,学生信息的修改;
ii.课程信息的修改用于管理员对相关课程的发布与修改;
iii.密码的修改用于教师、学生这两种非管理员用户处于安全考虑对自己的账户进行维护;
iv.学生信息、教师信息用于教务处对教师和学生信息进行更新;
v.本功能只有管理员才可以完成。
3)学生模块
i.信息浏览包括已选课程浏览、被选课程浏览;
ii.已发布课程信息浏览、说明信息浏览;
iii.已选课程浏览是为学生提供的成为看自己已经选择的课程信息;
iv.被选课程浏览用于学生修改、补选、重新选择课程。
4)教师模块
i.课程发布用于教师发布新的课程信息,其他用户可查看最新的课程信息。
ii.已发布课程信息浏览用于各代课老师查询自己已经发布的课程信息,主要用于浏览,核对。
3.3用例图分析
为了清晰描述模糊的功能模块,以下是管理员、学生和教师的用例图
3.3.1管理员用例图
以下是管理员的用例图,如图3-1所示:
图3-1管理员模块用例图
●管理员课程管理信息:
进行课程简介,对选课课程操作(改、审核、删除)
●学生管理信息:
通过此项功能可以实现对学生的注册时间、登录次数、登录密码。
●学生参与课题数、审核、密码修改、重选课程进行管理。
●还可以通过查询窗体搜索符合条件的学生信息。
●密码可由管理员修改后使用。
3.3.2学生用例图
以下是学生用例图,如图3-2所示:
图3-2学生模块用例图
●每个用户(管理员、教师、学生)都可以用自己的账号登录系统。
●用户操作完成后可退出系统,注销后可以重新登录系统。
●每个用户(管理员、教师、学生)第一次登录都使用默认密码,
●学生可以进行对课程列表的浏览进行选课,
●学生可以查看自己已选课程。
3.3.3教师用例图
以下是学生用例图,如图3-3所示:
图3-3教师模块用例图
●教师可以查看课程首页。
●进行课程申报。
●查看课程说明。
3.4系统流程图
●管理员通过登录,对系统进行全面的管理,对课程进行审核,修改,删除等。
●对学生进行管理,通过此项功能可以实现对学生密码的修改以及课程的重选。
●管理员可以对老师及同学的账户进行管理。
●老师、学生不同身份的用户进入不同界面,进行不同的操作。
●教师可以发布本学期所要教的课程,以及对学生选课进行管理。
●同学可以通过查询本学期所开设的课程和参阅课程说明进行选课
3.4.1学生模块流程图
在学生选课系统中,学生是主要的用户之一,选择学生用户登录后,会出现相应子菜单,可以查看课程,课程列表,选课,退出课程,单击进入菜单,进入相应的操作界面,具体流程如下3-4图所示:
3.4.2教师模块流程图
在学生选课系统中,教师是主要的用户之一,选择学生用户登录后,会出现相应子菜单,可以进行课程申报,单击进入菜单,近日相应的操作界面,具体流程如下图3-5所示:
3.4.3管理员模块流程图
管理员拥有系统最高权限,以管理员身份登录后,会出现所有的子任务菜单,例如学生信息的管理、课程信息的管理、教师信息的管理等等,管理员具体操作流程如图3-6所示:
第四章系统设计
系统设计主要包括功能模块的划分和系统流程的分析。
4.1系统功能
系统功能分为系统前台管理和后台管理,以下进行详细说明。
4.1.1系统前台
●每个用户(管理员、教师、学生)都可以用自己的账号登录系统。
●用户操作完成后可退出系统,注销后可以重新登录系统。
●每个用户(管理员、教师、学生)第一次登录都使用默认密码。
●学生可以进行对课程列表的浏览进行选课。
●可以查看自己已选课程。
●教师能发布新课程,包括课程名称,课时,学时,地点,教材,考核方式等信息。
4.1.2系统后台
●管