版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
密级:NANCHANGUNIVERSITY学士学位论文THESISOFBACHELOR(2008—2012年)题目:基于WEB的网络教学平台学院:软件学院系软件工程专业班级:软件设计与开发学生姓名:学号:指导教师:职称:副教授起讫日期:2011年11月-2012年5月
南昌大学学士学位论文原创性申明本人郑重申明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究作出重要贡献的个人和集体,均已在文中以明确方式表明。本人完全意识到本申明的法律后果由本人承担。作者签名:日期:学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权南昌大学可以将本论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。保密□,在年解密后适用本授权书。本学位论文属于不保密□。(请在以上相应方框内打“√”)作者签名:日期:导师签名:日期:摘要引言课题背景随着计算机技术与宽带网络的飞速发展,高校网络综合教学平台为高校教学提供了一种新的手段和方式。它有效地发挥了远程教育的特点,是一种跨地区的教育体制和教学模式。现有的网络教学平台大多能支持以上传下载、BBS和e-mail等为主要交互方式的各种实时、非实时的网络教学,实现了网络环境下尤其是远程教育中处于分离状态的教与学的再度整合。然而,网络教学不是取代传统方式的课堂教学,而是将网络教学模式和课堂教学融合在一起,吸收传统课堂教学的优点,并克服其时间时空限制等弱点,发挥网络教学的优点,构建的一种全新的教学模式。课题内容此网络教学平台基于ASP.NET框架,在VisualStudio环境中运用C#语言作为开发工具,结合SQLServer作为数据库载体进行数据操作。主要内容是实现学生与教师对该平台的使用以及管理员对数据的管理。在该系统中,用户可进行在线测试、查看考试结果、答疑、上传下载资源、管理课件与试题、发帖回帖等操作。课题研究目的掌握基本的系统分析与设计思想掌握一类语言与数据库结合的操作方式掌握简单的多媒体技术课题研究意义在网络技术高速发展的背景下,网络教学逐渐成为改进传统教学的必要趋势与潮流。网络课堂是利用现代信息技术,发展高素质教育的一种教学方式。发展网络教学具有以下重要意义:提高学习效率只要可以连接到Internet的地方就可以通过网络课堂这个平台进行学习交流,一定程度上消除了时间与空间限制。学生不必再因为没有听清楚内容或者忘记内容而耽误学习,极大的提高了学习效率。学生利用教学资源,可以根据自身情况、自身特点和需求来学习并发散思维,极大限度地激发了学习潜能。促进教学结构改革对于教学结构的改革,在观念和体制的束缚下难以推进,而观念的改变是一个渐进的过程,开展网络教学可以促进这一过程的进行,让教师和学生逐渐从习惯课堂教学过渡到接受网络教学。促进高校整体的管理教学资源数量类别庞大,建立网络教学平台可以更好的管理它们,也为学生提供了更方便快捷的学习资源。网络综合教学平台也促进了教学信息的管理。可行性分析本系统可行性高,具有技术可行性、经济可行性与操作可行性。技术可行性本系统建立在win7系统上,利用VisualStudio2010作为开发工具,结合SQLServer2008,以C#作为开发语言进行系统开发实现。在系统分析与过程中,选用OfficeVisio2010作为图形图像制作工具。技术可行性高。经济可行性系统投入使用后可帮助各高校或教育机构节省大量人力物力。所带来的效益远远大于系统软件的开发成本。在经济上完全可行。操作可行性页面设计简单,操作方便,录入数据快速可靠,适应性强,可移植,容易扩充,操作可行性高。背景相关技术及其理论本网络教学平台采用ASP.NET技术,在VisualStudio2010平台上使用C#开发语言实现,以SQLSEVER2008作为数据载体。SQLServer2008SQL全称是“结构化查询语言(StructuredQueryLanguage)”,最早的是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEMR开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言,得到了广泛的应用。SQLServer2008允许你在使用Microsoft.NET和VisualStudio开发的自定义应用程序中使用数据,在面向服务的架构(SOA)和通过MicrosoftBizTalkServer进行的业务流程中使用数据。信息工作人员可以通过他们日常使用的工具直接访问数据。SQLServer2008提供一个可信的、高效率智能数据平台,可以满足你的所有数据需求。SQLServer2008的最大优点:保护您的信息、提供可预测响应、最大限度地减少管理监视、集成任何数据、提供相关信息。VisualStudio2010VisualStudio是一套完整的开发工具,用于生成ASP.NETWeb应用程序、XMLWebservices、桌面应用程序和移动应用程序。VisualBasic、VisualC#和VisualC++都使用相同的集成开发环境(IDE),这样就能够进行工具共享,并能够轻松地创建混合语言解决方案。另外,这些语言使用.NETFramework的功能,它提供了可简化ASPWeb应用程序和XMLWebservices开发的关键技术。在VisualStudio2010中,微软利用WindowsPresentationFoundation完全重建了编辑器,这为开发者提供了灵活、功能丰富的开发环境,并支持多显示器——即开发者可以同时在多台显示器上查看代码、用户界面设计器和数据库结构。ASP.NETASP.NET是一个统一的Web开发模型,它包括使用尽可能少的代码生成企业级Web应用程序所必需的各种服务。ASP.NET作为.NETFramework的一部分提供。当编写ASP.NET应用程序的代码时,可以访问.NETFramework中的类。可以使用与公共语言运行库(CLR)兼容的任何语言来编写应用程序的代码,这些语言包括MicrosoftVisualBasic、C#、JScript.NET和J#。使用这些语言,可以开发利用公共语言运行库、类型安全、继承等方面的优点的ASP.NET应用程序。ASP.NET包括页和控件框架、ASP.NET编译器、安全基础结构、状态管理功能、应用程序配置、运行状况监视和性能功能、调试支持、XMLWebservices框架、可扩展的宿主环境和应用程序生命周期管理、可扩展的设计器环境。ASP.NET的强大优势:执行效率的大幅提高、世界级的工具支持、强大性和适应性、简单性和易学性、高效可管理性、多处理器环境的可靠性、自定义性和可扩展性、安全性。C#C#(读作“Csharp”)是一种编程语言,它是为生成在.NETFramework上运行的各种应用程序而设计的。C#简单、功能强大、类型安全,而且是面向对象的。C#凭借在许多方面的创新,在保持C语言风格的表现力和雅致特征的同时,实现了应用程序的快速开发。VisualC#是Microsoft对C#语言的实现。VisualStudio通过功能齐全的代码编辑器、编译器、项目模板、设计器、代码向导、功能强大而易用的调试器以及其他工具,实现了对VisualC#的支持。通过.NETFramework类库,可以访问许多操作系统服务和其他有用的精心设计的类,这些类可显著加快开发周期。第二章需求分析与总体功能需求分析与总体功能需求分析开发网络教学平台的必要性信息化是当今世界经济和社会发展的大趋势,20世纪80年代以来,科学技术特别是信息技术和生命科学的不断突破,对世界政治、经济、文化生活将产生更加深刻的影响。在教育领域,一方面,以互联网和多媒体技术为核心的信息技术已成为教学和学习的重要工具,另一方面,知识经济时代,信息素养已成为科学素养的重要基础,这对基础教育的培养目标提出新的挑战,尤其是对学生的信息技术素养提出了新的要求。也就是说,信息化社会的合格基础教育毕业生应具备迅速地筛选和获取信息、创造性地加工和处理信息并利用信息解决问题的能力,而且,学生掌握和运用信息技术的能力应与读、写、算并列,作为基础教育应培养的学生终身有用的基础能力。教育信息化已经是时代的选择,历史的必然,网络环境的逐渐建立,使学与教必然随之调整。一般的网络教学平台功能现有的网络教学平台大多是能支持以上传下载、点播、BBS和e-mail等为主要交互方式的各种实时、非实时的网络教学,实现了网络环境下尤其是远程教育中处于分离状态的教与学的再度整合。本网络教学平台功能简介本系统主要针对在线测试、教学资源的上传下载、后台管理对网络教学平台进行初步的开发研究。系统中主要有三类用户:学生、教师、管理员。所有用户可查看平台最新新闻、最新帖子。学生可进行在线测试、查看考试结果、进行提问、下载资源。教师可进行课件管理、试题管理、答疑、查看学生考试结果。学生与教师可在论坛发帖回帖。管理员可进行班级管理、帖子管理、课程管理、用户管理。通用操作本系统各类用户除了各自特定的功能权限外,还具有一些共同的操作功能。登录用户在登录界面输入用户名密码,选择角色之后,若该用户是否具有该角色的相应权限,则登录成功并进入相应模块。修改密码用户登录成功之后,可对密码进行修改。找回密码在用户登录页面,若用户忘记密码,可点击链接进行找回密码操作。查看新闻用户在公共模块可点击新闻链接,进入该新闻具体信息页面,查看新闻。查看最新热帖用户在公共模块可点击最新热贴链接,进入该帖子页面,查看帖子,但登录前不能发表评论。各类用户操作功能本系统有三类用户,分别为学生、教师、管理员,各类用户操作功能不同。学生查看课程信息学生可查看所学课程的基本信息,在该课程信息页面可查看课件、课程视频及下载课件。在线测试学生可选择对某门所学课程进行在线测试,提交考卷后系统会自动显示考试结果。提问学生进入答疑中心,可查看自己所提交的问题,或进行提问。论坛发帖在论坛中,学生可进行发帖、回复。查看考试结果学生可查询自己以往的考试结果。教师课件管理教师可查看自己上传的课件、视频信息,可删除或继续上传课件或视频。试题管理教师可对自己添加的试题进行修改或删除操作,可在线出题。在线答疑教师进入答疑中心,可对学生的提问进行回复。学生考试结果教师可查询学生的考试结果。论坛发帖在论坛中,教师可进行发帖、回复操作。管理员课程管理在课程管理页面,管理员可添加或删除课程。帖子管理管理员可进行删除帖子操作。用户管理管理员可对学生用户与教师用户进行添加删除操作,添加用户时默认密码与学号相同。班级管理管理员可添加或删除班级,点击班级,可进行班级课程管理,为相应的班级分配课程。系统总体功能图本系统分为四个模块,分别为公共操作模块、学子在线、教师空间、管理员空间。所有用户可在公共模块查看新闻、帖子。学生用户登录后进入学子在线模块,可查看课程信息、在线测试、查看考试结果、提问、下载资源、进入论坛。教师用户登录后进入教师空间模块,可进行课程管理、试题管理、答疑、查看学生考试结果、进入论坛。管理员用户登录后进入管理员空间模块,可管理班级、管理帖子、管理课程、管理用户。经过以上分析,得到系统的总体功能图: 系统总体功能图第三章数据库设计与实现数据库设计与实现本系统利用SQLServer2008数据库作为数据信息的存储载体。数据库系统分析本系统使用一个名为NetworkTeaching的数据库存储数据信息,数据操作则通过数据库中表与表之间的关联实现。数据库NetworkTeaching中主要有以下表格:数据库表列表序号表名备注1dbo.Admin管理员表2dbo.Answer问题回复表3dbo.Bulletin新闻公告4dbo.Class班级表5dbo.ClassCourse班级课程表6dbo.Course课程表7dbo.Courseware课件表8dbo.Post帖子表9dbo.Question问题表10dbo.Reply帖子回复表11dbo.Score考试成绩表12dbo.Student学生表13dbo.Teacher教师表14dbo.Test试题表15dbo.Video视频表数据库逻辑设计数据库关系模式经过分析,本系统的数据库关系模式如下所示:管理员(系统编号,管理员编号,管理员姓名,管理员密码)问题回复(系统编号,教师编号,问题编号,回复内容,回复时间)新闻公告(系统编号,新闻公告标题,新闻公告内容,发布日期)班级(系统编号,班级编号,班级名称,所属专业)班级课程(系统编号,班级编号,课程编号)课程(系统编号,课程编号,课程名称,教师编号,所属专业,课程简介)课件(系统编号,课件编号,课件名称,上传时间,课程编号,课件路径)帖子(系统编号,帖子编号,帖子主题,帖子内容,用户编号,创建时间)问题(系统编号,问题编号,问题名称,学生编号,提问时间,问题状态)帖子回复(系统编号,帖子编号,发帖者编号,回帖时间,回复内容)考试成绩(系统编号,学生编号,课程名称,考试成绩,学生答案,正确答案)学生(系统编号,学生编号,学生姓名,学生密码,学生性别,班级编号,身份证号)教师(系统编号,教师编号,教师姓名,教师密码,身份证号,教师性别)试题(系统编号,试题编号,试题名称,答案选项1,答案选项2,答案选项3,答案选项4,正确答案,是否发布,课程编号,教师编号)视频(系统编号,视频编号,视频标题,视频名称,视频存储名称,视频内容,上传时间,视频路径,视频图片,视频类型,课程编号,教师编号)数据库E-R图 数据库E-R图数据库实现经过分析,本系统数据存储涉及数据库中15个表格,其数据字典如下所示:管理员dbo.Admin序号列名数据类型长度标识主键允许空说明1IDint4是否系统编号2adminNumvarchar50是否管理员编号3adminNamevarchar50是管理员姓名4adminPwdvarchar50是管理员密码问题回复dbo.Answer序号列名数据类型长度标识主键允许空说明1IDint4是是否系统编号2teacherIdvarchar50是教师编号(外键)3questionIdvarchar50是问题编号(外键)4answerContentvarcharMAX是回复内容5answerTimedatetime8是回复时间新闻公告dbo.Bulletin序号列名数据类型长度标识主键允许空说明1IDint4是是否系统编号2titlevarchar50是新闻公告标题3contentsvarcharMAX是新闻公告内容4issuanceDatedatetime8是发布时间班级dbo.Class序号列名数据类型长度标识主键允许空说明1IDint4是否系统编号2classIdvarchar50是否班级编号3classNamevarchar50是班级名称4majorvarchar50是所属专业班级dbo.ClassCourse序号列名数据类型长度标识主键允许空说明1IDint4是否系统编号2classIdvarchar50是否班级编号3courseIdvarchar50是否课程编号课程dbo.Course序号列名数据类型长度标识主键允许空说明1IDint4是否系统编号2courseIdvarchar50是否课程编号3courseNamevarchar50是课程名称4teacherIdvarchar50是教师编号(外键)5majorvarchar50是所属专业6introductionvarchar50是课程简介课件dbo.Courseware序号列名数据类型长度标识主键允许空说明1IDint4是否系统编号2coursewareIdvarchar50是否课件编号3coursewareNamevarchar50是课件名称4teacherIdvarchar50是教师编号(外键)5coursewareTimedatetime8是课件上传时间6courseIdvarchar50是课程编号(外键)7coursewarePathvarcharMAX是课件路径帖子dbo.Post序号列名数据类型长度标识主键允许空说明1IDint4是否系统编号2postIdvarchar50是否帖子编号3threadvarchar50是帖子主题4contentsvarcharMAX是帖子内容5userIdvarchar50是用户编号(学生或教师)6createTimedatetime8是创建时间问题dbo.Question序号列名数据类型长度标识主键允许空说明1IDint4是否系统编号2questionIdvarchar50是否问题编号3questionNamevarchar50是问题4studentIdvarchar50是学生编号(外键)5questionTimedatetime8是问题发布时间6statusbit1是问题状态帖子回复dbo.Reply序号列名数据类型长度标识主键允许空说明1IDint4是是否系统编号2postIdvarchar50是帖子编号(外键)3userIdvarchar50是用户编号(学生或教师)4replyTimedatetime8是回复时间5replyContentvarcharMAX是回复内容考试成绩dbo.Score序号列名数据类型长度标识主键允许空说明1IDint4是是否系统编号2studentIdvarchar50否学生编号(外键)3courseIdvarchar50是课程编号(外键)4scoreint4是成绩5studentAnsvarchar50是学生答案6rightAnsvarchar50是正确答案学生dbo.Student序号列名数据类型长度标识主键允许空说明1IDint4是否系统编号2studentNumvarchar50是否学生编号3studentNamevarchar50是学生姓名4studentPwdvarchar50是学生密码5studentSexvarchar50是学生性别7classIdvarchar50是班级编号(外键)8idNumbervarchar50是身份证号教师dbo.Teacher序号列名数据类型长度标识主键允许空说明1IDint4是否系统编号2teacherNumvarchar50是否教师编号3teacherNamevarchar50是教师姓名4teacherPwdvarchar50是教师密码6idNumbervarchar50是身份证号7teacherSexvarchar50是教师性别试题dbo.Test序号列名数据类型长度标识主键允许空说明1IDint4是否系统编号2testIdvarchar50是否试题编号3testTopicvarchar50是试题内容4testAns1varchar50是答案选项15testAns2varchar50是答案选项26testAns3varchar50是答案选项37testAns4varchar50是答案选项48rightAnsvarchar50是正确答案9pubbit1是是否发布10courseIdvarchar50是课程编号(外键)11teacherIdvarchar50是教师编号(外键)视频dbo.Video序号列名数据类型长度标识主键允许空说明1IDint4是否系统编号2videoIdvarchar50是否视频编号3videoTitlevarchar50是视频标题4videoNamevarchar50是视频名称5videoSaveNamevarchar50是视频存储名称6videoContentvarcharMAX是视频内容7videoDatevarchar50是视频上传时间8videoPathvarcharMAX是视频路径9videoPicturevarcharMAX是视频图片10videoTypevarchar50是视频类型11courseIdvarchar50是课程编号(外键)12teacherIdvarchar50是教师编号(外键)第四章系统设计与实现系统设计与实现系统设计总体框架设计本系统运用ASP.NET框架,使用C#语言在VisualStudio2010环境中进行网站的设计开发。项目资源管理图如上图所示,本系统将公共操作的方法类提取存放在App_Code中,在App_Themes中设置主题并编写css文件存放在文件夹css中以实现系统风格的统一,文件夹admin存放实现管理员功能的各个操作页面,文件夹student与teacher则分别存放学生用户与教师用户实现功能的各个页面,文件夹courseware存放教师上传的普通课件,文件夹upFiles存放教师上传的视频,video则是视频转换工具ffmpeg的安装文件夹,其他页面则实现用户的公共功能,如AddPost.aspx及其后台文件实现了学生教师发帖的功能,Default.aspx则是公共模块的实现页面。公共类与外观在本系统中,将公共操作与特殊功能实现类提取到.cs文件中。如将与数据库的交互提取到操作类BaseClass.cs中,主要实现对数据库的基本操作及对用户访问权限的验证。通过后台代码管理及公共类FileOperation.cs与OperateMethod.cs的使用实现文件不同名上传、视频格式转换等各种数据处理要求。结合css样式、主题与模版的使用,实现了系统风格的统一。下面简单介绍下以上各文件在本系统中的应用与实现:数据库操作类数据库操作类BaseClass.cs实现了对数据库的基本操作及用户登录权限的验证。其关键代码如下:publicstaticSqlConnectionDBCon()//连接数据库{returnnewSqlConnection("server=CAPRICORN\\SQLEXPRESS;database=NetworkTeaching;uid=sa;pwd=sa;");}publicstaticvoidBindDG(GridViewdg,stringid,stringstrSql,stringTname)//绑定GridView控件{SqlConnectionconn=DBCon();SqlDataAdaptersda=newSqlDataAdapter(strSql,conn);DataSetds=newDataSet();sda.Fill(ds,Tname);dg.DataSource=ds.Tables[Tname];dg.DataKeyNames=newstring[]{id};dg.DataBind();}publicstaticboolOperateData(stringstrsql)//执行sql语句{SqlConnectionconn=DBCon();conn.Open();SqlCommandcmd=newSqlCommand(strsql,conn);intisEx=cmd.ExecuteNonQuery();conn.Close();if(isEx>0)returntrue;elsereturnfalse;}publicstaticboolCheckStudent(stringstudentNum,stringstudentPwd)//验证学生用户{SqlConnectionconn=DBCon();conn.Open();SqlCommandcmd=newSqlCommand("selectcount(*)fromStudentwherestudentNum='"+studentNum+"'andstudentPwd='"+studentPwd+"'",conn);inti=Convert.ToInt32(cmd.ExecuteScalar());if(i>0)returntrue;elsereturnfalse;}publicstaticboolCheckTeacher(stringteacherNum,stringteacherPwd)//验证教师用户{SqlConnectionconn=DBCon();conn.Open();SqlCommandcmd=newSqlCommand("selectcount(*)fromTeacherwhereteacherNum='"+teacherNum+"'andteacherPwd='"+teacherPwd+"'",conn);inti=Convert.ToInt32(cmd.ExecuteScalar());conn.Close();if(i>0)returntrue;elsereturnfalse;}publicstaticboolCheckAdmin(stringadminNum,stringadminPwd)//验证管理员用户{SqlConnectionconn=DBCon();conn.Open();SqlCommandcmd=newSqlCommand("selectcount(*)fromAdminwhereadminNum='"+adminNum+"'andadminPwd='"+adminPwd+"'",conn);inti=Convert.ToInt32(cmd.ExecuteScalar());conn.Close();if(i>0)returntrue;elsereturnfalse;}publicstaticstringGetTier(stringsql)//执行sql语句并获取结果中首行首列的值{SqlConnectionconn=DBCon();conn.Open();SqlCommandcmd=newSqlCommand(sql,conn);SqlDataReadersdr=cmd.ExecuteReader();sdr.Read();//读取一条记录stringtier=sdr[0].ToString();//获取首列的值conn.Close();returntier;}publicstaticDataTableGetRows(stringsql)//执行sql语句,将结果填充到某个表中并返回表中所有数据{DataSetds;SqlConnectionconn=DBCon();conn.Open();SqlDataAdaptersda=newSqlDataAdapter(sql,conn);ds=newDataSet();sda.Fill(ds);conn.Close();returnds.Tables[0];}}上传文件与视频转换类公共类FileOperation.cs实现了不同名上传文件的功能,OperateMethod.cs则进行对上传视频的转换格式操作。FileOperation.cs关键代码如下:publicstaticstringGetAFileNameString(stringstrUserSeqID,stringstrFileNameTitle)//得到一个不重复的文件名(年月日_时分秒_微秒_UserSeqID){stringstrTemp,strYear,strMonth,strDay,strHour,strMinute,strSecond,strMillisecond;DateTimedt=DateTime.Now;strYear=dt.Year.ToString();strMonth=(dt.Month>9)?dt.Month.ToString():"0"+dt.Month.ToString();strDay=(dt.Day>9)?dt.Day.ToString():"0"+dt.Day.ToString();strHour=(dt.Hour>9)?dt.Hour.ToString():"0"+dt.Hour.ToString();strMinute=(dt.Minute>9)?dt.Minute.ToString():"0"+dt.Minute.ToString();strSecond=(dt.Second>9)?dt.Second.ToString():"0"+dt.Second.ToString();strMillisecond=dt.Millisecond.ToString();strTemp=strYear+strMonth+strDay+"_"+strHour+strMinute+strSecond+"_"+strMillisecond+"_"+strUserSeqID.Trim()+"_"+strFileNameTitle;//配置文件名returnstrTemp;}OperateMethod.cs关键代码如下:publicstaticboolChangeVideoType(stringfileName,stringplayFile,stringimgFile)//转换视频格式(需要转换的的视频路径、视频转换后保存的路径、视频抓图后保存的路径){stringffmpeg=System.Web.HttpContext.Current.Server.MapPath("~/")+ffmpegtool;//获取视频转换工具的路径stringName=System.Web.HttpContext.Current.Server.MapPath("~/")+upFile+"/"+fileName;//获取需要转换的视频路径if((!System.IO.File.Exists(ffmpeg))||(!System.IO.File.Exists(Name)))returnfalse;stringflvFile=playFile;//获取视频转换后需要保存的路径Processpss=newProcess();//新建一个进程,使用该进程运行转换工具ffmpegpss.StartInfo.CreateNoWindow=false;pss.StartInfo.FileName=ffmpeg;pss.StartInfo.Arguments="-i"+Name+"-ab128-ar22050-qscale6-r29.97-s"+widthOfFile+"x"+heightOfFile+""+flvFile;try{pss.Start();while(!pss.HasExited)continue;CatchImg(Name,imgFile);//获取视频图片System.Threading.Thread.Sleep(4000);if(!File.Exists(imgFile))//如果视频图片存在,则将其拷贝到images文件夹中{File.Copy(System.Web.HttpContext.Current.Server.MapPath("../")+"images\\default.gif",imgFile);}returntrue;}catch{returnfalse;}}css样式、主题与模版css样式实现了导航的外观,主题使网站中所有GridView控件拥有相同的外观,模版的使用使各模版块具有相同的风格。css样式关键代码如下:.left//导航栏左半框的样式{background-image:url(../images/left.gif);height:40px;width:2px;}.line//导航栏中按钮分割线的样式{background-image:url(../images/line.gif);width:2px;height:40px;}.student//学子在线模版导航栏上方图片样式{background-image:url(../images/student.gif);}.teacher//教师空间模版导航栏上方图片样式{background-image:url(../images/teacher.gif);}.manager//管理员空间模版导航栏上方图片样式{background-image:url(../images/manage.gif);}.student_current//点击前导航栏按钮样式{background-image:url(../images/s.gif);width:110px;height:40px;}.student_current:hover//光标放到导航栏按钮上时按钮样式{background-image:url(../images/s_hover.gif);}.student_end//点击后导航栏按钮样式{background-image:url(../images/s_end.gif);width:100px;height:40px;}.right//导航栏右半框的样式{background-image:url(../images/right.gif);width:2px;}a:link//鼠标点击时链接样式{text-decoration:none;color:Silver}a:active//超级链接初始状态{text-decoration:blink;}a:hover//鼠标放上去时链接样式{text-decoration:none;color:Red}a:visited//访问过后链接样式{text-decoration:none;color:Orange}主题的使用本系统大部分数据呈现主要通过GridView控件实现,通过主题思想可达到统一GridView控件的目的。主题的设计与实现主要通过在Web.config中引入主题“myTheme”,并在myTheme中添加皮肤文件“SkinFile.skin”,在该皮肤文件中添加GridView样式设置,设置完毕该样式将作用于系统中所有GridView控件。Web.config关键代码如下:<system.web><pagestheme="myTheme"/>//添加主题myTheme</system.web>SkinFile.skin关键代码如下:<asp:GridViewrunat="server">//GridView整体样式设置<AlternatingRowStyleBackColor="White"/><EditRowStyleBackColor="#2461BF"/><FooterStyleBackColor="#507CD1"Font-Bold="True"ForeColor="White"/><HeaderStyleBackColor="#507CD1"Font-Bold="True"ForeColor="White"/><PagerStyleBackColor="#2461BF"ForeColor="White"HorizontalAlign="Center"/><RowStyleBackColor="#EFF3FB"/><SelectedRowStyleBackColor="#D1DDF1"Font-Bold="True"ForeColor="#333333"/><SortedAscendingCellStyleBackColor="#F5F7FB"/><SortedAscendingHeaderStyleBackColor="#6D95E1"/><SortedDescendingCellStyleBackColor="#E9EBEF"/><SortedDescendingHeaderStyleBackColor="#4870BE"/></asp:GridView>模版本系统以蓝色为基调,体现教学平台的沉稳、理智、准确与严谨的同时,又不流于古板沉闷,不容易造成视觉疲劳,有利于维持学生的学习热情。本系统有三个模版页,分别为学子在线、教师空间与管理员空间。学子在线如下图所示:学子在线模版教师空间如下图所示:教师空间模版管理员空间如下图所示:管理员空间模版系统实现本系统分为四个模块,分别为通用模块、学子在线、教师空间、管理员空间。在实现过程中,基本按照分模块实现的方式实现。所有用户可在通用模块中查看平台最新新闻、最新帖子、登录系统。在学子在线,学生可进行在线测试、查看考试结果、进行提问、下载资源。教师可在教师空间进行课件管理、出题、答疑、查看学生考试结果。学生与教师均可从相应的模块进入在论坛并进行发帖回帖操作。管理员在管理员空间可进行班级管理、帖子管理、课程管理、用户管理以及班级课程管理。通用模块进入首页运行页面Default.aspx,进入系统公共模块,如下图4.5所示:系统公共模块页在系统公共模块页面中,系统通过数据库查询操作将最新新闻信息与论坛帖子信息分别绑定到两个BulletedList控件上,实现关键代码如下:protectedvoidPage_Load(objectsender,EventArgse){stringstrNews="selecttop5ID,titlefromBulletinorderbyIDdesc";//获取最新5条新闻生成列表DataTableNews=BaseClass.GetRows(strNews);blNews.DataSource=News;blNews.DataTextField="title";blNews.DataValueField="ID";blNews.DataBind();stringstrPost="selecttop5postId,threadfromPostorderbypostIddesc";//获取最新5条帖子生成列表DataTablePost=BaseClass.GetRows(strPost);blPost.DataSource=Post;blPost.DataTextField="thread";blPost.DataValueField="postId";blPost.DataBind();}protectedvoidblNews_Click(objectsender,BulletedListEventArgse)//点击新闻列表项时跳转到该新闻具体信息页面{stringnewsId=blNews.Items[e.Index].Value.ToString();Response.Redirect("News.aspx?ID='"+newsId+"'");}查看新闻在系统公共模块页面中,点击NEWS公告栏中某个新闻链接,进入该新闻具体信息页面,如下图所示:新闻具体信息页新闻具体信息页面通过一个两个Lable填充新闻标题与新闻发布时间信息,将新闻内容呈现在一个TextBox中,其实现关键代码如下protectedvoidPage_Load(objectsender,EventArgse){id=Request.QueryString["ID"].ToString();//从前台跳转过程中获取所要显示的新闻的编号stringstrNews="select*fromBulletinwhereID="+id+"";//从数据库中读取该新闻具体信息SqlConnectionconn=BaseClass.DBCon();conn.Open();SqlCommandcmd=newSqlCommand(strNews,conn);SqlDataReadersdr=cmd.ExecuteReader();if(sdr.Read()){lblTitle.Text=sdr["title"].ToString();lblTime.Text=sdr["issuanceDate"].ToString();TextBox1.Text=sdr["contents"].ToString();}}登录页面用户点击新闻具体信息页或系统公共模块页中的“登录”链接,可进入登录页面,在该页面中,使用一个DropDownList实现用户身份列表,两个TextBox实现账号密码的呈现,登录页面如下图所示:登录页面当用户点击“登录”按钮进行登录操作时,系统验证用户该用户信息,若用户信息正确,将跳转到相应的模块页,其关键代码如下:protectedvoidbtnLogin_Click(objectsender,EventArgse){if(this.ddlStatus.SelectedValue=="学生"){if(BaseClass.CheckStudent(txtNum.Text.Trim(),txtPwd.Text.Trim()))//判断是否学生用户{Session["ID"]=txtNum.Text.Trim();Response.Redirect("student/Default.aspx");}else{Response.Write("<script>alert('您不是学生或者账户和密码错误');location='Login.aspx'</script>");}}if(this.ddlStatus.SelectedValue=="教师")//判断是否教师用户{if(BaseClass.CheckTeacher(txtNum.Text.Trim(),txtPwd.Text.Trim())){Session["teacher"]=txtNum.Text.Trim();Response.Redirect("teacher/Default.aspx");}else{Response.Write("<script>alert('您不是教师或者账户和密码错误');location='Login.aspx'</script>");}}if(this.ddlStatus.SelectedValue=="管理员")//判断是否管理员{if(BaseClass.CheckAdmin(txtNum.Text.Trim(),txtPwd.Text.Trim())){Session["admin"]=txtNum.Text.Trim();Response.Redirect("admin/Default.aspx");}else{Response.Write("<script>alert('您不是管理员或者账户和密码错误');location='Login.aspx'</script>");}}}学子在线进入首页在登录页面中以学生身份登录,进入学子在线首页,学子在线首页如下图所示:学子在线首页学子在线首页默认显示我的课程表格,系统将课程表格填充到一个GridView中呈现,所显示的课程是该学生所在班级所指定的课程,课程表格的实现关键代码如下:protectedvoidPage_Load(objectsender,EventArgse){stringstuId=Session["ID"].ToString();stringstr="selectCourse.courseId,courseName,teacherNamefromCourseinnerjoinTeacheronTeacher.teacherNum=Course.teacherIdinnerjoinClassCourseonCourse.courseId=ClassCourse.courseIdinnerjoinClassonClass.classId=ClassCourse.classIdinnerjoinStudentonStudent.classId=Class.classIdwhereStudent.studentNum='"+stuId+"'";//从数据库中获取该学生用户所选修的课程的相应信息GridView1.DataSource=BaseClass.GetRows(str);GridView1.DataKeyNames=newstring[]{"courseId"};GridView1.DataBind();}在线测试在学子在线首页中点击“在线测试”,进入选择考试科目页面,该页面使用一个DropDownList实现考试科目下拉列表,所显示的考试科目是该学生所在班级所有的课程,选择考试科目页面如下图所示:选择考试科目页面在选择考试科目页面中,点击“开始考试”按钮时系统判断该学生是否参加过所选课程的考试或者所选课程是否存在试题,其实现关键代码如下:protectedvoidPage_Load(objectsender,EventArgse){if(!IsPostBack){stuNum.Text=Session["ID"].ToString();SqlConnectionconn=BaseClass.DBCon();conn.Open();SqlCommandcmd=newSqlCommand("selectstudentName,studentSexfromStudentwherestudentNum='"+stuNum.Text+"'",conn);SqlDataReadersdr=cmd.ExecuteReader();if(sdr.Read()){stuName.Text=sdr["studentName"].ToString();stuSex.Text=sdr["studentSex"].ToString();Session["name"]=stuName.Text;Session["sex"]=stuSex.Text;}//显示该学生基本信息sdr.Close();ddlKM.Items.Add("");SqlCommanddcmd=newSqlCommand("selectcourseNamefromCourse",conn);SqlDataReaderdr=dcmd.ExecuteReader();while(dr.Read()){ddlKM.Items.Add(dr["courseName"].ToString());}//获取课程名称并添加到下拉列表中dr.Close();conn.Close();}}protectedvoidButton1_Click(objectsender,EventArgse)//点击“开始考试”按钮时触发事件{stringstuID=Session["ID"].ToString();stringstuKM=ddlKM.SelectedItem.Text;SqlConnectionconn=BaseClass.DBCon();conn.Open();stringstr="selectcourseIdfromCoursewherecourseName='"+stuKM+"'";stringcourseId=BaseClass.GetTier(str);Session["courseId"]=courseId;SqlCommandcmd=newSqlCommand("selectcount(*)fromScorewherestudentId='"+stuID+"'andcourseId='"+courseId+"'",conn);inti=Convert.ToInt32(cmd.ExecuteScalar());//判断该学生是否参加过所选择课程的考试if(i>0)Response.Write("<script>alert('你已经参加过此科目的考试了!')</script>");else{cmd=newSqlCommand("selectcount(*)fromTest,CoursewhereTest.courseId=Course.courseIdandCourse.courseName='"+stuKM+"'",conn);intn=Convert.ToInt32(cmd.ExecuteScalar());//判断所选择的课程是否有相应考试试题if(n>0){cmd=newSqlCommand("insertintoScore(studentId,courseId)values('"+stuID+"','"+courseId+"')",conn);cmd.ExecuteNonQuery();conn.Close();Session["stuKM"]=stuKM;Response.Redirect("../student/StartExam.aspx");//若有试题则跳转到开始考试页面}else{Response.Write("<script>alert('此科目没有考试题目!')</script>");return;}}}选择考试科目“数据结构”后点击“开始考试”,进入在线试题页面(如下图),该页面利用Panel实现试题呈现部分,利用script语句实现考试计时功能。在线试题页在线试题页中所显示的试题由1个Panel中的多个Literal组成,每个Literal放置一道试题,试题默认从数据库中随机抽取10道。试题显示的关键代码如下:protectedvoidPage_Load(objectsender,EventArgse){inti=1;SqlConnectionconn=BaseClass.DBCon();conn.Open();SqlCommandcmd=newSqlCommand("selecttop10*fromTestwherecourseId='"+Session["courseId"].ToString()+"'",conn);//从数据库随即抽取10道试题SqlDataReadersdr=cmd.ExecuteReader();while(sdr.Read())//如果能读到数据,就新建一个Literal存放试题数据{Literallittxt=newLiteral();Literallitti=newLiteral();RadioButtonListrbl=newRadioButtonList();rbl.ID="rbl"+i.ToString();littxt.Text=i.ToString()+"、"+Server.HtmlEncode(sdr["testTopic"].ToString())+"<br><Blockquote>";litti.Text="</Blockquote>";rbl.Items.Add("A."+Server.HtmlEncode(sdr["testAns1"].ToString()));rbl.Items.Add("B."+Server.HtmlEncode(sdr["testAns2"].ToString()));rbl.Items.Add("C."+Server.HtmlEncode(sdr["testAns3"].ToString()));rbl.Items.Add("D."+Server.HtmlEncode(sdr["testAns4"].ToString()));rbl.Font.Size=11;for(intj=1;j<=4;j++){rbl.Items[j-1].Value=j.ToString();}Ans+=sdr[7].ToString();//获取数据库中正确答案属性列的值Session["Ans"]=Ans;Panel1.Controls.Add(littxt);Panel1.Controls.Add(rbl);Panel1.Controls.Add(litti);i++;testNum++;}sdr.Close();conn.Close();}在线试题页中考试计时功能由前台页面中javascript语言控制实现,若页面打开时间超过设置的时间,考卷将自动提交。计时功能实现关键代码如下:<scriptlanguage="javascript"type="text/javascript">varsec=0;varmin=0;varhou=0;flag=0;idt=window.setTimeout("Is();",1000);functionIs()//{sec++;if(sec==60){sec=0;min+=1;}if(min==60){min=0;hou+=1;}document.getElementById("lblTime").innerText=min+"分"+sec+"秒";idt=window.setTimeout("Is()",1000);if(min==2)document.getElementById("btnSubmit").click();}</script>在在线试题页中点击“提交考卷”按钮,获取正确答案与学生提交的答案进行比对,自动生成考试结果,填充到相应的Label中,考试结果页面如下图所示:考试结果页上图中自动生成分数功能实现关键代码如下:protectedvoidPage_Load(objectsender,EventArgse){stringRans=Session["Ans"].ToString();//获取正确答案intj=Convert.ToInt32(Request.QueryString["BInt"]);stringSans=Session["Sans"].ToString();//获取学生答案intscore=0;for(inti=0;i<j;i++)//若学生答案与正确答案匹配,每题加2分{if(Rans.Substring(i,1).Equals(Sans.Substring(i,1)))score+=2;}this.result.Text=score.ToString();stringstrsql="updateScoresetscore='"+score.ToString()+"'wherestudentId='"+Session["ID"].ToString()+"'andcourseId='"+Session["courseId"].ToS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 汽车维护与保养 课件全套 苏占华 项目1-5 汽车维护基础认知 - 汽车整车维护操作规范
- 《中东战争》课件
- 2024年采购工作计划书报告
- 2024幼儿园教师个人教育科研工作计划
- 农工办工作的计划范文
- 4年度消防安全工作计划
- 月工作总结和工作目标与计划
- 人事部个人工作总结与计划
- ★学校工作计划
- 《施工前准备工作》课件
- 心电监护技术
- 垄断行为的定义与判断准则
- 30题工程造价岗位常见面试问题含HR问题考察点及参考回答
- 圆的面积教学反思优点和不足【3篇】
- 材料化学专业大学生职业生涯规划书
- 乳品加工工(中级)理论考试复习题库(含答案)
- 《教材循环利用》课件
- 2023水性环氧树脂涂层钢筋
- 污水处理药剂采购投标方案(技术方案)
- 餐费补助申请表
- 国开《Windows网络操作系统管理》形考任务2-配置本地帐户与活动目录域服务实训
评论
0/150
提交评论