基于ASP作业提交与批改系统配套翻译(全文).doc
ASP作业提交与批改系统设计与实现(源代码+论文)
收藏
资源目录
压缩包内文档预览:
编号:438858
类型:共享资源
大小:2.22MB
格式:RAR
上传时间:2015-06-03
上传人:小***
认证信息
个人认证
林**(实名认证)
福建
IP属地:福建
20
积分
- 关 键 词:
-
asp
作业
功课
提交
批改
系统
设计
实现
源代码
论文
- 资源描述:
-
ASP作业提交与批改系统设计与实现(源代码+论文),asp,作业,功课,提交,批改,系统,设计,实现,源代码,论文
- 内容简介:
-
作业提交系统目 录引言3第一部分 问题定义及内容简介41.1问题的定义41.2 内容简介4第二部分 研究背景与研究意义52.1 研究背景52.2 研究意义5第三部分 开发平台与语言简介63.1 IIS 简介63.2 ASP 简介63.3 ADO简介63.4 Microsoft SQL Server 2000简介7第四部份 系统需求分析及可行性分析84.1 系统需求分析84.1.1 系统功能体系图84.1.2 目标84.1.3 用户的特点84.1.4 假定与约束84.1.5 基本功能94.1.6 对性能的规定94.1.7 限制条件94.2 系统难点分析9第五部份 总体设计115.1 数据库设计115.1.1 数据库图115.1.2 数据库的约束与关系125.2 特殊功能的原理125.2.1 管理员添加专业班级的处理原理135.2.2 管理员添加教师管理员的原理135.2.3 教师发布修改作业的原理135.2.4 教师发布修改成绩的原理135.2.5 教师批量下载作业的原理135.2.6 学生上传下载作业的原理135.2.7 实现回车换行与空格的原理135.2.8 作业目录的处理原理135.3 主要功能的界面及编码145.3.2密码找回界面与编码185.3.3 DataGrid的编码设计225.3.4 管理员添加用户的界面与编码235.3.5 教师发布修改作业的界面与编码255.3.6 教师批量下载作业的界面与编码295.3.7 学生上传作业的界面与编码31第六部分 结束语33 本系统的优点33 本系统的不足之处及发展意见33 在系统设计与实现过程中的收获33第七部分 谢辞34第八部份 参考文献34参考书籍:34其它数据:34第九部份 附录35(附录一)建立数据库与表的SQL语句35(附录二)测试数据插入的SQL语句37引言作业提交系统2.0是基于b/s结构,在IIS平台上使用ASP与Microsoft SQL 2000开发的,主要目的是解决学校机房管理上机作业的问题。因为传统的对学生作业管理是在服务器上建立一个FTP服务器,然后对学生用户设置一个专门的帐号,只允许对作业进行上传,然后学生将作业上传到服务器里对应的班级文件夹下面,传统方式无法解决的问题有:不能防止学生乱上传作业,不能防止学生找错班级文件夹,不能对作业进行限制如大小,类型,上传时间等,教师布置作业要通过黑板写字,教师打分之后只能记在本子上,不能通过局域网发布出来让学生看,教师下载作业必须到服务器上拷贝。而这套系统正是出于这个目的,为了解决上面的问题而设计的。系统对于复杂的问题都采用程序的方式解决了。系统分了管理员、教师、学生用户,管理员须要的操作只是添加专业,添加班级,添加管理员或教师用户都是通过网页的形式展示出来。而教师无须向以前那样,只需要发布作业,对作业的要求进行限制,不必去服务器上建文件夹来存放你的作业,并且程序自动创建目录。下载作业也只须要点一下就会将作业全部打包下载回来,在局域网内的任何一台计算机都可以进行各种操作。学生则再也不会将作业上传错,上传到别的班级中,也不允许上传非法的文件,对一次未上传完成的作业也可以先上传后下节课再下载回来接着做。系统用程序的方式解决了那些非常复杂的操作,比如对文件夹的创建等,所有的角色只需要简单的几步操作就可以完成,非常简单实用。第一部分 问题定义及内容简介1.1问题的定义解决传统的FTP服务器不能够满足作业上传的要求下:1教师发布作业必须到服务器上建立文件夹2教师发布作业由在黑板上写的形式改为在网页上写再发布3教师不能对作业进行限制如大小,类型,过期时间4教师下载作业的必须到服务器去下载改为在局域网内任何一台计算机都可以下载5教师无法发布成绩改为通过网页发布成绩6学生一次未完成的作业可以先上传再下载,完成之后再上传。7学生上传作业只须点一个按钮,无须选择要上传的目录1.2 内容简介通过网页的形式来完成作业提交的管理。首先讲述开发平台的特点,和所使用的开发语言的简介。再介绍研究的背景与意义并对系统进行需求分析与可行性分析,最后进行详细的设计。通过此文档,可以让读者了解作业上传系统的大至流程,对于其中的功能也有一定的了解,知道作者的实现原理及使用的方法。第二部分 研究背景与研究意义2.1 研究背景为学校各位老师提供了一个可靠的软件,更好的让学生提交作业。传统的手工操作方式,容易对自己身体疲劳,统计错误,且速度慢。这套系统可以提高管理效率和水平2.2 研究意义 网络化教育代表了教育改革的一个发展方向,已经成为现代教育的一个特征,并对教育的发展形成新的推动力。通过Internet/Intranet来实现网上作业提交,是现代教育技术的一个具体实现,具有很重要的现实意义。可以实现学生在线提交作业的无纸化管理,可以有效利用校园网的软硬件资源,使其发挥最大效力,更好的为学校的教学、科研、管理服务,随时随地的可以让学生联机操作提交。第三部分 开发平台与语言简介3.1 .NET 简介“.NET 是 Microsoft 的用以创建 XML Web 服务(下一代软件)平台,该平台将信息、设备和人以一种统一的、个性化的方式联系起来。” “借助于 .NET 平台,可以创建和使用基于 XML 的应用程序、进程和 Web 站点以及服务,它们之间可以按设计、在任何平台或智能设备上共享和组合信息与功能,以向单位和个人提供定制好的解决方案。” “.NET 是一个全面的产品家族,它建立在行业标准和 Internet 标准之上,提供开发(工具)、管理(服务器)、使用(构造块服务和智能客户端)以及 XML Web 服务体验(丰富的用户体验)。.NET 将成为您今天正在使用的 Microsoft 应用程序、工具和服务器的一部分,同时,新产品不断扩展 XML Web 的服务能力以满足您的所有业务需求。”.NET为开发人员提供了新的开发平台 (.NET框架) ,新的开发语言(ASP) ,新的开发工具 (Visual Studio .NET) ,新的开发方式 (Web Service) ;为普通用户提供了Windows CE、Windows XP、Stinger、Xbox、Tablet PC、.NET My Services、MSN等产品;为企业提供了bCentral。在未来,最终大多数流行的 Microsoft 软件应用程序包括 Office 和 Visual Studio .NET将开始与 XML Web 服务实现交互,并把它们的主要功能作为 XML Web 服务公开,以便其他开发人员可以利用。3.2 ASP 简介ASP(读作“csharp”)作为Microsoft的下一代面向对象的语言产品能够让开发人员在IIS平台上快速地建立大量的应用程序。按照微软给出的定义,asp是一种源自于c和c+的简单的、现代的、面向对象的和类型安全的程序设计语言。asp为程序员提供了开发飞速发展的Web应用程序所需的强大而灵活的功能。asp和Java的核心与c+比较有着相同的优势和局限,比起c+,asp将更容易被人们理解和接受,未来大量NET平台的应用将由ASP开发。 3.3 ADO.NET简介ADO.NET是对Microsoft ActiveX Data Objects (ADO)一个跨时代的改进,它提供了平台互用性和可伸缩的数据访问。由于传送的数据都是XML格式的,因此任何能够读取XML格式的应用程序都可以进行数据处理。事实上,接受数据的组件不一定要是ADO .NET组件,它可以是基于一个Microsoft Visual Studio的解决方案,也可以是任何运行在其它平台上的任何应用程序。ADO.NET 提供对 Microsoft SQL Server 等数据源以及通过 OLE DB 和 XML 公开的数据源的一致访问。数据共享使用者应用程序可以使用 ADO.NET 来连接到这些数据源,并检索、操作和更新数据。ADO.NET 有效地从数据操作中将数据访问分解为多个可以单独使用或一前一后使用的不连续组件。ADO.NET 包含用于连接到数据库、执行命令和检索结果的 .NET 数据提供程序。您可以直接处理检索到的结果,或将其放入 ADO.NET DataSet 对象,以便与来自多个源的数据或在层之间进行远程处理的数据组合在一起,以特殊方式向用户公开。ADO.NET DataSet 对象也可以独立于 .NET 数据提供程序使用,以管理应用程序本地的数据或源自 XML 的数据。3.4 Microsoft SQL Server 2000简介Microsoft SQL Server 2000是一个高性能的客户端/服务器结构的关系数据库管理系统(RDBMS,Relational Database Management System)。SQL Server 2000是为了支持高容量的事务处理(比如在线订购录入、存货目录、记帐或制造)以及数据仓库和决策支持系统(比如销售分析应用)而设计的。它运行在Microsoft Windows NT4或Microsoft Windows 2000 Server上基于intel处理器的网络。可以把SQL Server 2000作为一种个人桌面数据库系统安装在运行Window NT Workstation 4、Windows 2000 Professional、Windows98和Windows Millennium Edition(Me)的机器上。可以使用相同的CD来安装任何一个SQL Server 2000的服务器版本或个人版本。第四部份 系统需求分析及可行性分析4.1 系统需求分析4.1.1 系统功能体系图作业提交系统注册登录密码找回学生用户登录教师用户登录管理员用户登录查看成绩打包下载作业发布修改作业添加班级添加用户数据库管理上传作业下载作业查看作业发布修改成绩删除作业添加专业通用模板修改密码查看个人资料注销系统 4.1.2 目标完成一套网上的作业提交系统,免费提供给学校机房使用,将所有源代码公开,方便别人学习,也希望更多的人参与本系统的开发。4.1.3 用户的特点用户是机房管理员,对计算机技术比较了解,学校教师专业教师能很快熟悉系统的使用方法,非专业教师也能很快掌握,学校学生能很快学会使用系统。4.1.4 假定与约束 1如果压缩文件夹的功能不能解决,那么只有教师到服务器拷贝文件夹 2如果学校觉得系统不能满足学生作业上传的需要,那么将不能放在机房,供学生使用 3如果遇到一些技术问题无法解决,那么将会加大系统的开发周期 4如果此系统在离开学期之前都无法开发成功,那么也不能提供给机房使用。4.1.5 基本功能1学生注册2学生、教师、管理员密码找回功能3不同用户登录进入不同的界面4学生作业的查看5学生作业成绩的查看6学生作业上传7教师布置作业8教师删除作业9教师修改作业10教师发布成绩11教师修改成绩12教师下载作业13管理员添加教师用户14管理员添加管理员用户15管理员添加专业16管理员添加班级17个人资料的查看18个人密码的修改4.1.6 对性能的规定1要求系统支持Microsoft .NET Framework 1.1 2要求系统支持Microsoft SQL Server数据库3要求必须安装IIS4.1.7 限制条件1 学生不可以进行教师与管理员的页面2 教师也不可以进入管理员页面,还有学生页面3 管理员也不可以进行学生和教师面页4 每个学生登录进入之后只能看到自己班级的作业,不可以看到别的班级的作业5 每个教师登录只对自己发布的作业进行管理,不可以对别的教师发布的作业进行管理6 当学生注册时输入的学号必需与选定的班级匹配。7 不同的用户使用修改密码都只能修改自己的密码,无法修改他人的8 不同的用户使用个人数据功能时,也是只可以看到自己的信息不可以看到他们的信息9 学生上传作业的类型,大小,时间等,受到教师发布作业的约束4.2 系统难点分析本系统最大的难点是对作业的压缩及打包下载,因为是在WEB上,无法运行像winrar这样的压缩软件来进行文件夹的压缩,压缩的技术也不是我们现在能现写出来的,因为这个功能需要非常复杂的技术,但是我们可以引用别人开发出来的东西,上网查了很多的数据,找到一个SharpZipLib控件可以实现在线文件夹的压缩,而且他的源代码是开放的,可以在网站“/OpenSource/SharpZipLib/default.asp”中下载其最新版本。第五部份 总体设计5.1 数据库设计5.1.1 数据库图Admin表列名数据类型长度允许空Xuehaovarchar15Xingmingvarchar20pwvarchar30Pw_wentivarchar50Pw_daanvarchar50Emailvarchar20denglushuint4Class表列名数据类型长度允许空Class_namevarchar50Class_daihaovarchar15Student表列名数据类型长度允许空Xuehaovarchar15Xingmingvarchar20Pwvarchar30Pw_wentivarchar50Pw_daanvarchar50Emailvarchar20Denglushuint4banjidaihaovarchar15Teacher表列名数据类型长度允许空Xuehaoint4Xingmingvarchar20Pwvarchar30Pw_wentivarchar50Pw_daanvarchar50Emailvarchar20Denglushuint4zuoyeshuint4Zhuanye表列名数据类型长度允许空Ad_idint4mingchengvarchar30Zuoye表列名数据类型长度允许空Ad_idint4Zy_titlevarchar3Zy_contentText16Zy_xingmingvarchai10Zy_xuehaoInt4Zy_dateDatetime8Zy_wcdateDatetime8Zy_lujingvarchar50Zy_wenjianleixingvarchar10Zy_daxiaoInt4Zy_class_daihaoVarchar15Zy_chengjiText16注:创建数据库及表的SQL语句及各字段表示什么意思见(附录一)5.1.2 数据库的约束与关系管理员表与其它表无关系只是为了存放管理员的帐号与密码等数据教师表里的xuehao字段为主键用于存放老师的ID班级表里存放的是班级的全称与班级的代号学生表与班级表之间存在着外键约束,如果学生表里班级代号字段的值与班级表里面的班级代号值关键。专业表与其它表无关系作业表也是最重要的一个表它同时与二个表存在着外键约束,ZY_XueHao字段与教师的代号之间相关联,ZY_class与班级表里面班级代号相关联。其它各字段的值都是有一些非空的约束,详细情况请见(附录一中的备注)在新建数据库之后要插入了几条测试数据(见附录二)5.2 特殊功能的原理5.2.1 管理员添加专业班级的处理原理 以本系为例子,有十多个专业,当某个专业人数比较多时就会分成几个班,如图形图像一班,图形图像二班,ACCP一班,ACCP二班等,而且还分为2004级图形图像一班,2004级图像图像二班,2005级图形图像一班,2005级图形图像二班等。在程序中,首先应该添加专业,而把“图形图像一班”视为一个专业,“图形图像二班”视为一个专业。前面的“2004级”“2005级”当作年份。添加专业的时候不用只需要添加专业的名称,在添加班级的时候只须要选择年份和专业,再输入班级的代号就可以添加班级了。5.2.2 管理员添加教师管理员的原理管理员可以添加教师用户,教师用户必须由管理员添加,每次当管理员添加教师用户时就会在网站目录下的一个专门用于存放上传作业的目录(up)的根目录下以教师的姓名为目录名新建一个根目录。用于教师布置作业之后,学生上传作业的存放目录。5.2.3 教师发布修改作业的原理老师发布作业之后可以修改作业,而且二个功能都是使用的一个界面来完成,通过传递的一个参数来判断用户的操作是发布作业还是修改作业,如果是修改作业而取得一个ID值将数据库里的内容绑定到用户界面。(注:但是在修改作业的时候作业的班级与作业的标题设及到文件的目录所有修改时定为不可以修改)5.2.4 教师发布修改成绩的原理教师发布成绩或修改成绩的原理和教师发布修改作业的原理大至一样,都是使用一个页面来完成的,通过一个参数来判断用户的操作是发布还是修改。5.2.5 教师批量下载作业的原理教师批量下载作业是将学生上传后的作业全部打包成一个zip的压缩文件,然后从服务器上下载。因为这里面涉及到压缩文件的一些算法,非常复杂。所以我用使用了国外的一个压缩类来完成。下载地址:/OpenSource/SharpZipLib/default.asp5.2.6 学生上传下载作业的原理学生上传作业的时候,首先应该选择上传那科的作业。例:学生登录帐号200416140 密码snryang 班级代号是2004161 姓名“杨文兵”作业标题为“实用软件工程方法第一次作业”班级名通过查询班级表得到为“2004级WEB应用程序设计”。网站上传目录设为“C:inetpubwwwrootnxwszuoyeup” 作业的存置教师为“XXX”则学生上传作业的时候则会上传到“C:inetpubwwwrootnxwszuoyeupXXX2004级WEB应用程序设计实用软件工程方法第一次作业”这个目录下面,下载的时候也会在这个目录下面下载,上传的文件名为姓名加上教师布置作业时的扩展名。如果有重复上传则会覆盖原来上传的文件。5.2.7 实现回车换行与空格的原理使用到的页面有发布作业和修改作业和学生查看作业。(因为在发布作业的时候将回车转换成存入数据库这样在显示数据时才会显示换行,不然无法实现换行,空格也是必须换成“”。如果不进行字符的替换,则文本框中的回车与空格将会省去,存入数据库中,通过数据库显示到用户界面的时候就无法区分用户的换车和空格,格式不好看,所以在这里进行了简单的替换实现回车与空格的效果。ASP中的代码为TextContel.Text.Replace(rn , ).Replace( ,)5.2.8 作业目录的处理原理在Web.config文件中存放了上传文件的目录默认为(目录一)“c:Inetpubwwwrootnxwszuoyeup”。当新建一个教师用户时就会在目录一下面以教师的姓名为目录名建立一个根目录如(目录二)“c:InetpubwwwrootnxwszuoyeupXXX”。当老师用户登录之后发布作业的时候要输入作业的标题,还要先择作业的所属班级。每一次发布作业就会新建目录,在目录二的下面建立如下形式的目录“c:InetpubwwwrootnxwszuoyeupXXX作业的所属班级作业的标题”耐用会将“XXX作业的所属班级作业的标题”存入发布作业的一个字段里面。方便以后目录的查找,也就实现了不同的用户上传的作业存放到不同的文件夹,并进行分类存放,也方便了老师对作业目录的管理,方便的下载作业等。这是本系统的一个核心。5.3 主要功能的界面及编码5.3.1 DB类的编码using System;using System.Data;using System.Configuration; /导入的一个命名空间,不然无法读取WEB.config配置文件using System.Data.SqlClient; using ICSharpCode.SharpZipLib.Zip; /导入压缩文件夹的命名空间using System.Web;using System.IO; /用于实现下载文件的命名空间using System.Threading; /用于实现下载文件的命名空间namespace nxwszuoye public class db /我自己建立的一个数据访问类,public db()/一个静态方法返回web.config配置文件中的数径public static string zuoyepath()string yang=ConfigurationSettings.AppSettingsFileLuJing; /fileLuJing为配置文件中的值return yang; /静态方法,返回一个SqlConnection对象public static SqlConnection conn()string yang=ConfigurationSettings.AppSettingsmyconn; /myconn为配置文件中的值SqlConnection aa = new SqlConnection (yang); return aa; /建立数据库的连接 /静态方法,反回查询是否成功public static bool ChaZhao(string sql) /判断记录是否重复bool yang=false; try /捕获异常SqlConnection conn=db.conn();SqlCommand cmd= new SqlCommand(sql,conn);conn.Open();SqlDataReader dr=cmd.ExecuteReader();if(dr.Read()yang=true; elseyang=false;dr.Close();conn.Close();catch(Exception e)throw(e);return yang; /静态方法,执行SQL语句,返回值是否成功public static bool Edit(string sql) /对数据库增删改操作bool yang=false;int dr=0;/对异常进行了捕获trySqlConnection conn=db.conn();SqlCommand cmd= new SqlCommand(sql,conn);conn.Open();dr=cmd.ExecuteNonQuery();conn.Close();catch(Exception e)throw(e);finallyif(dr0)yang=true; return yang;/返回SQL语句第一行第一列的值public static string getValue(string sql)string str=null;trySqlConnection conn=db.conn();SqlCommand cmd = new SqlCommand(sql,conn);conn.Open();str = cmd.ExecuteScalar().ToString();conn.Close();catch(Exception e)throw(e);return str; /下载文件的静态方法public static bool ResponseFile(HttpRequest _Request,HttpResponse _Response,string _fileName,string _fullPath, long _speed)tryFileStream myFile = new FileStream(_fullPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);BinaryReader br = new BinaryReader(myFile);try_Response.AddHeader(Accept-Ranges, bytes);_Response.Buffer = false;long fileLength = myFile.Length;long startBytes = 0; int pack = 10240; /10K bytes/int sleep = 200; /每秒5次 即5*10K bytes每秒int sleep = (int)Math.Floor(1000 * pack / _speed) + 1;if (_Request.HeadersRange != null)_Response.StatusCode = 206;string range = _Request.HeadersRange.Split(new char =, -);startBytes = Convert.ToInt64(range1);_Response.AddHeader(Content-Length, (fileLength - startBytes).ToString();if (startBytes != 0)_Response.AddHeader(Content-Range, string.Format( bytes 0-1/2, startBytes, fileLength-1, fileLength);_Response.AddHeader(Connection, Keep-Alive);_Response.ContentType = application/octet-stream;_Response.AddHeader(Content-Disposition,attachment;filename= + HttpUtility.UrlEncode(_fileName,System.Text.Encoding.UTF8) ); br.BaseStream.Seek(startBytes, SeekOrigin.Begin);int maxCount = (int) Math.Floor(fileLength - startBytes) / pack) + 1;for (int i = 0; i maxCount; i+)if (_Response.IsClientConnected)_Response.BinaryWrite(br.ReadBytes(pack);Thread.Sleep(sleep);elsei=maxCount; catchreturn false;finallybr.Close();myFile.Close();catchreturn false;return true;5.3.2密码找回界面与编码重点对panel的应用图:以为每一块为一个从左到右从上到下为panel1,panel2,panel3,panel4,panel5。代号:public static string PW_DaAn=null; /用于存放密码提示答案的变量private void Page_Load(object sender, System.EventArgs e)if(!this.IsPostBack) /页面初始时显示第一步this.Panel1.Visible=false;this.Panel2.Visible=false;this.Panel3.Visible=false;this.Panel4.Visible=false;this.Panel5.Visible=true;private void Button7_Click(object sender, System.EventArgs e)if(YongHu.SelectedValue.ToString()=wu) /如果未选择用户的类型则给出提示.Response.Write(alert(必须选择用户类型););Response.Write(history.go(-1);elsethis.Panel1.Visible=true; /显示第二步,其它步骤危隐藏.this.Panel2.Visible=false;this.Panel3.Visible=false;this.Panel4.Visible=false;this.Panel5.Visible=false;private void Button8_Click(object sender, System.EventArgs e)/返回上一步this.Panel1.Visible=false;this.Panel2.Visible=false;this.Panel3.Visible=false;this.Panel4.Visible=false;this.Panel5.Visible=true;private void Button2_Click(object sender, System.EventArgs e)/判断帐号是否存在string sql=null;/根据选择的不同用户,建立不同的查询语句switch(YongHu.SelectedValue.ToString()case Admin:sql=select * from Admin Where XingMing=+ZhangHao.Text +;break;case Teacher:sql=select * from Teacher Where XingMing=+ZhangHao.Text +;break;case Student:sql=select * from Student Where XueHao=+ZhangHao.Text +;break;SqlConnection conn=db.conn();SqlCommand cmd=new SqlCommand(sql,conn);conn.Open();SqlDataReader dr=cmd.ExecuteReader();/根据查询语句的结果,查询出密码提示的问题,并将密码提示答案存入一个全局变量if(dr.Read()this.Label1.Text=drPw_WenTi.ToString();PW_DaAn=drPw_DaAn.ToString();this.Panel1.Visible=false;this.Panel2.Visible=true;this.Panel3.Visible=false;this.Panel4.Visible=false;this.Panel5.Visible=false;elseResponse.Write(alert(对不起!不存在此用户););Response.Write(history.go(-1);dr.Close();conn.Close();private void Button3_Click(object sender, System.EventArgs e)this.Panel1.Visible=true;this.Panel2.Visible=false;this.Panel3.Visible=false;this.Panel4.Visible=false;this.Panel5.Visible=false;private void Button1_Click(object sender, System.EventArgs e)/如果用户输入的的密码提示答案不与数据库里的相同,则给出提示,if(MiMaDaAn.Text=PW_DaAn)this.Panel1.Visible=false;this.Panel2.Visible=false;this.Panel3.Visible=true;this.Panel4.Visible=false;this.Panel5.Visible=false;elseResponse.Write(alert(对不起!密码答案不正确,请重新输入!););Response.Write(history.go(-1);private void Button5_Click(object sender, System.EventArgs e)this.Panel1.Visible=false;this.Panel2.Visible=false;this.Panel3.Visible=true;this.Panel4.Visible=false;this.Panel5.Visible=false;private void Button4_Click(object sender, System.EventArgs e)/根据用户的类型建立不同的密码更新SQL语句string upsql=null;switch(YongHu.SelectedValue.ToString()case Admin:upsql=update Admin set PW=+PW.Text+ Where XingMing=+ZhangHao.Text +;break;case Teacher:upsql=update Teacher set PW=+PW.Text+ Where XingMing=+ZhangHao.Text +;break;case Student:upsql=update Student set PW=+PW.Text+ Where XueHao=+ZhangHao.Text +;break;/执行更新操作bool yang=db.Edit(upsql);if(yang)this.Panel1.Visible=false;this.Panel2.Visible=false;this.Panel3.Visible=false;this.Panel4.Visible=true;this.Panel5.Visible=false;elseResponse.Write(alert(更新密码出错!););Response.Write(history.go(-1);private void Button6_Click(object sender, System.EventArgs e)Response.Redirect(index.aspx);5.3.3 DataGrid的编码设计1当鼠标指向DataGrid时DataGrid中的行时背景变色/如果是数据项并且是交替项 DataGrid鼠标指向背景变色if(e.Item.ItemType = ListItemType.Item |e.Item.ItemType = ListItemType.AlternatingItem) /添加自定义属性,当鼠标移过来时设置该行的背景色为6699ff,并保存原背景色 e.Item.Attributes.Add(onmouseover,currentcolor=this.style.backgroundColor;this.style.backgroundColor=#6699ff); /添加自定义属性,当鼠标移走时还原该行的背景色 e.Item.Attributes.Add(onmouseout,this.style.backgroundColor=currentcolor); 以上代码添加到DataGrid的ItemDataBound事件中2为DataGrid的删除按钮添加确认对话框(LinkButton)(e.Item.Cells4.Controls0).Attributes.Add(onclick,return confirm(确认删除吗?););以上代码添加到DataGrid的ItemDataBound事件中3.为DataGrid实现分页代码首先应该在DataGrid的属性生成器里设置为允许分页然后在DataGrid的PageIndexChanged事件中添加以下代码DataGrid1.CurrentPageIndex=e.NewPageIndex;记住最后应该再执行一次数据库的绑字4.将数据库里面的内容绑定到DataGrid/首先定义一个SQL语句string sql=select * from ZuoYe where ZY_Class_DaiHao=+SessionBanJiDaiHao.ToString()+;/建立一个SqlConnection链接对象SqlConnection conn=new SqlConnection(server=.;database=zuoyedata;uid=sa;pwd=;);/再建立一个DataAdapter对象SqlDataAdapter sda=new SqlDataAdapter();/设置DataAdapter对象执行SQL命令sda.SelectCommand=new SqlCommand(sql,conn);/实例化一个DataSet对象DataSet ds=new DataSet();/将sda的结果添冲到DataSet的ZuoYe表里面sda.Fill(ds,ZuoYe);DataGrid1.DataKeyField=AD_Id; /设置主键DataGrid1.DataSource=ds.TablesZuoYe; /设置DataGrid的数据源DataGrid1.DataBind();/执行绑定操作5.点击DataGrid实现弹出对话框在html视图里面设置项的DataNavigateUrlFormatString属性DataNavigateUrlFormatString=javascript:var win=window.open(ShowZuoYe.aspx?id=0,null,height=500, width=600, top=50,left=200, toolbar=no, menubar=no, scrollbars=yes, resizable=no,location=no, status=no);如果没有加红色部分的“var win=”同样也可以弹出对话框,但是弹出对话框后原先的页面就会只显示一个object。5.3.4 管理员添加用户的界面与编码图代码private void Page_Load(object sender, System.EventArgs e)/ 在此处放置用户代码以初始化页面if(!Page.IsPostBack)if(SessionYongHuLeiXing.ToString()!=Admin) /如果不是管理员登录则给出提示Response.Write(alert(对不起!你的权限不够););Response.Redirect(index.aspx);this.Panel1.Visible=true; /显示或隐藏Panelthis.Panel2.Visible=false; private void Button1_Click(object sender, System.EventArgs e)string sql=null;/通过不同的用户权限构建不同的SQL插入语句if(user_admin.SelectedValue.ToString()=Admin)sql=insert into Admin values(admin,+user_name.Text+,+user_pw.Text+,+PW_WenTi.Text +,+PW_DaAn.Text +,+E_mail.Text +,0); elsesql=insert into Teacher (XingMing,Pw,Pw_WenTi,Pw_DaAn,Email,DengLuShu,ZuoYeShu)values(+user_name.Text+,+user_pw.Text+,+PW_WenTi.Text +,+PW_DaAn.Text +,+E_mail.Text +,0,0);/执行插入语句bool yang=db.Edit(sql);if(yang)/如果添加的是教师,则以老师的姓名为目录在上传目录里新建一个目录if(user_admin.SelectedValue.ToString()=Teacher) /如果是教师才创建目录/ 以教室姓名为文件夹名建立文件夹string FilePath=db.zuoyepath(); /获得配置文件中的路径并创建目录FilePath+=user_name.Text;System.IO.Directory.CreateDirectory(FilePath);/创建目录Response.Write(alert(恭喜你!用户添加成功););Response.Write(history.go(-1);Response.End();private void Button2_Click(object sender, System.EventArgs e)/构建一个SQL查询语句,再执行,通过返回值查询用户名是否存在string sql=select * from +user_admin.SelectedValue.ToString()+ where XingMing=+user_name.Text +;bool yang=db.ChaZhao(sql);if(yang)Response.Write(alert(对不起!用户名已存在,请重新添加););Response.Write(history.go(-1);Response.End();else/显示或隐藏Panelthis.Panel2.Visible=true;this.Panel1.Visible=false;5.3.5 教师发布修改作业的界面与编码图代码public static string XiuGai=null; /定义一个全局的静态变量,用来存放XiuGai的ID号private void Page_Load(object sender, System.EventArgs e)if(!Page.IsPostBack)if(SessionYongHuLeiXing.ToString()!=Teacher) /如果不是教师登录则给出提示Response.Write(alert(对不起!你的权限不够););Response.Write(history.go(-1);Response.End();else /XiuGai为一个传入的参数,如果为空则表示是发布作业,如果不为空则表示是修改作业if(Request.QueryStringXiuGai=null)SetBind(); /执行数据库绑定elseXiuGai=Request.QueryStringXiuGai.ToString();XiuGaiZuYe();protected void XiuGaiZuYe() /修改执行的代码块/查询为ID号的纪录显示其中的数据.string Sql=select * from zuoye where AD_Id=+Request.QueryStringid;SqlConnection conn=db.conn();SqlCommand cmd=new SqlCommand(Sql,conn);conn.Open();SqlDataReader dr=cmd.ExecuteReader();if(dr.Read()TextTitle.Text=drZY_Title.ToString();TextDate.Text=drZY_WCDate.ToString();TextLeiXing.Text=drZY_WenJianLeiXing.ToString();TextDaXiao.Text=drZY_DaXiao.ToString();/替换TextContel.Text=drZY_Content.ToString().Replace( ,rn ).Replace(, );/因为以下这几项,与文件夹的名称有关,修改起来比较麻烦,所有定为不可以修改,要修改,请先删除再发布作业.TextTitle.ReadOnly=true; /修改作业是不可以修改作业的标题ddlBanJi.Visible=false; /修改作业是隐藏班级的下拉列表.TextBanJi.Visible=true; /修改作业时用一个文本框来存放班级的全称,并不可以修改/因为作业表只存放了班级的代号,所有在这里要查询班级表里的班级全称.string sql=select Class_Name from Class where Class_DaiHao=+drZY_Class_DaiHao.ToString()+;string GetBanJi=db.getValue(sql);TextBanJi.Text=GetBanJi;dr.Close();conn.Close();elsedr.Close();conn.Close();Response.Write(alert(非法字符!请不要搞破坏!););Response.Write(history.go(-1);Response.End();protected void SetBind() /绑定数据到下拉列表string sql=select * from Class;SqlConnection conn= db.conn();SqlCommand cmd=new SqlCommand(sql,conn);conn.Open();SqlDataReader dr=cmd.ExecuteReader();ddlBanJi.DataSource=dr;ddlBanJi.DataTextField=Class_Name;ddlBanJi.DataValueField=Class_DaiHao;ddlBanJi.DataBind();dr.Close();conn.Close();private void Button1_Click(object sender, System.EventArgs e)if(int.Parse(TextDaXiao.Text)10240)/判断作业大小是否在0到10240之前Response.Write(alert(对不起!作业大小不能小于0或大于10240););Response.Write(history.go(-1);/判断时间是否小于当前时间if(System.DateTime.Parse(TextDate.Text)System.DateTime.Now()Response.Write(alert(对不起!作业完成时间不能小于当前时间););Response.Write(history.go(-1);if(XiuGai!=null)/修改作业string sql=Update ZuoYe SET ZY_WCDate=+TextDate.Text+,ZY_WenJianLeiXing=+TextLeiXing.Text.ToUpper() +,ZY_DaXiao=+TextDaXiao.Text +,ZY_Content=+TextContel.Text.Replace(rn , ).Replace( ,) + where AD_Id=+Request.QueryStringid;bool yang=db.Edit(sql);if(yang)Response.Write(alert(恭喜你!作业修改成功););Response.Write(history.go(-2);elseResponse.Write(alert(对不起!作业修改失败););Response.Write(history.go(-1);else/发布作业/通过班级代号查找班级的名称string BanJi=db.getValue(select Class_Name from Class where Class_DaiHao=+ddlBanJi.SelectedValue.ToString()+);/首先判断路径是否存在,如果存在则说明已发布了作业string FilePath=db.zuoyepath();string LuJing=SessionXingMing+BanJi+this.TextTitle.Text;FilePath+=LuJing;if(System.IO.Directory.Exists(FilePath) /对作业的目录进行判断,看是否重复Response.Write(alert(对不起!你添加了本次作业););Response.Write(history.go(-1);Response.End();elseSystem.IO.Directory.CreateDirectory(FilePath); /不存在目录则创建目录string LeiXing=TextLeiXing.Text.ToUpper(); /将作业类型字符全部转换为大写/替换字符string Contel=TextContel.Text.Replace(rn , ).Replace( ,);/执入SQL语句string sql=insert into ZuoYe (ZY_Title,ZY_Content,ZY_XingMing,ZY_XueHao,ZY_WCDate,ZY_LuJing,ZY_WenJianLeiXing,ZY_DaXiao,ZY_Class_DaiHao,ZY_chengJi);sql+=values(+TextTitle.Text +,+Contel +,+SessionXingMing+,+SessionXueHao +,+TextDate.Text +,+LuJing+,+LeiXing+,+TextDaXiao.Text +,+ddlBanJi.SelectedValue +,未公布);bool yang=db.Edit(sql);if(yang)/更新发布教师的作业数sql=update Teacher set ZuoYeShu=ZuoYeShu+1 where XingMing=+SessionXingMing.ToString()+;db.Edit(sql);Response.Write(alert(恭喜你!作业发布成功!););Response.Redirect(Teacher.aspx);Response.End();elseResponse.Write(alert(对不起!发布作业出错,请联系管理员););Response.Write(history.go(-1);Response.End();5.3.6 教师批量下载作业的界面与编码图代码: public static string LuJing=null;public static string XiaZaiLuJing=null;private void Page_Load(object sender, System.EventArgs e)if(!Page.IsPostBack)if(SessionYongHuLeiXing.ToString()!=Teacher) /如果不是教师登录则给出提示Response.Write(alert(对不起!你的权限不够););Response.Redirect(index.aspx);Response.End();else/通过传递过来的ID来查询数据库中的记录,并获得其ZY_LuJing字段的值string id=Request.QueryStringid.ToString();string sql=select ZY_LuJing from zuoye where AD_Id=+id+;XiaZaiLuJing=db.getValue(sql); /执行SQL语句获得值LuJing=db.zuoyepath()+XiaZaiLuJing; /获得ID号的作业存放路径/通过枚举目录的实例方法,获得作业存放路径下的所有文件名System.IO.DirectoryInfo mydir=new System.IO.DirectoryInfo(LuJing); /建立一个实例对象int i=0;foreach(System.IO.FileInfo fi in mydir.GetFiles() /循环获得所有的文件this.Label1.Text=this.Label1.Text+fi.Name+; /显示出所有的文件名i=i+1; /统计一共有多少个文件this.Label2.Text=共有作业+i.ToString()+份; /显示给用户private void Button1_Click(object sender, System.EventArgs e)/实现在现压缩文件夹的功能string FileProperties=new string2;FileProperties0=LuJing;/待压缩文件目录FileProperties1=LuJing+a.zip; /压缩后的目标文件/如何作业压缩包已存在则删除if(System.IO.File.Exists(FileProperties1) /如果文件存在则删除System.IO.File.Delete(FileProperties1); /删除文件ZipClass Zc=new ZipClass(); /实例化对象Zc.ZipFileMain(FileProperties); /执行压缩打包/实现文件的下载功能, 支持大文件、续传、速度限制、资源占用小,网上下载的一个函数,加入到了自己的类中Page.Response.Clear(); bool success =db.ResponseFile(Page.Request, Page.Response,FileProperties1.Substring(FileProperties1.LastIndexOf()+1), FileProperties1, 1024000); if(!success)Response.Write(下载文件出错!);Page.Response.End();5.3.7 学生上传作业的界面与编码图代码private void Button1_Click(object sender, System.EventArgs e)/获取文件上传控件是的全路径string fullFileName=this.File1.PostedFile.FileName;/获取上传的文件的文件名string fileName=fullFileName.Substring(fullFileName.LastIndexOf()+1); /获取上传的文件的字节数int fileDaXiao=this.File1.PostedFile.ContentLength;/获取上传的文件的扩展名,并转换为大写string type=fullFileName.Substring(fullFileName.LastIndexOf(.)+1).ToUpper(); /判断文件的大小,与扩展名是否符合规定int ZYfileDaXiao=int.Parse(SessionDaXiao.ToString()*1024;if(fileDaXiaoZYfileDaXiao & SessionLeiXing.ToString()=type)/上传的文件以上传者的姓名加扩展名存放到服务器上string WenJian=SessionLuJing.ToString()+SessionXingMing.ToString()+.+type;/判断学生是否已经上传过,如果已上传过,则先删除已上传的文件,再上传文件,避免发生错误if(System.IO.File.Exists(WenJian)System.IO.File.Delete(WenJian);this.File1.PostedFile.SaveAs(WenJian); /上传文件Label1.Text=上传成功;elseResponse.Write(alert(对不起!上传的文件不符合要求););Response.Write(history.go(-2);第六部分 结束语经过小组的共同的努力,作业提交系统终于完成了。解决了目前学校机房作业上传的问题,实现了4.1.5的基本功能,基本满足了作业上传的需求。 本系统的优点 本系统是针对成都农业科技职业学院现在情况而设计的,有一定的实际意义。本系统实现了学生作业的上传与下载,及教师发布作业,发布成绩,在线打包压缩等功能。在互联网上作业提交系统很少而且功能都不可观,本系统特别针对本校而设计,有使用价值。 本系统的不足之处及发展意见系统已经进行了测试,基本功能都成功了,但是因为初次开发,在系统中难免存在着各种问题,这些我们会在以后的时间里进行更正。 在系统设计与实现过程中的收获 首先,在开发本系统的过程中,要查询翻阅大量的参考文献以及网上搜索资料,培养了我调查研究、查阅中外文献资料,运用国家标准、行业规范、手册、图册等资料的能力。其次,在开发本系统应中,用到了我以前所学的很多知识。通过对本系统的开发,提高了我综合运用所学理论知识和技能,分析解决实际问题的能力。最主要的是提高了我的自学能力,因为开发本系统我使用了Microsoft Visual Studio .NET 2003开发平台与Microsoft SQL Server工具进行数据库的设计,采用ASP语言进行开发,而这些都是我以前学过,但是没有实际应用过的。因此,通过这次毕业设计,把所学的理论知识与实际应用联系了起来,为我今后走向社会打下了坚实的基础。总之,这次毕业设计使我受益匪浅。第七部分 谢辞首先感谢成都农业科技职业学院电子信息系领导及所有的课任教师,谢谢你们三年的教导,不尽让我学会到了丰富专业知识,还让我学会了为人处事的道理。第八部份 参考文献参考书籍:1 郑人杰、殷人昆、陶永雷实用软件工程第二版.清华大学出版社 2004.5.12刘洪成 ASP高级编程清华大学出版社 2003.7 3尚俊杰 asp程序设计清华大学出版社/北京交通大学出版社 2004.44 微软公司 基于.NET的需求分析和解决方案设计2004.105 微软公司 使用软件工程方法高等教育出版社 2005.86张俊、乔宇峰、周欣ASP程序设计入门吉林电子出版社 2005.27 微软公司 SQL Server 2000数据库程序设计高等教育出版社 2004.28 微软公司 ADO.NET程序设计高等教育出版社 2004.29金雪云 ASP简明教程(ASP篇)清华大学出版社 2006.110微软公司 面向.NET的WEB应用程序设计高等教育出版社 2004.2其它数据:1网上各网站收集的一些文章及技巧2来自小区的资料 3北大青鸟的asp视频教程。4来自QQ群:6551141里的各位网友的帮忙,和群里共享的资料第九部份 附录(附录一)建立数据库与表的SQL语句Create DataBase ZuoYeData -创建数据库goUse ZuoYeData-打开数据库goCreate Table Admin-新建管理员表(Xuehao varchar(15) not null, -不是学生学号而是管理员帐号XingMing varchar(20) not null, -管理员姓名Pw varchar(30) not null, -用户密码Pw_WenTi varchar(50) not null, -用户密码提示问题Pw_DaAn varchar(50) not null, -用户密码提示答案Email varchar(20) not null, -管理员的电子邮件DengLuShu int Default 0 -登录次数 )goCreate Table Teacher-新建教师表(Xuehao int Identity(1000,1) primary key not null, -不是学生学号而是教师帐号XingMing varchar(20) not null, -教师姓名Pw varchar(30) not null, -用户密码Pw_WenTi varchar(50) not null, -用户密码提示问题Pw_DaAn varchar(50) not null, -用户密码提示答案Email varchar(20) not null, -管理员的电子邮件DengLuShu int Default 0, -登录次数 ZuoYeShu int default 0 -布置作业的次数)gocreate table Class-创建班级表(Class_Name varchar(50) not null,-班级的名称Class_DaiHao varchar(15) not null primary key-班级的代号)goCreate Table Student-新建学生表(Xuehao varchar(15) primary key, -学生学号XingMing varchar(20) not null, -学生姓名Pw varchar(30) not null, -用户密码Pw_WenTi varchar(50) not null, -用户密码提示问题Pw_DaAn varchar(50) not null, -用户密码提示答案Email varchar(20) not null, -管理员的电子邮件DengLuShu int Default 0, -登录次数 BanJiDaiHao varchar(15) foreign key references Class(Class_DaiHao) -班级代号)goCreate Table ZhuanYe-创建专业表(Ad_Id int Identity(1,1) primary key not null, -ID号MingCheng varchar(30) not null-专业名称)goCreate Table ZuoYe-创建作业表(Ad_id int Identity(1,1) primary key not null,-作业ID号ZY_Title varchar(30) not null,-作业标题ZY_Content text not null,-作业的内容ZY_XingMing varchar(10) not null,-发布作业的教师姓名ZY_XueHao int foreign key references Teacher(XueHao) not null, -发布作业的教师代号ZY_Date datetime default getDate(),-作业的发布日期ZY_WCDate datetime not null,-作业的完成日期ZY_LuJing varchar(50) not null,-作业的存放路径ZY_WenJianLeiXing varchar(10) not null,-学生上传作业的文件类型(即扩展名)ZY_DaXiao int default 1000,-学生上传作业的的大小默认为1000KZY_Class_DaiHao varchar(15) foreign key references Class(Class_DaiHao), -完成作业的班级代号ZY_ChengJi text -学生上传作业后,教师用于存放本次作业的成绩)(附录二)测试数据插入的SQL语句-插入测试数据-插入一个管理员记录insert into Admin values(admin,杨文兵,snryang,showmeyang,operation,,0) -插入专业数据insert into ZhuanYe (Mingcheng)values(WEB应用程序设计)insert into Zhua
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
2:不支持迅雷下载,请使用浏览器下载
3:不支持QQ浏览器下载,请用其他浏览器
4:下载后的文档和图纸-无水印
5:文档经过压缩,下载后原文更清晰
|