C#毕业设计——基于C#+asp.net+sqlserver的精品课程教学网站设计与实现(毕业论文+程序源码)——教学网站

基于C#+asp.net+sqlserver的精品课程教学网站设计与实现(毕业论文+程序源码)

大家好,今天给大家介绍基于C#+asp.net+sqlserver的精品课程教学网站设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴,可以进入我的博客主页查看左侧最下面栏目中的自助下载方法哦

文章目录:

1、项目简介

  1. 本次设计是围绕《软件工程》精品课程教学网站的设计与实现而展开的。《软件工程》精品课程教学网站是一个典型的基于WEB的网络教学平台,系统以ASP(Active Server Pages)作为开发工具,使用SQL Server 作为数据库。经过分析,用户安全性、文件传输、视频教学是该系统的难点。其中本系统的功能主要包括:教学内容管理、作业管理、网上答疑管理、考试管理、资料库管理、公告管理等,这些功能的设计实现使该网站功能完备,易使用,交互性强。
  2. 《软件工程》精品课程教学网站为学生提供一个网上自学该课程的环境,为教师提供了一个友好的教学平台,为提高教学质量和教学效益提供一种有效的途径。同时也为国家精品课程的建设添了一份力。

2、资源详情

项目难度:中等难度
适用场景:相关题目的毕业设计
配套论文字数:27412个字56页
包含内容:整套源码+完整毕业论文


3、关键词:

精品课程 文件传输 教学网站 基于Web

4、毕设简介

提示:以下为毕业论文的简略介绍,项目源码及完整毕业论文下载地址见文末。

绪论
近年来,随着计算机互联网络和网络多媒体应用技术的飞速发展,基于互联网络的远程教育站点和机构如雨后春笋般纷纷出现,学校以往一成不变的课堂教学方式也开始逐渐向网络教学模式进化。电子教案、多媒体教室的教学方式已经慢慢渗透到我们的教学工作中来,而课程建设还是作为教学工作的最基本要素,因此精品课程建设的好坏间接影响着教学质量。为了加强精品课程的建设,本课题设计一个《软件工程》精品课程的教学网站。

1.1 问题定义及内容简介
本课题建设基于Web的《软件工程》课程教学平台,利用网络的方便、省时、强交互性,协助教师教学、学生学习《软件工程》课程,促进教学资源共享,使整个教学过程的互动性大大省略

1.2 研究背景与研究意义
1.2.1 本课题研究背景
省略

1.2.1.1 国际发展概况
省略

1.2.1.2国内的现状和发展概况
省略

1.2.2 本课题研究意义
省略

1.3 课题调研与可行性分析
1.3.1 课题调研
1.3.1.1网络课程教学的介绍
省略

1.3.1.2网络教学存在的问题
省略

1.3.2 可行性分析
从经济可行性和技术可行性这两个角度来对其可行性进行分析:
1.3.2.1 经济可行性
(1)开发本系统的投资
省略

1.3.2.2 技术可行性
《软件工程》精品课程的建设可以使用多种语言来实现,可以使用JSP等来实现,对于网页制作,ASP可以是用纯文本的形式就可以完成编程操作,这个语言用起来比较方便,而且现在也有很多的人都用这门语言来做网站。重要的是自己本身对ASP比较熟悉,所以用ASP来做毕业设计。这门语言对于本次设计来说是可行的。
省略

1.4各章内容介绍
第一章是绪论,这一章主要是对本次毕业设计所开发的系统进行问题的定义,通过问题的定义明白需要做些什么,并且对开发内容简单的介绍了一下;同时本章还对课题的研究背景与研究意义进行分析,还进行了系统的可行性分析,简要介绍了论文的各章内容。

第二章是系统需求分析。主要内容是系统的性能要求及功能需求分析,最后按面向对象的分析方式给出了系统的用例模型、活动图、数据流图以及数据字典。

第三章是系统设计部分,本章主要针对系统进行总的体系结构的设计,这部分设计是从用例模型及活动图导出的;系统数据模型设计包括了核心的E-R图、关系模型和一些重要的数据表;最后确定了系统的开发和运行环境以及开发本系统所涉及的一些关键技术。

第四章介绍的是系统的内核设计,包括ASP的工作原理、系统的三层结构、系统的模型结构的设计。

第五章介绍的是注册模块,注册模块包括用户注册、用户登陆、找会密码密码这三个功能,及其用户的安全性。

第六章介绍的是网上课堂模块,包括这个子模块所要实现的功能,设计中的关键技术要点。

第七章介绍的是作业模块,包括这个子模块所要实现的功能,设计中关键技术要点。

第八章介绍的答疑模块,包括这个子模块所要实现的功能,设计中关键技术要点。

第九章介绍的是公告模块,包括这个子模块所要实现的功能,设计中涉及的技术要点。

第十章介绍的是在线测试模块,包括这个子模块所要实现的功能,设计中涉及的技术要点。

第十一章是用户使用手册,主要内容有系统功能简介、运行环境简介,系统安装步骤要点。

第十二章是系统评介,主要内容有系统主要功能、特色/优点介绍,系统存在不足与改进方案以及毕业设计心得与收获。
最后是结论,致谢以及参考资料。

2 系统需求分析
根据第一章所定义的课题研究方向及目标,本章将对系统功能进行具体的需求分析,具体分析《软件工程》教学网站所要实现的功能以及欲达到的效果。
2.1 系统的性能要求
(1)磁盘容量要求:
本系统属于B/S模式构架,因此存储容量较小,数据库系统也不是很大,系统文件估计占30M的磁盘空间,数据库文件占用空间也不是很大。不过该教学网站中的在线教学模块将会占用很大的空间。一些教师的教学视频在文件中将会占用很大的空间。而本机器有30G的空间,足够放入一些视频,如果空间不够,这个就要管理员及时的清空系统中的过期文件。

(2)安全性要求:
本系统有着权限设置,不同的用户有不同的权限,普通游客不可以越权进行学生的操作,学生也不可以越权更改或者访问教师的页面。教师可以赋予管理员的权限,可以对网站进行任何的操作。同时对于非法用户,不能够根据用户的相对网址来访问网站和对网站进行任何操作。必须进行登陆才可以访问操作。

