您好,欢迎来到尔游网。
搜索
您的当前位置:首页《Web程序设计》课后题答案

《Web程序设计》课后题答案

来源:尔游网


ASP.NET Web程序设计习题与练习答案

第1章 习题与练习

1.简答题

1)什么是MSDN,它包含哪些功能? 答案:

MSDN(Microsoft Developer Network)是Microsoft公司面向软件开发者的一种信息服务。MSDN 实际上是一个以 Visual Studio 和 Windows 平台为核心整合的开发虚拟社区,包括技术文档、在线电子教程、网络虚拟实验室、微软产品下载(几乎全部的操作系统、服务器程序、应用程序和开发程序的正式版和测试版,还包括各种驱动程序开发包和软件开发包)、Blog、BBS、MSDN WebCast、与 CMP 合作的 MSDN 杂志等等一系列服务。

2)Visual Studio内置服务器的作用是什么? 答案:

Visual Studio 开发服务器是在 Windows 操作系统(包括 Home Edition 版本)上本地运行的 Web 服务器。与 IIS Express 一样,它是专门构建用于在本地计算机上运行 ASP.NET 的。它不会处理针对其他计算机的请求。此外,它也不会提供应用程序范围外的文件。Visual Studio 开发服务器是一种方法,可用于在向运行 IIS 的生产服务器发布网站或应用程序之前在本地进行测试。

3)Visual Studio 2012开发环境中主要包含哪些窗口?

答案:

 工具栏。提供用于格式化文本、查找文本等的命令。一些工具栏只有在“设计”

视图下才可用。

 “解决方案资源管理器”窗口。显示网站中的文件和文件夹。

 “文档”窗口。显示在视图选项卡窗口中处理的文档。单击选项卡可以实现在文

档间切换。

 “属性”窗口。允许您更改页、HTML 元素、控件及其他对象的设置。

展示同一文档的不同视图。 “设计”视图是一种近似 WYSIWYG 的 视图选项卡。

编辑界面。 “源”视图是页的 HTML 编辑器。 “拆分”视图可同时显示文档的“设计”视图和“源”视图。如果要在“设计”视图中打开网页,需在“工具”菜单上,单击“选项”,选择“HTML 设计器”节点,然后更改“起始页位置”选项。

 工具箱。提供可以拖到页上的控件和 HTML 元素。 “工具箱”元素按常用功能

分组。

 服务器资源管理器/数据库资源管理器。用于显示数据库连接。如果未显示“服

务器资源管理器”,可以在“视图”菜单上单击“服务器资源管理器”或“数据库资源管理器”。

 4)编写ASP.NET应用程序的步骤是什么?

 答案:

 (1)创建一个新的 ASP.NET Web 窗体页  (2)将页面添加到网站  (3)向页中添加静态文本  (4)添加控件

 (5)对Button控件编程

5)请对不同调试方法进行分析比较。

答案:

(1)使用调试器:启动默认浏览器并加载指定的起始页。在调试器中运行页可以逐 行扫描代码,并利用其他分析工具和运行时信息来进行调试。如果 Visual Studio 发现关键文件已更改,它同样在启动包含指定起始页的浏览器之前生成项目。

(2)不用调试器:允许以在开发工具上下文以外的一般运行状况运行代码,这样这 些工具不会提供可用的运行时信息。如果 Visual Studio 发现关键文件已更改,将在启动包含指定起始页的浏览器之前生成项目。

(3)在浏览器中查看:编译项目并打开从“解决方案资源管理器”中选择的 Web 页。 项目被编译并在 Visual Studio 内的默认浏览器中运行。 2.操作题

请自定义你的集成开发环境,将所有文本的颜色改成红色。 答案:   

(1)在菜单栏中,选择[工具] →[选项]。

(2)在 [选项] 列表中选择[环境]→[字体和颜色]。 (3)在[项前景]列表中,选择“红色”,然后选择[确定]按钮。 3.程序设计题

创建一个指向目标文件夹“d:\\CompiledSite”的 IIS 虚拟目录。 答案:

(1)打开“Internet Information Services (IIS)管理器”对话框。 (2)在“连接”窗格中,展开服务器名称,然后展开“站点”。 (3)右击“默认网站”,然后选择“添加虚拟目录”。此时将出现“添加虚拟目录”对话框。

(4)在“别名”框中,输入 CompiledWebSite。

(5)在“物理路径”框中,输入d:\\CompiledSite。单击“确定”。

(6)在 IIS 管理器的“连接”窗格中,右击新的虚拟目录,然后选择“转换为应用程序”。此时将出现“添加应用程序”对话框。单击“确定”。

     

第2章习题与练习

1. 选择题。

(1)-(5)BCBCD (6)-(10)BACAD 2. 填空题。

(1) (2)超链接 ,加粗 (3)

(4)Name,Method,Post,Action (5)与历史清单有关的信息 3. 程序题。

图书分类表

图书分类表
类别 书名 价格
计算机web程序设计 41
C#开发 29
文学 奋斗 35
日期:2013-03-08

第3章习题与练习

一、判断题

1. (对 ) 2. (对 ) 3. (错 ) 4. (错 ) 5. (错 ) 二、选择题

A D A D C A A D D C A B C C B C A D D D A B D B D B C A A 三、填空题(共6小题) 1、 (xhtml)

2、div是块元素,span是行内或内联元素 3、color:#666;

5、(xhtml或xml,css)

第4章习题与练习

一 选择题 CDABCD 二 填空题

(1) <%@Master%> 、ContentPlaceHolder (2)App_Theme、服务器控件

(3)外观文件、.CSS文件、图像和其他资源 (4)页面指令级、应用程序级、文件夹级 (5)FindControl()方法和MasterType指令 (6)SkinID 三 简答题

(1)答:母版页是指可以再同一站点的多个页面享使用的特殊网页。用户可以使用母版页建立一个通用的版面布局或者使用母版页在多个页面中显示一些公共的内容。引用母版页的Web窗体页面称为内容页。

(2)答:内容页与普通的Web窗体页面有所不同,主要体现在:

