2025年電大VB程序設(shè)計作業(yè)完整解答與技巧攻略_第1頁
2025年電大VB程序設(shè)計作業(yè)完整解答與技巧攻略_第2頁
2025年電大VB程序設(shè)計作業(yè)完整解答與技巧攻略_第3頁
2025年電大VB程序設(shè)計作業(yè)完整解答與技巧攻略_第4頁
2025年電大VB程序設(shè)計作業(yè)完整解答與技巧攻略_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

VisualBasic程序設(shè)計作業(yè)1

一、選擇題

1.D2.B3.C4.C5.B6.D7.A8.B9.A10.C11.C12.C13.B

14.D15.A

二、填空題

1.視圖工具箱

2.對象事件

3..vbp.frm

4.窗體控件菜單

5.完畢某種特定的功能對象名措施名Form1.Show

6.MultilineTrue

7.4000

8.AutoSizeTrue

9.窗體布局窗口

10.txtshow.text="GOODWORK!"

11.Click。、frm1.show

12.單擊雙擊裝載多響應(yīng)某個事件后所執(zhí)行的程序代瑪emd1Click

13.完畢某種特定的功能對象名.措施名FormI.Show

14.工具選項(xiàng)選項(xiàng)自動詔法檢測

15.TimerIntervalms

三、問答題

1.參照答案

答:可視化編程是目前最直觀的一種編程措施,人們一般用Visual一詞表達(dá)它。之因此叫做“可視”,

是指你無需編程,僅通過直觀的操作方式即可完畢界面的設(shè)計工作。因此,可視化語言是目前最佳的

Windows應(yīng)用程序開發(fā)工具。

在這種語言中引入了控件的概念,每個控件均有若干措施和事件,并通過一系列的屬性來控制控件的

外觀。運(yùn)用這些控件,編程過程就如同畫畫,隨意點(diǎn)幾下鼠標(biāo),一種按鈕就完畢了,這些工作在使用老式

編程語言的狀況下,需要編寫大量復(fù)朵的程序代碼才能實(shí)現(xiàn)。

可視化編程重要用到了事件驅(qū)動機(jī)制,其原理是:當(dāng)應(yīng)用程序運(yùn)行后,程序處在等待狀態(tài),當(dāng)某個事

件發(fā)生后,程序就去執(zhí)行此事件的事件過程,當(dāng)這個事件過程執(zhí)行完后,應(yīng)用程序又處在等待另一種事件

發(fā)生的狀態(tài)。

2.參照答案

答:對象是代碼和數(shù)據(jù)的封裝體,在VB中,“數(shù)據(jù)”體現(xiàn)為屬性,“代碼”則體現(xiàn)為事件和措施。建

立一種對象后,其操作通過與該對象的有關(guān)屬性、事件和措施來描述。

屬性是一種對象的基本特性,每個對象均有它自己的屬性。通過修改對象的屬性,可以變化對象的外

觀和功能V

措施就是要對象執(zhí)行的動作,一般可以將它理解為VB提供的一種特殊的過程和函數(shù)。其特殊性在于,

這些過程和函數(shù)是封裝在對象內(nèi)部的,是在對象上實(shí)行的某種操作功俅。

事件就是在對象上所發(fā)生的事情。對象的事件是由VB預(yù)先設(shè)置好的、能被對象識別的動作。顧客不

能建立新的事件,但可以根據(jù)需要對事件進(jìn)行編程。從非嚴(yán)格意義上注,可以將事件理解為一種特殊的措

施。

3.參照答案

答:老式的面向過程的應(yīng)用程序中,應(yīng)用程序自身控制了執(zhí)行哪一部分代碼和按何種次序執(zhí)行代碼,

程序從第一行代碼開始執(zhí)行并按應(yīng)用程序中預(yù)定的途徑執(zhí)行,顧客無法變化程序的執(zhí)行流程。

在事件驅(qū)動的應(yīng)用程序中,程序的執(zhí)行發(fā)生了主線的變化,代碼大是按照預(yù)定的途徑執(zhí)行,而是在響

應(yīng)不?樣的事件時執(zhí)行不?樣的代碼片段。每個對象均有?種對應(yīng)的事件集,每個事件發(fā)生都要執(zhí)行段

程序代碼。事件可以由顧客操作觸發(fā),也可以由操作系統(tǒng)或其他應(yīng)用程序的消息觸發(fā),甚至可由應(yīng)用程序

自身的消息觸發(fā)。這些事件的次序決定了代碼執(zhí)行的次序,因此,應(yīng)月程序每次運(yùn)行所通過的代碼途徑是