(3)适应性要求:
要求界面友好,菜单清楚,学生和老师都能很快熟悉网站。对于部分文章、课件的发布要求达到所见即所得的效果。

2.2 系统功能需求分析
本系统要求采用Browser/Server模式设计开发,可以作为一般高等院校的网络学堂;可以为教师的辅助教学或者网络教学提供一个完善的教学网站;学生可以利用本教学网站来完成一些课程的学习任务。

2.2.1 功能划分
《软件工程》教学网站根据不同的使用者,可以分为两个部分:一是面向老师部分,同时这个老师的部分被赋予了管理员的权限。教师的部分内容包括作业管理,公告管理,在线答疑,考试管理,资料库的管理,在线教学;二是面向学生部分,学生可以进入网上学堂进行自学该门课程,同时可以进行作业的上传,学生可以进行在线答疑和在线即时聊天。普通游客也可以浏览网站,不过需要进行注册登陆,但是不能对作业部分进行操作。

2.2.2 功能描述
根据系统功能划分,本系统详细需求描述如下:

2.2.2.1 登陆功能
为了使得网站的一些信息和使用功能只对用户开发,就必须有一个会员登陆注册系统。作为一个基本的登陆注册系统,应具有以下三个方面的功能:
(1)接受新用户的注册,引导新用户填写必要的个人资料;
(2)实现用户的登陆;
(3)对于已经注册的用户,如果密码丢失可以通过忘记密码这种方法来找回密码。

2.2.2.2 网上课堂功能
该子模块可以提供文本课件,视频课件,可以有多种形式的文本课件。当然也可以根据需要提供其他课件形式。对于文本课件,本系统可以采用的是网页形式来进行链接的,这样在网站上面显示的时候会比较好看一点。学习完网络课件后,可以做课后的一些习题来巩固学习的知识。而视频课件,可以以课程的章节顺序来发布。对于本系统而言可以给出其视频链接地址。对于其他的课件形式,可以直接导入Powerpoint,Word等附件或者网上课件链接等其他方式来让学生访问,同时要提供一个网上资料库为课堂知识的学习提高提供一个基础,假如该网站的知识不能满足学生的需求,可以通过其资料库来查找其他的资料来进行学习。

2.2.2.3 作业功能
显然,对教师和学生而言,作业的含义不同;教师关注的是如何布置作业、批阅作业,管理学生提交的作业;学生则关注如何做作业、提交作业、查询批阅结果。

(1)作业管理
题目按照所创建的课程 →章→节的顺序发布。对于所要上传的作业,都可以统一放在一个专门的文件夹里面,同时要编号,按照学生的学号来编号统一管理。
(2)布置作业
该功能应该可以添加对应具体课程、具体章节,发布与相应课程、章节相关的题目,题目包括单项选择、多项选择、填空题、简答题、问答题等。
(3)提交作业
该功能可以上传作业。学生通过验证后,可以上传作业。对已经上传的作业进行修改,可以使用新的作业来替代覆盖。已经提交的作业,学生可以通过提交的次数顺序和学号来进行快速查询。同时老师可以查看学生作业完成情况,来不断调整学习进度。
(4)批阅作业
教师可以在线对作业进行批阅,同时可以对学生进行打分,直接把作业成绩写入到数据库中。
(5)查看批阅结果
老师可以对学生的成绩进行横向和纵向的对比,以此来判断最近学生的学习情况,不断调整教学方法。学生可以查询作业成绩,了解最近的一段时间学习进步情况。

2.2.2.4 答疑功能
该模块功能类似BBS系统。其具体要求如下:
 对于这个答疑教室由老师来对学生提出的问题进行回答,可以对帖子进行管理。学生可以直接进入自己的栏目进行提问。
 学生的问题通过老师的管理界面看到,该问题是否回答,这个功能是专门向学生和老师提供的。其他学生可以看到该问题,以及老师的解答。学生既可以通过自己提问,寻求解答,也可以通过查询其他同学提出的问题及老师的解答提高自己的知识水平。

2.2.2.5 公告功能
教师可以实现公告以及新闻的发布,同时可以通过公告功能向学生发布作业信息。教师负责公告的编写、发布、修改、删除。

2.2.2.6 实时聊天功能
用户只要随便自己注册一个名字就可以进入聊天室,可以和其他用户进行实时聊天。这样可以方便用户交流。

2.2.2.7 测试功能
考生可以根据自己选择相关章节的试题进行测试。教师可以设置测试的内容,具体考试过程不做控制时间。不过考生在考试过程中,不得进行刷新。

2.3 用例模型
2.3.1普通用户用例图
图2.1是普通用户对该网站进行操作的用例图,对于用户来说,要访问该网站,必须先注册,登陆,然后才能对该网站进行操作,经过身份认证后,用户可以进行课件浏览,可以对答疑模块,测试模块,进行操作。
在这里插入图片描述

图2.1 普通用户用例图

2.3.2学生用例图
在该系统中,学生要进行访问该网站的时候,要像一般用户一样注册登陆,不过学生比一般用户多的一个权限就是先进行身份认证后对作业系统进行操作。用例图如图2.2所示:
在这里插入图片描述

                        图2.2 学生用例图

2.3.3教师用例图
教师用例图表示了教师的操作权限,教师可以有管理员的权限,身份认证通过以后,教师可以进行公告管理,作业模块管理,答疑模块管理,学习资料库模块管理,考试模块管理。具体用例图如图2.3所示:
在这里插入图片描述

                       图2.3教师用例图

2.4 活动图
进入本系统后,有两个活动选项,一个是供一般用户的系统登陆入口,一个是供教师的系统登陆入口,系统活动图如图2.4所示:在这里插入图片描述

                               图2.4系统活动图 

2.5 数据流图
以下是系统的部分数据流图,主要是老师和学生的登陆,然后老师和学生由于权限的不同所做的不同的操作。不过在系统中,学生要重新注册一个帐号才能登陆,这样就给了其他游客也可以访问该网站的权限,不过也要注册帐号。图2.5是系统一级数据流图,图2.6是系统二级数据流图。
在这里插入图片描述

 图2.5一级系统数据流图