①在<%@ Page„„%>指令中增加了Title=\"\"和MasterPageFile=\"~/MasterPage.master\"两个指令。②在内容页中不包含、、、<body>、<form>等Web元素,因为这些元素都被放置在母版页中。③在内容页中包含有若干个<asp:Content„„>和</asp:Content>标记,而且内容页的所有元素都要包含在Content控件中。<p>(3)答:同一类型控件的外观分为默认外观和命名外观两种:①默认外观:不设置控件的SkinID属性,它自动应用于同一类型的所有控件。在同一主题中针对同一类型的控件只能有一个默认外观。②命名外观:如果同一类型控件有不同于默认外观的属性设置时,可以通过设置控件的SkinID属性来解决。<p>(4)答:①设计主题。 ②在内容页中设置StyleSheetTheme属性为引用的主题。<p>例如主题名称为Theme1,则只需要在内容页中设置页面的StyleSheetTheme属性为“Theme1”,母版页和内容页的内容都会自动应用此主题。<p>四 答: TextBox textbox = (TextBox)Master.FindControl(\"TextBox1\"); if (textbox != null) {<p>textbox.Text = \"123456\";<p>}<p>第5章习题与练习<p>1.填空题<p>1) TreeView控件,SiteMapPath控件,Menu控件 2) .sitemap<p>3) 引用另外一个sitemap文件<p>4) 静态菜单的菜单显示级别数为2 5) _blank<p>6) DataSourceID<p>2.操作题: 主要步骤:<p>新建一个名为Web.sitemap的XML站点地图文件,Web.sitemap页面中修改并添加代码:<p><?xml version=\"1.0\" encoding=\"utf-8\" ?> <siteMap><p><siteMapNode url=\"~/default.aspx\" title=\"首页\" description=\"首页\"> <siteMapNode url=\"~/Newslist.aspx\" title=\"新闻\" description=\"新闻\"><p><siteMapNode url=\"~/PENews.aspx\" title=\"体育新闻\" description=\"体育新闻\" /> <siteMapNode url=\"~/internationalNews.aspx\" title=\"国际新闻\" description=\"国际新闻\" /> </siteMapNode><p><siteMapNode url=\"~/userManage.aspx\" title=\"用户管理\" description=\"用户管理\"> <siteMapNode url=\"~/userRegister.aspx\" title=\"用户注册\" description=\"用户注册\"/> <siteMapNode url=\"~/userLogin.aspx\" title=\"用户登录\" description=\"用户登陆\"/> </siteMapNode> </siteMapNode> </siteMap><p>然后再添加一个新的Web页面,使用默认名称“Default.aspx”,添加一个SiteMapDataSource控件,ID属性使用默认的SiteMapDataSource1。在“Default.aspx”页面再添加一个TreeView控件,将DataSourceID属性值设为\"SiteMapDataSource1,即连接了数据源,“Default.aspx”。<p>第6章习题与练习<p>1. 选择题<p>1) A 2) B 3) C 4) B 5) B 6) A 7) C 8) C 9) B 10) D 11) B 12) B 13) C 14) A 15) B<p>2. 填空题<p>1) continue 2)System.Enum 3)整型、实型、字符型和布尔型 4) if switch 5) 5 6) 封装性、继承性和多态性 7) 值类型、引用类型和指针类型 8) 80<p>3. 简答题<p>1) 一个ASP.NET的Web页面包含以下几个部分:<p>指令:供编译器处理的ASP.NET页面和用户控件时使用的命令。 HTML标签:作为外观设计的一部分,不能在代码中被访问。<p>服务器控件:允许用户与页面交互的控件,在服务器上被处理,允许引发服务器端事件。 代码声明块:定义当呈现页时执行的内联代码或内联表达式,放在<%„%>标记中。 代码呈现块:把用C#语言编写的代码放在<script>标签中。 页面事件:页面触发时的事件。<p>控件事件:在客户端被用户触发的事件。<p>2) Page指令的常用属性<p>属性 AutoEventWireUp Buffer CodeFile Debug 说 明 指示页的事件是否自动绑定。如果启用了事件自动绑定,则为true;否则为false。默认值为true 确定是否启用了HTTP响应缓冲。如果启用了页缓冲,则为true;否则为false。默认值为true 指定指向页引用的代码隐藏文件的路径 指示是否应使用调试符号编译该页。如果应使用调试符号编译该页,则为 true;否则为 false。由于此设置影响性能,因此只应在开发期间将此属性设置为 true EnableSessionState 定义页的会话状态要求。如果启用了会话状态,则为true;如果可以读取会话状态但不能进行更改,则为ReadOnly;否则为false。默认值为true。这些值不区分大小写 EnableTheming EnableViewState Inherits Language 指示是否在页上使用主题。如果使用主题,则为true;否则为false。默认值为true 指示是否在页请求之间保持视图状态。如果要保持视图状态,则为true;否则为false。默认值为true 定义供页继承的代码隐藏类。它与CodeFile 属性(包含指向代码隐藏类的源文件的路径)一起使用 指定在对页中的所有内联呈现(<% %> 和 <%= %>)和代码声明块进行编译时使用的语言。值可以表示任何.NET Framework支持的语言,如C# Theme 指定在页上使用的有效主题标识符。如果设置Theme属性时没有使用StyleSheetTheme属性,则将重写控件上的单独的样式设置,允许您创建统一而一致的页外观 Trace 指示是否启用跟踪。如果启用了跟踪,则为true;否则为false。默认值为false 3) public:对任何类和成员都公开,无访问; protected:仅仅对该类以及该类的派生类公开; private:仅仅对该类公开;<p>internal:只能值包含该类的程序集中访问该类(只是单独的项目,而不是整个解决方案);<p>protected internal:只能在本类、派生类或者包含该类的程序集中访问。<p>4) 值类型直接存储它的数据内容,包括简单数据类型、结构类型和枚举类型;引用类型不存储实际数据内容,而是存储对实际数据的引用,包括类、字符串、数组、委托和接口等。<p>值类型的值是存放在堆栈中的,改变其值,不改变变量原有的值,而引用类型的值是存放在栈中的,其引用的地址是存放在堆栈中的,改变其值也就改变了变量原有的值。值类型不允许包含null值,然而可空类型可以将null赋值给值类型。<p>5) 装箱转换是指将一个值类型隐式或显式地转换成一个对象类型,或者把这个值类型转换成一个被该值类型应用的接口类型(interface-type)。把一个值类型的值装箱,就是创建一个对象实例并将这个值复制给这个对象,装箱后的对象中的数据位于堆中,堆中的地址在栈中。被装箱的类型的值是作为一个拷贝赋给对象的。 拆箱转换是指将一个对象类型显式地转换成一个值类型,或是将一个接口类型显式地转换成一个执行该接口的值类型。注意装箱操作可以隐式进行但拆箱操作必须是显式的。拆箱过程分成两步:首先,检查这个对象实例,看它是否为给定的值类型的装箱值。然后,把这个实例的值复制给值类型的变量。<p>4. 程序阅读题<p>1) 比较两个整数a和b的大小,若a>b则返回1,若a= =b则返回0,若a<b则返回-1。 2) 采用选择排序的方法对数组a中的n个整数按照从小到大的次序排列。 3) 求出从键盘上输入的一批常数的平均值,以-1作为结束输入的标志。 4) 显示输出数组a中大于等于平均值的所有元素值。 5) 9 12 15<p>6) 5 8 11 14 7) 25 10 25 10<p>8) 5 7<p>5. 编程题 1)<p>using System; class Test {<p>static void Main() {<p>float x, y, z, temp;<p>Console.Write(\"请输入一个实数:\"); x = float.Parse(Console.ReadLine()); Console.Write(\"请输入一个实数:\"); y = float.Parse(Console.ReadLine()); Console.Write(\"请输入一个实数:\"); z = float.Parse(Console.ReadLine()); temp = x >= y ? x : y;<p>temp = temp >= z ? temp : z;<p>Console.WriteLine(\"最大数为:{0}\ }<p>} 2)<p>using System; class Test {<p>static void Main() { char ch;<p>Console.WriteLine(\"请输入一个字符\"); ch = char.Parse(Console.ReadLine()); if (ch >= 'A' && ch <= 'Z')<p>Console.WriteLine(\"大写字母\"); else if (ch >= 'a' && ch <= 'z') Console.WriteLine(\"小写字母\"); else if (ch >= '0' && ch <= '9') Console.WriteLine(\"数字\");<p>else Console.WriteLine(\"其他字母\"); }<p>} 3)<p>using System;<p>class Test {<p>static void Main() {<p>int i = 2, j; bool b;<p>Console.WriteLine(\"2到100中的素数为:\"); while (i <= 100) {<p>b = true; j = 2;<p>while (j <= i - 1) {<p>if (i % j == 0) {<p>b = false; break; } j++; }<p>if (b == true) Console.Write(\"{0} \ i++; }<p>Console.WriteLine(); }<p>} 4)<p>using System; class Test {<p>public static void Main() {<p>int score;<p>Console.WriteLine(\"请输入学生成绩\"); score = int.Parse(Console.ReadLine()); score = score / 10; switch (score) {<p>case 10:<p>Console.WriteLine(\"成绩优秀\"); break; case 9:<p>Console.WriteLine(\"成绩优秀\"); break;<p>case 8:<p>Console.WriteLine(\"成绩良好\"); break; case 7:<p>Console.WriteLine(\"成绩及格\"); break; case 6:<p>Console.WriteLine(\"成绩及格\"); break; default:<p>Console.WriteLine(\"成绩不及格\"); break; } } } 5)<p>using System; class Test {<p>public static void Main() {<p>const string UserName = \"admin\"; const string PassWord = \"123456\"; string username, password; int i=1; while(i<=3) {<p>Console.WriteLine(\"请输入用户名\"); username = Console.ReadLine(); Console.WriteLine(\"请输入密码\"); password = Console.ReadLine();<p>if (username == UserName && password == PassWord) break; else<p>Console.WriteLine(\"你输入的用户名或者密码错误,请重新输入用户名和密码\");<p>i++; }<p>if (i <= 3) Console.WriteLine(\"正在登录系统\"); else Console.WriteLine(\"不能登录系统\"); } } 6)<p>using System; class Test<p>{<p>public static void Main() {<p>int i, j, temp; const int n = 10;<p>int[] SortArray = new int[n]; for (i = 0; i < n; i++) {<p>Console.Write(\"\\n请输入一个数:\");<p>SortArray[i] = int.Parse(Console.ReadLine()); }<p>Console.Write(\"\\n等待排序的数据序列为:\"); for (i = 0; i < n; i++) {<p>Console.Write(\"{0} \ }<p>for (i = n - 1; i >= 0; i--) {<p>for (j = 0; j <= i - 1; j++) {<p>if (SortArray[j] > SortArray[j + 1]) {<p>temp = SortArray[j];<p>SortArray[j] = SortArray[j + 1]; SortArray[j + 1] = temp; } } }<p>Console.Write(\"\\n已经排序后的数据序列为:\"); for (i = 0; i < n; i++) {<p>Console.Write(\"{0} \ }<p>Console.WriteLine(); } }<p>7) using System; struct student {<p>public int no;<p>public string name; public string sex; public double score;<p>}<p>class Test {<p>static void Main(string[] args) {<p>student stu; stu.no = 10003; stu.name = \"小小\"; stu.sex = \"女\"; stu.score = .5;<p>Console.WriteLine(\"学生的学号是{0},名字叫{1},性别是{2},程序设计的成绩是{3}\ }<p>}<p>8)<p>using System; class ClassName {<p>public void find(out int max, out int min, params int[] array) {<p>int n = array.Length, i = 1; max = array[0]; min = array[0]; while (i < n) {<p>if (array[i] > max) max = array[i]; else<p>if (array[i] < min) min = array[i]; i++; } }<p>}<p>class Test {<p>static void Main(string[] args) {<p>int max, min;<p>int[] a = new int[10] { 97, 65, 32, 17, 58, 43, 79, 81, 23, 10 }; ClassName s = new ClassName(); s.find(out max, out min, a);<p>Console.WriteLine(\"最大数为:\" + max); Console.WriteLine(\"最小数为:\" + min); }<p>}<p>第7章习题与练习<p>1. 选择题<p>1) B 2) B 3) A 4) D 5) A 2. 填空题<p>1) None身份验证、Windows验证、Forms身份验证(Cookie身份验证)、Passport身份验证<p>2) 拒绝所有用户访问<p>3) Data Source、Database、Uid、Pwd<p>4) 基本验证方式、简要验证方式、窗口验证方式 5) 基于ACL及资源权限的授权方式、URL授权 6)Session_OnStart、Session_OnEnd 3. 简答题<p>1) 对于一个Web应用程序来说,很重要的一点就是能够辨别访问者的角色和对资源访问的。为了做到这一点,就要对其身份进行验证。在解决谁能进入系统的问题中,通常会维护一张允许进入系统的用户的名单,当用户要求进入的时候,判断他是否是合法用户。这样一来,问题就转化为如何有效地判别一个用户是否是系统的有效用户,称之为“身份验证”过程。一个常见的验证过程是,当进入某些系统时,被要求输入用户和口令。当用户进入以后,只允许他访问事先指定给他的资源,这一过程称为“授权”。只有通过授权检查后,用户才能够对相应资源进行操作。在ASP.NET环境中,ASP.NET和IIS结合在一起为用户提供身份验证和授权服务。<p>2)<p><sessionState mode=\"InProc\" timeout=\"30\"></sessionState ><p>3) Web.config文件是一个XML文本文件,它用来储存 ASP.NET Web 应用程序的配置信息(如最常用的设置ASP.NET Web 应用程序的身份验证方式),它可以出现在应用程序的每一个目录中。当通过.NET新建一个Web应用程序后,默认情况下会在根目录自动创建一个默认的 Web.config文件,包括默认的配置设置,所有的子目录都继承它的配置设置。<p>主要配置参数:自定义错误页、配置Session变量、全球化设置、配置Access数据库连接和配置SQL server数据库连接。<p>4) Global.asax文件是一个特殊文件,它包含应用程序的某些服务信息,例如应用程序是如何开始的、应用程序是如何结束的。但是Global.asax文件是ASP.NET应用程序的可选文件,如果应用程序包含此文件,则应用程序就从此文件开始运行,同时该文件还包含响应ASP.NET或HTTP模块引发的应用程序级别事件的代码。<p>Global.asax文件不能包含任何形式的输出语句,只能包含以下内容:<p> 应用程序事件过程Application_OnStart和Application_OnEnd的脚本;  会话事件过程Session_OnStart和Session_OnEnd的脚本;<p> 请求事件过程Application_OnBeginRequest和Application_OnEndRequest的脚<p>本;<p> 使用<object>标记声明的应用程序作用域对象或会话作用域对象。 5) Application对象支持OnStart、OnEnd、OnBeginRequest和OnEndRequest四个事件。这四个事件的程序代码放在网站根目录下特定的Global.asax文件中。<p>Application_OnStart事件:在应用程序运行过程中第一次有页面被访问前触发,即在一个虚拟目录中第一个ASP.NET程序执行时触发。并且Application_OnStart事件在整个应用程序运行期间只被触发一次。<p>Application_OnEnd事件:在应用程序退出时或者服务被终止时触发,即ASP.NET应用程序停止时被触发。并且Application_OnEnd事件在整个应用程序运行期间只被触发一次。<p>Application_OnBeginRequest事件:在每一个ASP.NET应用程序被请求时就发生,即客户每访问一个ASP.NET程序时,就触发一次该事件。<p>Application_OnEndRequest事件:在ASP.NET应用程序结束时发生,即每一个ASP.NET程序结束时,触发该事件。<p>6) ASP.NET提供了四种错误处理机制,它们有一定的优先级顺序:Page_Error事件、ErrorPage属性、Application_Error事件和<customErrors>配置项,优先级依次降低。<p>第8章习题与练习<p>1. 选择题 BADCB BC 2. 填空题<p>(1)MapPath (2)DateTime.Now.AddDays(1);<p>(3)Cookie (4) Request.QueryString[“id‟].ToString(); (5)IsPostBack<p>(6) Response.Write(“<script>alert(„登录成功‟); window.location.href=‟index.aspx‟</script>”); 3. 简答题<p>(1) 答:Page对象的Init事件和Load事件均在页面加载过程中发生;在Page对象的生<p>命周期中,Init事件只在页面初始化时触发一次;Load事件在初次加载及每次回发中都会触发;若希望事件代码只在页面首次加载时被执行,可以将其放入Init事件,或放入Load事件并利用Page.IsPostBack属性判断是否为首次加载。<p>(2) 答:二者都可以实现从当前页面跳转到另一页面的功能。Execute在新页面中的程序<p>执行完毕后自动返回到原页面,继续执行后续代码。而Transfer方法在执行了跳转后不再返回原页面,后续语句不会被执行。但跳转过程中Request、Session等对象中保存的信息不变,也就是说从A页面使用Transfer方法跳转到B页面后,可以继续使用A页面中提交的数据。<p>(3) 答:三个对象都是ASP.NET中与状态管理相关的对象。其中,Application对象和<p>Session对象都可在服务器端保存数据或对象,使用方法和常用属性、事件、方法也基本相同。但Application对象中保存的信息是为所有来访的客户端浏览器共享的,而Session对象保存的数据则是仅为特定的来访者使用的。Cookie对象同Session对象一样,页是保存特有用户的信息的对象,并且也能够实现数据的跨页使用;不同的是Cookie对象将信息保存在客户端,不是很安全,而且数据量有限;Session对象将信息保存在服务器端,对数据量没有。<p>(4) 答:①使用Response对象Redirect方法URL中的查询字符串,使用Request对象的<p>Querystring属性读取;②使用Request对象的Form属性读取表单数据;③使用Session对象;④使用Cookie对象;⑤使用Application对象;⑥使用Server对象的Transfer方法。<p>4. 程序题<p>(1)在新建立的网站中添加三个页面分别为:Response.aspx、Server.aspx、Welcome.aspx。其中,Response.aspx.cs页面的代码为:<p>protected void Page_Load(object sender, EventArgs e) {<p>this.Title = \"Response对象登录页面\"; }<p>protected void Button1_Click(object sender, EventArgs e) {<p>Response.Redirect(\"welcome.aspx\");<p>Server.aspx.cs页面的代码为:<p>protected void Page_Load(object sender, EventArgs e) {<p>this.Title = \"Server对象登录页面\"; }<p>protected void Button1_Click(object sender, EventArgs e) {<p>Server.Transfer(\"welcome.aspx\"); }<p>Welcome.aspx.cs页面的代码为:<p>protected void Page_Load(object sender, EventArgs e) {<p>Response.Write(\"欢迎来到我的网站。\"); }<p>分别在Response.aspx和Server.aspx页面单击按钮,运行的结果为:<p>从上图中可以看出,Response对象的Redirect方法和Server对象的Transfer方法都可以实现页面的跳转,但是使用Response对象的Redirect方法跳转后,地址栏中的地址为新页面的地址,而使用Server对象的Transfer方法跳转后,地址栏中的地址仍未原来页面的地址。 (2) protected void Page_Load(object sender, EventArgs e)<p>{<p>Response.Write(\"姓名:\");<p>Response.Write(\"<input name='username' type='text'>\");<p>Response.Write(\"<input name='OK' type='button' value='确定' Onclick='alert(\\\"您好!\\\");'>\");<p>}<p>(3)protected void Page_Load(object sender, EventArgs e) {<p>Response.Write(\"<h2 align=\\\"center\\\"><font color=red>网站访问人数计数器</font></h2>\");<p>Response.Write(\"<hr>\");<p>if (Application[\"counter\"] == null) {<p>Application[\"counter\"] = 1; } else {<p>Application.Lock();<p>Application.Set(\"counter\", (int)Application[\"counter\"]+1); Application.UnLock(); }<p>int num=(int)Application[\"counter\"];<p>Response.Write(\"<p align=\\\"center\\\">欢迎您,您是本站第\" + num + \"位访客!</p>\");<p>}<p>(4)在全局文件中的Application_Start事件中添加代码: Application[\"count1\"] = 0; Application[\"count2\"] = 0; Application[\"count3\"] = 0; Vote.aspx.cs中的代码:<p>protected void Button1_Click(object sender, EventArgs e) {<p>if (Request.Cookies[\"vote\"] != null) {<p>Response.Write(\"<script language='javascript'>alert('您已经投过票了');</script>\"); } else {<p>Response.Cookies[\"vote\"].Value = \"yes\";<p>Response.Cookies[\"vote\"].Expires = DateTime.Now.AddDays(1);<p>Response.Write(\"<script language='javascript'>alert('投票成功,感谢您的参与');</script>\");<p>Application.Lock();<p>Application.Set(\"count1\", (int)Application[\"count1\"] + 1);<p>Application.UnLock(); } }<p>protected void LinkButton1_Click(object sender, EventArgs e) {<p>Label1.Text = \"科比:\" + Application[\"count1\"].ToString() + \"<br>\" + \"姚明:\" + Application[\"count2\"].ToString() + \"<br>\" + \"乔丹:\" + Application[\"count3\"].ToString(); }<p>protected void Button2_Click(object sender, EventArgs e) {<p>if (Request.Cookies[\"vote\"] != null) {<p>Response.Write(\"<script language='javascript'>alert('您已经投过票了');</script>\"); } else {<p>Response.Cookies[\"vote\"].Value = \"yes\";<p>Response.Cookies[\"vote\"].Expires = DateTime.Now.AddDays(1);<p>Response.Write(\"<script language='javascript'>alert('投票成功,感谢您的参与');</script>\");<p>Application.Lock();<p>Application.Set(\"count2\", (int)Application[\"count2\"] + 1); Application.UnLock(); } }<p>protected void Button3_Click(object sender, EventArgs e) {<p>if (Request.Cookies[\"vote\"] != null) {<p>Response.Write(\"<script language='javascript'>alert('您已经投过票了');</script>\"); } else {<p>Response.Cookies[\"vote\"].Value = \"yes\";<p>Response.Cookies[\"vote\"].Expires = DateTime.Now.AddDays(1);<p>Response.Write(\"<script language='javascript'>alert('投票成功,感谢您的参与');</script>\");<p>Application.Lock();<p>Application.Set(\"count3\", (int)Application[\"count3\"] + 1); Application.UnLock(); }<p>}<p>第9章习题与练习<p>1. 选择题<p>1) B 2) D 3) C 4) B 5) A 6) D 7) A 8) D 9) D 10) C 11) B 12) A 13) B 14) C 15) C 16) A 17) C 18) A<p>2. 填空题<p>1) Button、LinkButton、ImageButton<p>2) CircleHotSpot、RectangleHotSpot、PolygonHotSpot 3) DropDownList1.Items[0].Selected<p>4) Click事件 5) HyperLink 6) IsPostback 7) RangeValidator 8) ErrorMessage<p>9)CompareValidator、Type、Operator 10) HeaderText 3. 简答题<p>1) HTML控件在默认情况下属于客户端(浏览器)控件,服务器无法对其进行控制。HTML控件是从HTML标记衍生而来的,每个控件对应于一个或一组HTML标记。HTML控件可以通过修改代码将其变成Web服务器端控件,几乎所有的HTML标记只要加上runat = \"server\"这个服务器控件标识属性后都可以变成服务器端控件。与普通HTML标记相比最大的区别在于,服务器端控件可以通过服务器端代码来控制。<p>2) 控件有一些基本的常用属性,如控件的名称、位置、透明、可见性、对齐方式、重叠控件的显示顺序以及控件的焦点获取和设置等。如:Attributes、BackColor、BorderColo、BorderWidth、BorderStyle、CssClass、Enabled、Font、ForeColor、Location、Name、Text、Visible、Style、Size等。<p>控件的常用事件:<p>事 件 DataBinding Disposed Init Load PreRender Unload 说 明 当一个控件上的DataBind方法被调用并且该控件被绑定到一个数据源时发生这个事件 从内存中释放一个控件时发生这个事件,这是控件生命周期的最后一个阶段 控件被初始化时发生这个事件,这是控件生命周期的开始 把控件装入页面时会发生这个事件,该事件在Init后发生 控件准备生成它的内容时会发生这个事件 从内存中卸载控件时发生这个事件 控件常用的事件还有鼠标事件和键盘事件。 3) TextBox控件常用的控件属性如下所示:<p> AutoPostBack:在文本修改以后,是否自动重传。  Columns:文本框的宽度。<p> EnableViewState:控件是否自动保存其状态以用于往返过程。  MaxLength:用户输入的最大字符数。  ReadOnly:是否为只读。<p> Rows:作为多行文本框时所显式的行数。<p> TextMode:文本框的模式,设置单行,多行或者密码。  Wrap:文本框是否换行。<p>4) ImageButton控件与Button控件不同的地方在于ImageButton控件的事件处理过程。事件处理过程的第二个参数类型为ImageClickEventArgs,而不是EventArgs,该参数提供鼠标单击处的坐标(e.X和e.Y),从而可以确定用户在图像的什么位置上单击了鼠标。<p>5) 使用以下属性可以获取用户上传文件的信息:<p> HasFile属性:检查是否有上传文件,若有,则返回true.  FileName属性:用户上传文件名称。<p> PostedFile属性:它是一个对象属性,是HttpPostedFile对象,包含许多上传文<p>件的信息。<p> PostedFile.ContentLength:上传文件大小,以字节为单位。  PostedFile.ContentType:上传文件类型。<p>6) 正则表达式就是由普通字符(例如字符a到z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。<p>7)<p><asp:RangeValidator id=\"RangeValidator1\" Type=\"Integer\" ControlToValidate=\"TextBox1\" MinimumValue=\"3\" MaximumValue=\"10\" Text=\"Please enter number between 3 and 10\" runat=\"server\"></asp:RangeValidator> 8)<p><asp:RequiredFieldValidator id=\"RequiredFieldValidator1\" runat=\"server\"<p>ControlToValidate=\"1stNumber\" Text=\"*\" InitialValue=\"Please select a number\" /> 4.编程题 1)<p><%@ Page Language=\"C#\" %> <html><p><head id=\"Head1\" runat=\"server\"><p><title>TextBox控件AutoPostBack 属性示例

