《ASP.NET程序设计及应用》-苏英如-电子教案 10第10章设计实例

上传人:E**** 文档编号:89402009 上传时间:2019-05-24 格式:PPT 页数:33 大小:2.32MB
返回 下载 相关 举报
《ASP.NET程序设计及应用》-苏英如-电子教案 10第10章设计实例_第1页
第1页 / 共33页
《ASP.NET程序设计及应用》-苏英如-电子教案 10第10章设计实例_第2页
第2页 / 共33页
《ASP.NET程序设计及应用》-苏英如-电子教案 10第10章设计实例_第3页
第3页 / 共33页
《ASP.NET程序设计及应用》-苏英如-电子教案 10第10章设计实例_第4页
第4页 / 共33页
《ASP.NET程序设计及应用》-苏英如-电子教案 10第10章设计实例_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《《ASP.NET程序设计及应用》-苏英如-电子教案 10第10章设计实例》由会员分享,可在线阅读,更多相关《《ASP.NET程序设计及应用》-苏英如-电子教案 10第10章设计实例(33页珍藏版)》请在金锄头文库上搜索。

1、第10章 设计实例,本章学习目标 利用ASP.NET开发基于 Web的数据库应用系统的常用技术与技巧,第10章 设计实例,10.1 留言簿 10.2 文件上传 10.3 在线投票系统 10.4 在线问卷调查系统 10.5 在线考试系统 10.6 在线购物系统,10.1 留言簿,10.1.1 留言簿简介 10.1.2 留言显示模块 10.1.3 “留言”模块,10.1.1 留言簿简介,网站中的留言簿提供两种主要功能,一是分页显示留言内容,二是允许用户写入留言内容。为了提高运行效率、增强留言信息的可管理性,本例将留言以及相关信息存储在数据库中。 本节实现的留言簿由两个ASP.NET网页和一个Acc

2、ess数据库组成。其中数据库用于保存留言及相关信息,网页则分别用于显示留言和写入留言。 留言显示界面如图所示,该界面与文件Prac10-01-1.aspx对应。 该界面主要实现分页显示留言记录的需求。此外,为了便于用户使用,还另外提供了允许用户选择每页显示记录数的功能。 在留言显示界面中,设置了一个指向“留言”界面的超链接。,10.1.1 留言簿简介,“留言”界面如图所示,该界面与文件Prac10-01-2.aspx对应。该界面主要供访客撰写并提交留言,此外,还提供了简单的数据有效性验证功能。 在“留言”界面中,设置了一个指向“留言”界面的超链接。,10.1.2 留言显示模块,留言存放在数据库

3、中。分页显示数据库中的记录,最简单的工具是DataGrid控件,但为了演示如何自由访问存储在内存中的记录,本例选择了Repeater控件作为显示工具。为了实现分页显示,在内存中建立一个临时数据表,根据当前页码和每页记录数,将需要显示在页面中的留言写入临时数据表,然后将Repeater控件绑定到该表以将表中记录显示到页面中,实现此功能的代码是本模块的核心部分。 与每页显示留言数列表框有关的程序操作,则是根据列表框中当前选择的条目,确定每页记录数目。 为了便于用户在不同的记录页间进行切换,本例提供了两种供用户选择页面的方法,一种是典型的首、尾、上、下页方式,另一种是由用户直接选择目的页码的方式。

4、根据以上分析可知,如果能将显示任意页记录的代码写成一个过程,则其余的编程工作不过是根据用户操作,确定目的页码,然后再调用上述过程而已。,10.1.3 “留言”模块,“留言”模块主要包括供用户撰写、提交留言的前台输入界面和将留言信息写入数据库的后台代码组成。 当用户留言被写入数据库后,本例采用了重新载入留言显示页面的处理方式。可以采用的另一方式是,显示一个包括提交成功的提示信息、指向留言显示和“留言”页面的超链接。 为了保证用户提交信息的完整性和有效性,在供用户撰写、提交留言的前台输入界面中加入了验证控件,以保证用户必须输入其姓名和留言内容。,10.2 文件上传,在ASP网页中,如果想提供文件上

