asp程序设计习题答案.docx
- 文档编号:24049710
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:19
- 大小:23.74KB
asp程序设计习题答案.docx
《asp程序设计习题答案.docx》由会员分享,可在线阅读,更多相关《asp程序设计习题答案.docx(19页珍藏版)》请在冰豆网上搜索。
asp程序设计习题答案
简答题
第1章ASP.NET概述P18
(1)名词解释
静态网页:
一般指用超文本标记语言HTML来实现,以htm或html做后缀名的网页文件,这些网页文本中不存在需要服务器段解释的代码;所有人浏览到的同一网页不会有任何区别。
动态网页:
所谓动态网页,就是服务器端可以根据客户端的不同请求动态产生网页内容。
它根据不同类型的客户端请求生成不同的页面,具有交互性。
动态网页是用标准html代码和动态语言(如:
asp,jsp,php,等)编写的。
服务器端:
在万维网中提供网页服务的一端称为服务器端。
客户端:
接受服务的一端称为客户端。
名称空间:
所谓名称空间就是将多个提供相似功能的类组成逻辑上相关的一些单元,以便于管理和记忆。
例如system.io类包含了用来处理输入输出操作的类。
应用程序:
在同一台电脑上,添加了虚拟目录的文件夹就被当成一个独立的网站对待,这个独立的网站就成为一个应用程序。
所以用新建一个应用程序的时候,该软件会自动帮你生成一个文件夹,并且在IIS中添加相应的虚拟目录。
(1)请比较静态网页和动态网页的工作原理:
静态网页和动态网页在客户端看来是除了发送请求是的后缀名外没有其它任何区别,主要是服务器端的区别。
静态网页服务器在接收了客户端的请求后直接读取相应的网页文件返回给客户端,而动态网页服务器在接收到了客户端发来的请求后先找到相应文件然后根据相应参数将文件编译成标准的html代码,在返回给客户端。
第2章VB.NET程序设计基础P62
(2)有100个和尚吃100个馒头,大和尚1人吃4个,小和尚4人吃1个,问有多少个大和尚和多少个小和尚?
subpage_load()
dimm,n,big_monk,small_monkasinteger
message.text="可能的组合是:
"
form=1to100
big_monk=m
small_monk=100-m
if4*big_monk+small_monk/4.0=100then
message.text+="大和尚:
"&big_monk&"个,小和尚"&small_monk&"个;
"
endif
next
endsub
第3章、服务器控件P98
3、普通的HTML标记、HTML服务器控件、Web服务器控件有什么联系和区别?
HTML服务器控件和WEB服务器控件都是从普通HTML发展过来的,只要给普通HTML代码添加id和runat=server属性就变成了HTML服务器控件,WEB服务器控件是.net提供的一套全新的控件,它的设计合理使用更简便,但是目前还没有和HTML完全一一对应。
推荐使用WEB服务器控件。
3、什么时候该使用HTML标记、HTML服务器控件、Web服务器控件?
在不需要和服务器端交互的程序中应该尽量使用普通html代码,这样会减轻服务器负担,在需要交互时尽量使用web服务器控件,实在没有可用的web服务器控件再考虑html控件。
第4章内部对象P136
4、请叙述response的write方法的两种写法的区别及注意事项。
write的两种写法:
<%response.write(“string”)%>and<%=”string”%>.见:
P111
4、请将response的write方法与利用标签控件输出信息进行比较。
利用response.write方法和label都可以输出信息,但是label相对比较容易控制输入的位置和格式。
建议用label。
4、请叙述redirect方法、execute方法、tranfer方法、超链接四者的联系和区别。
redirect虽然是在服务器端运行,但是重定向实际上发生在客户端,但是execute和transfer的重定向是发生在服务器端的;execute的重定向完毕后会返回本页面继续执行下面的程序,但是transfer则不;超链接则是纯粹的客户端行为。
4、请叙述Session对象和application对象各自的作用和最主要的区别。
session用来在不同的页面传递同一个人的信息,而application则在同一页面储存不同用户的信息。
第5章:
数据库基础知识P153
5、请叙述为什么要采用数据库来管理数据。
采用数据库来管理数据的理由:
数据库是目前最多使用的操作数据的方法,因为数据库用户不再需要知道数据的具体存放格式和方法,只要通过标准的数据查询语言来操作数据,这样的数据管理快速高效而且易于保存,备份和恢复。
没有理由还是用前两种手段来管理数据。
5、在insert语句中,能否为自动编号字段赋值,为什么?
Insert语句中,不需要为自动编号字段赋值,因为数据库会自动进行。
第6章ASP.NET存取数据库P182
6、某数据库程序可以显示记录,但不能添加记录,请问可能是什么原因?
可以显示但是不能添加记录最可能的原因就是程序对数据库文件只有读权限但是没有写权限。
6、更新记录时可否先删除、再插入记录?
这样有什么缺点?
(提示:
自动编号字段的值可能会改变)
应该是“修改记录时可否……”;这样多做一步,服务器负担加重,而且用update可以只修改一项,但是先删除后添加就必修把每一项都添加了才能达到同样的效果,再者自动编号值会变化。
6、在查询记录的时候,如果只想显示部分字段的内容,应该怎么做?
如果只想显示部分记录,又该怎么做?
(提示:
参考第五章的SQL语句)
不要使用*,而使用select要查询的字段1,要查询的字段2from表where条件语句,就可以只查询部分字段了,只想显示部分记录,只要控制好查询条件就行了,或者在显示的时候做一下判断。
第7章深入进行数据库编程P235
7、如何在datagrid控件中加上验证控件?
可以使用TemplateColumn自定义列来给DataGrid添加控件验证功能。
7、如何用repeater控件虽更新和删除记录?
虽然Repeater组件不支持更新和查询,但是可以通过LINKBUTTON添加CommandName然后根据不同的Command进行最定义操作,这些操作当然可以包括更新和查询。
7、请比较DataGrid、DataList、Repeater控件的联系和区别?
DataGrid提供了最多的功能,如允许访问者对记录编辑、排序或分页。
同时它也是最容易使用的,甚至于简单到只需要将之添加到页面中而不必额外编写代码。
不过这些易用性是以性能的损失为代价的。
DataGrid在三种控件中是效率最低的,特别是在使用WebForm的情况下。
通过使用模板,DataList提供了比DataGrid更加优秀的界面效果。
不过这需要以牺牲一定的开发时间为代价。
为了添加排序、分页和编辑功能,程序员不得不花费比使用DataGrid更多的精力来进行编码,虽然它的性能要优于DataGrid。
最后,Repeater允许对数据记录作最大限度的HTML定制。
通常,使用Repeater来显示数据记录比使用DataGrid和DataList要耗费更长的开发时间。
另外,它不支持内建的编辑、排序和分页功能。
所幸的是,Repeater在性能上要优于其它两种控件,特别是明显优于DataGrid。
第8章文件和文件夹操作P258
8、请比较file和fileinfo对象
比较file和fileinfo对象:
file对象能实现对整个文件的移动,删除等更改;而fileinfo对象只能显示出某文件的信息,不能更改。
8、请比较分别用application对象、数据库和文本文件实现计数器的优劣。
Application对象作计数器好处是方便快捷,但是会随着服务器的重新启动而清零;数据库可以记录很多登陆信息,不只是有几个人登陆,而且可以很方便的记录登陆时间,IP等等信息,但是查询数据库会消耗过多资源;用文本文件可以很方便的查看,更改,不利的一面是不能记录太多的信息。
程序题
第三章服务器控件P98
3、请开发一个简单的计算器,输入两个数后可以求两个数的和、差等。
SubEnter_Click(senderAsObject,eAsEventArgs)
all.visible=false
dimi,jasinteger
dimmasstring
i=Cint(num1.text)
j=Cint(num2.text)
m=sign.selecteditem.text
dimresultasinteger
ifm="+"then
result=i+j
else
result=i-j
endif
message.text=i&m&j&"="&result&"!
"
EndSub
3、请综合使用本章讲授的控件,开发一个个人注册页面。
要求输入用户名、用户姓名、密码、出生日期、电话、E-mail等个人信息,并要求进行必要的验证。
如有可能,再加上提交个人照片栏目。
正确提交后,显示输入的有关信息。
subenter_click(senderasobject,easeventargs)
dimerror_1asexception
ifpage.isvalid=truethen
registerform.visible=false
'隐藏注册填写栏目,显示注册成功信息。
dimstrname,strpassword,stremail,strqq,strphone,strtextasstring
strname=username.text
strpassword=userpassword.text
stremail=useremail.text
strqq=userqq.text
strtext=usertext.text
'将信息存入数据库
try
dimconnasnewoledbconnection("provider=microsoft.jet.oledb.4.0;datasource=C:
\Inetpub\wwwroot\fuyude\data\info.mdb")
dimstrsqlasstring
strsql="insertintousers(user_name,user_password,user_email,user_qq,user_text)values('"&strname&"','"&strpassword&"','"&stremail&"','"&strqq&"','"&strtext&"')"
dimcmdasnewoledbcommand(strsql,conn)
conn.open()
cmd.ExecuteNonQuery()
conn.close()
message.text="
注册成功!
thanks,
从这里catcherror_1
message.text="您输入的用户名已经存在或者在保存数据时发生了其它错误,请你重新输入,具体错误为:
"&error_1.tostring()endtry
endif
endsub
3、请开发一个简单的在线考试程序,可以包括若干道单选题、多选题、单击交卷按钮后就可以根据标准答案在线评分。
Subenter_click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)
DimdefenAsInteger
defen=0
Ifdanxuan1.SelectedIndex=2Then
defen+=20
EndIf
Ifdanxuan2.SelectedIndex=3Then
defen+=20
EndIf
Ifdanxuan3.SelectedIndex=0Then
defen+=20
EndIf
Ifduoxuan1.Items(0).SelectedAndduoxuan1.Items
(1).SelectedAnd(Notduoxuan1.Items
(2).Selected)And(Notduoxuan1.Items(3).Selected)Then
defen+=20
EndIf
Ifduoxuan2.Items(0).SelectedAndduoxuan2.Items
(1).SelectedAndduoxuan2.Items
(2).SelectedAnd(Notduoxuan1.Items(3).Selected)Then
defen+=20
EndIf
fenshu.Text="
"
EndSub
第四章内部对象P136
4、请开发一个页面,显示来访者的IP地址。
并判断:
如果IP地址以202.118开头的,则显示欢迎信息;否则显示为非法用户,并终止程序。
subpage_load()
dimstrasstring
str=request.servervariables("remote_addr")
response.write("您的ip地址为:
"&str&"
")
'定义一个数组来保存分割后的字符串
dimstr_splited()asstring
str_splited=str.split(".")
ifstr_splited(0)="202"andstr_splited
(1)="118"then
response.write("欢迎您的到来")
else
response.write("未经允许的IP侵入")
endif
endsub
4、请在自己的个人主页上加上访问人数。
PrivateSubPage_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
'在此处放置初始化页的用户代码
Application.Lock()
Application("user_visit_num")+=1
Application.UnLock()
DimvisitednumAsInteger
visitednum=Application("user_visit_num")
message.Text="您是第
"
EndSub
第六章ASP.NET存取数据库P181
6、请参照示例开发一个简单的留言板程序,可以显示、添加和删除信息。
strSql="select*frominfo"
conn.Open()
cmd=NewOleDbCommand(strSql,conn)
DimdrAsOleDbDataReader=cmd.ExecuteReader()
Try
DoWhiledr.Read()
liuyan.Text+="留言者:
"+dr.Item("author")+"留言内容:
"+dr.Item("liuyan")+"("+dr.Item("posttime").ToString+")"+" action=del&id="+dr.Item("id").ToString+"'> Loop Ifliuyan.Text=""Then liuyan.Text="暂时没有留言! " EndIf CatchexAsException liuyan.Text="程序出错"+ex.Message EndTry conn.Close() EndSub Subadd(ByValsenderAsObject,ByValeAsSystem.EventArgs) '添加留言 Dim_author,_liuyanAsString _author=author.Text.ToString _liuyan=addliuyan.Text.ToString IfNot_author=""AndNot_liuyan=""Then strSql="insertintoinfo(author,liuyan)values('"+_author+"','"+_liuyan+"')" conn.Open() cmd=NewOleDbCommand(strSql,conn) cmd.ExecuteNonQuery() conn.Close() EndIf EndSub 6、请参照示例开发用户注册和登录模块。 IfSession("UserName")=""Then welcome.Text="您还没有登陆,请选择 Else welcome.Text="欢迎您: "+Session("UserName") EndIf EndSub SubLogin(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs) DimmynameAsString=__myName.Text DimmypassAsString=__myPasswd.Text IfNotmyname=""AndNotmypass=""Then message.Text=checkuser(myname,mypass) Ifmessage.Text="ok"Then Session("UserName")=myname Response.Redirect("default.aspx") EndIf Else message.Text="请填写完整的信息" EndIf EndSub Functioncheckuser(ByValnAsString,ByValpAsString)AsString DimconnAsNewOleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&Server.MapPath("myuser.mdb")) DimstrSqlAsString="select*frommyuserswhereusername='"+n+"'anduserpasswd='"+p+"'" conn.Open() DimcmdAsNewOleDbCommand(strSql,conn) DimdrAsOleDbDataReader=cmd.ExecuteReader() Ifdr.Read()Then Return"ok" Else Return"信息出错,请确认" EndIf conn.Close() EndFunction Subreg(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs) DimmynameAsString=_myName.Text DimmypassAsString=_myPasswd.Text IfNotmyname=""AndNotmypass=""Then message.Text=saveuser(myname,mypass) Ifmessage.Text="ok"Then Session("UserName")=myname Response.Redirect("default.aspx") EndIf Else message.Text="请填写完整的信息" EndIf EndSub Functionsaveuser(ByValnAsString,ByValpAsString)AsString DimconnAsNewOleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&Server.MapPath("myuser.mdb")) DimstrSqlAsString="insertintomyusers(username,userpasswd)values('"+n+"','"+p+"')" conn.Open() DimcmdAsNewOleDbCommand(strSql,conn) Try cmd.ExecuteNonQuery() Return"ok" CatchexAsException Return"注册出错,请联系管理员"+ex.ToString EndTry conn.Close() EndFunction 第七章深入进行数据库编程P235 7、请利用数据库在首页开发一个计数器。 PrivateSubPage_Load(ByValsenderAsObject,ByValeAsEventArgs) '在此处放置初始化页的用户代码 IfPage.IsPostBack=FalseThen '链接数据库读取并更新数据() DimconnAsNewOleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&Server.MapPath("log.mdb")) DimstrsqlAsString strsql="select*frominfo" DimcmdAsNewOleDbC
"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- asp 程序设计 习题 答案