1  +  

2  =  

当用户在 TextBox 控件中按 Enter 或 Tab 键时
将两个整数的加法计算结果回发

2)参

(1) 设计Default.aspx页面

新建一个ASP.NET网站,向缺省主页Default.aspx中添加有关用于页面布局的HTML表格,按需要调整表格的行列数及各行列的宽、高。

(2) 设置Default.aspx中各控件的属性

首先将事先使用Photoshop等图像软件制作的标题图片、按钮图片和分隔线图片复制到站点所在的文件夹中,通常需要在站点文件夹内创建一个名为“images”的子文件夹,然后将页面中需要的图片文件复制到其中。

选择Image1控件,在属性窗口中单击ImageUrl栏右侧的按钮,打开图9-1所示的对话框。选择了需要的添加到控件中的图像文件后,单击【确定】按钮。如果在“选择图像”对话框中看不到images文件夹和其中的图片文件,可在“解决方案资源管理器”中右键单击项目名称,在弹出的快捷菜单中执行“刷新文件夹”命令。

图9-1 设置Image控件的ImageUrl属性

选择Image2控件,参照上面介绍的方法设置其ImageUrl属性,同时需要将Image2的Height(高)属性设置为“2px”。

对于6个ImageButton(ImageButton1~ImageButton6)控件,不但要设置其ImageUrl属性,还需要设置其PostBackUrl属性,以便当用户单击控件时可以将页面导航到指定的URL。

