毕业论文_基于WEB的学生作业管理系统设计与实现(39页).doc
-毕业论文_基于WEB的学生作业管理系统设计与实现-第 36 页西安工业大学北方信息工程学院本科毕业设计(论文)题目:基于WEB的学生作业管理系统设计与实现系 别:计算机信息与技术系专 业:计算机科学与技术 班 级: 学 生: 学 号: 指导教师: 2011年06月毕业设计(论文)任务书系别 计算机信息与技术系 专业 计算机科学与技术 班级 B070601 姓名 学号 B07060115 1.毕业设计(论文)题目: 基于WEB的学生作业管理系统设计与实现 2.题目背景和意义:随着Internet技术的发展,人们的日常生活、学习已经离不开网络。未来社会人们的生活和工作将越来越依赖于数字教学的发展,越来越数字化、网路化、电子化、虚拟化。在现代化的教育技术模式下,计算机已经广泛应用于教学的管理,给传统的教学方式带来了重大的革命。如何进行有效作业管理是摆在我们面前的一个新的课题。 3.设计(论文)的主要内容(理工科含技术指标): (1)实现学生作业管理系统。主要功能是:管理员通过登陆后,可对教师和学生进行管理(包括添加、删除、修改用户),并能发布公告信息。教师通过登陆后,可以发布作业、批改作业、发布标准答案和发送消息。学生通过登录后,可以查看作业、上传作业、下载标准答案和查看成绩。 (2) 书写1.5万字的论文,要求书写整齐规范,无错误。 (3) 完成与专业相关的3000字以上的外文资料的翻译,翻译应与原文意思相一致,语句通顺。 (4)开发工具:a.语言:C#,b.数据库:SQL server2005 (5)按照软件工程的思想和方法进行分析、设计和实现 4.设计的基本要求及进度安排(含起始时间、设计地点): 基本要求:(1) 要求学生每周与指导教师联系一次,及时反映问题,及时解决; (2) 在校设计期间,遵守校纪校规,外出要请假。 (3) 保持实验室卫生整洁,爱护设备。 进度安排:第14周:查看有关资料,完成对项目的整体把握,搭建工程环境。 第57周:研究系统相关模块的详细设计说明书。 第8-12周:编码实现和测试。 第13-14周:编写毕业论文。 第15周:毕业论文答辩。 5.毕业设计(论文)的工作量要求 撰写15000字论文 实验(时数)*或实习(天数): 300机时 图纸(幅面和张数)*: 其他要求: 查阅资料不少于10份 指导教师签名: 年 月 日 学生签名: 年 月 日 系主任审批: 年 月 日说明:1本表一式二份,一份由学生装订入册,一份教师自留。2 带*项可根据学科特点选填。ASP.NET技术摘 要1.构建 ASP.NET 页面 ASP.NET 和ASP.NET结构ASP.NET 是微软.NET framework整体的一部分, 它包含一组大量的编程用的类,满足各种编程需要。 在下列的二个部分中, 你如何学会 ASP.NET 很适合的放在.NET framework, 和学会能在你的 ASP.NET 页面中使用语言。 .NET类库假想你是微软。 假想你必须支持大量的编程语言-比如 Visual Basic 、 JScript 和 C+. 这些编程语言的很多功能具有重叠性。 举例来说,对于每一种语言,你必须包括存取文件系统、与数据库协同工作和操作字符串的方法。此外,这些语言包含相似的编程构造。 每种语言,举例来说,都能够使用循环语句和条件语句。即使用 Visual Basic 写的条件语句的语法不与 用C+ 写的不一样,程序的功能也是相同的。 最后,大多数的编程语言有相似的数据变量类型。 以大多数的语言,你有设定字符串类型和整型数据类型的方法。举例来说,整型数据最大值和最小值可能依赖语言的种类,但是基本的数据类型是相同的。对于多种语言来说维持这一功能需要很大的工作量。 为什么继续再创轮子? 对所有的语言创建这种功能一次,然后把这个功能用在每一种语言中岂不是更容易。 .NET类库不完全是那样。 它含有大量的满足编程需要的类。举例来说,.NET类库包含处理数据库访问的类和文件协同工作,操作文本和生成图像。除此之外,它包含更多特殊的类用在正则表达式和处理Web协议。 .NET framework,此外包含支持所有的基本变量数据类型的类,比如:字符串、整型、字节型、字符型和数组最重要地, 写这一本书的目的, .NET类库包含构建的 ASP.NET 页面的类。然而你需要了解当你构建.NET页面的时候能够访问.NET framework 的任意类。理解命名空间 正如你猜测的, .NET framework是庞大的。 它包含数以千计的类。 (超过 3,400) 幸运地,类不是简单的堆在一起。.NET framework的类被组织成有层次结构的命名空间。ASP Classic Note在先前的ASP中,你仅仅能够访问五个标准类。相比之下 ASP.NET 提供超过 3,400个类!一个命名空间包含一组逻辑的类。 举例来说,涉及到与文件系统协同工作的类就集合在System.IO 命名空间中。 命名空间被组织成一个层次结构(一棵逻辑树) 。 树根就是SYSTEM 命名空间。 这个命名空间包含基本的数据类型的所有的类,例如:字符串、数组,还包含提供随机数字和日期的类。你通过完整的类的命名空间能唯一识别任何的类在.NET framework中的位置。 举例来说,指定找到一个the File class 类,按如下操 System.IO.文件System.IO指命名空间 ,而文件指定特定的类。 你能够浏览.NET Framework所有的标准类的命名空间。通过.NET Framework 的参考文档可以浏览类库。标准的 ASP.NET 命名空间在默认情况下,在你的ASP.NET页面中,类被包含在一个选定的命名空间中这些默认的命名空间使你在ASP.NET中最常用到的。System 命名空间- 包含所有的基本数据类型和其他有用的类,例如:那些关于产生随机数字和日期的类。System.Collections命名空间- 包含的类是标准的集合类,例如:哈希表,数组列表。System.Collections.Specialized 命名空间- 包含特殊的集合类,例如:连接列表和字符串集合。 System.Configuration 命名空间- 包括Web.config files类。System.Text命名空间-包含编码,解码和操作字符串内容的类。System.Text.RegularExpressions命名空间- 包含的是匹配正则表达式和替代操作类。System.Web 命名空间-工作在万维网方面包含的是浏览器请求和服务器响应的类。System.Web.Caching 命名空间- 包含页面缓冲内容和自定义缓冲操作的类。System.Web.Security命名空间- 包含执行验证和授权,例如:窗体和密码验证的类。System.Web.SessionState命名空间- 包含执行保存状态的类。System.Web.UI命名空间- 包含构建 ASP.NET 页面的用户接口的类。System.Web.UI.HTMLControls命名空间- 包含 HTML 控件的类。System.Web.UI.WebControls命名空间- 包含Web控件的类。.NET Framework -可用的语言这一本书的目的, 你将会为以 Visual Basic 作为你的编程语言来完成你的 ASP.NET 页写程序编写。 它是 ASP.NET 页面的默认语言。虽然你在这一本书中一直用 Visual Basic, 但是,你也需要了解用其它的支持公共语言库的语言创建ASP.NET页面。除此之外,这包括 C#, JScript.NET和C+ 。 除微软之外的公司产生的几十个其他的语言已经能够和.NET framework兼容。 这些其他的语言的一些例子包括 Python、 SmallTalk 、 Eiffel和 COBOL。这就意味着假如你真的想, 你可以使用 COBOL 写 ASP.NET 页面。不管你使用什么语言开发 ASP.NET 页面,你需要明白ASP.NET在执行前必须编译,这就意味着ASP.NET执行速度非常快。 你第一次请求 ASP.NET 页面, 页面被编译成一个.NET类, 这个类文件被保存在一个特殊的目录下这个目录的名字叫Temporary ASP.NET Files。对于一个ASP.NET页面一个通信类文件出现在Temporary ASP.NET Files目录下。以后不管任何时候你请求那个同样的ASP.NET页面,那个通信类文件就会执行。 当 ASP.NET 页面被编译的时候,它没被直接地被编译成机器码而是被编译成了一个中间语言,名字叫 (MSIL)所有.NET可用的语言都被编译成这种中间语言。 一个ASP.NET 页面不会被编译成本地机器码直到它被一个浏览器访问,在那个时间点包含在Temporary ASP.NET Files目录下的类文件用JIT编译器编译并且执行。这些迷惑的方面体现在整个过程都在后台运行,你必须要做的是用资源代码为你的ASP.NET页面创建一个文本文件。.NET framework 为你处理完转换它为编译码这一困难工作。VBScript 怎么样呢? 在 ASP.NET 之前, VBScript 是开发动态页面最流行的语言。ASP.NET 不支持VBScript ,而且这是好消息。 Visual Basic 是一个 VBScript 的超集,意味着 Visual Basic 相对于 VBScript有更多的功能。 因此, 你用 Visual Basic 有更丰富的函数和语句供你使用。此外,不像 VBScript , Visual Basic 是一种被编译的语言。这意味着如果你使用 Visual Basic 重写相同的 VBScript代码感觉会更容易一些。假如你过去只用VBScript而不用 Visual Basic,也不用担心。因为 VBScript 如此接近 Visual Basic, 你将会发现在这二种语言之间的转变是很容易的。在.NET framework中,微软包括一个名叫 IL Disassembler的有趣的工具。在临时的ASP.NET文件目录中你能使用这个工具查看没有装配的ASP.NET 类的代码。它列出了类的所有方法和属性使你能够浏览中间代码。正如在这章讨论的这个工具也可以用于操作ASP.NET控件。 举例来说,你能使用 IL Disassembler 浏览 TextBox 控件的中间代码。(位于在一个叫做 System.Web.dll 的文件中)介绍 ASP.NET 控件ASP.NET 控件为你的Web应用程序提供动态和交互的用户接口。这些控件能够使你的网站的使用者看见和交互。举例来说,你能使用控件建立 HTML 窗体元素,交互式日历, 而且可以滚动标题广告。 ASP.NET 控件和 HTML 内容共存。 典型地,你用通常的 HTML 创建你的网页的静态区域和用 ASP.NET 控件创建网页的动态区域。了解 ASP.NET 控件是怎么工作的?最好的方法是看一个简单的Web应用窗体页面。 添加ASP.NET页面的代码第二个难点就是ASP.NET页面的代码,他是确切的页面的程序代码,在你添加的程序用户处理控件也页面事件。如果一个使用者单击 HTML窗体中的Button按钮, 举例来说,那个按钮就会响应一个事件 (单击事件) 。 典型地,你想添加代码响应这个事件到页面中。 举例来说,当某人单击Button按钮控件的时候,你可以保存窗体数据到一个文件或者数据库。 控件不是唯一的能相应事件的事物。 当它被请求的时候一个ASP.NET 页面每次都能够响应几个事件。 举例来说,每当你请求一个页面,页面的初始化事件就会被触发。 每当初始化事件发生的时候,你能够添加代码到页面中来执行。 2. 用Web服务器控件创建窗体 构建灵活窗体你用几个基本Web控件来代替标准的 HTML 窗体元素,例如radio buttons、text boxes, and list boxes. 你能够用这些控件为你的Web应用程序在你的ASP.NET页面中创建用户界面。下面的部分为这些Web控件提供了详细的提纲和程序源代码。控制页面浏览 在下列的部分中,你学会如何控制一个用户从一个ASP.NET页面转到另一个页面。首先,你学会怎么把一个HTML窗体链接到另一个页面来获取信息。下一步,你学会用Redirect()方法自动让一个用户浏览一个新的页面。 最后,你学会用超级链接控件怎么把页面连在一起。 对控件应用格式在下列的部分中,你学会该如何创建更有吸引力的Web窗体。 首先,你浏览一下针对所有Web控件格式属性他们是基本控件类的格式属性。然后,你学会在Web控件上应用样式表风格。3. 用验证控件做页面验证使用客户端验证传统地,当增加验证到他们的页面中时,他们会面临一个严峻的选择。 你可以添加窗体页面验证规则到你的服务器端代码,或者是添加验证规则到你的客户端代码。 写验证代码到客户端代码中的优势能够及时反馈到你的用户。 举例来说,一个使用者忽略在一个要求检验的字段中输入一个值,你能够及时的显示一个错误信息而不需要返回到服务器端解决。人们喜欢客户端的验证。 它看起来很棒而且产生一种比较好的效果。 然而,问题是它不与所有的浏览器兼容。不是所有的浏览器支持 JavaScript、不同版本的浏览器的不同版本支持 JavaScript,所以客户端验证没有保障。由于这个原因,许多开发者在过去决定添加自定义验证到服务器端。因为服务器端代码能够和任何浏览器协同工作。就这样的做法更有安全的保障。 幸运地,正如在章节讨论的这些验证控件不会强迫你做困难的选择。 这些验证控件会自动地产生客户端代码和服务器端代码。如果一个浏览器有能力支持JavaScript ,客户端的验证脚本将会自动返回到浏览器。 如果一个浏览器不支持 JavaScript,那个验证规则会自动在服务器端代码中执行。然而你需要注意的是,客户端的验证仅仅能够工作在IE4.0或更高的版本。尤其,正如这一章讨论的客户端脚本不可能在任意本本的浏览器中运行。控制字段: RequiredFieldValidator 控件你用这个控件来检查在一个Web窗体中是否为空, 典型地,你和 TextBox 控件一起使用这个控件。 然而,这个控件也可以用在其他的输入型控件,例如:RadioButtonList.控件。验证表达式: RegularExpressionValidator 控件你能使用 RegularExpressionValidator 控件来验证输入的值是否和定义的正则表达式相匹配。例如:你能使用这控件来检查一个用户是否输入一个合法的电子邮件地址,电话号码,用户名或密码。怎样用一个正则表达式来完成这些验证任务将会在下面的例子中一一列出。 比较值: CompareValidator 控件这个CompareValidator 控件用于比较一个输入的数据和另外一个值是否相同。另外一个值可能是固定值,例如:一个特定的数字或者是输入到另一个控件中的一个值。总结错误: ValidationSummary 控件假想一个页面有50个字段假如你仅仅用上部分讨论的那些验证控件来显示错误看见一个错误在页面中将是很难的。例如:你可能需要滚动到第48个页面字段来找到这个错误信息。幸好,微软除了包含上面提到的控件还包括 ValidationSummary 控件。 你能用这控件综合所有的错误信息在一个页面的上端或者你想要的任何一个地方。4. 先进的控件编程保存浏览状态默认地,几乎所有的 ASP.NET 控件都会在先前的窗体中保留他们的属性值。举例来说,如果你输入文本到一个Lebel标签上然后提交那个页面,当那个页面再次被访问那个Lebel标签的内容将会被保存下来。浏览状态的妙处是它不依赖任何的特定服务器或浏览器的属性。 尤其,它不依赖cookies, session变量、或应用程序变量。 浏览状态在一个名叫做VIEWSTATE的隐藏页面中执行,这个隐藏页面自动创建每个Web窗体。当灵活的应用时, 浏览状态能够在你的网站中产生艺术性的和积极的效果,例如:如果你在一个支持浏览状态的控件中显示数据库数据,你不需要每次都返回到需要反馈到服务器的数据库页面。你能够自动地保存页面里的数据状态。 显示和隐藏内容假想你正在用一个可选择的部分创造页面。 举例来说,假想你正在创造一种在线纳税系统,而且你想要显示或者隐藏一个包含适用于已婚的税文件编档员的问题的部分。或者, 假想你想要添加一个帮助按钮到网站上去。 你可能想要隐藏或者显示完成依靠用户参考的问题的详细说明。最后,假想你想要把一个tax form 变成很多页面,以便一个人每次只看那个tax form的一部分。 在下列的部分中,你学会用属性设置在一个窗体中来隐藏或显示控件。 你学会用单个控件和一组控件设置Visible and Enabled属性来隐藏和显示页面内容。使用Visible and Enabled属性每个控件,包括 HTML 和Web控件,有一个Visible 属性来决定那个控件是否可见。当一个控件的Visible是false值,那个控件就不会在页面上显示;那个控件也不会进一步运行。Web控件 (不是每个HTML 控件) 还有一个叫Enabled的属性。当Enabled的属性是false值,你用的浏览器是IE4.0或更高的版本那个控件被封住了,也不起作用了,当用其他的浏览器的时候,如:网景浏览器那个控件不会被封,但它也是不起作用的。使浏览状态失效在特定的环境中,你可能想要对一个单独的控件或ASP.NET页面作为一个整体的浏览状态失效。举例来说, 你可能使用一个有包含许多数据的控件.(假想一个RadioButtonList 控件控制1,000 个选项)假如你担心页面数据会大大的降低页面的显示速度,你可能不想要加载数据到隐藏的VIEWSTATE页面字段。ASP.NET TechniqueAbstract1.Building ASP.NET PagesASP.NET and the .NET FrameworkASP.NET is part of Microsoft's overall .NET framework, which contains a vast set of programming classes designed to satisfy any conceivable programming need. In the following two sections, you learn how ASP.NET fits within the .NET framework, and you learn about the languages you can use in your ASP.NET pages.The .NET Framework Class LibraryImagine that you are Microsoft. Imagine that you have to support multiple programming languagessuch as Visual Basic, JScript, and C+. A great deal of the functionality of these programming languages overlaps. For example, for each language, you would have to include methods for accessing the file system, working with databases, and manipulating strings.Furthermore, these languages contain similar programming constructs. Every language, for example, can represent loops and conditionals. Even though the syntax of a conditional written in Visual Basic differs from the syntax of a conditional written in C+, the programming function is the same.Finally, most programming languages have similar variable data types. In most languages, you have some means of representing strings and integers, for example. The maximum and minimum size of an integer might depend on the language, but the basic data type is the same.Maintaining all this functionality for multiple languages requires a lot of work. Why keep reinventing the wheel? Wouldn't it be easier to create all this functionality once and use it for every language?The .NET Framework Class Library does exactly that. It consists of a vast set of classes designed to satisfy any conceivable programming need. For example, the .NET framework contains classes for handling database access, working with the file system, manipulating text, and generating graphics. In addition, it contains more specialized classes for performing tasks such as working with regular expressions and handling network protocols.The .NET framework, furthermore, contains classes that represent all the basic variable data types such as strings, integers, bytes, characters, and arrays.Most importantly, for purposes of this book, the .NET Framework Class Library contains classes for building ASP.NET pages. You need to understand, however, that you can access any of the .NET framework classes when you are building your ASP.NET pages.Understanding NamespacesAs you might guess, the .NET framework is huge. It contains thousands of classes (over 3,400). Fortunately, the classes are not simply jumbled together. The classes of the .NET framework are organized into a hierarchy of namespaces.ASP Classic NoteIn previous versions of Active Server Pages, you had access to only five standard classes (the Response, Request, Session, Application, and Server objects). ASP.NET, in contrast, provides you with access to over 3,400 classes!A namespace is a logical grouping of classes. For example, all the classes that relate to working with the file system are gathered together into the System.IO namespace.The namespaces are organized into a hierarchy (a logical tree). At the root of the tree is the System namespace. This namespace contains all the classes for the base data types, such as strings and arrays. It also contains classes for working with random numbers and dates and times.You can uniquely identify any class in the .NET framework by using the full namespace of the class. For example, to uniquely refer to the class that represents a file system file (the File class), you would use the following:System.IO.FileSystem.IO refers to the namespace, and File refers to the particular class.NOTEYou can view all the namespaces of the standard classes in the .NET Framework Class Library by viewing the Reference Documentation for the .NET Framework.Standard ASP.NET NamespacesThe classes contained in a select number of namespaces are available in your ASP.NET pages by default. (You must explicitly import other namespaces.) These default namespaces contain classes that you use most often in your ASP.NET applications:System Contains all the base data types and other useful classes such as those related to generating random numbers and working with dates and times.System.Collections Contains classes for working with standard collection types such as hash tables, and array lists.System.Collections.Specialized Contains classes that represent specialized collections such as linked lists and string collections.System.Configuration Contains classes for working with configuration files (Web.config files).System.Text Contains classes for encoding, decoding, and manipulating the contents of strings.System.Text.RegularExpressions Contains classes for performing regular expression match and replace operations.System.Web Contains the basic classes for working with the World Wide Web, including classes for representing browser requests and server responses.System.Web.Caching Contains classes used for caching the content of pages and classes for performing custom caching operations.System.Web.Security Contains classes for implementing authentication and authorization such as Forms and Passport authentication.System.Web.SessionState Contains classes for implementing session state.System.Web.UI Contains the basic classes used in building the user interface of ASP.NET pages.System.Web.UI.HTMLControls Contains the classes for the HTML controls.System.Web.UI.WebControls Contains the classes for the Web controls.NET Framework-Compatible LanguagesFor purposes of this book, you will write the application logic for your ASP.NET pages using Visual Basic as your programming language. It is the default language for ASP.NET pages. Although you stick to Visual Basic in this book, you also need to understand that you can create ASP.NET pages by using any language that supports the .NET Common Language Runtime. Out of the box, this includes C#, JScript.NET, and the Managed Extensions to C+.NOTEThe CD included with this book contains C# versions of all the code samples.Dozens of other languages created by companies other than Microsoft have been developed to work with the .NET frame