版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
《VisualBasic程序設(shè)計(jì)》形成性考核冊(cè)作業(yè)及答案
2023年《VisualBasic程序設(shè)計(jì)》形成性考核冊(cè)作業(yè)及答案作業(yè)1?一、選擇題
1、在設(shè)計(jì)應(yīng)用程序時(shí),可以查看到應(yīng)用程序工程所有組成部分的窗口是(D)。
A、窗體設(shè)計(jì)
B、代碼
C、屬性
D、工程資源管理器窗口
2、窗體的load事件的觸發(fā)時(shí)機(jī)是(B)。
A、用戶單擊窗體時(shí)
B、窗體被加載時(shí)
C、窗體顯示之后
D、窗體卸載時(shí)?3、與傳統(tǒng)的程序設(shè)計(jì)語言相比,VisualBasic最突出的特點(diǎn)是(C)。
A、結(jié)構(gòu)化程序設(shè)計(jì)
B、程序開發(fā)環(huán)境
C、事件驅(qū)動(dòng)編程機(jī)制
D、程序調(diào)試技術(shù)?4、VB6.0集成開發(fā)環(huán)境的主窗口中不涉及(C)。?
A、標(biāo)題欄
B、菜單欄
C、狀態(tài)欄
D、工具欄
5、假如對(duì)象的名稱為Mytext,并且對(duì)象有一個(gè)屬性Text,那么在代碼中引用該屬性的對(duì)的格式是(B)。?
A、text.Mytext
B、Mytext.Text
C、Mytext.(Text)
D、Mytext*Text
6、下列可以激活屬性窗口的操作是(D)。?
A、用鼠標(biāo)雙擊窗體的任何部位
B、執(zhí)行“工程“菜單中的”屬性窗口“命令
C、按Ctrl+F4
D、按F4
7、假定已在窗體上畫了多個(gè)控件,并有一個(gè)控件是活動(dòng)的,為了在屬性窗口中設(shè)立窗體的屬性,預(yù)先應(yīng)執(zhí)行的操作是(A)。?
A、單擊窗體上沒有控件的地方
B、單擊任一個(gè)控件
C、不執(zhí)行任何操作
D、雙擊窗體的標(biāo)題欄?8、假如要在文本框鍵入字符時(shí),只顯示某個(gè)字符,假如(*),應(yīng)設(shè)立文本框的(B)屬性。?
A、Caption
B、PasswordChar
C、Text
D、Char
9、假如想要在文本框中的內(nèi)容在運(yùn)營時(shí)不能編輯,需要文本框的(A)屬性設(shè)立為True.
ALocked
B、MultiLine
C、TabStop
DVisible
10對(duì)于定期器(Tiner)控制,設(shè)立其定期是否啟動(dòng)的屬性是(C)
A、Index
B、Tag
C、Enabled
D、Left?11、要在窗口體Fornl內(nèi)顯示“myfrm”使用的語句是(C)
A、Form.caption=“myfrm”B、Fornl.caption=“myfrm”?C、forml.print“myfrm”D、form.print“myfrm”
12、對(duì)象的性質(zhì)和狀態(tài)特性稱為(C)?A、事件
B、方法
C、屬性
D、類
13、下列對(duì)的的賦值語句是(B)
A、x+y=20
B、y=x+20
C、3x=y
D、s=
14、當(dāng)使用上下文相關(guān)的幫助時(shí),選擇要幫助的內(nèi)容,然后按(D)鍵,就可出現(xiàn)MSDN窗口直接顯示所需的幫助信息。
A、Help
B、F10
C、Ese
D、F1?15、將調(diào)試通過的工程經(jīng)“文獻(xiàn)”菜單的“生成.exe文獻(xiàn)“編繹成名.exe后,將該可執(zhí)行文獻(xiàn)放到其它機(jī)器上不能運(yùn)營的重要因素是(D)。
A、運(yùn)營的機(jī)器上無VB系統(tǒng)
B、缺少.frm窗體文獻(xiàn)
C、該執(zhí)行文獻(xiàn)有病毒
D、以上因素都不對(duì)?二、填空題
1、當(dāng)進(jìn)入VB集成開發(fā)環(huán)境后,發(fā)現(xiàn)沒有顯示“工具箱”窗口。應(yīng)選擇視圖菜單的
工具箱選項(xiàng),使“工具箱”窗口顯示。?2、在VB中,事件過程名由對(duì)象名和
事件名
構(gòu)成。?3、工程文獻(xiàn)的擴(kuò)展名是
vbp,窗體文獻(xiàn)擴(kuò)展名是
frm
。
4、對(duì)象時(shí)代碼和數(shù)據(jù)的集合,例如,VisualBasic中的
窗體、
按鈕、
文本框
等都是對(duì)象。
5、對(duì)象的方法用于
實(shí)行某種操作功能
。當(dāng)方法不需要任何參數(shù)并且也沒有返回值,調(diào)用對(duì)象的方法的格式為
對(duì)象名.方法名
。例如對(duì)窗體Forml使用Show方法,應(yīng)寫成
form1.show
。
6、要使文本框顯示滾動(dòng)條,需要將其ScrollBars
屬性設(shè)立為
3
。?7、欲設(shè)立定期的時(shí)間間隔為4秒,則屬性Interval的值為
4000。?8、要使標(biāo)簽框的大小隨Caption屬性做自動(dòng)調(diào)整,應(yīng)將AutoSize
屬性設(shè)立為
True
。?9、通過
窗體布局窗口
可以在設(shè)計(jì)時(shí)直觀地調(diào)整窗體在屏幕的位置。
10、要想在代碼中給名為txtshow的文框賦予文本:GOODWORK!時(shí),應(yīng)當(dāng)編寫的語句是
txtshow.text=”GOODWORK!”
。?11、若命令按鈕的名稱為Cmdopen,程序規(guī)定單擊以上命令按鈕,打開一個(gè)窗口frml,請(qǐng)對(duì)以下事件過程填空。
PrivateSubCmdopen
click()
Frm1.show
EndSud
12、事件就是對(duì)象上所發(fā)生的事情,VisualBasic中的事件如單擊
、
裝入
、
鼠標(biāo)移動(dòng)等。一個(gè)對(duì)象響應(yīng)的事件可以有
多個(gè),用戶不能建立新的事件。事件過程是指
響應(yīng)某個(gè)事件后所執(zhí)行的代碼
。假設(shè)某一事件過程如下:?PrivateSubcmd1_Click()
Form1.Caption=”VB示例”
EndSub?則響應(yīng)過程的對(duì)象名是
cmd1
,事件名是
Click
。
13、對(duì)象的方法用于在對(duì)象上實(shí)行某種操作功能
。當(dāng)方法不需要任何參數(shù)并且也沒有返回值,調(diào)用對(duì)象的方法格式為
對(duì)象名.方法名
,例如,對(duì)窗體Form1使用Show方法,應(yīng)寫成
Form1.Show
。
14、為了在編寫代碼時(shí)能自動(dòng)語法檢查,必須執(zhí)行工具
菜單中的
選項(xiàng)
命令,打開
選項(xiàng)
對(duì)話框,然后選擇“編輯器”選項(xiàng)卡中的自動(dòng)語法檢測(cè)。
15、定期器(Timer)控件可辨認(rèn)的事件是Timer,了生該事件的時(shí)間間隔定期由定期器的
Interval屬性設(shè)立,其單位為毫秒。
三、問答題
1、什么是可視化編程和事件驅(qū)動(dòng)?
?答:可視化編程是指無須編程,僅通過直觀的操作方式即可完畢界面的設(shè)計(jì)工作的這種編程方式。
當(dāng)VB的應(yīng)用程序運(yùn)營后,系統(tǒng)處在等待狀態(tài),當(dāng)某個(gè)事件發(fā)生后,程序就去執(zhí)行此事件的事件過程,當(dāng)這個(gè)事件過程執(zhí)行完后,系統(tǒng)又處在等待另一個(gè)事件發(fā)生的狀態(tài),這就是事件驅(qū)動(dòng)程序方式。?2、對(duì)象、屬性、事件和文獻(xiàn)之間的關(guān)系如何?
答:對(duì)象是代碼和數(shù)據(jù)的封裝體。對(duì)象的操作通過與該對(duì)象有關(guān)的屬性、事件、方法來描述。?屬性是一個(gè)對(duì)象的基本特性,每個(gè)對(duì)象都有它自己的屬性。?方法是對(duì)象要執(zhí)行的動(dòng)作。?事件是在對(duì)象上所發(fā)生的事情。?3、簡述事件驅(qū)動(dòng)機(jī)制與傳統(tǒng)編程方式的不同。?答:傳統(tǒng)的面向過程的應(yīng)用程序中,應(yīng)用程序自身控制了執(zhí)行那一部分代碼按何種順序執(zhí)行代碼,程序從第一行代碼開始執(zhí)行并按應(yīng)用程序中預(yù)定的途徑執(zhí)行,用戶無法改變程序的執(zhí)行流程。而事件驅(qū)動(dòng)機(jī)制則由用戶來決定執(zhí)行的路線。這就是兩者的不同。?4、簡述事件驅(qū)動(dòng)的工作過程。?答:事件驅(qū)動(dòng)的工作過程如下:(1)啟動(dòng)應(yīng)用程序,裝載和顯示窗體。(2)窗體或窗體上的控件等待事件的發(fā)生。(3)當(dāng)某個(gè)事件發(fā)生后,執(zhí)行其相應(yīng)的事件過程代碼。(4)反復(fù)執(zhí)行(2)和(3),直到碰到END語句或單擊“結(jié)束”按鈕停止程序的運(yùn)營。?四、程序設(shè)計(jì)題
1、在窗體上添加一個(gè)文本框和兩個(gè)命令按鈕,并把兩個(gè)命令按鈕的標(biāo)題分別設(shè)立為“隱藏文本框”和“顯示文本框”。當(dāng)單擊第一個(gè)命令按鈕時(shí),文本框消失;而當(dāng)單擊第二個(gè)命令按鈕時(shí),文本框重新出現(xiàn),并在文本框中顯示“VB程序設(shè)計(jì)”(字體大小為16)。程序運(yùn)營界面如圖所示。
圖1
解:“隱藏文本框”按鈕中的代碼為:Text1.Visible=False
“顯示文本框”按鈕中的代碼為:Text1.Visible=True
Text1.Text=”VB程序設(shè)計(jì)”
Text1.FontSize=”16”
2、設(shè)計(jì)一個(gè)計(jì)算程序。該程序用戶界面如圖2所示,由四個(gè)文本框:文本框1(text1)、文本框2(text2)、文本框3(text3)、文本框4(text4),和三個(gè)按鈕:命令按鈕1(command1)、命令按鈕2(command2)、命令按鈕3(command3)組成。程序運(yùn)營后,用戶按清除按鈕,則清除文本框中顯示的內(nèi)容,按計(jì)算按鈕,則計(jì)算三科平均成績。單擊退出按鈕則退出。
解:command1中的代碼為:text1=””:text2=””:text3=””:text4=””
command2中的代碼為:text4=(val(Text1)+val(Text2)+val(Text3))/3
command2中的代碼為:End?3、編寫一收款計(jì)算程序。規(guī)定用戶輸入商品的“單價(jià)”、“數(shù)量”和“折扣”后,單擊“計(jì)算”按鈕顯示“應(yīng)付款”,單擊“清除”按鈕,清除文本框中所有的數(shù)據(jù)。程序運(yùn)營界面如圖3所示。
答:“計(jì)算”按鈕的代碼:text4=val(Text1)*val(Text2)*val(Text3)/100
“清除”按鈕的代碼:text1=””:text2=””:text3=””:text4=””?作業(yè)2
一、選擇題?1.按照變量的作用域可將變量劃分為(B
)。
A、公有、私有、系統(tǒng)
B、全局變量、模塊級(jí)變量、過程變量?C、動(dòng)態(tài)、常數(shù)、靜態(tài)
D、Public、Private、Protected?2.可獲得字符的ASCII碼的函數(shù)是(C)。
A、ValB、FixC、Asc
D、Chr?3、要退出Do….Loop循環(huán),可使用的語句的(D)語句。?A、Exit
B、Exit
For
C、EndDo
D、ExitDo
4.把數(shù)值型轉(zhuǎn)換為字符串型需要使用的函數(shù)是(B)。
A、Val
B、Str
C、Asc
D、Chr
5.關(guān)于語句行,下列說法對(duì)的的是(B)。?A.一行只能寫一條語句B.一條語句可以分多行書寫?C.每行的首字符必須大寫D.長度不能超過255個(gè)字符?6.表達(dá)式6+10Mod4*2+1的值是(A).?A.9B.11C.1D.3
7.以下可以作為VisualBasic變量名的是(B).?A.SIN
B.CO1
C.COS(X)
D.X(-1)?8.表達(dá)式Abs(-5)+Len(“ABCDE”)的值為(C).
A.5A(chǔ)BCDEB.-5A(chǔ)BCDE
C.10
D.0
9.在代碼編輯器中,假如一條語句太長,無法在一行內(nèi)寫下(不涉及注釋),要折行書寫,可以在行末使用續(xù)行字符(A),表達(dá)下一行是當(dāng)前行的繼續(xù).
A.一個(gè)空格加一個(gè)下劃字符(_)B.一個(gè)下劃字符(_)
C.直接回車
D.一個(gè)空格加一個(gè)字符(-)
10.Sub過程與Function過程最主線的區(qū)別是(D).?A.Sub過程可以使用Call語句或直接使用過程名調(diào)用,而Function過程不可以.?B.Function過程可以有參數(shù),Sub過程不可以.
C.兩種過程參數(shù)的傳遞方式不同.?D.Sub過程的過程名不能返回值,而Function過程可以通過過程名返回值.
11."X是小于80的非負(fù)數(shù)",用VB表達(dá)式表達(dá)對(duì)的的是(C).?
A..0≤X<80
B.0<=X<80
C.0<=xandx<80
D.0<=xOrx<80?12.在設(shè)計(jì)菜單時(shí),假如要在菜單中加入一個(gè)菜單分隔條,則菜單分隔條的標(biāo)題必須設(shè)立為(B)?A.加號(hào)(+)
B.減號(hào)(-)
C.星號(hào)(*)
D.感慨號(hào)(!)?13.假如要在程序中顯示一個(gè)彈出式菜單,那么要調(diào)用VisualBasic中提供的方法是(D).?
A.Print
B.Move
C.Refresh
D.PopupMenu
14.下列可以用來存儲(chǔ)圖像供其他對(duì)象使用的控件是(C).
A.ToolBar
B.Stat(yī)ursBar
C.ImageList
D.TreeView
15.當(dāng)單擊工具攔上的按扭時(shí),會(huì)觸發(fā)的事件是(A).
A.ButtonClick
B.Change
C.Load
D.KeyPress
16.要運(yùn)用公用對(duì)話框控件來顯示”打開文獻(xiàn)”對(duì)話框,需要調(diào)用控件的(B)方法.?
A.ShowPrinter
B.ShowOpen
C.ShowSave
D.ShowColor
17.對(duì)于窗體級(jí)變量,下列說法中錯(cuò)誤的是(C).
A.所在窗體的各子程序都可以訪問?B.其他窗體的子程序不能訪問?C.所在窗體發(fā)子程序不能訪問用Private定義的窗體級(jí)變量?D.一定要在所在窗體的通用區(qū)內(nèi)定義
18.從一個(gè)字符串中的第3個(gè)字符開始,獲?。祩€(gè)字符,應(yīng)使用(B)
A.Len函數(shù)
B.Mid函數(shù)
C.Left函數(shù)
D.Right函數(shù)
19.用下面的語句所定義的數(shù)組的元素的個(gè)數(shù)是(D).?
DimA(-3To5)As
Integer?
A.6
B.7
C.8
D.9?20.有如下程序段:?DimstrlAsString*5
Strl=”VisualBasic”
當(dāng)該段程序被執(zhí)行完時(shí),變量strl的值為(B).
A.”Visual”
B.”Visua”
C.”V”
D.”Visual
Basic”?二、填空題?1.菜單一般有_下拉式_和_彈出式__(dá)兩種基本類型。?2.通用對(duì)話框控件可顯示的常用對(duì)話框有__打開_、_保存_、__顏色_、__字體_、__打印_。
3.組合框具有__文本框_和__列表框_兩種控件的基本功能。?4.要使數(shù)組的默認(rèn)下標(biāo)從“1開始,則應(yīng)在窗體或標(biāo)準(zhǔn)模塊代碼的聲明部分使用語句__(dá)OptionBase1_。?5.調(diào)用Sub過程時(shí),使用__call__語句,語句用于把程序控制傳送到一個(gè)VisualBasic的Sub過程。?6.若已建立了Form1和Form2兩個(gè)窗體,默認(rèn)啟動(dòng)窗體為Form1。通過_工程_菜單__屬性_命令的_通用_選項(xiàng)卡,可將啟動(dòng)窗體設(shè)立為Form2。在程序中若要顯示Form1窗體,則執(zhí)行_Form1.show_語句。
7.列表框中項(xiàng)目的序號(hào)是從_0_開始的。?8.Sub過程與Function過程最主線的區(qū)別是_Sub過程名無返回值,Function過程名有返回值。
9.VB的代碼存儲(chǔ)在模塊中。在VB中提供了三種類型的模塊:_類模塊_、_窗體模塊__(dá)和_標(biāo)準(zhǔn)模塊_。
10.使用Hide方法會(huì)隱藏被調(diào)用的窗體,但是在調(diào)用Hide方法之后不會(huì)把窗體__卸載_,被調(diào)用的窗體中的屬性等已處在_內(nèi)存中_。
11.將下列數(shù)學(xué)式子寫成VisualBasic表達(dá)式。?
⑴
答:2*cos(a)*sin(a)/(2*a)?
⑵答:sqr(s*(s-a)*(s-b)*(s-c))?
⑶sin45°:sin(45*2*3.1415/360)_?12.將下列數(shù)學(xué)式子各條件寫成VisualBasic邏輯表達(dá)式。
⑴1≤x<12:1<=xandx<12
⑵A+B≥C或a-c≤c:(A+B)>=COR(a-c)<=c
⑶a和b都為正整數(shù)或同為負(fù)數(shù):(a>=0andb>=0)or(a<=0andb<=0)?13.設(shè)A=2,B=3,C=4,D=5。表達(dá)式NotA<=COr4*B^2AndB<>A+C的值為_False_。
14.在VisualBasic語言中有三種形式的循環(huán)結(jié)構(gòu)。其中,若循環(huán)的次數(shù)可以事先擬定,可使用_For…next__循環(huán);若規(guī)定先判斷循環(huán)進(jìn)行的條件,可使用_Dowhile…loop_循環(huán)或_while…Wend_循環(huán)。
15.以下語句的輸出結(jié)果是__3_。?a%=3.14159?Printa%
三、閱讀下列程序,寫出程序運(yùn)營結(jié)果。
1、PrivateSubForm_Click()?
StaticSumAsInteger?
ForI=1to100
Sum=Sum+I?
NextI
PrintSum
EndSub
程序運(yùn)營結(jié)果為:1+2+…….+99+100=5050
2、privat(yī)eSubForm_Click()
A=10:b=15:c=20:d=25
PrintA;Spc(5);b;Spc(7);c
PrintA;Spc(8);b;Space$(5);c
Printc;Spc(3);”+”;Spc(3);c+d
EndSub
10(5個(gè)空格)15(7個(gè)空格)20?10(8?jìng)€(gè)空格)15(5個(gè)空格)20?20(三個(gè)空格)+(三個(gè)空格)45?3、PrivateSubForm_click()
Fori%=1to3?
Forj%=1toi
PrintLTrim(Str(i%))+“*”+LTrim(Str(j%))+“=”;i%*j%;?
Nextj%
Print?Nexti%
EndSub
1*1=1
2*1=2
2*2=4?3*1=3
3*2=6
3*3=9?
?4、PrivateSubCommand1_Click()?
Dima,bAsInteger
A=3.4?B=3.4?Text1.Text=a
Text2.Text=b
EndSub?Text1顯示3、4
Text2顯示3
5、PrivateSubForm_Click()?
ForI=1to5
PrintTab(11–I)
ForJ=1ToI*2–1
Print“*”;
Next?
Nexti
EndSub
*?
***?
*****?
*******?
*********?
四、程序設(shè)計(jì)題?1、購物優(yōu)惠程序。某商場(chǎng)為了加速促成商品流通,采用購物打折的優(yōu)惠辦法,每位顧客一次購物(1)在100元以上者,按九五折優(yōu)惠;(2)在200元以上者,按九折優(yōu)惠;(3)300元以上者,按八折優(yōu)惠;(4)500元以上者按七折優(yōu)惠。在窗體上添加兩個(gè)文本框和一個(gè)命令按鈕,規(guī)定在Text1中輸入購物商品總金額,單擊命令按鈕,在Text2中輸入優(yōu)惠后的價(jià)格。程序運(yùn)營結(jié)果如圖解所示。?
IfVal(text1)>=500thentext2=Val(text1)*0.7
ElseifVal(text1)>=300thentext2=Val(text1)*0.85?
ElseifVal(text1)>=200thentext2=val(text1)*0.9?
Elseifval(text1)>=100thentext2=val(text1)*0.95?Endif
?
2、輸出100~200之間不能被3整除的的數(shù),規(guī)定用Do語句的一種形式來實(shí)現(xiàn),程序運(yùn)營結(jié)果如圖5所示。?窗體的裝入事件中加入如下代碼:
Dimaasinteger
A=100?Dowhilea<=200?If(amod3)<>0then?List1.additenstr(a)?Endif
A=a+1
loop?3、編寫程序,打印如下的乘積表:?DimI,jasinteger?Print”*”:space(5):
Fori=3to12step3
Printstr(i);space(5);
Nexti?Print
ForI=15to18?Printstr(i);space(3);?Forj=3to12step3
Printstr(i*j);space(4);?Nextj?Print
Nextj
?4、設(shè)計(jì)一個(gè)計(jì)算程序。該程序用戶界面如圖7所示。規(guī)定程序運(yùn)營后,用戶選中單擊選按鈕,則程序作10和2的相應(yīng)計(jì)算,并把計(jì)算結(jié)果在文本框中顯示出來。如用戶選中加法單選按鈕,則程序作10和2的相加,計(jì)算結(jié)果12在文本框中顯示出來。按結(jié)束,則退出。?乘法單選按鈕的單擊事件中添加如下代碼:
Text1=10*2?除法單選按鈕中添加如下代碼:?Text1=10/2?加法單選按鈕中添加如下代碼:?Text1=10+2
減法單選按鈕中添加如下代碼:text1=10-2?結(jié)束按鈕中代碼:end或unloadme?5、編寫輸入一個(gè)0~6數(shù)字,顯示漢字對(duì)照輸出星期的Function過程。程序運(yùn)營結(jié)果如圖8所示。?文本框的change事件中代碼如下:?Selectcaseval(text1)
Case0?Label1.caption=”星期天”+chr(13)+”(Sunday)”?Case1?Label1.caption=”星期一”+chr(13)+”(monday)”
Case2?Label1.caption=”星期二”+chr(13)+”(Tuesday)”?Case3?Label1.caption=”星期三”+chr(13)+”(wednesday)”?Case4?Label1.caption=”星期四”+chr(13)+”(thursday)”?Case5
Label1.caption=”星期五”+chr(13)+”(firday)”
Case6?Label1.caption=”星期六”+chr(13)+”(saturday)”
Endselect?
?6、編寫一個(gè)程序,當(dāng)鼠標(biāo)移到Picturel控件時(shí),鼠標(biāo)指針改變形狀;當(dāng)在Picturel控件上單擊鼠標(biāo)右鍵時(shí),通過消息框顯示“Youpressedrightbutton”,并再次改變鼠標(biāo)指針的形狀。?Picture1_mouseup
Ifbutton=2then
I=1?Msgbox”youpressedrightbutton”?Endif
Endsub?7、列表框應(yīng)用程序。規(guī)定從文本框中輸入姓名,然后按“添加”按鈕,把姓名添加到列表框中;當(dāng)選擇列表框中某一項(xiàng)時(shí),按“刪除”按鈕,從列表框中刪除;當(dāng)列表框中某一項(xiàng)時(shí),按“修改”按鈕,把列表框中選取的項(xiàng)送往文本框且“修改”按鈕變?yōu)椤靶薷拇_認(rèn)”。在文本框的內(nèi)容修改好后,按“修改確認(rèn)”按鈕,再把文本框中修改后的信息送到列表框且“修改確認(rèn)”按鈕變?yōu)椤靶薷摹薄3绦蜻\(yùn)營結(jié)果如圖9所示。
添加按鈕代碼:list1.a(chǎn)dditemtext1.text?Text1.text=””?刪除:iflist1.text<>””then
List1.removeitem=list1.listindex?Endif?修改:
Ifcommand3.caption=“修改”then
Text1.text=list1.text?Command3.caption=”修改確認(rèn)”?Else?If
command3.caption=”修改確認(rèn)”then
List1.list=list1.listindex>=text1.text?Command3.caption=”修改”?Endif
Endif
作業(yè)3?一、選擇題
1、VisibleBasic根據(jù)計(jì)算機(jī)訪問文獻(xiàn)的方式將文獻(xiàn)提成三類,其中不涉及(B)?A.順序文獻(xiàn)
B.Unix文獻(xiàn)
C.二進(jìn)制文獻(xiàn)
D.隨機(jī)文獻(xiàn)
2、隨機(jī)文獻(xiàn)進(jìn)行文獻(xiàn)讀取的單位是(B)?A.字節(jié)
B。記錄
C。整個(gè)文獻(xiàn)
D。字符
3、為了使目錄途徑列表框Dir1的內(nèi)容符合驅(qū)動(dòng)器列表框Drive1的選擇,應(yīng)當(dāng)(B)。?A.在Dir1_Click事件中加入Dir1.Path=Drive1.Drive?B.在Drive1_Click事件中加入Dir1.Path=Drive1.Drive?C.在Dir1_Click事件中加入Drive1.Path=Dir1.Drive
D.在Dir1_Click事件中加入Drive1.Path=Dir1.Drive
4、為了使drive1驅(qū)動(dòng)器列表框、dir1目錄途徑列表框和file1文獻(xiàn)列表框能同步協(xié)調(diào)工作,需要在(B)?A.drive1的Change事件過程中加入drive1.Drive=dir1.Pat(yī)h,在dir1的Change事件過程中加入dir1.Path=file1.Path代碼。?B.drive1的Change事件過程中加入dir1.Pat(yī)h=drive1.Drive,在dir1的Change事件過程中加入file1.Path=dir1.Pat(yī)h代碼。?C.dir1的Change事件過程中加入dir1.Path=drive1.Drive,在file1的Click事件過程中加入file1.Pat(yī)h=file1.fileName代碼。
D.dir1的Change事件過程中加入dir1.Pat(yī)h=drive1.Drive,在file1的Click事件過程中加入file1.Pat(yī)h=dir1.Path代碼。
5、下面關(guān)于順序文獻(xiàn)的描述對(duì)的的是(A)
A.每條記錄的長度必須相同
B.可通過編程對(duì)文獻(xiàn)中的某條記錄方便地修改
C.?dāng)?shù)據(jù)只能以ASCII碼形式存放在文獻(xiàn)中,所以可通過文本編輯軟件顯示?D.文獻(xiàn)的組織結(jié)構(gòu)復(fù)雜?6、KILL語句在VB語言中的功能是(C)。?A.清內(nèi)存
B。清病毒
C。刪除磁盤上的文獻(xiàn)
D。清屏幕?7、可用來改變坐標(biāo)度量單位的是(D)
A.Drawstyle屬性
B.DrawWidth屬性
C.Scale方法
D.ScaleMode屬性
8、以下的屬性和方法中,可重定義坐標(biāo)系的是(C)?A.Drawstyle屬性
B.DrawWidth屬性
C.Scale
D.
ScaleMode屬性?9、當(dāng)用Line方法畫直線后,當(dāng)前坐標(biāo)在(C)
A.(0,0)
B.直線起點(diǎn)
C.直線終點(diǎn)
D.容器的中心
10、Line(200,200)-Step(500,500)將在窗體(C)畫一直線。?A.(200,200)到(500,500)
B.(200,200)到(300,300)?C.(200,200)到(700,700)
D.(300,300)到(500,500)
11、設(shè)立對(duì)象的邊框類型的屬性是(B)。
A.Drawstyle
B.Borderstyle
C.DrawWidth
D.ScaleMode
12、為了清除圖片框Picture1中的圖形,應(yīng)采用的對(duì)的方法是(B)?A.選擇圖片框,然后按Del鍵
B.執(zhí)行語句Picture1.picture=LoadPicture(“”)?C.執(zhí)行語句Picture1.picture=“”
D.選擇圖片框,在屬性窗口中選擇Picture屬性條,然后按回車鍵?13、繪制多種形狀的圖形,需要設(shè)立Shape控件的(A)屬性。
A.Shape
B.Borderstyle
C.FillStyle
D.Style
14、繪制多種形狀的直線,需要設(shè)立Line控件的(B)屬性。
A.Shape
B.Borderstyle
C.FillStyle
D.Style
15、假如準(zhǔn)備讀文獻(xiàn),打開順序文獻(xiàn)“text.dat”的對(duì)的語句是(C)?A.
open“text.dat”forwriteAs#1
B.
open“text.dat”forBinary
As#1?C.
open“text.dat”forInput
As#1?D.
open“text.dat(yī)”forRandom
As#1
16、假如準(zhǔn)備向隨機(jī)文獻(xiàn)中寫入數(shù)據(jù),對(duì)的的語句是(C)?A.Print#1,rec
B.Write
#1,rec
C.Put#1,rec
D.
Get#1,rec
17、下列“CommandDialog1”控件程序代碼,CommandDialog1.Action=1,代表(B)
A.文獻(xiàn)另存為
B.打開文獻(xiàn)
C.色彩
D.打印
18、FileFilter.Pattern=”*.bat(yī)”程序代碼執(zhí)行后,會(huì)顯示(A)。
A只包含擴(kuò)展文獻(xiàn)名為”*.bat”的文獻(xiàn)
B。第一個(gè)bat文獻(xiàn)?C.包含所有的文獻(xiàn)
D。會(huì)顯示磁盤的途徑?19、下列數(shù)據(jù)對(duì)象模型中采用OLEDB訪問數(shù)據(jù)庫的是(C)。?A.DAO
B.RDO
C.ADO
D.RDO和ADO
20.設(shè)ADOrs為Recordset對(duì)象,從“學(xué)生基本情況表”中獲取所有記錄的語句是(B)?A.ADOrs.New“Select*From學(xué)生基本情況表”
B.ADOrs.Open“Select*From學(xué)生基本情況表”
C.ADOrs.Execute“Select*From學(xué)生基本情況表”
D.ADOrs.Select“Select*From學(xué)生基本情況表”
21、VB中將變量xl聲明為Excel應(yīng)用程序?qū)ο蟮姆椒ㄊ牵ˋ)
A.DimxlAsExcel.Applicat(yī)ion
B.DimxlAsExcel.Wo(hù)rkbook
C.
DimxlAsExcel.Worksheet
D.DimxlAsExcel.Worksheets?二、填空題
1、假如要新建一個(gè)順序文獻(xiàn),用Open語句時(shí),操作方式關(guān)鍵詞是output。?2.在VisualBasic程序中實(shí)現(xiàn)復(fù)制文獻(xiàn)“C:\comman”到D:盤根目錄下的語句
為filecopy
“c:\command.com”,”d:\”。?3.在VisualBasic程序中實(shí)現(xiàn)刪除文獻(xiàn)”D:\tem.tmp”的語句為__kill”d:\tem.tmp”。?4.按文獻(xiàn)號(hào)為1打開順序文獻(xiàn)SEQNEW.DAT,用于寫入數(shù)據(jù),語句?為__(dá)_open”SEQNEW.DAT”foroutputas
#1。
5.按文獻(xiàn)號(hào)為2打開順序文獻(xiàn)SEQOLD.DAT,用于從該文獻(xiàn)讀出數(shù)據(jù),語句為___open”SEQOLD.DAT”forinputas#2。?6.若窗體的左上角坐標(biāo)為(-200,250),右下角坐標(biāo)為(300,-150),則X軸的正向向右,Y軸的正向向上_。?7.Stretch屬性設(shè)立為_false_時(shí),圖像框可自動(dòng)改變大小以適應(yīng)其中的圖形.?8.在圖片框Picture1中畫一個(gè)左上角在(500,500),邊長為500的紅色實(shí)心正方形的語句為_picture1.line(500,500)-step(500,500),vbred,BF。?9.設(shè)
CurrentX=50,CurrentY=100,執(zhí)行指令”line(100,20)-Step(300,500)”后,Current=_(400,520)_.
10.使用ADO模型時(shí),可通過_ActiveConnect_屬性建立Recordset和Connection對(duì)象的連接.?11.VB中將數(shù)據(jù)庫分為本地?cái)?shù)據(jù)庫、遠(yuǎn)程數(shù)據(jù)庫和__外部數(shù)據(jù)庫_三種類型.?12.采用ADO模型時(shí),當(dāng)使用Open方法打開一個(gè)記錄集后,與ADOrs.Fields(“學(xué)號(hào)”)等效的語句是_ADOrs(“符號(hào)”)_.
13.ADO模型中一般可通過Connection對(duì)象的Execute方法執(zhí)行__增長_、__刪除_、__(dá)修改__等三類不返回結(jié)果集的SQL語句.?14.設(shè)StrSQL、Str1為字符串變量,其中Str1的值為”001”,那么執(zhí)行賦值語句StrSQL=”Select*fromTabel1Where學(xué)號(hào)=’”+Str1+”’”后,StrSQL的值等于_”select.*fromtabel1where學(xué)號(hào)=’001’”_.?15.在VB中,將Foxpro稱為外部數(shù)據(jù)庫,Access稱為__本地?cái)?shù)據(jù)庫_,SQLServer稱為__遠(yuǎn)程數(shù)據(jù)庫__.?三、程序設(shè)計(jì)題
1、在窗體上建立一個(gè)驅(qū)動(dòng)器列表框、目錄列表框、文獻(xiàn)列表框、圖片框。規(guī)定程序運(yùn)營后,驅(qū)動(dòng)器列表框Drive1的默認(rèn)驅(qū)動(dòng)器設(shè)立為C盤,選擇File1中所列的確圖片文獻(xiàn)(*.Bmp和*.jpg),則相應(yīng)的圖片顯示在圖片框Picture1中。程序運(yùn)營結(jié)果如圖10所示。
解:依據(jù)圖10設(shè)計(jì)界面,文獻(xiàn)列表框的pat(yī)tern屬性設(shè)立為:*.Bmp;*.jpg?驅(qū)動(dòng)器列表框的change事件中添加如下代碼:
chdrivedrive1.drive?dir1.path=drive1.drive
目錄列表框的change事件中添加如下代碼:
chdirdir1.pat(yī)h?file1.pat(yī)h=dir1.path?文獻(xiàn)列表框的click事件中添加如下代碼:?
picture1.picture=loadpicturefile1.filename?2.余弦曲線的方程為y=cosx,畫出x從-2到2的確余弦曲線,并在坐標(biāo)軸上標(biāo)出刻度,如圖11所示。?如圖窗體的單擊事件中添加如下代碼:?Form1.scale(-2*3.14159,1)-(2*3.14159,-1)?Form1.line(-2*3.14159,0)-(2*3.14159,0)?Form1.line(0,1)-(0,-1)
Form1.currentx=0.2:form1.currentY=-0.1:print”0”?Form1.currentx=-3.2:form1.currentY=-0.1:print”-pi”
Form1.currentx=3.3:form1.currentY=-0.1:print”pi”
Form1.currentx=-6.2:form1.currentY=-0.1:print”-2pi”?Form1.currentx=5.7:form1.currentY=-0.1:print”2pi”
Form1.currentx=0.2:form1.currentY=0.5:print”0.5”
Form1.currentx=0.2:form1.currentY=-0.5:print”-0.5”
ForI=-6.282to6.282step0.08
Form1.pset(I,cos(I))?
NextI
3,使用Line控件顯示直線,并且可以顯示直線的線寬和線型.程序運(yùn)營界面如圖12所示.?如圖添加代碼如下
復(fù)選框的單擊事件代碼:?Ifcheck1.value=1then
Line1.borderwidth=4
Else
Line1.borderwidth=1?Endif?實(shí)線、虛線、單選框要弄成一個(gè)option1單選框控件數(shù)組。單選框單擊事件代碼:
Selectcaseindex?
Case0
Line1.borderstyle=1?
Case1?Line1.borderstyle=2
Case2?Line1.borderstyle=3
Endselect?4.使用Shape控件顯示幾種圖形,并可以設(shè)立圖形的邊框和填充效果等.程序運(yùn)營界面如圖13所示.
一方面按圖作出程序界面。形狀框架里的單選框要做成option1控件數(shù)組,邊框類型框架里的單選框最成option2控件數(shù)組,填充風(fēng)格框架里的單選做成option3控件數(shù)組。
Option1單擊事件代碼如下:?Selectcaseindex
Case0?Shape1.shape=0?Case1
Shape1.shape=1?Case2
Shape1.shape=3?Case3
Shape1.shape=4?Endselect?Option2單擊事件代碼如下:?Selectcaseindex
Case0?Shape1.borderstyle=0?Case1?Shape1.borderstyle=2
Case2?Shape1.borderstyle=1
Case3?Shape1.borderstyle=3
Case4?Shape1.borderstyle=4
Endselect?Option3單擊事件代碼如下:?
Selectcaseindex?Case0
Shape1.fillstyle=1
Case1
Shape1.fillstyle=1
Case2
Shape1.fillstyle=3?Case3
Shape1.fillstyle=6
Endselect?5.使用SQLServer或Access建立名稱為”學(xué)生的數(shù)據(jù)庫,并在其中創(chuàng)建”students”的數(shù)據(jù)庫表,其結(jié)構(gòu)及初始記錄如表1所示.使用ADO對(duì)象和MSFlexGrid控件設(shè)計(jì)數(shù)據(jù)庫列表顯示程序.程序的設(shè)計(jì)界面和運(yùn)營結(jié)果如圖14、圖15所示。
表1
學(xué)號(hào)
姓名
專業(yè)
2023001
張紅
軟件專業(yè)
2023003
李強(qiáng)
會(huì)計(jì)專業(yè)?2023002
王麗
軟件專業(yè)
聲名對(duì)象變量ADOcn,用于創(chuàng)建與數(shù)據(jù)庫的連接
Privat(yī)eADOcnAsconnection?Readfromtable
Privatesubreadfromtable()?DimstrtmpAsstring?DimADOrsAsnewrecordset?ADOrs.activeconnection=ADOcn?ADOrs.open“select*fromstudentsorderby“學(xué)號(hào)”
MSFlexgrid1.clear?MSFlexgrid1.rows=0
MSFlexgrid1.cols=3?Strtmp=“學(xué)號(hào)”+vbtab+“姓名”+vbtab+“專業(yè)”?MSFlexgrid1.additemstrtmp
DowhilenotADOrs.eof?Strtmp=ADOrs(“學(xué)號(hào)”)+vbtab+ADOrs(“姓名”)+vbtab+ADOrs(“專業(yè)”)
MSFlexgrid1.addttemstrtmp
ADOrsmovenext
Loop?MSFlexgrid1.fixedcols=0
MSFlexgrid1.fixedrows=1?Endsub?Privatesubform_load()?DimstrDBAsstring
strDB=”provider=SQLOLEDB;LSF;UserID=sa;password=;database=學(xué)生”?ifADOcnisnothingthen
setADOcn=newconnection
ADOcn.openstrDB
Endif
Readfromtable?Endsub?Privatesubcommand1_click()
Unloadme
Endsub
作業(yè)4
一、選擇題?1、WinsockServer.LocalPort=10001語句的含義是(
A)。
A、設(shè)立偵聽端口
B、設(shè)立計(jì)算機(jī)IP地址
C、設(shè)立中斷地址
D、設(shè)立通訊協(xié)議?2、當(dāng)Winsock控件處在關(guān)閉狀態(tài)時(shí),其State屬性的值是(
B)。?A、1
B、0
C、2
D、6?3、相對(duì)于UDP協(xié)議而言,TCP協(xié)議是一種(
A)。
A、面向連接的協(xié)議B、無連接協(xié)議
C、計(jì)算機(jī)間不建立連接
D、合用于傳送少量數(shù)據(jù)?4、VB程序中通常不會(huì)產(chǎn)生錯(cuò)誤提醒的(D
)。
A、編譯錯(cuò)誤
B、實(shí)時(shí)錯(cuò)誤
C、運(yùn)營時(shí)錯(cuò)誤
D、邏輯錯(cuò)誤?5、VB程序的編譯錯(cuò)誤一般可通過VB集成環(huán)境的何種設(shè)立,自動(dòng)檢測(cè)(
B)。?A、規(guī)定變量聲明
B、自動(dòng)語法檢測(cè)
C、自動(dòng)顯示快速信息量
D、主線無法自動(dòng)檢測(cè)
6、VB程序中設(shè)立斷點(diǎn)的按鍵是(
C
)。
A、F5鍵
B、F6鍵
C、F9鍵
D、F10鍵?7、OnErrorGoToErrLB語句中,ErrLB的含義是(
A
)。?A、行標(biāo)記號(hào)
B、SUB過程名
C、FUNCTION過程名
D、錯(cuò)誤號(hào)
8、Err對(duì)象中,用來表達(dá)錯(cuò)誤描述的屬性是(B
)。
A、ErrNo
B、Description
C、Number
D、Source
二、填空題。?1、使用Winsock控件時(shí),一旦有數(shù)據(jù)到達(dá),將一方面觸發(fā)該控件的DataArrival事件。而假如要發(fā)送數(shù)據(jù),則通常使用該控件的senddata方法。
2、Winsock控件重要用來編制或基于TCP/IP經(jīng)UDP協(xié)議的通話程序。?3、ActiveXEX文獻(xiàn)的后綴是exe。
4、COM對(duì)象有兩種類型接口,即標(biāo)準(zhǔn)接口和用戶接口。
5、假如希望得到本地計(jì)算機(jī)的IP地址,可以使用Winsock控件的localIP屬性。?6、Winsock控件的BytesReceived屬性返回接受到的數(shù)據(jù),通常使用getdata方法來獲取這些數(shù)據(jù)了。
7、Winsock1.Listen語句的含義是使服務(wù)程序處在偵聽狀態(tài)等待客戶訪問。
8、常用中的VB網(wǎng)絡(luò)編程控件重要有Winsock、InternetTransfer、WebBrowser三種。
9、VB中的程序錯(cuò)誤類型重要有編譯錯(cuò)誤、邏輯錯(cuò)誤、實(shí)時(shí)錯(cuò)誤等三種。?10、VB中用于關(guān)閉錯(cuò)誤捕獲機(jī)制的語句是onerrorgoto0。?三、問答題。
1、簡述基于Socket的通信過程。?
Socket在計(jì)算機(jī)提供了一個(gè)通信端口,可以通過這個(gè)端口與任何一個(gè)也同時(shí)具有Socket接口的計(jì)算機(jī)進(jìn)行通信,應(yīng)用程序在網(wǎng)絡(luò)上傳輸、接受的信息都通過這個(gè)Socket接口實(shí)現(xiàn),只需要對(duì)Socket接口進(jìn)行數(shù)據(jù)的讀寫操作就可以了。
?2、簡要設(shè)計(jì)錯(cuò)誤解決程序的3個(gè)環(huán)節(jié)。
(1)捕獲錯(cuò)誤,并強(qiáng)制程序跳轉(zhuǎn)
(2)編寫錯(cuò)誤解決程序,對(duì)所有可預(yù)見的錯(cuò)誤作出反映
(3)退犯錯(cuò)誤解決程序?
3、簡述常用的程序調(diào)式技巧?(1)事先做好備份?(2)分離受懷疑的程序?(3)縮小搜索范圍?(4)使用MSGBOX語句?
?4、簡述基于Winsock控件的開發(fā)模式。?(1)服務(wù)器程序的開發(fā)模式
(A)服務(wù)器程序必須設(shè)立好LOCALPORT,作為偵聽端口,該值可設(shè)立成任意一個(gè)整數(shù),只要其他應(yīng)用和諧沒有使用過的值均可,但習(xí)慣上應(yīng)大于1000?(B)使用LISTRN方法使用服務(wù)器進(jìn)入偵聽狀態(tài),等待客戶機(jī)程序的連接請(qǐng)求。
(C)客戶機(jī)程序發(fā)出連接請(qǐng)求后,將觸發(fā)服務(wù)器程序的CONNECTIONREQUEST事件,該事件得到一個(gè)參數(shù)REQUESTID。?(D)服務(wù)器程序使用ACCEPT方法接受客戶機(jī)程序的REQUESTID請(qǐng)求,至此,服務(wù)器程序就可以使用SRNDDATA方法向客戶機(jī)發(fā)送數(shù)據(jù)了。此時(shí)應(yīng)特別注意兩點(diǎn):一是ACCEPT方法必須用到上一步的REQUESTID作為其參數(shù);二是在執(zhí)行ACCEPT方法前,服務(wù)器仍處在偵聽狀態(tài),此時(shí)應(yīng)一方面使用CLOSE方法關(guān)閉服務(wù)器,然后再調(diào)用ACCEPT方法。?(E)當(dāng)服務(wù)器程序接受到數(shù)據(jù)時(shí),會(huì)產(chǎn)生DATAARRIVAL事件。在該事件中可以使用GETDATA方法接受數(shù)據(jù)。
(2)客戶機(jī)程序的開發(fā)模式
(A)客戶程序一方面應(yīng)設(shè)立好REMOTEHOST屬性,用來指向運(yùn)營器程序的主機(jī)名或IP地址?(B)設(shè)立REMOTEPORT屬性,用來指向服務(wù)器程序和偵聽端標(biāo)語。?(C)使用CONNECT方法向服務(wù)器提出連接請(qǐng)求。?(D)假如服務(wù)器接受上述連接請(qǐng)求,客戶機(jī)程序會(huì)產(chǎn)生CONNECT事件。可以根據(jù)需要,在此事件中編寫程序,比如使用MSGBOX函數(shù)向用戶提醒“連接已成功”之類的信息。
(E)連接成功之后,就可以根據(jù)需要使用SENDDATA方法向服務(wù)器發(fā)送數(shù)據(jù)了。
(F)當(dāng)客戶機(jī)程序接受到數(shù)據(jù)時(shí),會(huì)產(chǎn)生DATAARRIVAL事件,可以用GETDATA方法接受數(shù)據(jù)。
四、程序設(shè)計(jì)題。?1、運(yùn)用冒泡排序算法開發(fā)以下程序,請(qǐng)指出程序中存在的錯(cuò)誤并改正。
PrivateSubCommand1_Click()
DimA(1To20)AsInteger
Dimc,j,TAsInteger
'此處有錯(cuò),應(yīng)為Dimc,j,Tasinteger
?‘隨機(jī)生成一組數(shù)據(jù)
Forc=1To20?
A(c)=Int(Rnd*100)?Nextc?‘排序?Forc=1To20?
Forj=c+1To20?
IFA(c)>A(j)Then
T=A(j)
A(j)=A(c)
A(j)=T
'此處有錯(cuò),應(yīng)為A(C)=T,實(shí)現(xiàn)
EndIf'A(C)和A(J)的互換?
Next?Next
‘在窗體上輸出結(jié)果
Cls
Forc=1To20
PrintA(i)'此處有錯(cuò),應(yīng)為A(C).下標(biāo)越界.?Nextc?EndSub
?2、運(yùn)用Winsock控件開發(fā)一個(gè)點(diǎn)對(duì)點(diǎn)聊天系統(tǒng),該系統(tǒng)由一個(gè)服務(wù)器應(yīng)用程序和一個(gè)客戶端應(yīng)用程序組成,可以實(shí)現(xiàn)網(wǎng)絡(luò)中兩臺(tái)計(jì)算機(jī)間的通話任務(wù)。
解:如下界面的設(shè)計(jì)中,若不說明,各對(duì)象均采用默認(rèn)的名稱。?
服務(wù)器程序的界面設(shè)計(jì)
1、創(chuàng)建一個(gè)“標(biāo)準(zhǔn)EXE”工程。選中“工程”菜單的“部件”選項(xiàng),在控件中找到MicrosoftWinsockControl并將其選中。假如沒有找到,通常是由于VB安裝不安全的緣故,可以找到安裝盤并安裝其中的Mswinsck.cad壓縮包。?2、將form1的名稱改為frmSvr,并在其中添加一個(gè)命令按鈕控件,將其Caption屬性修改為“退出”。?3、在窗體上添加三個(gè)添加TextBox控件,分別將其名稱修改為txtServerIP,txtSend和txtReceive,用來顯示服務(wù)器的IP地址和需收發(fā)的信息。?4、在窗體上添加一個(gè)Winsock控件,將其名稱改為WinsockServer,將Protocol(協(xié)議)屬性設(shè)立為0(即sckTCPProtocol)?各控件及事件代碼如下:?PrivateSubCommand1_Click()?UnloadMe
EndSub?
PrivateSubForm_Load()
txtreceive.Text=""
txtsend.Text=""?Winsockserver.LocalPort=10001?txtserverip.Text=Winsockserver.LocalIP?Winsockserver.Listen
EndSub?
PrivateSubtxtsend_Change()?Winsockserver.SendDatat(yī)xtsend.Text
EndSub?
?PrivateSubWinsockserver_ConnectionRequest(ByValrequestIDAsLong)
Winsockserver.Close?Winsockserver.AcceptrequestID?EndSub
Privat(yī)eSubWinsockserver_Dat(yī)aArrival(ByValbytesTotalAsLong)?DimmystrAsString
Winsockserver.GetDat(yī)amystr
txtreceive.Text=mystr?
?EndSub
客戶機(jī)程序的界面設(shè)計(jì)?1、與服務(wù)器程序類似,創(chuàng)建一個(gè)新的“標(biāo)準(zhǔn)EXE”工程,并添加Winsock控件。
2、將form1的名稱改為frmClt,并添加兩個(gè)命令按鈕控件,分別將它們的Caption屬性設(shè)立為“退出”和“連接聊天服務(wù)器”。
3、在窗體添加四個(gè)文本框控件,分別將其名修改為txtClientIP,txtSenerIP,txtsend和txtReceive,用來顯示客戶機(jī)和要連接的服務(wù)器的IP地址以及需收發(fā)的信息。?4、在窗體上添加一個(gè)Winsock控件,將其名稱改為WinsockClient,將(協(xié)議)屬性設(shè)立為0(即sckTCPProtocol)?
各控件及事件代碼如下:?
?PrivateSubCommand1_Click()?UnloadMe?
?EndSub
?PrivateSubCommand2_Click()?Winsockclient.RemoteHost=txtserverIP.Text?Winsockclient.Connect?EndSub?
?PrivateSubForm_Load()?txtreceive.Text=""?txtsend.Text=""?Winsockclient.RemotePort=10001
txtclientIP.Text=Winsockclient.LocalIP
EndSub?
?PrivateSubtxtsend_Change()
Winsockclient.SendDatatxtsend.Text?
?EndSub
?PrivateSubWinsockclient_Connect()
MsgBox"你成功地與聊天室服務(wù)器進(jìn)行了聯(lián)接",vbInformation
EndSub?
PrivateSubWinsockclient_DataArrival(ByValbytesTotalAsLong)
DimmystrAsString?Winsockclient.GetDatamystr
txtreceive.Text=mystr?
?EndSubVisualBasic程序設(shè)計(jì)形成性考核冊(cè)作業(yè)作業(yè)1
一、選擇題
1、在設(shè)計(jì)應(yīng)用程序時(shí),可以查看到應(yīng)用程序工程所有組成部分的窗口是(D)。?
A、窗體設(shè)計(jì)
B、代碼
C、屬性
D、工程資源管理器窗口
2、窗體的load事件的觸發(fā)時(shí)機(jī)是(B)。?A、用戶單擊窗體時(shí)
B、窗體被加載時(shí)
C、窗體顯示之后
D、窗體卸載時(shí)
3、與傳統(tǒng)的程序設(shè)計(jì)語言相比,VisualBasic最突出的特點(diǎn)是(C)。?
A、結(jié)構(gòu)化程序設(shè)計(jì)
B、程序開發(fā)環(huán)境
C、事件驅(qū)動(dòng)編程機(jī)制
D、程序調(diào)試技術(shù)?4、VB6.0集成開發(fā)環(huán)境的主窗口中不涉及(C)。?
A、標(biāo)題欄
B、菜單欄
C、狀態(tài)欄
D、工具欄
5、假如對(duì)象的名稱為Mytext,并且對(duì)象有一個(gè)屬性Text,那么在代碼中引用該屬性的對(duì)的格式是(B)。?
A、text.Mytext
B、Mytext.Text
C、Mytext.(Text)
D、Mytext*Text?6、下列可以激活屬性窗口的操作是(D)。
A、用鼠標(biāo)雙擊窗體的任何部位
B、執(zhí)行“工程“菜單中的”屬性窗口“命令?
C、按Ctrl+F4
D、按F4
7、假定已在窗體上畫了多個(gè)控件,并有一個(gè)控件是活動(dòng)的,為了在屬性窗口中設(shè)立窗體的屬性,預(yù)先應(yīng)執(zhí)行的操作是(A)。
A、單擊窗體上沒有控件的地方
B、單擊任一個(gè)控件
C、不執(zhí)行任何操作
D、雙擊窗體的標(biāo)題欄
8、假如要在文本框鍵入字符時(shí),只顯示某個(gè)字符,假如(*),應(yīng)設(shè)立文本框的(B)屬性。?
A、Caption
B、PasswordChar
C、Text
D、Char
9、假如想要在文本框中的內(nèi)容在運(yùn)營時(shí)不能編輯,需要文本框的(A)屬性設(shè)立為True.?ALocked
B、MultiLine
C、TabStop
DVisible
10對(duì)于定期器(Tiner)控制,設(shè)立其定期是否啟動(dòng)的屬性是(C)?A、Index
B、Tag
C、Enabled
D、Left
11、要在窗口體Fornl內(nèi)顯示“myfrm”使用的語句是(C)
A、Form.caption=“myfrm”B、Fornl.caption=“myfrm”
C、forml.print“myfrm”D、form.print“myfrm”?12、對(duì)象的性質(zhì)和狀態(tài)特性稱為(C)?A、事件
B、方法
C、屬性
D、類?13、下列對(duì)的的賦值語句是(B)?A、x+y=20
B、y=x+20
C、3x=y
D、s=?14、當(dāng)使用上下文相關(guān)的幫助時(shí),選擇要幫助的內(nèi)容,然后按(D)鍵,就可出現(xiàn)MSDN窗口直接顯示所需的幫助信息。?
A、Help
B、F10
C、Ese
D、F1
15、將調(diào)試通過的工程經(jīng)“文獻(xiàn)”菜單的“生成.exe文獻(xiàn)“編繹成名.exe后,將該可執(zhí)行文獻(xiàn)放到其它機(jī)器上不能運(yùn)營的重要因素是(D)。?A、運(yùn)營的機(jī)器上無VB系統(tǒng)
B、缺少.frm窗體文獻(xiàn)
C、該執(zhí)行文獻(xiàn)有病毒
D、以上因素都不對(duì)
二、填空題?1、當(dāng)進(jìn)入VB集成開發(fā)環(huán)境后,發(fā)現(xiàn)沒有顯示“工具箱”窗口。應(yīng)選擇視圖菜單的工具箱選項(xiàng),使“工具箱”窗口顯示。?2、在VB中,事件過程名由對(duì)象名和事件名構(gòu)成。
3、工程文獻(xiàn)的擴(kuò)展名是
vbp,窗體文獻(xiàn)擴(kuò)展名是
frm
。
4、對(duì)象時(shí)代碼和數(shù)據(jù)的集合,例如,VisualBasic中的窗體、按鈕、?文本框等都是對(duì)象。
5、對(duì)象的方法用于實(shí)行某種操作功能。當(dāng)方法不需要任何參數(shù)并且也沒有返回值,調(diào)用對(duì)象的方法的格式為對(duì)象名.方法名。例如對(duì)窗體Forml使用Show方法,應(yīng)寫成
form1.show
。
6、要使文本框顯示滾動(dòng)條,需要將其ScrollBars屬性設(shè)立為
3。?7、欲設(shè)立定期的時(shí)間間隔為4秒,則屬性Interval的值為
4000。?8、要使標(biāo)簽框的大小隨Caption屬性做自動(dòng)調(diào)整,應(yīng)將AutoSize屬性設(shè)立為True。
9、通過窗體布局窗口可以在設(shè)計(jì)時(shí)直觀地調(diào)整窗體在屏幕的位置。?10、要想在代碼中給名為txtshow的文框賦予文本:GOODWORK!時(shí),應(yīng)當(dāng)編寫的語句是
txtshow.text=”GOODWORK!”。
11、若命令按鈕的名稱為Cmdopen,程序規(guī)定單擊以上命令按鈕,打開一個(gè)窗口frml,請(qǐng)對(duì)以下事件過程填空。
PrivateSubCmdopen
click()?Frm1.show
EndSud?12、事件就是對(duì)象上所發(fā)生的事情,VisualBasic中的事件如單擊、裝入、
鼠標(biāo)移動(dòng)等。一個(gè)對(duì)象響應(yīng)的事件可以有多個(gè),用戶不能建立新的事件。事件過程是指響應(yīng)某個(gè)事件后所執(zhí)行的代碼。假設(shè)某一事件過程如下:
PrivateSubcmd1_Click()
Form1.Caption=”VB示例”?EndSub
則響應(yīng)過程的對(duì)象名是
cmd1,事件名是Click
。
13、對(duì)象的方法用于在對(duì)象上實(shí)行某種操作功能。當(dāng)方法不需要任何參數(shù)并且也沒有返回值,調(diào)用對(duì)象的方法格式為對(duì)象名.方法名,例如,對(duì)窗體Form1使用Show方法,應(yīng)寫成
Form1.Show
。
14、為了在編寫代碼時(shí)能自動(dòng)語法檢查,必須執(zhí)行工具菜單中的選項(xiàng)
命令,打開選項(xiàng)對(duì)話框,然后選擇“編輯器”選項(xiàng)卡中的自動(dòng)語法檢測(cè)。
15、定期器(Timer)控件可辨認(rèn)的事件是Timer,了生該事件的時(shí)間間隔定期由定期器的
Interval屬性設(shè)立,其單位為毫秒。
三、問答題?1、什么是可視化編程和事件驅(qū)動(dòng)?
?答:可視化編程是指無須編程,僅通過直觀的操作方式即可完畢界面的設(shè)計(jì)工作的這種編程方式。?當(dāng)VB的應(yīng)用程序運(yùn)營后,系統(tǒng)處在等待狀態(tài),當(dāng)某個(gè)事件發(fā)生后,程序就去執(zhí)行此事件的事件過程,當(dāng)這個(gè)事件過程執(zhí)行完后,系統(tǒng)又處在等待另一個(gè)事件發(fā)生的狀態(tài),這就是事件驅(qū)動(dòng)程序方式。
2、對(duì)象、屬性、事件和文獻(xiàn)之間的關(guān)系如何?
答:對(duì)象是代碼和數(shù)據(jù)的封裝體。對(duì)象的操作通過與該對(duì)象有關(guān)的屬性、事件、方法來描述。
屬性是一個(gè)對(duì)象的基本特性,每個(gè)對(duì)象都有它自己的屬性。
方法是對(duì)象要執(zhí)行的動(dòng)作。
事件是在對(duì)象上所發(fā)生的事情。?3、簡述事件驅(qū)動(dòng)機(jī)制與傳統(tǒng)編程方式的不同。
答:傳統(tǒng)的面向過程的應(yīng)用程序中,應(yīng)用程序自身控制了執(zhí)行那一部分代碼按何種順序執(zhí)行代碼,程序從第一行代碼開始執(zhí)行并按應(yīng)用程序中預(yù)定的途徑執(zhí)行,用戶無法改變程序的執(zhí)行流程。而事件驅(qū)動(dòng)機(jī)制則由用戶來決定執(zhí)行的路線。這就是兩者的不同。?4、簡述事件驅(qū)動(dòng)的工作過程。?答:事件驅(qū)動(dòng)的工作過程如下:(1)啟動(dòng)應(yīng)用程序,裝載和顯示窗體。(2)窗體或窗體上的控件等待事件的發(fā)生。(3)當(dāng)某個(gè)事件發(fā)生后,執(zhí)行其相應(yīng)的事件過程代碼。(4)反復(fù)執(zhí)行(2)和(3),直到碰到END語句或單擊“結(jié)束”按鈕停止程序的運(yùn)營。?四、程序設(shè)計(jì)題
1、在窗體上添加一個(gè)文本框和兩個(gè)命令按鈕,并把兩個(gè)命令按鈕的標(biāo)題分別設(shè)立為“隱藏文本框”和“顯示文本框”。當(dāng)單擊第一個(gè)命令按鈕時(shí),文本框消失;而當(dāng)單擊第二個(gè)命令按鈕時(shí),文本框重新出現(xiàn),并在文本框中顯示“VB程序設(shè)計(jì)”(字體大小為16)。程序運(yùn)營界面如圖所示。??圖1?解:“隱藏文本框”按鈕中的代碼為:Text1.Visible=False?“顯示文本框”按鈕中的代碼為:Text1.Visible=True
Text1.Text=”VB程序設(shè)計(jì)”?
Text1.FontSize=”16”
2、設(shè)計(jì)一個(gè)計(jì)算程序。該程序用戶界面如圖2所示,由四個(gè)文本框:文本框1(text1)、文本框2(text2)、文本框3(text3)、文本框4(text4),和三個(gè)按鈕:命令按鈕1(command1)、命令按鈕2(command2)、命令按鈕3(command3)組成。程序運(yùn)營后,用戶按清除按鈕,則清除文本框中顯示的內(nèi)容,按計(jì)算按鈕,則計(jì)算三科平均成績。單擊退出按鈕則退出。
解:command1中的代碼為:text1=””:text2=””:text3=””:text4=””
command2中的代碼為:text4=(val(Text1)+val(Text2)+val(Text3))/3?command2中的代碼為:End?3、編寫一收款計(jì)算程序。規(guī)定用戶輸入商品的“單價(jià)”、“數(shù)量”和“折扣”后,單擊“計(jì)算”按鈕顯示“應(yīng)付款”,單擊“清除”按鈕,清除文本框中所有的數(shù)據(jù)。程序運(yùn)營界面如圖3所示。?答:“計(jì)算”按鈕的代碼:text4=val(Text1)*val(Text2)*val(Text3)/100?“清除”按鈕的代碼:text1=””:text2=””:text3=””:text4=””
???作業(yè)2一、選擇題?1.按照變量的作用域可將變量劃分為(B
)。
A、公有、私有、系統(tǒng)
B、全局變量、模塊級(jí)變量、過程變量?C、動(dòng)態(tài)、常數(shù)、靜態(tài)
D、Public、Private、Protected
2.可獲得字符的ASCII碼的函數(shù)是(C)。
A、ValB、FixC、Asc
D、Chr?3、要退出Do….Loop循環(huán),可使用的語句的(D)語句。
A、Exit
B、Exit
For
C、EndDo
D、ExitDo?4.把數(shù)值型轉(zhuǎn)換為字符串型需要使用的函數(shù)是(B)。
A、Val
B、Str
C、Asc
D、Chr
5.關(guān)于語句行,下列說法對(duì)的的是(B)。
A.一行只能寫一條語句B.一條語句可以分多行書寫?C.每行的首字符必須大寫D.長度不能超過255個(gè)字符?6.表達(dá)式6+10Mod4*2+1的值是(A).
A.9B.11C.1D.3
7.以下可以作為VisualBasic變量名的是(B).
A.SIN
B.CO1
C.COS(X)
D.X(-1)
8.表達(dá)式Abs(-5)+Len(“ABCDE”)的值為(C).?A.5ABCDEB.-5ABCDE
C.10
D.0
9.在代碼編輯器中,假如一條語句太長,無法在一行內(nèi)寫下(不涉及注釋),要折行書寫,可以在行末使用續(xù)行字符(A),表達(dá)下一行是當(dāng)前行的繼續(xù).
A.一個(gè)空格加一個(gè)下劃字符(_)B.一個(gè)下劃字符(_)
C.直接回車
D.一個(gè)空格加一個(gè)字符(-)?10.Sub過程與Function過程最主線的區(qū)別是(D).
A.Sub過程可以使用Call語句或直接使用過程名調(diào)用,而Function過程不可以.
B.Function過程可以有參數(shù),Sub過程不可以.?C.兩種過程參數(shù)的傳遞方式不同.
D.Sub過程的過程名不能返回值,而Function過程可以通過過程名返回值.?11."X是小于80的非負(fù)數(shù)",用VB表達(dá)式表達(dá)對(duì)的的是(C).?
A..0≤X<80
B.0<=X<80
C.0<=xandx<80
D.0<=xOrx<80?12.在設(shè)計(jì)菜單時(shí),假如要在菜單中加入一個(gè)菜單分隔條,則菜單分隔條的標(biāo)題必須設(shè)立為(B)
A.加號(hào)(+)
B.減號(hào)(-)
C.星號(hào)(*)
D.感慨號(hào)(!)
13.假如要在程序中顯示一個(gè)彈出式菜單,那么要調(diào)用VisualBasic中提供的方法是(D).
A.Print
B.Move
C.Refresh
D.PopupMenu
14.下列可以用來存儲(chǔ)圖像供其他對(duì)象使用的控件是(C).?
A.ToolBar
B.StatursBar
C.ImageList
D.Tree(cuò)View?15.當(dāng)單擊工具攔上的按扭時(shí),會(huì)觸發(fā)的事件是(A).?
A.ButtonClick
B.Change
C.Load
D.KeyPress?16.要運(yùn)用公用對(duì)話框控件來顯示”打開文獻(xiàn)”對(duì)話框,需要調(diào)用控件的(B)方法.?
A.ShowPrinter
B.ShowOpen
C.ShowSave
D.ShowColor?17.對(duì)于窗體級(jí)變量,下列說法中錯(cuò)誤的是(C).?A.所在窗體的各子程序都可以訪問
B.其他窗體的子程序不能訪問
C.所在窗體發(fā)子程序不能訪問用Privat(yī)e定義的窗體級(jí)變量
D.一定要在所在窗體的通用區(qū)內(nèi)定義
18.從一個(gè)字符串中的第3個(gè)字符開始,獲取5個(gè)字符,應(yīng)使用(B)?
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 人工承包合同協(xié)議范本格式格式模板
- 贛州房屋買賣合同條款
- 沙石運(yùn)輸業(yè)務(wù)協(xié)議書
- 石材采購合同文本
- 砌筑分包工程勞務(wù)合同模板
- 廣告服務(wù)合同的共贏策略
- 建設(shè)項(xiàng)目運(yùn)營移交合同的履行要點(diǎn)
- 大學(xué)生貸款助學(xué)的合同范本解析
- 牛只選購合同
- 河道整治勞務(wù)分包合同
- 山東省東營市(2024年-2025年小學(xué)四年級(jí)語文)統(tǒng)編版期末考試(上學(xué)期)試卷及答案
- 2024秋國家開放大學(xué)《馬克思主義基本原理》專題測(cè)試1-8參考答案
- 新概念英語第二冊(cè)33課市公開課獲獎(jiǎng)?wù)n件省名師示范課獲獎(jiǎng)?wù)n件
- 企業(yè)國際化經(jīng)營戰(zhàn)略規(guī)劃與實(shí)施方案
- 3.3-棧的應(yīng)用-迷宮求解解析
- 餐飲采購合同樣本
- 慢性腎衰竭血液透析患者的流行病學(xué)調(diào)查分析
- 大學(xué)生體質(zhì)健康標(biāo)準(zhǔn)與鍛煉方法(吉林聯(lián)盟)智慧樹知到期末考試答案章節(jié)答案2024年東北師范大學(xué)
- 任職資格體系3-某公司營銷銷售族銷售、供應(yīng)、客服和職能任職資格
- 2024年省內(nèi)江市東興區(qū)公辦學(xué)??颊{(diào)教師67人(高頻重點(diǎn)提升專題訓(xùn)練)共500題附帶答案詳解
- 幼兒園安全教育課件:生水喝不得
評(píng)論
0/150
提交評(píng)論