页面的Title(标题)属性和5个HyperLink的初始属性在页面的装入(Page_Load)事件中通过代码进行设置。

(3) 向站点中添加网页

在“解决方案资源管理器”中,在弹出的快捷菜单中执行“添加新项”命令,在打开的对话框中选择“Web窗体”,并指定网页名称后单击【添加】按钮。本例中需要为两个文本教程创建两个新页面,mac.aspx和computer.aspx。

其中mac.aspx由一些文字和一个Image控件组成,页面打开时如图9-2所示。由于mac.aspx页面中不包含动态内容,也无需编写任何程序代码,故该页面完全可以使用FrontPage等将其设计为静态网页(.htm),以减少服务器无谓的资源开销。

图9-2 mac.aspx页面

(4) 向ImageMap控件中添加图片

对于computer.aspx页面可按图9-3所示进行设计。在实际操作时可将前面设计完成的default.aspx复制一份,名称改为computer.aspx。(注意,应将包含原代码的default.aspx.cs文件同样复制一份,并改名为computer.aspx.cs)。然后将栏目标题改为“微型计算机硬件组成”并向页面中添加一个ImageMap控件。

图9-3 computer.aspx页面设计

在设置ImageMap控件的属性前,应将需要显示到控件中的图片文件(如本例的computer.jpg)复制到站点文件夹的images子文件夹中。在设计视图中选中ImageMap控件,在属性窗口中单击ImageUrl栏右侧的按钮,在打开的“选择图像”对话框中选择需要的图片文件名。若需要的图片未出现在文件列表中,可在解决方案资源管理器中,右键单击images文件,在弹出的快捷菜单中执行“刷新文件夹”命令。设置完毕的computer.aspx页面如图9-4所示。