不確定的,它的執(zhí)行流程由顧客來決定。在程序設(shè)計時,不需要指出允執(zhí)行哪部分代碼,或按什么次序執(zhí)

行代碼,只需編寫針對某個事件的程序代碼即可。

4.參照答案

答:事件驅(qū)動是VB應(yīng)用程序的基本機(jī)制,其基本過程是:

(1)啟動應(yīng)用程序,裝載和顯示窗體。

(2)窗體或窗體上的控件等待事件的發(fā)生。事件可由顧客引起(例如鍵盤操作或鼠標(biāo)點(diǎn)擊)、可由系

統(tǒng)弓起(例如定期器控件)、也可由代碼間接引起(例如現(xiàn)代碼裝載其他窗體時產(chǎn)生的Load事件)。

(3)當(dāng)某個事件發(fā)生后,執(zhí)行其對應(yīng)的事件過程代碼。

(4)反復(fù)執(zhí)行第2和第3步。直到碰到End語句或單擊“結(jié)束”按鈕停止程序的運(yùn)行。

四、程序設(shè)計題

1.

PiivateSubFoun_Loiid()

Text1.Text="VB程序設(shè)計”

Textl.FontSize=16

EndSub

PrivateSubCommandl_Click()

TextI.Visible=False

EndSub

PrivateSubCommand2_Click()

Text1.Visible=True

EndSub

2.

PrivateSubCommand1_CIick()

Text).Text=',"

Text2.Text=""