在这里插入图片描述

                          图2.6二级系统数据流图

2.6数据字典
数据字典是系统分析阶段的重要文档,它清楚地定义与详细地解释了数据流程图上不能详细表达的内容,同时它也是同用户交谈的工具。

下面详细列出本系统中的数据字典:
表2.7 D1用户信息

在这里插入图片描述

表2.8 D2资料信息

在这里插入图片描述

表2.9 D3公告信息

在这里插入图片描述

表2.10 D4作业信息

在这里插入图片描述

表2.11 D5答疑信息

在这里插入图片描述

表2.12 D6测试信息

在这里插入图片描述

3系统设计
3.1系统总体结构设计
根据第一、二章所做的定义及分析,本课题提出了《软件工程》精品课程网站的模型,并将在此基础上利用ASP技术和SQL Server 构建基于Web的开放的、资源共享的、交互式的教学网站,该网站可以在基于Windows 系统构建的局域网或Internet上使用。在总体结构上是采用3层(数据层/业务逻辑层/表现层)结构的B/S模式设计,各类教学资源采取中心数据库SQL Server统一组织,存放在服务器一端;学生、教师及系统管理人员在客户机一端,无须任何配置工作,只须使用浏览器向Web服务器代理提出请求,服务代理通过中间组件与数据库链接,把请求服务的教学内容以Web页面形式通过浏览器反馈给学生。

本系统面向普通用户、学生、老师三种身份的用户,不过在系统中,把管理员的权限,下放给教师,所以老师同时担任了管理员的角色。本系统主要由以下几个模块组成:
用户管理模块、课件模块、作业模块、在线聊天模块、公告模块、考试模块、资料库模块。

整个系统的功能框架图如下图3.1所示:
在这里插入图片描述

图3.1系统功能框架图

3.2系统数据模型设计
3.2.1 E-R图
通过以上的系统分析可以知道,系统主要涉及的实体有:学生、教师、作业、考题、教学资源等,实体之间联系复杂,现分析如下:
 课件管理涉及的实体有:
 学生 属性有学号、姓名、性别、系别。
 老师 属性有权限、姓名。
 教学资源 属性有编号、名称、类型、日期。
这些实体之间的联系如下:
 一位老师可以更新多种类型的教学资源,一种教学资源可以由多个老师来进行更新,因此教师和教学资源之间是多对多的联系。
 一位学生可以使用多种类型的教学资源,一种教学资源可以给多个学生使用,因此学生与教学资源之间是多对多的联系。
实体联系图如3.2所示:
在这里插入图片描述

                             图3.2课件关系图

 作业-问题中涉及的实体有:
 问题 属性有名称、编号 。
 作业 属性有编号、时间、成绩。
 老师 属性见上面的教师属性。
 学生 属性见上面的学生属性。

这些实体之间的联系如下:
 一位学生可以提问多个问题,而一种问题可以被多个学生同时提出来,因此学生与问题之间是多对多的关系。
 一位老师可以回答多个问题,而一种问题可以被多个老师回答,因此老师与问题之间的关系是多对多的关系。
 一位学生可以提交多次的作业,而一次的作业可以被多个学生提交,因此学生与作业之间是多对多的关系。
 一位老师可以批阅多次的作业,而一种类型的作业可以被多个老师批阅,因此老师与作业之间是多对多的关系。
实体联系图如3.3所示:
在这里插入图片描述

                          图3.3作业-问题关系图

测试关系中涉及的实体有:
 考题 属性有编号、名称、类型、章节、难度。
 学生 属性见上面的学生的属性。
 教师 属性见上面的教师的属性。
这些实体之间的关系如下:
 一位学生可以做多道考题,而一道考题可以让多位的学生来进行测试,因此学生与考题的关系是多对多的关系。
 一位老师可以更新多道考题,而一道考题可以由多位的老师来进行更新,因此老师与考题的关系是多对多的关系。
在这里插入图片描述

                         图3.4考题关系图

3.2.2 关系模型
由以上的E-R图可以得到以下的关系模型,以下是详细的关系模型:
用户(ID,姓名,密码,性别,生日,密码问题,问题回答,专业ID,地址)
教师(ID,用户名,密码,权限)
资源(ID,名称,URL,类型,日期)
答疑表(ID,名称,显示标记,回答标记,内容,回复,日期)
学生作业表(ID,学号,姓名,密码,系别,专业,作业成绩,电子信箱)
公告表(ID,名称,作者,日期,内容)
课程介绍表(ID,介绍内容,联系地址,方式)
专业表(ID,名称)
测试题库表(ID,考题内容,类型,日期,章节ID,专业ID,答案,备注)
测试成绩表(ID,帐号ID,章节,单选成绩,多选题成绩,总成绩,考试时间)
章节表(ID,名称,类型,专业ID)
专业表(ID,名称)

3.2.3 数据库表的设计
3.2.3.1 关键数据库表详细说明
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

以上的十一张表构成了整个系统的表框架结构,其它所有表根据功能的需要可以在此基础上进行相应的扩展。

3.3系统开发与运行环境的确定
3.3.1 系统开发环境
3.3.1.1 系统开发环境及开发工具
开发工具对一个系统的成败具有决定性作用。由于本系统是应用于网络的,因此,我们选择了ASP技术进行开发,同时,选用SQL Sever 2000作为系统后台数据库,开发中将用到以下主要几款开发工具:
在这里插入图片描述

3.3.1.2 使用ASP作为系统前台开发工具的优点
ASP是一个位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式Web服务器应用程序,如交互式动态网页,包括使用HTML表单收集和处理信息,上传与下载等等。同时 ASP使用的ActiveX技术基于开放设计环境,用户可以自己定义和制作组件加入其中,使自己的动态网页几乎具有无限的扩充能力,这是传统的CGI等程序所远远不及的地方。