5、传功能,必须使用专门的文件上传组件。而ASP.NET内建了文件上传功能,可以十分方便地实现文件上传。 10.2.1 上传一个文件到服务器 10.2.2 上传多个文件到服务器,10.2.1 上传一个文件到服务器,本例实现的功能是,提供可浏览文件的“浏览”按钮,供用户选择文件,在用户完成文件选择并单击“上传文件”按钮后,文件将被复制到服务器,之后,显示相关提示信息。 本例的运行结果如图所示,请仔细阅读附加在源码后的注释内容。,10.2.2 上传多个文件到服务器,本例实现的功能是,提供多个可浏览文件的“浏览”按钮,供用户连续选择文件,在用户完成文件选择并单击“上传文件”按钮后,所选择的多个文件将被复

6、制到服务器,之后,显示相关提示信息。 本例的运行结果如图所示,请仔细阅读附加在源码后的注释内容。,10.3 在线投票系统,10.3.1 在线投票系统简介 10.3.2 投票模块 10.3.3 得票模块,10.3.1 在线投票系统简介,本节实现的在线投票系统主要提供两个功能,一是允许用户进行投票,二是用户随时可查看提供当前投票结果清单。 本节实现的在线投票系统由两个ASP.NET网页和一个Access数据库构成。其中网页用于提供投票和查看当前得票情况。而数据库中则包含两个数据表,一个数据表用于保存候选项及其所获选票的总数,另一个用于保存投票者的IP地址以及投票时间。 在数据表中保存投票者的IP地

7、址以及投票时间的目的是为了防止用户在短时间内连续投票(即通常所谓的“灌水”)。本例防止“灌水”的策略是,当用户提交其选票后,系统将获取其IP地址,然后在数据表中查找该地址,如果已经存在,且来自该IP地址的最后一张选票发出时间不在10分钟以前,则拒绝接受选票。 投票界面如图所示,该界面与文件Prac10-04-1.aspx对应,主要供用户投票,此外,也允许用户不投票而直接查看当前投票结果。,10.3.1 在线投票系统简介,投票结果清单如图所示,该界面与文件Prac10-04-2.aspx对应。为改善投票结果的显示效果,除了提供精确的统计数据外,还用直方图示意了得票情况。,10.3.2 投票模块,

8、本模块的主要功能是获取用户的选票,然后根据防“灌水”规则,确定选票是否有效,如果有效,则改写数据库中的相应候选项的得票总数,然后记录发出选票的IP地址以及发出时间;否则,提示用户不能重复投票。 源码中需要注意的是: #06#20:定义Page_Load()过程。该过程的主要功能是,当网页不是因为客户端返回数据而加载时,从数据库中提取候选项,然后生成单选按钮组。 #21、#52:定义Vote_Click()过程。当用户单击投票按钮后,本过程触发。 #38:判断选票是否有效(如果数据库中没有当前选票的IP地址,程序为什么可以将选票视为有效?请读者自己考虑)。 #53#55:定义View_Click

9、()过程。该过程的功能是将浏览器重定向到网页Parc10-04-2.aspx。,10.3.3 得票模块,本模块的主要功能是从数据库中获取各候选项的得票情况,然后输出统计表和直方图。 因为在显示统计结果时,需要用到一些未直接存储在数据库中的信息(如各选项的得票率),因此,将存储候选项的得票情况的表装入内存,然后在内存数据表中新增两个字段,一个是“得票率”,另一个是“直方图”。在直方图字段中,存储能够显示正确的横条图的HTML标记。,10.4 在线问卷调查系统,10.4.1 在线问卷调查系统简介 10.4.2 选择、提交评价模块 10.4.3 调查结果统计、显示模块,10.4.1 在线问卷调查系统

10、简介,在线问卷调查与在线投票系统类似。不过,因为所调查的问题有多个,因此代码略显复杂。下面是一个供用户对某讲义中的若干章进行评价的例子。如果不考虑代码可重用性的话,实现起来并不很麻烦,但如果需要改变调查内容和评语时,就必须改写源码。本例所实现的系统,可随意更改调查内容和数量以及评语内容。本例的运行结果如图所示。其中供用户选择、提交评价的页面与文件Prac10-05-1.aspx对应;调查结果统计页面与文件Prac10-05-2.aspx对应。,10.4.1 在线问卷调查系统简介,本例共使用了两个数据表,数据表的结构及内容如图所示。在本例子中,数据表option1中的d_Id字段在本例中没有用到