[Tex(3.Texl=""

EndSub

PrivateSubCommand2_CIick()

IfTextlText=""Orlext2.Text=""OrTexB.Text=""’「hen

MsgBox”成績輸入不會!"

Else

Text4.Text=(Val(TextLText)+Val(Text2.Text)+Val(TextS.Text))Z3

EndIf

SubEnd

PrivateSubCommand3_Click()

UnloadMe

EndSub

3.

PrivateSubCommandl_CIick()

IfTextI.Text=""Then

MsgBox”至少要輸出單價!"

Textl.SetFocus

ExitSub

EndIf

IfText2.Text=""ThenTexl2.Text=1

IfText3.Text=""ThenText3.Text=1

Tcxt4.Tcx(=Text!.Text*Text2.Tcxt*Tcx(3.Tcxt

EndSub

電大天堂【VisualBasic程序設(shè)計】作業(yè)2

?、選擇題

I.B2.C3.D4.B5.D6.A7.B8.C9.A10.D11.C12.B

13.D14.C15.A16.B17.C18.B19.D20.B

二、填空題

I.下拉式菜單彈出式菜單

2.打開另存為顏色字體打印

3.文本框列表框

4.OptionBase1

5.Call語句

6.工程工程屬性通用Form1.Show

7.0

8.Sub過程的過程名不能返回值,而Funciion過程能通過過程名返回值

9.窗體模塊原則模塊類模塊

10.移出內(nèi)存無效狀態(tài)

II.(I)2*Cosa*Sina/(2*a)

(2)Sqr(s*(s-a)*(s-b)*(s-c))

(3)Sin(45*3.14/180)

12.(I)x>=lAndx<12

(2)A+B>=COra-c<=c

(3)a>0Andb>0Or(a<()Andb<0)

13.False

14.ForWhileDo

15.3

三、閱讀下列程序,給出程序運(yùn)行成果。

1.程序運(yùn)行后,單擊窗體,輸出成果為:5050。

2.

3.

4.

3.43

***

*****

**也****

十+十十十十十中十

四、程序設(shè)計題

1.

PrivateSubCommand1_Click()

DimxAsSingle,yAsSingle

x=Val(Tcxt1.Text)

Ifx<100Then

y=x

Else

Ifx<200Then

y=9.5*x

Else

Ifx<300Then

y=0.9*x

Else

Ifx<50()Then

y=0.8*x

Else

y=0.7*x

EndIf

EndIf

EndIf

EndIf

Tcx(2.Tcxt=y

EndSub

2.

PrivateSubForm_Load()

DimxAsInteger

x=100

DoUntilx>200

IfxMod3o0Then

Text1.Text=Text1.Text&Str(x)&Chr(13)&Chr(10)

EndIf

x=x+I

Loop

EndSub

3.

PrivateSubForm_Click()

Print"*";Tab⑼;3.Tab(18);6;Tab(27);9:Tab(36);12

Print

For1=15to18

PrintI;

Forj=3to12Step3

PrintTab(3*j)y*I;

Ncxlj

Print

NextI

Endsub

PrivateSubCommandl_Click()

UnloadMe

EndSub

PrivateSubOptionl_Click()

Text1.Text=10*2

EndSub

PrivateSubOption2_Click()

TextI.Text=10/2

EndSub

PrivateSubOption3_Click()

Text1.Text=10+2

EndSub

PrivateSubOption4_Click()

TextI.Text=10-2

EndSub

5.

PrivateFunctionDay(nAsInteger)

SelectCasen

Case0

Day="星期日”&Chr(13)&"(Sunday)"

Case1

Day="星期一"&Chr(13)&"(Monday)"

Case2

Day="星期二"&Chr(13)&"(Tuesday)"

Case3

Day="星期三"&Chr(13)&"(Wednesday)"

Case4

Day="星期四"&Chr(13)&"(Thursday)"

Case5

Day="星期五"&Chr(13)&"(Friday)"

Case6

Day="星期六"&Chr(13)&"(Saturday)"

EndSelect

EndFuiictiun

PrivateSubTextl_KcyPress(KeyAsciiAsInteger)

DimnAsInteger

n=Val(Textl.Text)

IfKcyAscii=13Then

Ifn>=0Andn<7Then

LabelI.Caption=Dayin)

Else

MsgBox”請輸入0~6之間的整數(shù)!”

EndIf

EndIf

Texll.SelStarl=0

Textl.SelLength=Len(Text1.Text)

EndSub

6.

新建一種工程,在默認(rèn)的窗體Forml上放置?種Picture控件,然后編寫如下代碼。

PrivateSubPicture1_MouscDown(ButtonAsInteger.ShiftAsInteger,XAsSingle,YAsSingle)

IfButton=2Then

MsgBox"YoupressedrightButton"

PictureI.MouscPointcr=vbArrow

EndIf

EndSub

PrivateSubPicture1_MouscMovc(ButtonAsInteger,ShiftAsInteger.XAsSingle,YAsSingle)

Picture1.Mousepointer=vbUoArrow

EndSub

7.

PrivateSubForm_Load()

List1.Additem"李敏"

List1.Additem"張華"

List!.Additem"呂曉怦"

ListLAdditem"趙巍"

Listl.Addltein"袁莉"

List!.Additem"王津"

List1.Additem"何小渴"

Listl.Additem"崔寧"

List!.Additem"陳曦"

List1.Additem"劉偉楠”

EndSub

PrivateSubCommandl_CIick()

IfText1.Text<>""Then

List1.AdditemTexti.Text

Textl.Text=""

Else

MsgBox”請在文本框中輸入信息!"

EndIf

EndSub

PrivateSubCommand2_Click()

Listl.RemoveltemList).Listindex

EndSub

PrivateSubCominand3_Click()

IfCommand3.Caplion="修改,Then

Text1.Text=List).Text

Tcxtl.SetFocus

Command1.Enabled=False

Command?.Enabled=False

Command3.Caption="修改確認(rèn)"

Else

ListI.List(ListI.Listindex)=Text1.Text

CommandI.Enabled=True

Command2.Enabled=True

Textl.Text=""

Cornmand3.Cap(ion="修改"

EndIf

EndSub

PrivateSubListl_Click()

IfList1.Listindex<>-1Then

Command?.Enabled=True

Command?.Enabled=True

EndIf

EndSub

電大天堂【VisualBasic程序設(shè)計】作業(yè)3

一、選擇題

1.B2.B3.B4.A5.C6.C7.D8.C9.C10.C11.B12.B13.A

14.B15.C16.C17.B18.A19.C20.B21.A

二、填空題

1.Output

2.''c:\",''d:\”

3.Kin"d:\tem.tmp”

4.OpcnMSEQNEW.DATTorOutputAs#1

5.Open^SEQOLD.DAT'TorInputAs#2

6.右上

7.False

8.Picture1.Line(5(X),500)-(1000,1(X)0),RGB(255,0,0),BF

9.520

10.ActivcConnection

11.外部數(shù)據(jù)庫、遠(yuǎn)程數(shù)據(jù)庫

12.ADOrsD學(xué)號")

13.增長、刪除、修改(或者Select、Delete、Update)

14.Select*fromTable1Where學(xué)號='001'

15.當(dāng)?shù)財?shù)據(jù)庫、遠(yuǎn)程數(shù)據(jù)庫

三、程序設(shè)計題

1.

PrivateSubForm_Lx)ad()

Drivel.Drive="c:\"

="*.bmp;*.gif;*.jpg"

EndSub

PrivateSubDrivel_change()

Dirl.Path=DriveI.Drive

EndSub

PrivateSubDirl_Change()

=Dirl.Path

EndSub

PrivateSub()

IfRight(,1)='VThen

=Form1.+FormI.

Else

=Farm1.4-"V4-Farm1.

EndIf