ASP本身并不是一种脚本语言,它只是提供了一种使镶嵌在 HTML 页面中的脚本程序得以运行的环境。ASP不具有编程语言复杂、严谨的语法和规则。如前所述 ASP 所提供的脚本运行环境可支持多种脚本语言, 这无疑给 ASP 程序设计者提供了广泛的发挥余地。由此可以总结出ASP的优点所在:
1 可以直接嵌入到HMTL代码中,与HMTL/SCRIPT等达到完美的结合。
2 ASP是面向对象的可扩展组件功能的交互语言。组件的引用,极大的方便了ASP的使用。
3 用ADO组件轻松实现数据库的存取。
4 通过服务器动态的处理,因此不在存在潜在的脚本兼容的问题。
5 客户端只能看到动态提供的HMTL文件,从而增强了安全性。

3.3.2 系统运行环境
硬件环境:
服务器端: 推荐配置为256M内存,CPU为PIV 1.75GHZ,硬盘容量为80G的微机。
通信网络: Internet网
软件环境:
服务器端:
 操作系统: Windows 2000 Server /NT/2003 Server
 数据库: SQL Server 2000
 Web服务器:Internet 信息服务5.1或以上版本
客户端:
 操作系统: Windows 2000/XP/2003
 浏览器: Internet Explore 6.0或以上版本
 推荐分辨率:800*600或以上

3.4系统实现的若干关键技术
3.4.1 UML建模技术
省略

3.4.2 ActiveX技术
ActiveX技术是微软的一种技术平台。它采用与语言无关的元件性结构,支持分布式对象,具有简单、可靠、通用性强的特点。ActiveX技术包括很多方面,如ActiveX Control技术,(即ActiveX控件技术)。ActiveX控件一般是DLL形式的,因此必须在“容器”下执行。Windows系统上的许多软件都可以作为“容器”,如IE浏览器、Netscape,Visual C++等等。而且ActiveX控件必须在Windows的注册表中注册后才能正常运行。

省略

3.4.3流技术
省略

以下是ASP技术的工作原理,可以看出ASP具有高度的可扩展性。它的运行代码在服务器执行,以HTML格式显示给用户,这样提高了安全性。见图4.1 ASP技术的工作原理。
在这里插入图片描述

                  图4.1 ASP技术的工作原理

这样我们根据ASP的特性,ASP技术可以基于三层模型。可以分为数据存取层,应用逻辑层,和用户层。数据存取层是指数据库、预存程序以及提供数据库接口的组件。应用逻辑层是指ASP的自身,或者是附加的组件,而用户层是指Web应用程序页面。该教学网站的建设在设计过程中,根据ASP的工作原理来设计了如图4.2系统结构模型图:
在这里插入图片描述

                           图4.2系统结构模型

在此模型中,对数据层进行操作时候,可以直接编写代码来实现对数据层的操作。不过也可以利用ASP的组件分别对文件系统和数据库系统进行操作,利用组件,大大节省了时间。这里可以看出,ASP的移植性很好,而且这些组件与ASP连接时,兼容性很好。

5用户管理
用户注册登陆是访问网站时候,必须进行的操作。该部分主要分为:用户注册,用户登陆,和忘记密码。在用户注册时候,为了方便管理,用户的ID是由系统直接分配的。在这个系统中总共分为3个活动选项,由于用户进入各个活动选项时,对于登陆页面来说,如果没有帐号是无法进行登陆的,所以在登陆页面中,要对帐号密码进行身份验证,而注册页面可以说是对网站操作的第一步。而忘记密码也就是用户忘记了密码,通过忘记密码这个操作来找回密码,这个操作过程中,一定要记得在注册时候的问题,以及问题的答案。这几个操作中登陆操作需要判断,就是对帐号的验证,如果错误的话,就返回,正确进行下一步。活动关系图如图5.1所示。
在这里插入图片描述

                  图5.1用户注册登陆系统UML活动关系图

5.1用户注册
帐号是新用户对网站访问的钥匙,如果这个钥匙丢掉的话,影响用户对网站的访问。在系统注册的时候,帐号是由系统自动分配的。还有为了可以找回帐号密码,在用户注册的时候,必须要填写密码问题和问题答案。以方便用户可以找回密码。所以在这个注册当中设置了一些必须填写的项目,其具体代码如下:

这段代码是系统自动生成用户帐号的程序,系统按照注册时候年月日来注册的。

<%
'查询学生信息表中的最大学生证号
set rsmax = Server.CreateObject("ADODB.Recordset")
sql_max = "SELECT MAX(ID) AS MAXID  FROM tab_student"
rsmax.open sql_max,conn,1,3
'自动生成学生证号
no=trim(rsmax("MAXID"))
if (month(date())<10) then
	cmonth="0"+Cstr(month(date()))
else
	cmonth=Cstr(month(date()))
end if
if (day(date())<10) then
	cday="0"+Cstr(day(date()))
else
	cday=Cstr(day(date()))
end if
select case len(int(Right(no,5)+1))
	case 1
		cno="0000"+Cstr(int(Right(no,5)+1))
	case 2
		cno="000"+Cstr(int(Right(no,5)+1))
	case 3
		cno="00"+Cstr(int(Right(no,5)+1))
	case 4
		cno="0"+Cstr(int(Right(no,5)+1))
	case 5
		cno=Cstr(int(Right(no,5)+1))
	case Else
		cno="00001"
end select
intno="220"+Cstr(year(date()))+cmonth+cday+cno
%>

对于必须填写的属性,如果不填写就不能注册成功则是用一个JAVASCRIPT函数来实现的:

<script language="javascript">
function mycheck(){
	if (form1.Name.value==""){     //判断用户是否输入学生姓名
		alert("请输入学生姓名!");form1.Name.focus();return;
	}
	if(form1.PWD.value==""){     //判断用户是否输入密码
		alert("请输入密码!");form1.PWD.focus();return;
	}
	//判断用户是否输入密码问题
	if(form1.question.value==""){
		alert("请输入密码问题,以便忘记密码时取回密码!");
		form1.question.focus();return;
	}
	//判断用户是否输入密码问题答案
	if(form1.answer.value==""){
		alert("请输入密码问题的答案,以便忘记密码时取回密码!");
		form1.answer.focus();return;
	}
	form1.submit();    //提交表单
}
</script>