图9-4 添加图片后的页面效果

(5) 设置ImageMap控件的HotSpots属性

ImageMap控件的HotSpots属性描述了控件中作用点的集合。在设计视图中选中ImageMap控件,在属性窗口中单击HotSpots栏右侧的右侧的按钮,打开“HotSpots集合编辑器”对话框,单击【添加】按钮向其中添加一个圆形作用点和一个矩形作用点。将圆形作用点的X、Y、R属性值分别设置为150,70和50;将矩形作用点的Bottom、Left、Right、Top属性值分别设置为130、265、210和10。

分别将圆形作用点和矩形作用点的NavigiteUrl属性指向事先通过FrontPage等工具制作完成的静态网页,display.htm和host.htm。为了能使目标网页能在新窗口中打开,应将作用点的Target属性设置为“_blank”。

这样,页面打开时,若用户将鼠标指针移动到了作用点区域,指针将变成表示超链接的“手形”标记,单击鼠标页面将被导航到指定页面,如图9-5所示。

图9-5 单击作用点区域打开新的网页

(6) 编写事件代码

Default.aspx页面被装入时执行的事件代码如下: protected void Page_Load(object sender, EventArgs e) {

this.Title = \"欢迎访问网上课堂\";

HyperLink1.Text =\"怎样设置和使用Foxmail\";

HyperLink1.NavigateUrl = \"rtsp://192.168.0.100:45/rm/01.rm\"; HyperLink2.Text =\"如何安装杀毒软件\";

HyperLink2.NavigateUrl = \"rtsp://192.168.0.100:554/rm/02.rm\"; HyperLink3.Text =\"更新Windows操作系统\";

HyperLink3.NavigateUrl = \"rtsp://192.168.0.100:554/rm/03.rm\"; HyperLink4.Text = \"如何查看网卡的MAC地址\"; HyperLink4.NavigateUrl = \"mac.aspx\"; HyperLink4.Target = \"_new\";

HyperLink5.Text = \"微型计算机的组成\"; HyperLink5.NavigateUrl = \"computer.aspx\";

}