Picturel.Picture=LoadPiclure(f5)

Picture1.AutoSize=True

EndSub

2.

PrivateSubFonn_Click()

DimiAsSingle,twopieAsSingle

twopie=8*Atn(1)'求pi

DrawWidth=2’設(shè)置點(diǎn)的大小

Scale(-twopie,1)-(twopie,-1;’設(shè)置坐標(biāo)系

Fori=-twopieTotwopieSteptwopie/360'畫x粕

PSet(i,0)

Nexti'標(biāo)X軸

CurrentY=0

CurrentX=-twopie

Print"-2pi";

CurrentX=-twopie/2

Print"-pi";

CurrentX=twopie/2

Print"pi";

CurrentX=twopie-0.6

Print"2pi";

Print

Fori=-1ToIStep0.01'畫y軸

PSei(0,i)

Nexti

CurrentX=0'標(biāo)y軸刻度

Fori=-1To1Step0.5

CurrentY=i

Printi

Nexti

Fori="twopieTotwopieStep0.1畫余弦曲線

PSct(i,Cos(i))

Nexti

EndSub

3.

PrivateSubCheckl_Click()

IfCheck1.Value=1Then

Line1.BorderWidth=4

Else

Linel.BorderWidih=1

EndIf

EndSub

PrivateSubOptionI_CIick(indexAsInteger)

Line1.BorderWidth=1

Check1.Vaitie=0

SelectCaseIndex

Case1

LineI.BorderStyle=1

Case2

LineI.BorderStyle=2

Case3

Line1.BorderStyle=3

EndSelect

EndSub

PrivateSubOptionl_Click(IndexAsInteger)

SelectCaseIndex

Case0

Shape1.Shape=0

Case1

Shape1.Shape=I

Case2

Shape1.Shape=3

Case3

Shapel.Shape—4

EndSelect

EndSub

PrivateSubOption2_Click(IndexAsInteger)

SelectCaseIndex

Case0

Shapel.FilIStyle=1

CaseI

Shapel.FilIStyle=3

Case2

Shapel.FillStyle=2

Case3

Shapel.FillStyle=6

EndSelect

EndSub

PrivateSubOption3_Click(IndexAsInteger)

Shapel.BorderWidlh=1

SelectCaseIndex

Case0

Shape!.BorderStyle=0

Case1

Shapel.BorderStyle=I

Case2

Shapel.BorderStyle=4

Case3

ShapeI.BorderStyle=2

Case4

Shape1.BorderStyle=3

EndSelect

EndSub

5.(以SQLServer數(shù)據(jù)庫為例)

‘申明對象變量ADOcn,用于創(chuàng)立與數(shù)據(jù)庫的連接

PrivateADOcnAsConnection

PrivateSubReadFromTableO

DimstrtmpAsString

DimADOrsAsNewRecordset

ADOrs.ActiveConnection=ADOcn

ADOrs.Open"select*fromstudentsorderby學(xué)號"

MSFIexGridl.Clear

MSFlexGridl.Rows=0

MSFIexGridl.Cols=3

stitnip—"學(xué)號"+vbTab+"姓名"+vbTab+"專業(yè)"

MSFlexGrid1.Additemsirtmp

DoWhileNotADOrs.EOF

strtmp=ADOrs("學(xué)號")+vbTab+ADOrs("姓名")+vbTab+ADOrs("專業(yè)”)

MSFlexGridI.Addltemstrtmp

ADOrs.MoveNexi

Loop

MSFlexGridl.FixedCols=0

MSFlexGrid1.FixcdRows=1

EndSub

PrivateSubCommandl_Click()

UnloadMe

EndSub

PrivateSubForm_Load()

'定義數(shù)據(jù)庫連接字符串

DimstrDBAsString

'用于連接SQLServer數(shù)據(jù)庫,其中:

'Server為服務(wù)器名稱

,UserID為登錄賬號

,Password為登錄口令

,Database為詳細(xì)的數(shù)據(jù)庫名

strDB="Provider=SQLOLEDB;LSF;UserID=sa;Pass\vord=;Database=學(xué)生"

‘假如還沒有建立與數(shù)據(jù)庫的連接,則用如下代碼創(chuàng)立。

IfADOcnIsNothingThen

SetADOcn=NewConnection

ADOcn.OpcnstrDB'連接SQLServer數(shù)據(jù)庫

EndIf

ReadFroniTable'調(diào)用過程顯示students表中的記錄

EndSub

行成果及代碼請參照主教材和試驗(yàn)教材有關(guān)內(nèi)容。

電大天堂【VisualBasic程序設(shè)計】作業(yè)4

一、選擇題

1.A2.B3.A4.D5.B6.C7.A8.B

二、填空題

1.A.DaiaArrival事件、SendData措施

2.TCP/IP(或者回答TCP協(xié)議)

3.EXE

4.顧客自定義接口、原則接口

5.Locallp措施

6.GetData措施

7.使用服務(wù)程序處在偵聽狀態(tài):

8.Winsock

9.實(shí)時錯誤、邏輯錯誤

10.OnErrorGoto0

三、問答題

1.參照答案

答:Socket是TCP/IP網(wǎng)絡(luò)中最為通用的API(應(yīng)用程序接口),也是在Internet上進(jìn)行應(yīng)用程序開發(fā)最

為通用的API。它為網(wǎng)絡(luò)中的每臺計算機(jī)中提供了一種通信端口,通過這個端口,任何兩分具有Socket接

口應(yīng)用程序就可進(jìn)行信息收發(fā)通信了。程序員只需要對Socket接口進(jìn)行數(shù)據(jù)的讀寫操作,主線不必關(guān)懷兩

臺計算機(jī)間的通信細(xì)爐就可以完畢數(shù)據(jù)的發(fā)送和接受工作?;赟ocket的通信過程如圖1所示。

或用理序A--------------應(yīng)用程序B

圖1

2.參照答案

答:VB中一般可按下列環(huán)節(jié)設(shè)計錯誤處理程序:

第1步:捕捉錯誤,并強(qiáng)制程序跳轉(zhuǎn)

即在錯誤發(fā)生時,捕捉并告知應(yīng)用轉(zhuǎn)向哪段代碼進(jìn)行錯誤處理。VB中一般可采用OnErrorGoTo語句

啟用錯誤捕捉機(jī)制。

第2步:編寫錯誤處理程序,對所有可預(yù)見的錯誤做出反應(yīng)

編寫錯誤處理程序的第一步是添加一種行標(biāo)識符,例如“ChcckError:",以標(biāo)志錯誤處理程序的開始。

行標(biāo)識符的名稱最佳具有良好的可讀性,并且背面必須跟一種冒號。常規(guī)錯誤處理程序一般放在過程的結(jié)

束處,緊跟ExitSub或ExitFunction的行標(biāo)識符之后。這樣在沒有錯誤發(fā)生時,過程就不會執(zhí)行錯誤處理

程序了。

第3步:退出錯誤處理程序

?般狀況下,只有當(dāng)錯誤處理程序位于過程中間位置時,才需要用到專門的錯誤處理程序退出語句。

一般可使用Resume或ResumeNext語句退出錯誤處理程序,Resume語句會繼續(xù)執(zhí)行引起錯誤的那句代瑪,

而ResumeNext語句則會跳過該語句,執(zhí)行引起錯誤代碼的下一句代碼。假如通過錯誤處理程序可以修正

錯誤,則可以使用Resume語句,否則就使用ResumeNexi語句,或者直接使用ExilSub或ExilFunction

語句直接退出過程。

3.參照答案

答:調(diào)試程序是一件復(fù)雜的工程,不僅規(guī)定程序員對系統(tǒng)設(shè)計成果非常熟悉,思緒清晰,更需要不停

地在實(shí)踐中積累經(jīng)驗(yàn)。如下技巧可供參照:

首先,應(yīng)事先做好備份:盡管VB提供了眾多的調(diào)試工具,但要運(yùn)用這些工具杳找、定位程序中的錯

誤并非易事,對于某些規(guī)模較大的程序,雖然是有經(jīng)驗(yàn)的程序員也常常要損失好幾小時甚至幾天的時間來

杳找錯誤。在調(diào)試過程中.很輕易意外地修改、覆蓋或刪除掉必要的代碼部分,因此事先做好備份非常重

要。

另一方面,盡量地分離受懷疑的程序:對于那些代碼規(guī)模較大,窗口眾多的程序而言,假如能將錯誤

的范圍定位于某個窗體或某段代碼,則可以使用分離程序的調(diào)試措施?;舅季w是:試著找到出錯的代碼

行(塊)或窗體,選擇并復(fù)制這些代碼到一種新的工程中,然后運(yùn)行新工程,石?看與否還會出現(xiàn)同樣的

錯誤。這樣就可以盡量地排除程序其他部分的干擾,提高調(diào)試的效率。

第三,縮小搜索范圍:假如有也許的話,可刪除工程中任何第三方控件和自定義控件,或者任何看來

與問題無關(guān)的代碼,逐漸縮小搜索范圍?;蛘卟捎孟喾吹姆铰?,先調(diào)試某一段代碼或窗體,再象搭積木似

的逐

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論