用户注册功能实现的效果如图5.2,5.3所示:
在这里插入图片描述

          图5.2                       图5.3

5.2用户登陆
从网络安全性方面考虑无论是在动态网站中,还是在WEB管理系统中,为不同用户分配不同的权限,并指定其可以访问和管理的页面都是非常重要的。本教学网站将用户名和密码分别保存到Session变量中,然后判断该用户名是否存在,如果不存在,则弹出提示对话框,并应用Session的Abandon方法清除Session变量。就保证不会留下记录了其中关键的代码如下:

<%Session("UserName")=""%>
<%'学生登录
 session.Timeout=30
if request.Form("UserID")<>"" and request.Form("PWD")<>"" then
	session("UserID")=replace(request.Form("UserID"),"'","''")
	session("PWD")=replace(request.Form("PWD"),"'","''")
	sql="select ID,PWD from dbo.Tab_Student where ID='"&session("UserID")&"'"
	set rs=conn.execute(sql)
	if rs.eof then %>
  		<script language="javascript">
  		alert("您输入的学生证号错误,请重新输入!");
		history.back();
 		 </script> 
 		 <%session.Abandon()  '删除所有存在Session对象中的对象
	else 
		if rs("PWD")=session("PWD") then
			session("flag")="登录" %>
     		<script language="javascript">
				alert("您已经成功登录!");
				window.location.href="default.asp";
  	 		</script>
 		 <%else%>
   			<script language="javascript">
			 alert("您输入的密码错误,请重新输入!");
  			history.back();
  			</script>  		
			<%session.Abandon()
		end if
	end if
end if%>

以上的这些代码主要是用户登陆过程中的一些关键性的代码,而完成登陆功能所实现的效果如图5.4,5.5所示:(因为登陆是在首页上面的,所以就选取一段来看效果)
在这里插入图片描述

图5.4 图5.5

5.3找回密码
用户在密码丢失以后,可以通过找回密码功能来找回其密码,这时注册时候的问题回答就显得比较重要了。只要记得问题的回答答案,就可以找回来。以下是实现该功能的主要程序:

<script language="javascript">   ‘输入密码问题的答案,传到下一个页面
function mycheck(){
if (form1.answer.value=="")
{alert("请输入密码问题答案!");form1.answer.focus();return;}
form1.submit();
}
</script>
//下面是另一个页面的关键程序,是从数据库中查询问题答案是否与写入的答案相同
<%
UID=Request.Form("UID")
If UID<>"" Then
	Set rs=Server.CreateObject("ADODB.RecordSet")
	sql="Select * From Tab_student Where ID='"&Replace(UID,"'","''")&"'"
	rs.open sql,conn,1,3
	If rs("answer")<>request.Form("answer") Then%>
		<script language="javascript">
		alert("您输入的密码提示问题答案有误,请重新输入!");
		history.back(1);
		</script>
	<%End If%>
<%End If%>
<script language="javascript">   //下面是输入新密码的情况
function mycheck(){
if (form1.PWD1.value=="")
{alert("请输入新密码!");form1.PWD1.focus();return;}
if (form1.PWD2.value=="")
{alert("请确认新密码!");form1.PWD2.focus();return;}
if (form1.PWD1.value!=form1.PWD2.value)
{alert("请两次输入的密码不一致,请重新输入!");form1.PWD1.focus();return;}
form1.submit();
}
</script>

效果如图5.6,5.7,5.8,5.9所示:
在这里插入图片描述

           图5.6                             图5.7

在这里插入图片描述

           图5.8                           图5.9

5.4系统安全性
在有一些网站中曾经出现过这样的漏洞:管理员在登陆用户后,退出登陆后,有一些非法用户可以根据相对地址进入管理页面,可以进行任何操作,这样很危险,为了解决该问题,在网页中加入了验证用户身份的头文件,如果发现用户没有正常登陆,则返回到登录页要求重新登陆。其关键代码如下:

<!--#include file="conn.asp" -->
<%
Set rs=Server.CreateObject("ADODB.RecordSet")
sql="Select UserName From Tab_teacher"
rs.Open sql,conn,1,3
'判断Session变量是否过期
Flag=True
rs.MoveFirst
Do While not rs.Eof
	IF Session("UserName")=rs("UserName") Then
		Flag=False
		Exit Do
	End If
	rs.MoveNext
Loop
If Session("UserName")="" OR Flag Then %>
	<script language="javascript">
	parent.location.href="../default.asp"
	</script>
<% End If %>

6网上课堂
网络教学是非面对面的教学,能够让远距离的学生独立完成学习是本系统的一个基本要求。基于这个目标,我们的基础课件子模块的设计遵循如下原则:
在学习内容的选择上以知识单元为基础,一个知识单元又由若干知识点组成。
在学习内容的组织上,系统将根据对学生的估测能力和学生的认知风格选择最适合学习者的内容表现方式。
每个知识单元还设计了一些简单的课后习题,提供给学生来巩固学习的知识。这些材料的组织以超媒体的方式进行。
支持网络课件链接。
支持在线教学,可以通过视频学习。
在学习完后提供一些资料或者资源供学生使用
基础课件子模块共有3个活动选项,在进入每个活动选项时,首先进行系统模块权限判断,其中教师具有课件模块的所有权限,游客、学生只有教案浏览的权限。其活动关系图如图6. 1所示。
在这里插入图片描述

图6.1课件UML活动关系图
在这个子系统中,主要分为网上课堂和在线教学这两个部分,网上课堂主要是《软件工程》的电子教案,是适合学生使用的网络教材。同时该模块还提供了在线教学模块可以在学生自学习的同时,可以通过网络视频听老师讲课。这样可以达到事半功倍的效果。本系统的网络教材是采用是超链接的方法来做的,课件是自己做成HTML的形式来表现的,这样在更新课件的时候,需要到课件所在的文件夹直接替换。而网络视频是把路径写入到数据库中,然后用户通过读取数据库中的路径来读取文件夹中的视频文件,实现视频播放功能。

6.1课件管理
本系统中在课件系统中使用了树型图,这样方便用户使用学习。在基础课件模块中,教学课件的发布是按照课程—章—节—内容这样的树状结构分布的,因此用树形图来展示课件可以使课件表现的结构分明,易于浏览。