computer.aspx页面被装入时执行的事件代码如下: protected void Page_Load(object sender, EventArgs e) {

this.Title = \"微型计算机硬件组成\"; //设置页面标题

} 3)

(1)页面设计

<%@ Page Language= \"C#\" AutoEventWireup=\"true\" CodeFile=\"Default.aspx.cs\" Inherits=\"_Default\" %>

图像地图的应用

选择地点


(2)编辑逻辑

public partial class _Default : System.Web.UI.Page {

protected void ImageMap1_Click(object sender, ImageMapEventArgs e) {

string str = \" \";

switch (e.PostBackValue) {

case \"store\": str = \"商店\"; break; case \"hospital\": str = \"医院\"; break; case \"classroom\": str = \"教室\"; break; case \"mess\": str = \"食堂\"; break; case \"hall\": str = \"礼堂\"; break; }

lblMsg.Text = \"您现在正处于\" + str ; }

}

4) 程序设计步骤如下: (1) 设计Web页面

新建一个ASP.NET网站,切换到设计视图。向由系统自动创建的Default.aspx页面中添加一个用于布局的HTML表格,适当调整表格的行列数;向表格中添加必要的控件说明文字;添加4个用于接收用户输入数据的文本框TextBox1~TextBox4;2个按钮控件Button1~Button2;1个用于显示通过验证信息的标签控件Label1;添加2个必须项验证控件RequiredFieldValidator1~RequiredFieldValidator2,2个比较验证控件CompareValidator1~CompareValidator2,注意将必须项验证控件分别放置在用户名栏和密码栏的右侧单元格,将比较验证控件分别放置在确认密码和出生日期栏的右侧单元格;适当调整各控件的大小及位

置。

(2) 设置对象属性

各控件的初始属性设置见下表。

表 各验证控件的初始属性设置

控 件 RequiredFieldValidator1 Text ControlToValidate RequiredFieldValidator2 Text ControlToCompare CompareValidator1 ControlToValidate Text ControlToValidate Operator CompareValidator2 Text Type \"日期格式应为:1983-4-23\" Date 验证失败时显示的信息 指定数据类型为日期型 \"密码不能为空!\" txtPassword txtRepassword \"两次输入的密码不同!\" txtBirthday DataTypeCheck 验证失败时显示的信息 指定要与之比较的控件 指定要控制的控件 验证失败时显示的信息 指定要控制的控件 指定操作方式为数据类型比较 \"必须输入用户名\" txtPassword 验证失败时显示的信息 指定验证控件的验证对象为密码输入文本框 属 性 ControlToValidate 值 txtUsername 说 明 指定验证控件的验证对象 用于输入用户数据的文本框和用于显示输出信息的标签控件的ID属性及某些初始属性参见程序运行界面及程序代码。

(3) 编写事件代码

protected void Page_Load(object sender, EventArgs e) {

this.Title = \"CompareValidator控件应用示例\";

txtUsername.Focus(); //页面加载时,用户名文本框得到焦点 lblPass.Text = \"\"; //清除通过验证标签中的文本

}

protected void btnOK_Click(object sender, EventArgs e) {

lblPass.Text = \"本页已通过验证!\"; //通过验证后在标签中显示的信息

} 5)