11、。其余字段的意义可按照字面意义理解,但是需要注意的是,为了便于编程,数据表option1中的d_opcount列的取值为Title表中记录得票数目的字段名,这样设置的目的,主要是为了便于构造根据用户所填的数据改写数据表内容的SQL语句。,10.4.2 选择、提交评价模块,本模块的主要功能是获取用户的评价,然后根据防“灌水”规则,确定用户提交的评价是否有效,如果有效,则改写数据库中的有关数据项,否则,提示用户不能再填表。 与上节系统所实现的系统不同的是,本例是通过在Session变量中记录用户的填表情况以防止“灌水”的。即定义一Session变量,用于记录用户的填表情况。如果用户所提交的数据被写

12、入数据库,则将该变量置为一特殊标记,当用户启动提交过程后,程序将首先根据这个变量的值判断用户是否还有填表的权利,然后根据判断结果转入相应的处理。 需要指出的是,这种防“灌水”的机制是十分脆弱的,因为用户在提交数据后,可以打开第二个浏览器提交数据。,10.4.3 调查结果统计、显示模块,本模块的主要功能是从数据库中获取各候选项的得票情况,然后输出统计表和直方图。 因为在显示统计结果时,需要用到一些未直接存储在数据库中的信息(如各选项的得票率),因此,将存储候选项的得票情况的表装入内存,然后在内存数据表中新增两个字段,一个是“得票率”,另一个是“直方图”。,10.5 在线考试系统,10.5.1 在

13、线考试系统简介 10.5.2 考生登录模块 10.5.3 试题生成与成绩评定模块 10.5.4 成绩显示模块,10.5.1 在线考试系统简介,本例实现的在线考试系统由考生登录模块、试题生成与成绩评定、成绩显示等模块构成。 使用本系统之前,系统管理人员应将试题、答案和评分标准、考生的学号及姓名等存储在数据库中。 使用本系统进行考试的考生,其操作流程如下:首先,进入登录页面,选择科目和学号。然后请求进入考场。如果系统允许该生进入考场,则浏览器将被重定向到答题页面;在答题页面中,考生可在线答题,答题完毕,单击交卷按钮,系统将可启动成绩评定过程,完成成绩评定后,浏览器将被自动重定向到成绩显示页面。上述

14、过程如图所示。,10.5.1 在线考试系统简介,本系统一共使用了3个数据表,其中的两个分别用于存储两份试题以及答案、评分标准等,另外一个则用于保存考生信息和考试成绩。下图给出了这两个数据表的结构和内容。 本系统具有一定的智能,系统管理者可通过直接数据库来完成试题的增删和更改。,10.5.2 考生登录模块,本模块的主要功能是获取考生信息。考生在此界面中进行的操作相当于在普通考试中在试卷上填写姓名、学号的操作。 为了避免防止考生重复答题,在本模块中加入了判断考生是否“尚未考试”的环节。此判断是基于“成绩单”中相应科目的成绩的,系统管理员在建立成绩表时,所有考生的所有科目成绩应设置为“尚未考试”。考

15、生交卷后,系统将用考生成绩替代原来的“尚未考试”。 最后,在重定向到答题页面时,本模块还必须将考生学号、考试科目等信息一并传过去。这一任务是通过Url参数完成的。,10.5.3 试题生成与成绩评定模块,本模块的主要功能有二,一是根据所接收的考试科目信息,从数据库中获取试题并将其显示在页面上,构造便于考生操作的输入元素是该段代码中的重点内容;二是在考生交卷后,获取考生答题结果并与存储在数据库中的答案进行比对,确定成绩并将成绩写入数据库。 在构造输入元素(单选、复选按钮)时,所采用的方法与上节在本质上是类似的。都是先在页面中放置一个Panel控件,然后向其中加入Literal、RadioButto

16、nList或CheckBoxList控件。,10.5.4 成绩显示模块,相对于本系统的其他模块而言,成绩显示模块是十分简单的。该模块接收来自试题生成与成绩评定模块的“学号”,从数据库中找到对应的记录,然后显示其姓名、科目和考试成绩等信息。,10.6 在线购物系统,10.6.1 在线购物系统简介 10.6.2 购物区(商品类别)选择模块 10.6.3 商品选择模块 10.6.4 “购物袋”处理模块 10.6.5 “退回所有商品”模块,10.6.1 在线购物系统简介,本例实现了一个能显示商品信息,并支持顾客自由选购的系统。该系统由4个ASP.NET网页和一个数据库组成,其主要用户界面如图所示。,10.6.1 在线购物系统简介,Ssyyrr5.mdb是一个Access数据库,用于存储商品信息

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号