树形图用于显示按照树形结构进行组织的数据,其用途比较广泛,如计算机中的文件系统(Windows中的资源管理器)、企业或公司的组成结构等。在Windows下VB、PB、Delphi等工具提供了一个功能很强的树型控件TreeView,利用Treeview控件可以方便地开发树形图,然而在网页上实现树形图就不那么容易了。而ASP中可以利用代码可以很轻松的实现这些功能。它使得网页上的树形图开发与在Windows下一样的方便,一样的功能强大,甚至更灵活。

<script language="javascript">
function showdiv(div_id)
{
		if (document.all.item("div"+div_id).style.display == "block")
		{
			document.all.item("div"+div_id).style.display = "none";
		}
		else
		{
			document.all.item("div"+div_id).style.display = "block";
		}
}
		</script>

6.2 在线教学子模块
网络是开展远程教育的基础。虽然现在我国已经建成了以电信网、无线与有限电视网和计算机互联网为代表的三大网络系统,但由于历史原因,这三大网络都是对各自业务特点而分别建立的,还不能满足远程教育的要求。电信网是我国目前规模最大,技术最先进的网络。目前我国电信网干线带宽已经很宽,足以满足远程教育的带宽要求,在该系统中,现在网络的带宽足以能够进行网络教学,该系统中使用的是流技术,这样可以很好的播放,而不用下载到硬盘空间后再播放,这样既方同时视频采用的是压缩编码来进行传输的,采用压缩编码的目的是在网络带宽或存储空间一定的条件下提供最优质的图象和声音,或是在同等图象、声音质量条件下尽可能地减少所需的存储空间或所需的带宽。此外,音频、视频压缩编码可以分为好多种分类。对此,为了保证音频、视频信息在不同网络平台中正常传输,必须根据网络的特点采取不同的编码方法。本系统可以支持多种播放格式,如MPG,MP3等其他格式,不过在本系统中对于高压缩的视频处理速度比较慢,如:rmvb格式的视频处理很慢,因为这种格式的属于高压缩视频,对于一般的网站,对于这种类型的视频首先要进行解码,这个对于本系统来说不适合。其他格式的视频都能够很快的进行播放。

用户操作中使用的代码:

<div id="Layer1" style="position:absolute; width:199px; height:94px; z-index:1; left: 0px; top: 290px;">
    </div>
	<embed src="AVI/<%=rs("path")%>" width="326" height="315" noerror="true"> </embed>
老师操作中使用的代码:
<script language="javascript">
function mycheck(){
if (form1.content.value=="")
{alert("请输入主题内容!");form1.content.focus();return;}
.................
form1.submit();
}
</script>

用户操作中的代码是嵌套的小程序,主要是用于播放视频时候,通过数据库的连接来读取路径,而老师操作的代码是,将视频路径写入数据库,同时对其进行验证是否正确。树型结构和课件点播的功能显示如图6.2,6.3,6.4所示:
在这里插入图片描述

         图6.2                               图6.3

在这里插入图片描述

                     图6.4

7作业模块
在此模块中,学生可以通过网页上的表单完成作业文件的上传,教师可以下载作业进行批改。在一些类似于设计的上机才能完成的作业,以作业本的形式交给老师显然是不好的,老师也不方便批阅作业。而该作业模块恰恰可以完成这一个功能。作业模块主要有以下几个功能:

 学生可以通过该系统,从网上得到所要作业的信息,并且可以上传作业。对于已经上传的作业,学生可以通过查询得到自己完成作业的情况和自己的成绩。
 老师可以通过该系统来批阅作业,同时在批阅作业的时候可以直接给出分数,还可以通过批阅作业直接查看学生的作业完成情况,还可以通过学生的成绩来横向和纵向对比学生的作业完成情况。同时老师还担负着对作业模块进行着维护的责任,对于已经过期的作业文件要及时的删除,清空文件夹,保证硬盘空间。

作业模块中共有5个活动选项,在进入每个活动选项时,首先进行系统模块权限判断,其中教师具有作业维护、浏览、批阅和成绩查看四个功能,学生可以进行作业浏览、作业提交和作业成绩查看这几个功能,其关系如图7.1所示:
在这里插入图片描述

图7.1作业UML活动关系图

7.1作业上传
作业的上传,实现了做作业和提交作业的异步实现。大而言之,在今天资源紧张的时代背景下“节纸”的网络化作业提交系统,是适应了时代的发展潮流的。而单就其具体的实际意义来说,作业的网路化,推动了学习资料的资源共享。特别是在期末考试前夕,可以在网上查到所有同学的本学期的已批作业,以供参考。而且网络的普及,生活节奏的加快,作业上传,远程批阅,是教学网站的一个必不可少的环节。

学生实现上传功能是通过一个上传组件完成的。本系统使用的是activefile组件。组件的安装很简单,将对应的dll文件复制到目录下,这样就可以用了。

本系统建立了一个homework目录,用来存放学生的每次作业。学生把每次的作业压缩成一个zip文件上载到服务器上。文件上载以后命名的规范为:学号+作业序号+批阅标志.zip,而最后的一位加”x”,则表示已经批阅过了,如:950012x.zip就表示完成该作业学生的学号是95001,这是第二次作业,且老师批阅完毕。如果没有x的话,表示没有批阅。对于作业的批阅和作业的次数等信息的处理,也可以通过其他方式实现。

系统也可以用其他的方式实现上传,对于ASP来说,也可以无组件实现上传,不过上传的时候速度太慢,它是要转换成二进制代码来上传的,这样的话会很麻烦。学生可以查询自己的作业成绩,也可以查询作业情况。关键代码如下:

<%
	Set Post = Server.CreateObject("ActiveFile.Post")
	Post.Upload server.MapPath("./tempforupload")

	' not into the database, just for creating the fileobject
	filepath = Post.FormInputs("zipfile").file.name

	num = Post.FormInputs("num").value
	passwd = Post.FormInputs("passwd").value
	id_num = Post.FormInputs("id_num").value
	set Post = nothing
