基于web在线作业提交批改系统.docx
《基于web在线作业提交批改系统.docx》由会员分享,可在线阅读,更多相关《基于web在线作业提交批改系统.docx(26页珍藏版)》请在冰豆网上搜索。
基于web在线作业提交批改系统
引 言
在国内,从学生作业管理系统的管理情况来看,在现代化教育技术模式下,使用计算机提交作业已相当普及。
但能够合理使用硬件资源,有条理地管理好学生作业信息的却少之又少。
通过网络的了解,已经有不少高等学校已经推出了自己的作业上传系统。
但是由于实现技术有限,系统的功能不完善,而且存在很多缺陷。
例如:
查询不全面、容易导致系统不稳定,数据库缺乏管理,数据缺乏更新,而且容易丢失。
由于这些缺点造成用户对系统不信任,于是又回到传统的“拷贝、粘贴”方式。
系统就荒废了。
本文阐述了如何运用ASP.NET技术构建一个网上作业提交和批改系统的过程,
描述了B/S模式的概念及特点,ASP.NET的优越性及对通用作业批改系统的分析,该系统主要完成了作业的上传,教师对作业的批改,系统得稳定性高,操作简单。
基于web在线作业提交批改系统
学生:
王禹,工程学院
指导老师:
李文华,计算机科学学院
1选题背景
近些年来互联网迅速发展,使得不同地点的人们在任何时间都可以轻松获取自己需要的信息,同时互联网的出现极大地推动了教育事业的发展,特别是ASP.NET技术,以其交互性、动态性的特点,大大扩展了互联网的应用范围,互联网的广泛应用也深刻的影响了教育教学领域。
但是现在的作业提交和批改还都处于过去的老样子,教师布置下作业,学生做在作业本上,然后再交给教师,教师改过以后发还给学生,步骤繁琐,效率低。
我们要运用ASP.NET技术构建一个网上作业提交批改系统,以其改变过去传统的学生递交作业的方式,教师批改作业的方式,让学生递交作业更加灵活。
这个系统在学校中可以被广泛应用的基于WEB的学生电子作业提交系统,虽然它的系统规模不是很庞大,但功能完善后可以大大减轻教师的工作量和学生的学习任务,极大的提高了教师的工作效率和学生的学习效率。
网络化教育代表了教育改革的一个发展方向,已经成为现代教育的一个特征,并对教育的发展形成新的推动力。
通过Internet/Intranet来实现网上作业提交,是现代教育技术的一个具体实现,具有很重要的现实意义。
可以实现学生在线提交作业的无纸化管理,可以有效利用校园网的软硬件资源,使其发挥最大效力,更好的为学校的教学、科研、管理服务。
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.2B/S体系结构
B/S模式,即Browser/Server(浏览器/服务器)模式,是随着Internet技术的兴起,对C/S模式的一种变化或者改进的结构。
B/S模式主要利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、javascript、…)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大的功能。
与C/S模式相比,它大大简化了客户端,客户端只要装上操作系统、网络协议软件以及浏览器即可。
这时的客户机成为瘦客户机,而服务器端则集中了几乎所有的应用逻辑,开发、维护等工作也都集中在服务器端。
同时,对应用软件进行升级时,只需要更新服务器端的软件就行了,所有的客户端只有浏览器,根本不需要做任何维护升级的工作量。
所有的操作系统只需要针对服务器进行,从而减轻了系统维护与升级的成本与工作量,使用户的总体拥有成不(TCO)大大降低。
a)传统的三层应用体系
传统的三层体系结构,克服了二层体系结构的一些限制,这个三层体系结构将用户界面层与业务层分开,用户界面放在客户端,而将业务逻辑层和数据存储放在中间的应用服务器上。
三层体系结构有了一些改进。
中间层服务器通过重用那些跨越多个客户的昂贵资源来改进可伸缩性,可伸缩性的改进带来了性能的改进,这个体系结构也改进了安全和应用管理。
虽然三层体系结构消除了二层体系结构的一些缺陷,但是它也有不足之处:
复杂性、应用缺乏可移植性、提供商的不兼容性及与WEB的不兼容性。
b)WEB的三层体系结构
随着因特网的高速发展,www的广泛应用,传统的三层应用体系结构的局限越来越明显,这时基于Web的三层体系结构[[32](如图3.3所示)得到了广泛的应用。
要组成三层应用体系结构少不了要求采用中间件。
中间件可以说是开发服务程序和管理这些服务程序运行的工具,是三层体系结构中一个非常重要的部分,它直接关系到整个应用系统的好坏,甚至成功与失败。
基于WEB的三层应用体系结构显示以下优点:
①优化了系统结构:
将系统分为三层(或多层),业务逻辑放在应用服务层,软件的维护集中在应用服务层,客户端的维护就相对简单多了,有利于软件维护及系统管理。
②提高了应用系统的安全性:
将客户端与数据库隔离起来,客户端无权限直接访问数据库,有利于安全管理,可有效防止恶意攻击。
还可以利用中间件的安全管理特性进一步加强权限控制管理。
③便于业务(事务)级权限管理:
三层结构应用中可划分出业务(事务)级权限,一种业务一个服务程序(Service),利用中间件的安全管理对其进行访问控制。
数据库的权限只分为对表(或表中的列)的插入(Insert),删除(Delete)、修改(Update)、查询(select)权限,它属于数据库表级的权限,而实际应用中往往以业务(事务)为主线,也就要求对业务(事务)实现权限控制,三层结构应用可以方便地对客户端实现事务权限管理控制。
业务(事务)级权限控制的引入丰富和方便了权限控制与管理,实际上两层应用体系结构中可通过存储过程类似地实现业务(事务)级权限控制,但采用三层应用体系结构实现业务(事务)级权限控制更加灵活、方便、实效。
④减少网络数据流量和提高数据库响应速度:
基于Web三层应用体系结构中,应用服务层的引入有效地解决了网络瓶颈和数据库连接数过多引起数据库性能下降的问题。
应用服务层往往有多台服务器,可有效地解决客户机访问服务层瓶颈。
应用服务器与数据库服务器(物理距离很近)可方便地采用宽带网连接,不会产生与数据库服务层网络瓶颈。
⑤提高系统性能:
基于web三层应用体系结构能更好地调整应用体系,还可利用中间件的特点来选择路由、平衡负载,提高整个系统的性能。
总的来说,三层应用体系结构使应用系统的性能、安全性、扩展性有了很大的提高,也方便了系统的维护和管理。
图1B/S结构示意图
2.3关系数据库管理系统
关系数据库所使用关系语言班的特点是高度非过程化,即用户只需说明"做什么"而不必说明"怎么做"。
用户不必请求数据库管理员为其建立特殊的存取路径,存取路径的选择是由DBMS(数据库管理系统)自动完成的。
这也是关系数据库的主要优点之一。
早期关系操作有两种表示方式:
关系代数与关系演算。
理论上,关系代数和关系演算被证明是完全等价的。
关系代数通过对关系的运算来表达查询,其操作对象是关系,操作结果亦为关系。
全关系系统十二准则:
一个关系形的关系数据库系统必须能完全通过它的关系能力来管理数据库;关系数据库系统的所有信息都应该在逻辑一级上用表中的值这一种方法显式的表示;依靠表名、主码和列名的组合,保证能以逻辑方式访问关系数据库中的每个数据项;全关系的关系数据库系统支持空值的概念,并用系统化的方法处理空值;数据库的描述在逻辑级上和普通数据采用同样的表述方式;一个关系数据库系统可以具有几种语言和多种终端访问方式,但必须有一种语言,它的语句可以表示为严格语法规定的字符串,并能全面的支持各种规则;所有理论上可更新的视图也应该允许由系统更新;系统应该对各种操作进行查询优化;无论数据库的数据在存储表示或存取方法上作任何变化,应用程序和终端活动都保持逻辑上的不变性;当对基本关系进行理论上信息不受损害的任何改变时,应用程序和终端活动都保持逻辑上的不变性;关系数据库的完整性约束条件必须是用数据库语言定义并存储在数据字典中的;关系数据库系统在引入分布数据或数据重新分布时保持逻辑不变;如果一个关系数据库系统具有一个低级语言,那么这个低级语言不能违背或绕过完整性准则。
考虑到性能和可靠性方面的因素,一般应用程序都使用带有"客户/服务器数据库引擎"的关系数据库管理系统〔如MicrosoftSQLServes,Oracle等),MicrosoftSQLServer2000能提供超大型系统所需的数据库服务,可在多个用户之间有效地分配可用资源,它不仅是一个巨大的数据容器,更是一个非常强大的数据处理工具而且可以很好地与ASP.NET合作,因此是本系统数据库服务器的理想选择。
在线作业提交批改系统在基于B/S的三层模式基础之上利用ASP.NET和ADD数据访问对象技术进行开发。
学生只需在客户机上安装浏览器并连上Internet就可使用本系统中的上传下载作业系统。
3需求分析
系统包括:
管理员、学生、教师管理等几个主要模块
①管理员管理:
完成对教师,学生的管理
②教师管理:
教师需要用户名和口令登录;在学生提交作业前,需要教师定义课程:
一个教师可以定义多门课程,一门课可能要提交多次作业,这些信息由教师定义,并输入每门课的学生基本信息(序号、学号、姓名);教师可以布置作业,
作业提交以WORD文档提交,对于每次作业教师可以指定最后提交期限,超过期限不能再提交,在期限前可以多次提交,但覆盖前次提交;
教师可以浏览提交的作业,并可以给出成绩或修改成绩,每次作业记一次成绩,系统可以自动计算总成绩和平均成绩;可以按学号或成绩排序后导出到Excel表;
每门课提交的作业,存放在一个文件夹下,以课程名命名,如:
“数据库原理及应用”,每个作业的命名为:
“专业班级_序号_姓名_次数.doc”,如:
计本10601_12_张三_01.doc”,而且支持教师将文件下载到本地,便于刻录光盘。
③学生管理:
学生进入网站后,选择用户名和输入口令后登录,学生登录后可以浏览和下载作业内容。
4系统设计
4.1系统模块结构图
系统结构模块主要分三大模块,分别是管理员模块、教师模块和学生模块,其结构如图2所示。
图2系统功能图
4.2系统设计的基本原则
本系统的目标是在Internet/Intranet上来实现网上作业提交,可以实现学生在线提交作业的无纸化管理,可以有效利用校园网的软硬件资源,使其发挥最大效力,更好的为学校的教学、科研、管理服务,随时随地的可以让学生联机操作提交。
系统采用了模块化的设计方法:
选择了面向对象的、易于扩展的ASP.NET编程语言环境使用MSSQLServer2000做为数据库平台。
本系统整体上可划分为若干个功能模块。
系统安全可靠也是一个重要的设计原则。
本系统的配置是采用WindowsXP作为网络操作系统,MSSQLServer2000作为数据库服务器。
所以操作系统WindowsXP的安全防护机制及数据库MSSQLServer的安全机制是本系统采用的安全防护方式。
4.3功能模块设计
在线作业提交批改系统从功能上可分为教师管理程序、学生管理程序和管理员管理程序,教师管理程序部分主要实现学生信息的添加、课程信息的添加、上传下载作业和评定成绩的管理,学生管理程序部分主要实现了学生对作业的下载和上传。
管理员具有系统的完全权限;管理员具有添加和删除教师的权限。
系统主要功能模块具体描述如下:
4.3.1教师模块
主要包括查看课程模块,查看学生模块,添加课程模块,添加或删除学生到指定的课程模块,查看作业模块,查看成绩模块。
查看课程模块,主要功能:
查看教师自己所定义的课程。
查看学生模块,主要功能:
查看教师添加的所有学生的详细信息,还可以修改学生信息,删除学生信息。
添加课程模块,主要功能:
添加新的课程,并在服务器端添加相应的文件夹。
添加或删除学生到指定的课程模块,主要功能:
可以将学生任意的添加到指定的课程,或从指定的课程删除学生。
查看作业模块,主要功能:
查看学生所提交的作业,并可以下载到本地电脑,便于刻录光盘。
查看成绩模块,主要功能:
查看系统经过教师给出的成绩,自动计算的总成绩、平均成绩,并能够导出到Excel表。
4.3.2管理员模块
主要包括教师管理,主要功能:
增加,修改,删除教师用户。
4.3.3学生模块
主要包括学生管理,主要功能:
查看教师布置的作业,并下载作业,完成作业后提交到服务器。
4.4数据库设计
利用SQLServer2000建立一个数据库data,包含有8个表。
(1)管理员信息表AdminList,目的用于验证管理员的身份,其字段如表1。
表1AdminList
(2)教师信息表TeacherList,用来存放教师信息,其字段如表2。
表2TeacherList
(3)学生信息表StudentList,用来存放学生信息,其字段如表3。
表3StudentList
(4)课程信息表CourseList,用来存放课程信息,其字段如表4。
表4CourseList
(5)作业次数表BusyworkTimeList,用来存储作业次数信息,其字段如表5。
表5BusyworkTimeList
(6)作业成绩表GradeList,用来存储作业成绩信息,其字段如表6。
表6GradeList
(7)教师课程对应表TMCList,存储教师和对应的课程信息,其字段如表7。
表7TMCList
(8)学生课程对应表SMCList,存储学生和对应的课程信息,其字段如表8。
表8SMCList
5系统实现
整个系统的结构如图3所示。
图3系统的目录图
5.1用户登录
用户登录分为三种选择:
教师用户登录、学生用户登录和管理员用户登录。
登录后分别进入不同的页面,其实现界面如图4所示。
图4登录页面
主要代码:
//教师用户登陆方法
publicvoidTeacherLogin(stringusername,stringuserpwd)
{
stringsql=@"selectTeacherIDfromTeacherListwhereUserName='"+username+"'andPassword='"+userpwd+"'";
SqlDataAccessDataAccess=newSqlDataAccess();
stringid=DataAccess.RunSql(sql);
if(Equals(id,""))
{
stringalert="用户名或密码不正确!
";
HttpContext.Current.Response.Write("alert('"+alert+"');");
}
else
{
stringsqlReturnName="selectTeacherNamefromTeacherListwhereTeacherID='"+id+"'";
SqlDataAccessaccess=newSqlDataAccess();
stringName=access.RunSql(sqlReturnName);
HttpContext.Current.Response.Cookies.Add(newHttpCookie("TeacherID",id));
HttpContext.Current.Request.Cookies["TeacherID"].Expires=DateTime.Now.AddHours
(1);
HttpContext.Current.Response.Cookies.Add(newHttpCookie("TeacherName",Name));
HttpContext.Current.Request.Cookies["TeacherName"].Expires=DateTime.Now.AddHours
(1);
HttpContext.Current.Response.Redirect("ViewCourse.aspx");
}
}
//管理员登陆方法
publicvoidAdminLogin(stringusername,stringuserpwd)
{
stringsql=@"selectAdminIDfromAdminListwhereUserName='"+username+"'andPassword='"+userpwd+"'";
SqlDataAccessDataAccess=newSqlDataAccess();
stringid=DataAccess.RunSql(sql);
if(Equals(id,""))
{
stringalert="用户名或密码不正确!
";
HttpContext.Current.Response.Write("alert('"+alert+"');");
}
else
{
HttpContext.Current.Response.Cookies.Add(newHttpCookie("AdminID",id));
HttpContext.Current.Request.Cookies["AdminID"].Expires=DateTime.Now.AddHours
(1);
HttpContext.Current.Response.Redirect("Admin.aspx");
}
}
//学生用户登陆方法
publicvoidStudentLogin(stringusername,stringuserpwd)
{
stringsql=@"selectStudentIDfromStudentListwhereNumber='"+username+"'andPassword='"+userpwd+"'";
SqlDataAccessDataAccess=newSqlDataAccess();
stringid=DataAccess.RunSql(sql);
if(Equals(id,""))
{
stringalert="用户名或密码不正确!
";
HttpContext.Current.Response.Write("alert('"+alert+"');");
}
else
{
stringsqlReturnName="selectNamefromStudentListwhereStudentID='"+id+"'";
SqlDataAccessaccess=newSqlDataAccess();
stringName=access.RunSql(sqlReturnName);
HttpContext.Current.Response.Cookies.Add(newHttpCookie("StudentID",id));
HttpContext.Current.Request.Cookies["StudentID"].Expires=DateTime.Now.AddHours
(1);
HttpContext.Current.Response.Cookies.Add(newHttpCookie("StudentName",Name));
HttpContext.Current.Req