(1)页面设计:

<%@ Page Language=\"C#\" AutoEventWireup=\"true\" CodeFile=\"Default.aspx.cs\" Inherits=\"_Default\" %>

服务器端闰年检测

闰年检测

年份:

 

(2)逻辑设计:

protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)

{

int year;

year=int.Parse(args.Value);

if(year % 4 == 0 && year % 100 !=0 || year % 400 == 0) args.IsValid=true; else

args.IsValid=false; }

protected void Button1_Click(object sender, EventArgs e) {

if (Page.IsValid)

Label1.Text = \"页面检测通过\"; else

Label1.Text = \"页面检测未通过\"; }

第10章习题与练习

1.填空题 1)DataSet 2) Cookie 3) Connection

4)ConnectionString

5) 数据定义 、 数据操作 、 数据控制。

6) GridView 7)DetailsView 8) FormView

2.简答题

1) ADO.NET中的常用对象有哪些?它们的功能分别是什么? 答案:

DataSet对象及其子对象是真正使得ADO.NET与众不同的原因。它为离线数据提供了一种存储机制。DataSet对象从来不与任何数据源通信,对用来生成它的数据也一无所知。最好将它理解为内存中一个用来存储已经检索到数据的仓库。

Provider中包含许多针对数据源的组件,开发人员通过这些组件可以使程序与指定的数据源进行连接。Provider主要包括Connection对象、Command对象、DataReader对象以及DataAdapter对象。Provider用于建立数据源与数据集之间的连接,它能连接各种类型的数据源,并能按要求将数据源中的数据提供给数据集,或者将应用程序编辑后的数据发送回数据库。