%>
//查询作业情况
<%
	set fs = createobject("scripting.filesystemobject")
	set folder = fs.GetFolder(server.MapPath("./homework"))
	for each file0 in folder.files
		f_num = left(file0.name,6)
		f_idnum = mid(file0.name,7,1)
		f_flag = mid(file0.name,8,1)
		f_time = file0.DateLastModified
		if trim(num) = f_num then
%>
	  <tr>  
		<TD align=center><%=f_num%></TD>
		<TD align=center><%=f_idnum%></TD>
		<TD align=center><%=f_time%></TD>
		<TD align=center>
		<%
		if f_flag = "x" then
			Response.Write "已批改"
		else
			Response.Write "未批改"
		end if
		%>

在这里插入图片描述

                            图7.2

图7.2是学生子模块的关键代码所实现的效果,学生可以查询学生作业的提交情况和老师对作业的批改情况,这样方便学生了解自己的作业情况。

7.2作业批改
教师在该模块中主要是对学生的作业进行布置与批改,教师同时有着管理员的权限,所以还要进行数据维护,在硬盘不够的情况下要清空一些过期文件,或者采用文件转移的办法来解决空间不够的问题。教师在这个模块里面的权限有作业维护、浏览、批阅和成绩查看四个功能其中关键的代码如下:

<%
	set dict_file = CreateObject("Scripting.Dictionary")
	set fs = createobject("scripting.filesystemobject")
	set folder = fs.GetFolder(server.MapPath("../homework"))
	for each file0 in folder.files
		f_num = left(file0.name,7)
		f_filename = file0.name
		dict_file.Add f_num,f_filename
	next			
	while not rs.EOF
		stu_no = rs("no")
%>

代码的主要功能是记录学生作业的完成情况,学生的提交作业的时候,都是先存放在一个临时文件夹中,等验证成功时再存放在homework的文件中,代码“set dict file=CreateObject(“Scripting.Dictionary”)”意思是建立一个字典对象,将homework目录下所有的作业文件信息都存贮在该对象中,其中,主要读取的是前七位的关键字,即学号+作业序号,同时按学号和作业序号逐条显示学生的作业上载及批阅信息。代码实现的效果如图7.3所示:
在这里插入图片描述

                        图7.3

8答疑模块
学生在学习过程中如果遇到疑问和困难,可以在答疑模块中提出问题,由教师做专门回答,教师对答疑系统的内容可进行在线管理。其中在线答疑模块又可分为学生提问和教师答疑两部分。同时本模块还设置了在线实时聊天回答,线上有人的话,可以和别人进行交流。

学生可以在该模块中进行问题提问,问题浏览,老师对问题进行回答,并对问题进行管理。同时本系统还有实时聊天模块,其具体关系如图8.1所示:
在这里插入图片描述

                   图8.1答疑UML活动关系图

8.1学生提问
学生模块提供学生提问、讨论的功能。它主要有以下几个主要的功能模块:
 提出问题,这是学生模块最基本的功能。问题包括一个简短的标题、所属章节和具体内容三个部分。
 查看自己提出的问题。该模块列出当前用户提出的所有问题。已经被老师回答的问题将出现回答的标记,学生可以阅读教师的回答;没有回答的问题也会有所标示。便于学生及时得到教师的反馈消息。
 学生模块中有一个实时聊天系统,学生只要输入一个用户名就可以进入了,这样学生之间就可以交流了。
该模块中为了方便用户查看问题,使用了分页。同时按照时间的顺序排列。

//分页
<%
	if rs.RecordCount>0 then 
		sumcount = rs.RecordCount
		rs.MoveFirst
	end if
		rs.PageSize =12	
		intPageCount = rs.PageCount
		if Len(strPage) = 0 then strPage = "1"
		if int(strPage)<1 then strPage = "1"
		'if int(strPage)>intPageCount then strPage = CStr(intPageCount)
		if rs.eof then 
%>
  //以时间的排序显示出来
<%=Formatdatetime(rs("time_qry"),1)%>
//对数据库进行插入操作,即添加问题
strSQL = "insert into problems(title,detail,flag_answer,flag_show) values ('" &strTitle & "','" & strText & "','0','1')"
	'Response.Write strSql
	conn.Execute(strSQL)

在这里插入图片描述

                      图8.2

图8.2是代码主要表现的效果,对于没有回答的问题,系统将会标记出来。

8.2教师答疑
教师模块提供教师答疑、管理功能。它具有以下几个主要的功能模块:
 回答问题,这是教师模块最基本的功能。该模块显示所有还没有得到教师解答的问题。教师回答完该问题后,会显示出已经回答的标记。
 管理这些问题。对于已经很长时间的问题或者是没有什么价值的问题,教师可以直接删除,这样就不会有太多的垃圾信息,可以使老师更好的回答他们的问题。
该模块主要是对数据库的操作,在这个里面主要进行的是对数据库的查询,插入,删除操作,同时显示。
这些功能所表现的效果见图8.3,8.4:
在这里插入图片描述

                      图8.3

在这里插入图片描述

                          图8.4   

8.3在线聊天
聊天室的种类很多,可以通过Java Applet、CGI等方式实现。一般聊天室都分上下两帧来实现,其中上边一帧显示当前聊天信息,下边一帧为接受拥护输入信息的内容发送区的时候,上面一帧的聊天信息要及时更新。通常有两种解决方法:使用“推”技术;让客户端定时更新;其中第一种方案对服务器载荷较小,但编程实现起来比较复杂,大型的聊天室一般都采用这种方法,后一种方案实现容易,代码简明,适合用户不多的聊天室。本系统采用的是后者。在本页面中要加入如下代码:

<meta http-equiv=Refresh” content=25;url=1.asp#tail’”>
此功能主要是让一个页面定时更新,每25秒刷新一次,后面的URL指明了刷新的页面名称为1.asp,#tail是页面中的一个<a>标记,它在文件的末尾。以下是该模块使用的框架。
<%@ Language=VBScript %>
<html>

