数字媒体艺术毕业论文.doc_第1页
数字媒体艺术毕业论文.doc_第2页
数字媒体艺术毕业论文.doc_第3页
数字媒体艺术毕业论文.doc_第4页
数字媒体艺术毕业论文.doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

i 本科毕业设计(论文) 题 目 : 网站安全性实现的研究与实践 以期刊网站为例 学 院 : 软件技术学院 专 业 : 数字媒体艺术 姓 名 : 范庆珍 指导教师 : 田更 2012 年 5 月 1 日 ii 网站安全性实现的研究与实践 -以期刊网站为例 数字媒体艺术专业: 范庆珍 指导老师:田更 【摘要】 二零零一年底国内最大的开发者社区 600 余万个用户邮箱账号和密码被泄 露,网络信息 “防线”安全性因此遭到网友质疑。 天涯论坛、新浪微博、人人网、 开心网等众多知名网站陷入 ”密码疑云”。在此基础上我们萌发利用 web 服务 提供网络安全的保障,探讨解决这一问题的方法 本次设计实践涉及 asp.net 网 站安全性相关 知识。本系统是在 windows xp 下,以 iis5.1(internet information server)网络信息服务为应用服务器,选择asp.net(java)、sql server 2005、visual studio 2005 利用 web server 技术开发的。 通过分析 aspnet web 应用程序的身份验证及授权机制,给出利用身份验证及授权配置安 全的 web 站点、保护网络资源的两种典型方案 (使用内置类与使用网站管理工具) ,通过期刊网站实现安全性的 实例给出基于窗体的身份验证和访问授权的实现方 法。通过这种方法,达到一定程度维护网络安全的作用,使黑客的攻击变得困难, 并且即使攻破后破解密码也会成为一个问题,从而一定程度上解决目前网民信息 “集体走光”,众网站陷入 “密码疑云”的问题。 关键字关键字:网站安全; asp.net; sql server; browser/server; java;iis; visual studio;web server; ii i 【abstract】 by the end of two zero zero one the largest developer community of more than 600user account and password is revealed, the network information security“ line“ was so users questioned. tianya forum, sina micro-blog, renren, happy net and many other well-known website in“ the apocalypse code“. on the basis of our germination using web services to provide network security, discussed the method that solves this one problem the design practice involving the asp.net site safety related knowledge. this system is in the windows xp, iis5.1( internet information server ) for internet information server, select asp.net ( java ), sql server 2005, visual studio 2005with web server technology development. through the analysis of asp.net web application authentication and authorization mechanism, given the use of authentication and authorization configuration a secure web site, protecting cyber source of two typical schemes ( use class and use the web site administration tool ), via the journal website security implementation proposed form based authentication and access authorization realizing method. through this method, to a certain extent to protect the network security role, so that the hacker attacks more difficult, and even break to crack the password will also become a problem, thus to some extent on the solution to the current internet information“ collective emptied, the website“ in“ the code“ of the problem. keywords: web security; asp.net; sql server; browser / server; java; iis; visual studio; web server; i v 目目 录录 第一章 概述0 1.1 运行环境配置与系统结构要求.0 1.1.1 硬件环境要求0 1.1.2 搭建 asp.net 开发环境0 1.2 编程环境(asp.net).1 1.2.3 sql server 2000 介绍4 第二章 可行性研究及需求分析6 2.1 可行性研究.6 2.1.1 项目要求6 2.1.2 待开发系统的主要开发目标6 2.1.3 可行性研究的方法6 2.1.4 评价尺度6 2.1.5 技术条件方面的可行性6 2.2 需求分析.7 2.2.1 市场需求7 2.2.2 软件功能分析7 2.2.3 软件的非功能性需求7 2.2.4 软件其他方面的要求7 第三章 总体设计9 3.1.1 系统功能模块划分9 3.1.2.在线答题.10 3.2. 表设计11 3.3 题库管理15 3.4 在线答题15 第四章 详细设计及实现16 4.1 用户登录和注册.16 4.1.1 界面设计16 4.1.2 用户登录16 4.1.3 用户注册17 4.2 题库设计.18 4.2.1 选择题管理18 4.2.2 判断题管理20 4.3 在线答题实现.20 4.3.1 界面设计20 v 4.3.3 在线答题21 第五章 测试运行与维护24 5.1 网站测试.24 5.2 网站维护.24 结束语24 谢辞(致谢)24 参考文献24 附录25 第一章 概述 1.1 运行环境配置与系统结构要求 1.1.1 硬件环境要求 cpu:piv 2.0ghz 或更高频率的 cpu 内存:ddr333 256mb 或更多的内存 硬盘:至少 10g 以上或更多的硬盘空间 1.1.2 搭建 asp.net 开发环境 单击“开始”按钮,并执行“设置”“控制面板”命令,打开“控制面板”窗口,双击“网 络”图标,打开网络对话框;然后,单击“添加”按钮,添加所需的组件,选择“协议” ,最后, 在“厂商”列表框中选择 microsoft 公司提供的协议,在“网络协议”列表框中选择 tcp/ip 协议选 项,单击“确定”按钮添加该协议,完成安装。 2.安装和配置 iis iis 是 internet information server 的缩写,称为 internet 信息服务。它是一种 web 服务,主要包 括 www 服务器,ftp 服务器。它使得(局域网)或 internet(因特网)上发布信息变得很容易 windows xp professional 中包含 iis 5.1,但系统安装时未包括此组件,因此需要手动安装。 (1)安装 iis 单击“开始”菜单中的“控制面板”按钮,双击“添加或删除程序”项在弹出的菜单中双击 “添加或删除组件”选项,弹出 windows 组件向导对话框如图 1 所示。在对话框中“internet 信息 服务”选项,单击“详细信息”按钮可以查看 iis 所包含的组件。 图 1 安装系统的 iis 1 1 插入系统安装光盘,并单击“下一步”按钮,即可完成 iis 的安装。 图 2 配置系统的 iis 图 3 配置 iis 的站点地址和端口号 图 4 配置 iis 的主目录 单击“主目录” 选项,结果如图 4 所示。主目录默认为“c:inetpubwwwroot”,访问该目录 的权限为读取、记录访问和索引资源。在此界面中可以配置应用程序的虚拟目录的地址及其访问权 限。 1.2 编程环境(asp.net) (2)安全。 asp.net 为 web 应用程序提供了默认的授权和身份验证方案,开发人员可以 根据应用程序的需要很容易地添加、删除或替换这些方案。详细信息,请参阅 asp.net 安全。 (3)易于部署。 通过简单地将必要的文件复制到服务器上,asp.net 应用程序即可以部署到 该服务器上,不需要重新启动服务器,甚至在部署或替换运行的已编译代码时也不需要重新启动。 2 2 详细信息,请参阅 asp.net 部署。 (4)增强的性能。 asp.net 是运行在服务器上的已编译代码。与传统的 active server pages (asp)不同,asp.net 能利用早期绑定、实时(jit)编译、本机优化和全新的缓存服务来提高性能。 详细信息,请参阅 asp.net 性能监视。 (5)灵活的输出缓存。 根据应用程序的需要,asp.net 可以缓存页数据、页的一部分或整个 页。缓存的项目可以依赖于缓存中的文件或其他项目,或者可以根据过期策略进行刷新。 (6)国际化。 asp.net 在内部使用 unicode 以表示请求和响应数据,可以为每台计算机、每 个目录和每页配置国际化设置。 (7)移动设备支持。 asp.net 支持任何设备上的任何浏览器。开发人员使用与用于传统的桌 面浏览器相同的编程技术来处理新的移动设备。 (8)扩展性和可用性。 asp.net 被设计成可扩展的、具有特别专有的功能来提高群集的、多 处理器环境的性能。此外,internet 信息服务(iis)和 asp.net 运行时密切监视和管理进程,以便在 一个进程出现异常时,可在该位置创建新的进程使应用程序继续处理请求。详细信息,请参阅 asp.net 进程隔离。 (9)跟踪和调试。 asp.net 提供了跟踪服务,该服务可在应用程序级别和页面级别调试过程 中启用。可以选择查看页面的信息,或者使用应用程序级别的跟踪查看工具查看信息。在开发和应 用程序处于生产状态时,asp.net 支持使用.net framework 调试工具进行本地和远程调试。当应 用程序处于生产状态时,跟踪语句能够留在产品代码中而不会影响性能。 (10)与.net framework 集成。 因为 asp.net 是.net framework 的一部分,整个平台的功能 和灵活性对 web 应用程序都是可用的。也可从 web 上流畅地访问.net 类库以及消息和数据访问 解决方案。asp.net 是独立于语言之外的,所以开发人员能选择最适于应用程序的语言。另外, 公共语言运行库的互用性还保存了基于 com 开发的现有投资。 (11)与现有 asp 应用程序的兼容性。 asp 和 asp.net 可并行运行在 iis web 服务器上而互 不冲突;不会发生因安装 asp.net 而导致现有 asp 应用程序崩溃的可能。asp.net 仅处理具有. aspx 文件扩展名的文件。具有.asp 文件扩展名的文件继续由 asp 引擎来处理。然而,应该注意的 是会话状态和应用程序状态并不在 asp 和 asp.net 页面之间共享。 asp.net 启用了分布式应用程序的两个功能:web 窗体和 xml web 服务。相同的配置和调 试基本结构支持这两种功能。 (3)由 web 服务器(或称 http 服务器)一方实时动态地生成。 html 语言是通过利用各种标记(tags)来标识文档的结构以及标识超链(hyperlink)的信息。 虽然 html 语言描述了文档的结构格式,但并不能精确地定义文档信息必须如何显示和排列,而 只是建议 web 浏览器(如 mosiac,netscape 等)应该如何显示和排列这些信息,最终在用户面前 的显示结果取决于 web 浏览器本身的显示风格及其对标记的解释能力。这就是为什么同一文档在 不同的浏览器中展示的效果会不一样。 目前 html 语言的版本是 2.0,它是基于 sgml(standard generalized markup language,标准 广义置标语言,是一套用来描述数字化文档的结构并管理其内容的复杂的规范)中的一个子集演变 3 3 而来的。虽然下一版本的标准 html3.0(也称为 html+)正在制订之中,但其中某些部分的实验 性标准草案已被广泛采用,大多优秀的 web 浏览器(如 netscape 等)都能解释 html3.0 中的部分 新标记,因此在本章中介绍的一些 html3.0 新标记均已被多数浏览器所接受。 2.标记语法和文档结构 html 的标记总是封装在由小于号()构成的一对尖括号之中。 (1)单标记 某些标记称为“单标记”,因为它只需单独使用就能完整地表达意思,这类标记的语法是: 最常用的单标记是,它表示一个段落(paragraph)的结束,并在段落后面加一空行。 (2)双标记 另一类标记称为“双标记”,它由“始标记”和“尾标记”两部分构成,必须成对使用,其中始标记 告诉 web 浏览器从此处开始执行该标记所表示的功能,而尾标记告诉 web 浏览器在这里结束该功 能。始标记前加一个斜杠(/)即成为尾标记。这类标记的语法是: 内容 其中“内容”部分就是要被这对标记施加作用的部分。例如你想突出对某段文字的显示,就将此 段文字放在一对 标记中: text to emphasize (3)标记属性 许多单标记和双标记的始标记内可以包含一些属性,其语法是: 各属性之间无先后次序,属性也可省略(即取默认值) ,例如单标记表示在文档当前位置 画一条水平线(horizontal line) ,一般是从窗口中当前行的最左端一直画到最右端。在 html3.0 中 此标记允许带一些属性: 其中 size 属性定义线的粗细,属性值取整数,缺省为 1;align 属性表示对齐方式,可取 left(左对齐,缺省值) ,center(居中) ,right(右对齐) ;width 属性定义线的长度,可 取相对值(由一对“ “号括起来的百分数,表示相对于充满整个窗口的百分比) ,也可取绝对值(用 整数表示的屏幕像素点的个数,如 width=300) ,缺省值是“100%“。 其中在最外层,表示这对标记间的内容是 html 文档。之间包括文档的头 部信息,如文档总标题等,若不需头部信息则可省略此标记。我们还会看到一些 hompage 省略 标记,因为.html 或.htm 文件被 web 浏览器默认为是 html 文档。标记一般不省 略,表示正文内容的开始。 3.列表结构和预编排结构 列表(list)结构和预编排(preformatted)结构都是一种具有段落性质的独立块状结构,也就 是说,它们象标题(heading)结构一样,能自成一段,仿佛在这些结构的尾部加上了一个标记。 4 4 (1)列表(list)结构 列表(list)结构也是 html 文档中的一个基本结构。一共有三种类型的列表,它们是: 无次序列表(unordered list): 列表项 有次序列表(ordered list): 列表项 定义表(definition list): 列表项 前二种列表的表项(list item)用单标记表示。web 浏览器会在型列表的每个表项前 加一个小园点或小方块,在型列表的每个表项前加一个整数,如下例: first ul item first sub-ul item second sub-ul item 除了列表结构以外,html 还提供了一种非常有用的预编排(preformatted)结构,利用它可 以使信息完全依照源文件中的编排格式,一模一样地在浏览器中显示出来。它的语法格式为: 预编排信息 因此,只需要将一对标记中的“预编排信息”,按照你所喜欢的格式预先编排好就可以了。 1.2.3 sql server 2000 介绍 1.sql server 2000 简介 sql server 2000 是微软公司在 sql server 7.0 版的基础上新推出的数据库产品,它扩展了 sql server 7.0 版的性能、可靠性、质量以及易用性。它还包括许多新功能以提高系统的执行性能,而 且使得数据库的管理工作变得更加轻松易学,这些功能进一步将 sql server 确立为 oltp、数据 仓库以及电子商务应用程序的最佳数据库平台。 使全部用户,包括应用程序员、dba 管理员和终端用户受益非浅。 (1)非过程化语言 sql 是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。sql 允许用 户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集。所有 sql 语句接受集合 作为输入,返回集合作为输出。sql 的集合特性允许一条 sql 语句的结果作为另一条 sql 语句的 输入。sql 不要求用户指定对数据的存放方法。这种特性使用户更易集中精力于要得到的结果。所 有 sql 语句使用查询优化器,它是 rdbms 的一部分,由它决定对指定数据存取的最快速度的手 段。查询优化器知道存在什么索引,哪儿使用合适,而用户从不需要知道表是否有索引,表有什么 类型的索引。 (2)统一的语言 sql 可用于所有用户的 db 活动模型,包括系统管理员、数据库管理员、应用程序员、决策支持系 统人员及许多其它类型的终端用户。基本的 sql 命令只需很少时间就能学会,最高级的命令 er 托 管提供程序的连接字符串中,存在很多属性,但是常用的属性并不多,数据库连接字符串的常 connection timeout(连接超时时间):当数据库连接发生错误时,系统会再次尝试连接数据 5 5 库,在关闭数据库连接所经历的时间长度,系统默认的时间为 15 秒。 下面通过实例介绍使用 sql server 连接对象和连接字符串连接数据 test1 方法。 连接数据库 test1 需要创建数据库连接对象,创建代码如下: sqlconnection con=new sqlconnection(”server=.;database=test1;uid=sa;pwd=”); con.open(); 6 6 第二章 可行性研究及需求分析 2.1 可行性研究 在线考试系统的主要特点是一方面可以动态地管理各种考试系统信息,只要准备好足够大的题 库,就可以按照要求自动生成各种试卷;另一方面,考试时间灵活,用户可以在规定时间段内的任意时 间参加考试;另外计算机化的考试的最大特点是阅卷快,系统可以在考试结束时当场给出考试结果, 计算机阅卷给了用户的最大的公平感。如何通过一种开发语言能高效的设计出这个系统是一个值考 虑的一个需求。由于现代计算机网络技术的快速发展,信息已遍布全球。再加上现代考试的普及。 网络已成为大众化的产物,所以将考试系统与网络相联,是很有意义的。asp.net 技术为这个系统 设计提供了极大的方便。 2.1.1 项目要求 (1)功能:数据库管理、考试功能、领导审核功能、考试新闻发布; (2)性能:操作方便、可靠、高效、界面赏心悦目; (3)本系统必须要求开发人员对网络技术有一定了解; (4)管理员可以通过本系统将考试的信息存入到数据库中,可以很方便的对信息进行更新。 2.1.2 待开发系统的主要开发目标 (1)迅速实现试题的更新与新闻的发布; (2)使系统的后台管理功能完善; (3)让系统自动生成试卷; (4)实现现代考试网络化。 2.1.3 可行性研究的方法 结合系统本身及自身的情况选定此课题,对该系统做出了可行性研究。系统设计是以在线考试 为目的,基于现代网络在线考试技术,结合现有的技术制定出设计的方案。最终将开发出界面友好、 方便现代用户考试的一套完整的网上考试系统。 2.1.4 评价尺度 (1)自动生成试卷的可行性与完整性; (2)后台管理功能的管理能力; (3)信息发布的及时性与更新性; (4)考试界面的完善; (5)成绩查询的时间性; (6)系统在使用过程是否便于操作和维护。 2.1.5 技术条件方面的可行性 因为本系统最终在分布式系统上运行,因为本人电脑的配置对于做毕业设计以足够,该系统的 功能足以被实现。在软件方面可以用以下几种: (1)操作系统用 windows。windows 作为一个优秀的网络操作系统,它的发行版本中集成了大 量的网络应用软件。 7 7 (2)web 服务器端采用 iis+asp.net+sql server2000。iis 是微软公司主推的 web 服务器,它 试系统的主要好处是一方面可以动态地管理各种考试信息,只要准备好足够大的题库,就可以按照 要求自动生成各种试卷;另一方面,考试时间灵活,用户可以在规定时间段内的任意时间参加考试; 另外计算机化的考试的最大特点是阅卷快,系统可以在考试结束时当场给出考试结果,计算机阅卷 给了用户的最大的公平感。该系统最大的实际应用就是特别适合于现代大学的考试,不仅减轻了教 师因要批改大量试卷的负担,而且方便了大学对学生学习的管理。 所以本系统可以立即开始开发。 2.2 需求分析 需求分析就是发现、求精、建摸、规格说明和复审的过程。为了发现用户的真正需求,首先应 该从宏观角度调查、分析用户所面临的问题。也就是说,需求分析的第一步是尽可能了解当前用户 的情况和需要解决的问题。 2.2.1 市场需求 为了满足市场的需求,软件的设计必须有一定的市场针对性。考试系统软件是为了针对现在学 校的考试的增加和规模的增大而造成的人工管理压力,和人力难以实现监控考试的情况,而设计的 辅助教师进行考试的管理工作的一种小型考试软件。它以其独特的功能和良好的适应性和兼容性来 适应市场发展的需求,并且由于其尚处于继续改进的阶段,改进的考试系统软件将不断的涌向市场。 2.2.2 软件功能分析 根据高校管理的实际要求,结合考试管理的实际过程,系统应该实现以下功能: (1)掌握本考试系统范围内所有用户的基本情况,包括编号,姓名,登录口令等。 (2)基于考试系统的基本功能管理,本系统可以提供给管理员类用户及学生类用户使用。不同 的用户类型所能完成的功能不同。教师类用户可以创建试题、删除过期试题、进行题库维护、创建 试卷以及对本系统内人员信息进行维护和更新等;学生类用户主要是参与考试,完成试卷,查询成 绩。 (3)适时的试题题库更新,试题题型包括判断题、选择题类型。试题库的更新由管理员类用户 完成。学生类用户不允许对试题进行更新。 (4)试卷可由本系统自动生成,也可以由管理员类用户从题库中选择试题创建。 2.2.3 软件的非功能性需求 作为一种软件产品,除了在功能方面必需达到用户的基本要求以外,还必需在意一些非功能方 面的因素,诸如:软件的用户操作界面的美观和简洁,以及界面图标的标准化和规范化。软件要有 一定的兼容性,应该兼容当前的主流操作系统平台,象 windows 98/nt/me/2000/xp/2003 等。 硬件方面应当要求配置低一点,象这样的小型开发软件应该适用于现大多数的计算机网络系统。而 且,最好是可以适应打印机等其它硬件设备,而本软件就很好地做到了这一点。 2.2.4 软件其他方面的要求 (1)在软件程序设计过程中,依据国家计算机软件产品开发文件编制指南和现代软件工 程两项理论与原则的要求,应当编制标准的软件技术文档。如软件使用的编码必须符合 c#编程 8 8 的编码设计标准与规范,其使用的对象名、对象类型和命名约定应该一致并规范化。软件编码时应 注意代码清晰、可读性好,还要运用缩进、空行等必要的格式,结合大小写的区别等方法保持程序 结构良好。涉及多表操作的模块应运用“事务”处理,以保持数据完整性。 (2)软件的设计应该有一个完整的过程,各个步骤都必须做到。一般一个完整的软件设计过程 总体分为三个阶段: 1.软件的开发设计阶段。这一阶段一开始要对所开发的软件项目先做一个市场调查,分析其市 场需求的大小和需求度。然后根据市场调查对软件做一个概念性的设计,确定软件的方向和重点。 接着就进行概要性的设计,将软件的基本框架进行整理和确定。接下来就是详细的设计,这个过程 是软件设计的重点。详细的设计完成之后,软件的开发设计阶段也就结束了。 2.软件的操作和实现阶段。这一阶段主要就是要将设计出来的软件进行各个功能的具体实现情 况进行检验,看是否与开发设计的要求达到一致。为软件的成功投放市场进行质量上的严格把关。 3.软件的市场检验和改进完善阶段。软件经过市场的检验之后,要进行一系列的改进与升级换 代。要知道一个成功的软件产品往往能改进成好几代的产品,这主要是软件为了不断满足市场新的 变化需求。这也是促进计算机软件领域不断发展的原因之一。 9 9 第三章 总体设计 3.1.1 系统功能模块划分 系统整体架构设计如图 5 所示。本系统整体上可以划分为数据库、数据访问和业务逻层。 数据库、数据访问层及业务逻辑层的具体描述如下: (1)数据库层是系统最底层,他存储系统的所有数据。 (2)数据访问层建立在数据库之上,应用程序通过该层访问数据库。数据访问层一般封装数据 库的选择、添加、更新和删除等操作,同时还为业务逻辑层提供访问数据库的接口或函数等。该层 直接与数据库相关联,同时又为业务逻辑层服务,所以数据访问层设计的好坏关系到整个系统的成 败。下面以用户管理模块的数据访问层(userdb 类)为例介绍数据访问层的实现方法,如图 6 所 示。 业务逻辑层 数据访问层 数据库 图 5 总体架构设计 1 0 10 网上考试系统 用户登录题库管理 在线答题 系统数据访问层 数据库 图 6 系统模块划分图 userdb 类实现数据库的方法如下: 过程,应用程序首先从数据库获取该用户的信息,如用户名称和用户角色等,然后再根据用户 的角色显示用户的下一步操作页面。如果考生登录,显示生成试卷等待页面和在线答题页面;如果 教师登录,显示题库管理页面;如果系统管理员登录,显示系统维护页面,本系统部分用户的登录 流程图如图 7 所示。 图 7 用户登录流程图 3.1.2.在线答题 在线答题模块是比较复杂的模块。在线答题模块中,系统首先按照试卷的要求,如试卷总分、 试卷难度系数,随机从数据库生成一套试卷,然后根据不同的题型把各个试题显示在答题页面上。 试卷随机生成的流程图如图 8 所示。 随机生成试卷过程中存在两个回归的过程。右边的回归过程返回到随机生成试卷的状态,该回 归过程是在没有满足试卷的题型或题型种类条件是发生;左边的回归过程返回随机获取试卷种类状 态,该回归过程是在没有满足试卷种类条件时发生。 数据库中的每一类型的试卷所包含的题型是不相同的,而且是每一种题型所包含的试题和试题 的题量也是不相同的,只是各种类的试卷的总分和难度系数都在同一个范围内,即属于同一类型的 试卷。系统中的同一类型的试卷,它们的难度系数将控制在一个范围内,即界于最大难度系数和最 小难度系数之间。 1 1 11 考生登陆 获取用户角色 随机获取试卷种类 随机生成试卷 显示试卷 结束 图 8 试卷随机生成的流程图 3.2. 表设计 1.角色表(roles) 角色表存储用户的角色信息,字段说明如表 1 所示。 1 2 12 表 1 roles 表的字段说明 编号字段名称字段类型字段说明 1roleidint角色表主键 2rolenamevarchar(32)角色名称 用户可以使用此表设置用户的角色。创建角色表的 sql 脚本如下: use test1 go create table roles ( go create table users ( useridint identity primary key, usernamevarchar(32) not null, userpwdvarchar(200), emailvarchar(200), useridentityint ) go 3.考生表(examinees) 考生表存储参加考试的考生信息,该表引用用户表 users 的主键 userid 作为该表的外键。考 生表的字段说明如表 3 所示。 表 3 examinees 表的字段说明 编号字段名称字段类型字段说明 1examineeidint角色表主键 2useridint角色名称 3takepartdatedatetime参加考试时间 4markint考试成绩 管理员(教师)登录后,可以通过此表查看考生参加的考试和考试成绩。创建考生表的 sql 脚 本文件如下: use test1 go create table examinees kinds) 问题种类表存储问题种类的信息,如选择题和判断题。该表的字段说明如表 4 所示。 表 4 questionkinds 表的字段说明 编号字段名称字段类型字段说明 1kindidint问题种类表主键 1 3 13 2kindnamevarchar(32)问题种类表名称 3kindorderint问题种类显示的顺序号 创建问题种类表的 sql 脚本文件如下: use test1 图片表存储图片信息,该表的字段说明如表 5 所示。 表 5 picture 表的字段说明 编号字段名称字段类型字段说明 1pictureidint图片表主键 2titlevarchar(100)图片表标题 3pictureurlvarchar(100)图片的存储地址 创建图片表的 sql 脚本文件如下: use test1 go create table examinees ( 系数值。表中 title 字段标示问题的标题,但是系统不使用该字段显示具体问题,他仅仅作为问题 的标题备用字段,因为问题的描述通常比较长,title 字段是不够用的,当然如果问题描述比较短, 那么也可以使用该字段。开发过程中使用表中 boby 字段存储问题的描述更加方便,它的类型为 text,可以存储很长的文本。 1 4 14 表 6 questions1 表的字段说明 编号字段名称字段类型字段说明 1questionidint问题表主键 2titlevachar(32)问题表标题 3bobyvachar(200)问题的主题内容 4pubdatevachar(200)添加到题库的时间 5kindidint问题种类 id 6answervarchar(5)问题的答案 7defficultint问题的难度系数 8markint考试成绩 创建图片表的 sql 脚本文件如下: use test1 create table questions 问题答案表存储题库中问题的答案信息,该表引用问题表 question 的 questionid、图片表 pictures 的 pictureid 作为表的外键。问题答案表的字段说明如表 7 所示。 表 7 answers 表的字段说明 编号字段名称字段类型字段说明 1answeridint问题答案表主键 2titlevachar(200)答案标题 3bobytext答案的实际内容 4pictureidint包含图片 id 5questionidint答案所属问题的 id 8.试卷表 试卷表也称为试卷种类表,它存储题库的试卷种类信息,惟一地标识一套试卷。该表引用用户 表的 userid、角色表 roles 的 useridentity、问题种类表 questionkindid 作为表的外键。试卷表的 字段说明如表 8 所示。 表 8 papers 表的字段说明 编号字段名称字段类型字段说明 1paperidint角色表主键 2totalmarkint试卷的总分数 3kindidint问题种类的 id 4kindnumint问题种类的数量 5mindefficultint最小难度系数 6maxdefficultint最大难度系数 7useridentityint考生的角色 8useridint创建此试卷的用户 id 试卷表只是标识一套试卷的整体情况,如难度系数、试卷总分等,它并不能标识这套试卷所包 含的具体试题,正因为如此,才保证每套试卷的随机性。值得注意的一点是:mindefficult 字段和 maxdefficult 字段标识该套试卷的难度范围,而不是试卷的具体难度系数。 创建问题答案表的 sql 脚本文件如下: use test1 1 5 15 go create table papers ( 3.3 题库管理 试题类别管理,主要实现试卷类别的添加、删除、修改和排序功能; 考试试题管理,主要实现试题的添加、删除和修改功能; 试题答案管理,主要实现试题的答案的添加、删除和修改功能。 3.4 在线答题 动态随机生成试卷使用随机函数动态地从题库中取得整张试卷的题目,每次生成的试卷是 不相同的; 显示整套试题。 1 6 16 第四章 详细设计及实现 对系统的需求有了完整、准确、具体的了解后,接下来的工作就是正确实现这些模块的具体功 能。进行软件设计之后,就是实现软件设计的目标,设计出所要开发软件的模型,并使其投入实际 的应用中。 4.1 用户登录和注册 4.1.1 界面设计 用户登录由 login1.aspx 页面实现,它的代码隐藏文件为 login1.aspx.cs 文件,用户登录是应用 程序的主入口,用户只有通过该入口才能进入系统,它的界面设计如图 9 所示。 图 9 系统登录界面 因为用户所属角色有考生和管理员两类,所以在设计登录页面时,需要提供一个角色选择框让 用户选择自己所属的角色。 用户登录界面使用两个 textbox 控件为用户输入用户名称和密码,用户单击“登录”按钮可以 登录到系统,单击“注册”按钮可以进入注册页面进行注册。 4.1.2 用户登录 用户单击“登录”按钮触发事件 btnlogin_click(),该事件实现用户登录的验证过程。事件 btnlogin_click()验证用户的输入,如果用户输入是正确的,用户可以登录到系统中,否则页面弹 出密码错误对话框或用户角色所属错误对话框。事件 btnlogin_click()代码如下: private void btnlogin_click(object sender, system.eventargs e) else 1 7 17 response.redirect(“adminlogin.aspx“); else /不存在 response.write(“alert(用户名或密码或身份选择错误! 或您是否已经注册!)“); 4.1.3 用户注册 添加新用户有两种方式,一种方式是从后台的用户管理中添加用户,另一种方式是用户注册。 用户注册只能添加考生,而不能添加管理员类用户。因为具有管理员用户可以直接进入到系统后台 管理界面,所以在前台注册这种角色的用户是非常不安全的,系统地管理将比较混乱,而且系统数 据的安全性也会受到威胁。 下面介绍前台用户注册实现的方法。考虑到用户注册需要输入用户名称、用户密码和用户电子 邮件等信息,因此可以设计如图 10 所示的注册界面。 图 10 新用户注册 用户注册页面中的 5 个文本输入框分别用于输入用户名称、真实姓名、用户密码、用户确认密 码和用户的电子邮箱等信息。此外还有 radiobuttonlist、file 和 image,分别用于注册用户的性别 和相片的上传。注册页面用 5 个非空验证控件、1 个比较验证控件、1 个正则表达式验证控件和 1 个用户自定义验证控件,分别验证用户的输入。非空验证控件对各个文本进行非空验证;比较验证 控件对两次密码输入是否一致进行检验;正则表达式验证控件检验邮箱格式是否输入正确;用户自 定义验证控件检查该用户名是否已经存在,页面对每一个输入框的输入进行验证可以提高程序的可 靠性和安全性。其中检验用户名是否已经存在的代码为: con.open(); sqlcommand cmd=new sqlcommand(“select count(*) from users where username=“+username+“,con); 1 8 18 int count=convert.toint32(cmd.executescalar(); if(count0) return true; else return false; 4.2 题库设计 当用户以管理员身份登录考试系统时,首先进入欢迎界面 adminlogin.aspx,在该界面中,用户 以管理员身份,实现判断题和选择题的管理以及成绩管理和学生管理,分别单击相应的连接即可进 入对应的界面。 4.2.1 选择题管理 1.数据绑定 选择题管理由页面 selecting.aspx 实现,selecting.aspx.cs 是它的代码隐藏文件,选择题管理页面 需要实现选择题的增加、删除和修改以及将对应题目加入到试卷库,作为考试试卷的内容。选择题 管理页面如图 11 所示。 图 11 选择题管理 选择题管理页面中用 datagrid 控件实现将数据库中的试题绑定在页面中显示,其中实现数据 绑定的代码为: 在 datagrid 中添加删除按钮,当用户单击该按钮时,事件 deletecommand 被触发从而响应该 事件, 3.修改试题 在 datagrid 中添加编辑按钮,当用户单击该按钮时,事件 editcommand 事件被触发从而响应 1 9 19 该事件,代码如下: private void datagrid1_editcommand(object source, system.web.ui.webcontrols.datagridcommandeventargs e) this.datagrid1.edititemindex=e.item.itemindex; this.bindtodatagrid(); 当用户不需要对试题进行修改时,可以单击取消按钮,取消对试题的修改,该事件由 cancelcommand 事件来响应,代码如下: private void datagrid1_cancelcommand(object source, system.web.ui.webcontrols.datagridcommandeventargs e) this.datagrid1.edititemindex=-1; this.bindtodatagrid(); 当用户对试题的相应内容进行修改以后,需要将修改后的内容更新到数据库中,此时,由事件 updatecommand 响应,代码如下: private void datagrid1_updatecommand(object source, system.web.ui.webcontrols.datagridcommandeventargs e) 4.添加试题 当用户单击添加选择题链接时,页面转入选择题添加页面 addselect.aspx。选择题添加页面如 图 12 所示。 图 12 添加选择题 2 0 20 当用户单击提交按钮时,事件 lbtntijiao_click()触发,该事件实现将管理员编写的题目添加到 数据库中,其代码为: private void lbtntijiao_click(object sender, system.eventargs e) if(this.isvalid) criptalert(添加失败!);“); 4.2.2 判断题管理 判断题管理由 rightorwrong.aspx 页面实现,它的页面设计和功能实现的代码和选择题管理类 似。 4.3 在线答题实现 4.3.1 界面设计 系统的在线答题功能由页面 kaoshi.aspx 和页面 examination.aspx 实现,它们的代码隐藏文件分 别为 kaoshi.aspx.cs 和 examination.aspx.cs 文件。 页面 kaoshi.aspx 是一个等待页面,应用程序生成一套考试试卷需要一定的时间,如图 13 所示。 图 13 生成试卷等待页面 在等待界面中,应用程序使用自动跳转方式转到考试界面(examination.aspx) ,跳转的代码入 下: 在随机生成试卷的过程中,应用程序首先调用函数 createexaminepaper()生成整套试卷。该函 数递归调用自己,直到生成试卷。 private arraylist createintegerexaminepaper(int ntotalmark,int mindefficult,int maxdefficult,arraylist kindlist) 2 1 21 /定义函数的局部变量 if(kindlist.count = 100 * mindefficult *questionidlist.count & defficultparm 4 and a(1)=0 then a(1)=4 dim key(10)/正确答案的选项 dim db,sql,rs set db=ne

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论