这四个对象介绍如下:

以及任何 Connection对象:Connection对象负责建立和保持对数据源的连接,

连接特有的信息。

 Command对象:Command对象存储将要送往数据源的查询以及任何适用参数。  DataReader对象:DataReader对象提供快速、仅前向的读取能力,用于快速遍

历记录。

 DataAdapter对象:DataAdapter对象是连接DataSet对象和数据源的桥梁。

DataAdapter对象负责从Command对象检索数据并用返回的数据生成DataSet对象。它同时也负责将DataSet对象的改变永久性写回数据源。 2)Connection对象最常用的方法有哪些?它们的语法格式分别是什么? 答案: Open()方法

使用Open()方法打开一个数据库连接。为了减轻系统负担,应该尽可能晚地打开数据库。其语法格式为: 连接对象名.Open( )

Connection对象名:是创建的Connection对象的名称。

 Close( )方法

使用Close( )方法关闭一个打开的数据库连接。为了减轻系统负担,应该减轻系统负担,应该尽可能早地关闭数据库。其语法格式为: 连接对象名.Close( )  CreateCommand( )方法

使用CreateCommand( )方法创建并返回一个与该连接关联的SqlCommand对象。其语法格式为:

连接对象名.CreateCommand( ) 返回值:返回一个Command对象。

3)在ADO.NET中,连接数据库的基本步骤是什么? 答案:

 创建一个Connection类的实例,即声明一个新的Connection对象;  设置Connection对象的连接字符串属性 ConnectionString;  使用Open()方法或Close()方法打开或关闭连接.

4)GridView控件支持什么功能? 答案:

 绑定到数据源控件。  内置的排序功能。

 内置的更新和删除功能。  内置的分页功能。  内置的行选择功能。

 对GridView对象模型进行编程访问以动态设置性和处理事件。  诸如CheckBoxField和ImageField等新的列类型。  用于超链接的多个数据字段。

 用于选择、更新和删除的多个数据键字段。  可通过主题和样式自定义的外观。

 持多种类型的数据存储区。数据存储区可以保存简单的非类型化数据(例 如一维数组),也可以保存类型化数据(例如 DataSet)。

 可以将许多类型的数据存储区用作数据源,也可以在没有绑定数据源的情况 下操作 GridView 控件。

5)DetatailsView控件和FormView控件之间的主要差异是什么? DetatailsView和FormView之间的主要差异在于DetailsView具有内置的表格呈现方面,而FormView需要用户定义模板用于呈现FormView和DetaisView对象模型在其他方面非常类似。

与GridView和DetailsView控件不同的是FormView没有自己默认的显示布局,同时,它的图形化布局完全是通过模板自定义的,因此,每个模板都包括特定记录需要的所有命令按钮,大多数模板是可选的,但是必须为该控件的配置模式创建模板。例如,要插入记录的话,必须定义InsertItem Template。 3.程序设计题

1)针对不同的数据库,要使用不同的数据库连接对象:ADO. NET打开SQL Server连接的主要途径是使用SqlConnection对象的方法。

//建立SqlConnection对象违接数据库的宇符串

SqXStr SqlCormectidn myConn-new SqlConnection (SqlStr); //打开敗据庳的连接 myGonn.Open(); //关闭数据库的连接 myConn .Close (}

 如何使用Command对象向数据库中添加记录,在文本框中输人花名,单击添加按钮,将输入内容添加到数据库中。

(1)建立主页面 新建一个网站,默认主页为Default.aspx,在Default.aspx页面上依次添加一个TextBox控件(ID=TextBoxl)、一个 Button 控件(ID=Buttonl OnClick=\"btnAdd_Click\" Text =添加”)。

(2)设计数据库。 建立一个名为DB_1的数据库.建立表flower.建立两个字段,第一个宇段名为ID,数椐类型为int,标识规范选择“是”。第二个字段名为FlowerName,数据类型为varchar(50)。

(3)编写Web.Config文件中的连接字符串。

value=”Server=localhost;

Initial

Catalog=DB_l;

UID=sa;

PWD=123456;”/>

(4)获取连接字符串。

在Default.aspx页中,使用ConfigurationManager类获取配置节的连接字符串,代码如下: public SqlConnection GetConnection () {

string myStr=ConfigurationManager.AppSettings [“SQLDB”]; //建立Connection对象调用连接字符串myStr

SqlConnection myConn=new SqlConnection (myStr); return myConn; }

(5)编写添加按钮亊件。 在添加按钮的Click事件下,使用Command对象将文本框中的值添加到数据库中,并将其显示出来,代码如下。

protected void btnAdd_Click (object sender, EventArgs e) (

i f(this.txtName.Text ! =””> (

SqlConnection myConn-GetConnection (); myConn.Open ();

string sqlStr insert into flower (FlowerName ) values ( , \" + this. TextBox1.Text.Trim() + “‟)”; SqlConunand myCmd=new SqlCommand (sqlStr, myConn); myCmd.ExecuteNonQuery(); myConn.Close () ;

Response.Writer(”); } else

Response.Write(\"\"); }

第11章习题与练习

1. 填空题 1) 用户程序 2) 向上

3) Exception ApplicationException 2. 选择题

DCBAB 3.操作题

namespace arrayNum1 {

class Program {

static void Main(string[] args) {

int n = 10; try {

int[] employee = new int[10];

for (int i = 1; i <= n; i++) {

employee[i - 1] = i;

Console.WriteLine(\"第{0}个员工学号为:\" + employee[11], i);

} }

catch (DivideByZeroException e) {

Console.WriteLine(\"输入错误分母不能\" + e.ToString()); }

catch (IndexOutOfRangeException e) {

Console.WriteLine(\"输入错误,数组越界!\" + e.ToString()); }

catch (Exception e) {

Console.WriteLine(\"出现其它异常\" + e.ToString()); }

finally {

Console.ReadLine(); } } } }

第12章习题与练习

见网上下载资源

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- axer.cn 版权所有 湘ICP备2023022495号-12

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务