<head>
<title>实时答疑</title>
</head>
<%
session("user")=request("user")
%>
<frameset rows="*,20%">
  <frame name="chatmain" target="footnotes"  src="1.asp#tail">
  <frame name="footnotes" src=2.asp>
  <noframes>
  <body>

  <p>此网页使用了框架,但您的浏览器不支持框架。</p>

  </body>
  </noframes>
</frameset>

</html>

9公告模块
公告模块主要是老师用于发布信息的模块,学生可以在登陆的时候,可以看到最近更新的信息,信息以滚动的形式出现,学生可以及时的了解到关于该门课程的信息,老师可以对公告进行添加,修改,删除操作。

实现该模块代码和答疑系统中的显示的差不多,唯一有不同的是,该页面是可以滚动显示的,实现功能的主要代码如下:

  <MARQUEE direction="up" height="114" onMouseOut="this.start()" onMouseOver="this.stop()" scrollAmount="1" scrollDelay="10">

以上主要是滚动显示的代码,方向是可以调整的,速度也是可以调整的。由于滚动的文字在界面中看不出来就不演示了。该功能模块所显示的效果如图9.1,9.2所示:
在这里插入图片描述

                      图9.1

在这里插入图片描述

                       图9.2

10测试模块
在线测试模块不需要老师干预,系统自动在学生要求测试的范围内出试卷,学生完成试卷后可以自动批改、评分对成绩进行记录。同时给出正确答案。不过该功能智能化程度不高,试卷是自己事先存放上去的,从试题库中直接读取。这个还需要进一步的研究。老师模块主要功能是添加,修改,删除试题。

该系统在测试当中设置了一个时间限制,这样用户就可以知道自己做试题所花的时间,同时还设置了剩余时间的记录,在测试结束后,可以查询测试的成绩,其具体代码如下:

  <%
getcondition = replace(trim(request("condition")),"'","''")
getkey = replace(trim(request("key")),"'","''")
if(getcondition = "" or getkey = "")then
rssql = "select * from Tab_stuResult where stu_id='"&session("UserID")&"'"
else
rssql = "select * from Tab_stuResult where "&getcondition&" like '%"&getkey&"%' and stu_id='"&session("UserID")&"' order by res_subdate desc"
end if

测试时是以分钟来记时,一般测试的时间为20分钟,教师在设置考题的时候要把握好时间,这样才能设计出适合学生测试的题目同时又达到检测的目的,教师在考试模块中还可以对学生的考试成绩进行查询,方便教师了解学生对该门课程学习知识掌握情况。该代码所要表现出来的效果如图10.1所示:
在这里插入图片描述

                        图10.1

11用户使用手册
省略

12系统评价
12.1系统主要特色
 基于SQL Server企业级数据库和ASP技术实现,可高效管理、处理大批量的题库数据,通过专业的服务器群组、缓存及系统优化技术;可支持多人并发操作。
 界面友好,功能完善,操作简单,如果想要访问该网站,客户端不用安装任何软件,只要直接使用IE浏览器就可以直接访问,这将为客户节省大量的系统安装和维护时间,不仅学生可以不受地理位置限制进行学习,而且教师及教学管理人员不论身在何处,只要可以连接到网络就可以教学、管理和安排教学工作;
 为保证系统访问的安全性,采用了基于角色的权限管理机制,定义了三种不同角色和权限;用户根据不同的权限来做相应的操作,避免了角色的越权行为。
 本系统的交互性很强,学生可以向老师提出问题,也可以进行实时聊天,这样老师可以在任何时间、任何地点,给学生答疑。而且学生可以通过实时聊天与其他同学进行交流,这样有利于教师学生之间的互动,在进行网上学习的时候,由一个人学习,变成多人学习,充分调动学生的学习积极性。
 真正实现无纸化作业,为学生提交作业提供了极大方便,老师可以随时查看,批阅学生作业,可以使老师从办公室中解脱出来。
 学生可以及时的了解自己知识的掌握情况,通过在线考试来检测自己所学的知识情况,同时考试的成绩将记录在数据库中,老师可以对其进行查询,分析成绩,来了解学生知识掌握情况。

12.3毕业设计心得与收获
省略

结 论
省略

致 谢
省略

参 考 文 献
[1] 塞奎春. ASP工程应用与项目实践. 北京:机械工业出版社.2005.4
[2] 老虎工作室.Dreamweaver中文版网站建设实战训练.北京:人民邮电出版社.2004.10
[3] 刘瑞新.ASP动态网站开发毕业设计指导及实例.北京:机械工业出版社.2005.4
[4] 张 固.ASP网络应用系统典型模块开发实例解析.北京:人民邮电出版社.2004.4
[5] 王国荣.ASP网页制作教程.北京:人民邮电出版社.2000.6.1
[6] 庄永龙.实例解析ASP网站编程.北京:北京希望电子出版社.2002.1
[7] 丁贵广等.ASP及ASP.NET编程基础与实例(第2版).北京:机械工业出版社.2004.1
[8] Dejan Sunderic. SQL Server 2000 高级编程技术 .北京:清华大学出版社.2002.6
[9] 陈有卿.中文版Photoshop7.0基础教程.北京:国防工业出版社.2002.6
[10] 吴明辉等.ASP网络办公及商务应用系统开发实例导航.北京:人民邮电出版社.2003.6
[11] 宣小平等.ASP数据库系统开发实例导航.北京:人民邮电出版社.2002.4
[12] 张美金.基于ASP技术的远程教育系统体系结构的研究.辽宁工程技术大学硕士论文.2003.5
[13] 耿枫.基于Web的远程教学系统的研究与设计.武汉理工大学硕士论文.2002.2
[14] 赵成.基于Web的网上教学系统的设计和实现.《军事通信技术》第74期
[15] 廖选.远程教育的网络技术平台建设.西南财经大学硕士论文.2004.4


5、资源下载

本项目源码及完整论文如下,有需要的朋友可以点击进行下载。如果链接失效可点击下方卡片扫码自助下载。

序号毕业设计全套资源(点击下载)
本项目源码基于C#+asp.net+sqlserver的精品课程教学网站设计与实现(源码+文档)C#_.net_BS架构_课程网站.zip
  • 3
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

毕业设计方案专家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值