版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
可視化程序設計課程實驗指導書撰寫人:***日期:2014年3月12日實驗一一個簡單VB應用程序的創(chuàng)建和命令按鈕、標簽及文本框的應用日期:2月23日實驗目的與要求:1.掌握VB應用程序的創(chuàng)建步驟;2.了解VB應用程序的組成;3.掌握命令按鈕、標簽和文本框三個基本控件的屬性、事件和方法的使用。實驗內容:設計一程序,當程序運行后,在窗體中顯示"你好!請輸入姓名",焦點定在其下的文本框中,如圖1-1所示界面。圖1-1當用戶輸入姓名并單擊"確定"按鈕后,在窗體的正中間用黑體、三號、紅色顯示"XXX同學,你好!祝你學好VB程序設計",同時窗體上出現(xiàn)兩個命令按鈕"繼續(xù)"和"結束",其中"XXX"是用戶輸入的姓名。例如:當用戶輸入"王五",單擊"確定"按鈕后,出現(xiàn)另如圖1-2所示界面,如果單擊"繼續(xù)"按鈕,則又回到初始運行狀態(tài);單擊"結束"按鈕即結束程序運行.圖1-2實驗器材:微機+windows操作系統(tǒng)+VB6.0實驗步驟:(1)設計應用程序的界面:在窗體上創(chuàng)建三個命令按鈕Command1、Command2和Command3、兩個標簽Label1和Label2、一個文本框Text1。(2)設置對象的屬性對象名稱屬性名稱屬性值Form1Caption實驗1-1Command1Caption確定
Command2Caption繼續(xù)Command3Caption結束Label1Caption你好!請輸入你的姓名Label2Caption空串Text1Text空串(3)編寫事件代碼:PrivateSubForm_Load()Command2.Visible=FalseCommand3.Visible=FalseLabel2.Visible=FalseEndSubPrivateSubCommand1_Click()Command1.Visible=FalseText1.Visible=FalseLabel1.Visible=FalseLabel2.Visible=TrueLabel2.AutoSize=TrueLabel2.FontName="黑體"Label2.ForeColor=vbRedLabel2.Caption=Text1.Text&"同學,你好!祝你學好VB程序設計"Command2.Visible=TrueCommand3.Visible=TrueEndSubPrivateSubCommand2_Click()Command2.Visible=FalseCommand3.Visible=FalseLabel1.Visible=TrueLabel2.Visible=FalseCommand1.Visible=TrueText1.Visible=TrueEndSubPrivateSubCommand3_Click()EndEndSub(4)程序的運行及保存。實驗結果:在文本框中輸入:王五單擊“確定”按鈕后,則顯示如下:實驗小結:(要能回答如下問題)創(chuàng)建VB應用程序的步驟是什么?窗體常用屬性、事件和方法有哪些?命令按鈕、標簽和文本框控件的常用屬性、事件和方法有哪些?實驗二VB順序結構程序設計應用日期:2月23日一、實驗目的與要求:1. 了解VB順序結構程序設計的特點;2. 掌握常用VB運算符及表達式和相關內部函數(shù)的使用。實驗內容:1、編寫程序,界面如圖2-1所示。使得單擊一次按鈕可以產生一個[60,90]之間的隨機數(shù)并顯示在標簽Label1上,再求出該數(shù)的正弦值,將結果寫在標簽Label2上。2、編寫一個華氏溫度F與攝氏溫度C之間轉換的應用程序,界面如圖2-2所示。其中F與C之間的關系為:。實驗器材:微機+windows操作系統(tǒng)+VB6.0實驗步驟:實驗1:(1)設計應用程序的界面:在窗體上創(chuàng)建一個命令按鈕Command1、兩個標簽Label1和Label2。(2)設置對象的屬性對象名稱屬性名稱屬性值Form1Caption隨機數(shù)的正弦值Command1Caption下一個隨機數(shù)Label1Caption
Label2Caption
(3)編寫事件代碼:PrivateSubCommand1_Click()
Dimx!,y!
Randomize
x=Rnd*31+60
y=Sin(x)
Label1.Caption="隨機數(shù)(60-90):"&Str(x)
Label2.Caption="正弦值
:"&Str(y)EndSub(4)程序的運行及保存。實驗2:(1)設計應用程序的界面:在窗體上創(chuàng)建兩個命令按鈕Command1和Command2、兩個標簽Label1和Label2、兩個文本框Text1和Text2。(2)設置對象的屬性對象名稱屬性名稱屬性值Form1Caption溫度轉換Command1Caption>
Command2Caption<
Label1Caption華氏溫度Label2Caption攝氏溫度Text1Text
空串Text2Text
空串(3)編寫事件代碼:PrivateSubCommand1_Click()
Dimf!,c!
f=Val(Text1.Text)
c=(f-32)*5/9
Text2.Text=Str(c)EndSub
PrivateSubCommand2_Click()
Dimf!,c!
c=Val(Text2.Text)
f=9/5*c+32
Text1.Text=Str(f)EndSub(4)程序的運行及保存。實驗結果:已經(jīng)顯示在窗體上。實驗小結:(要能回答如下問題)怎樣產生一個[60,90]之間的隨機數(shù)?怎樣求正弦值?怎樣防止兩次運行程序的隨機數(shù)序列相同?實驗三VB選擇結構程序設計應用日期:2月23日實驗目的與要求:1.了解VB選擇結構程序設計的特點;2.掌握If語句的格式及其使用;3.掌握SelectCase語句的格式及其使用。實驗內容:1、設計一個求解一元二次方程ax2+bx+c=0的根的程序,要求考慮實根、虛根情況。界面如下所示:2、設計"健康稱"程序,具體要求如下:(1)將兩個文本框的文字對齊方式均設置為右對齊,最多接收3個字符;(2)兩個文本框均不接收非數(shù)字字符;(3)單擊"健康狀況"按鈕后,根據(jù)計算公式將相應提示信息通過標簽顯示。計算公式為:標準體重=身高-105體重高于體重的1.1倍為偏胖,提示"偏胖,注意飲食";體重低于標準體重的90%為偏瘦,提示"偏瘦,增加營養(yǎng)";其他為正常,提示"正常,繼續(xù)保持".實驗器材:微機+windows操作系統(tǒng)+VB6.0實驗步驟:實驗1:(1)設計應用程序的界面:在窗體上創(chuàng)建一個命令按鈕Command1、五個標簽Label1、Label2、Label3、Label4和Label5、五個文本框Text1、Text2、Text3、Text4和Text5.(2)設置對象的屬性對象名稱屬性名稱屬性值Form1Caption一元二次方程Command1Caption求解Label1Caption
x2+Label2Caption
x+Label3Caption=0Label4Captionx1Label5Captionx2Text1Text空串Text2Text空串Text3Text空串Text4Text空串Text5Text空串(3)編寫事件代碼:PrivateSubCommand1_Click()Dima!,b!,c!,x1!,x2!,disc!a=Val(Trim(Text1.Text))b=Val(Trim(Text2.Text))c=Val(Trim(Text3.Text))disc=b*b-4*a*cIfdisc>=0Then'實根情況x1=(-b+Sqr(disc))/(2*a)x2=(-b-Sqr(disc))/(2*a)Text4.Text=Str$(x1)Text5.Text=Str$(x2)Else'虛根情況x1=-b/(2*a)x2=Sqr(Abs(disc))/(2*a)Text4.Text=Str$(x1)&"+"&Str$(x2)&"i"Text5.Text=Str$(x1)&"-"&Str$(x2)&"i"EndIfEndSub(4)程序的運行及保存。實驗2:(1)設計應用程序的界面:在窗體上創(chuàng)建一個命令按鈕Command1、五個標簽Label1、Label2、Label3、Label4和Label5、兩個文本框Text1和Text2。(2)設置對象的屬性對象名稱屬性名稱屬性值Form1Caption健康稱Form1BorderStyle3-FixedDialogCommand1Caption健康狀況Label1Caption身高:Label2Caption體重:Label3CaptioncmLabel4CaptionkgLabel5Caption空串Text1Text空串Text2Text空串(3)編寫事件代碼:PrivateSubCommand1_Click()DimbzhAsSinglebzh=Val(Text1.Text)-105IfVal(Text2.Text)>bzh*1.1ThenLabel5.Caption="偏胖,注意飲食"ElseIfVal(Text2.Text)<bzh*0.9ThenLabel5.Caption="偏瘦,增加營養(yǎng)"ElseLabel5.Caption="正常,繼續(xù)保持"EndIfEndSub(4)程序的運行及保存。實驗結果:已經(jīng)顯示在窗體上。實驗小結:(要能回答如下問題)If語句的格式是什么?SelectCase語句的格式是什么?將實驗2改寫成SelectCase語句的格式。怎樣設置窗體的標題欄上不顯示最小化和最大化按鈕?實驗四VB循環(huán)結構程序設計應用日期:2月23日實驗目的與要求:1.了解VB循環(huán)結構程序設計的特點;2.掌握For…Next語句、Do…Loop語句和While…Wend語句的格式及其使用;3.學會使用InputBox函數(shù)和MsgBox函數(shù)進行輸入和輸出。實驗內容:編程實現(xiàn):在窗體上,打印由數(shù)字組成的如下圖所示的金子塔圖案。實驗器材:微機+windows操作系統(tǒng)+VB6.0實驗步驟:(1)設計應用程序的界面:在窗體上創(chuàng)建一個命令按鈕Command1、一個標簽Label1、一個文本框Text1.(2)設置對象的屬性對象名稱屬性名稱屬性值Form1Caption金字塔圖案Command1Caption確定Label1Caption輸入一個整數(shù)n(n大于0、小于10)Text1Text空串(3)編寫事件代碼:PrivateSubCommand1_Click()Dimi%,j%,n%Form1.Clsn=Val(Text1.Text)Ifn<=0Orn>=10ThenMsgBox"輸入錯誤,請重新輸入",vbInformation,"提示信息"Text1=""Text1.SetFocusExitSubEndIfFori=1Ton'外循環(huán)控制打印行數(shù)Ifi<=n/2ThenPrintTab(10-i);'每行起始打印位置Forj=1To2*i-1'內循環(huán)控制打印個數(shù)PrintTrim(Str(i));'打印內容NextjPrintElsek=n-i+1PrintTab(10-k);Forj=1To2*k-1PrintTrim(Str(i));NextjPrintEndIfNextiEndSubPrivateSubText1_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13Then'按回車鍵調用"判斷"命令按鈕CallCommand1_ClickExitSubEndIfSelectCaseChr(KeyAscii)Case"0"To"9",",",Chr(8)CaseElseKeyAscii=0EndSelectEndSub(4)程序的運行及保存。實驗結果:已經(jīng)顯示在窗體上。實驗小結:(要能回答如下問題)怎樣在窗體上打印或輸出表達式的結果?怎樣改寫代碼用InputBox函數(shù)和MsgBox函數(shù)進行輸入和輸出?怎樣禁止在文本框中只能輸入0到9之間的數(shù)字字符?實驗五VB一維數(shù)組和二維數(shù)組的應用日期:2月23日實驗目的與要求:1.掌握一維數(shù)組和二維數(shù)組的定義格式和引用;2.掌握一維數(shù)組和二維數(shù)組的基本操作(輸入、輸出、求最大值、排序等);3.學會使用一維數(shù)組或二維數(shù)組解決相關問題。實驗內容:編寫一個雙色球搖號程序要求:(1)隨機生成6個1到33之間的正整數(shù)和一個1到16之間的正整數(shù)(2)6個紅色球不能相同,且從小到大排好序.實驗器材:微機+windows操作系統(tǒng)+VB6.0實驗步驟:(1)設計應用程序的界面:在窗體上創(chuàng)建一個命令按鈕Command1、兩個標簽Label1和Label2、七個文本框Text1、Text2、Text3、Text4、Text5、Text6和Text7.(2)設置對象的屬性對象名稱屬性名稱屬性值Form1Caption雙色球搖號程序Command1Caption搖號Label1Caption紅色球:(1-33)Label1ForeColorvbredLabel2Caption藍色球:(1-16)Label2ForeColorvbblueText1Text空串Text2Text空串Text3Text空串Text4Text空串Text5Text空串Text6Text空串Text7Text空串(3)編寫事件代碼:PrivateSubCommand1_Click()Dima(5)AsInteger,xAsIntegerDimiAsInteger,jAsIntegerRandomize'生成6個不同的1到33之間的隨機整數(shù)存放于a數(shù)組中a(0)=Int(Rnd*33)+1Fori=1To5L1:x=Int(Rnd*33)+1Forj=0Toi-1Ifx=a(j)ThenGoToL1ExitForEndIfNextja(i)=xNextiFori=0To4'對a數(shù)組中6個元素進行從小到大排序Forj=i+1To5Ifa(i)>a(j)Thent=a(i)a(i)=a(j)a(j)=tEndIfNextjNextiText1.Text=a(0)Text2.Text=a(1)Text3.Text=a(2)Text4.Text=a(3)Text5.Text=a(4)Text6.Text=a(5)Text7.Text=Int(Rnd*16)+1'生成一個1到16之間的隨機整數(shù)EndSub(4)程序的運行及保存。實驗結果:已經(jīng)顯示在窗體上。實驗小結:(要能回答如下問題)1.怎樣隨機產生6個完全不相同的1到33之間的正整數(shù)?2.怎樣對數(shù)組中的6個數(shù)進行從小到大排序?(選擇排序或冒泡排序)3.怎樣使用控件數(shù)組?將上述實驗改寫成用控件數(shù)組來實現(xiàn)。實驗六VB動態(tài)數(shù)組的應用日期:2月23日實驗目的與要求:1.掌握動態(tài)數(shù)組的定義格式和引用;2.掌握與數(shù)組操作相關的幾個函數(shù)的應用;3.學會使用動態(tài)數(shù)組設計相關應用程序。實驗內容:輸入一系列英文單詞,按升序排列輸出。要求:(1)在文本框text1中每輸入一個英文單詞,按回車鍵后即把該單詞存放到數(shù)組中,并輸出在排序前的文本框text2中;(2)單擊“排序”命令按鈕,字符數(shù)組升序排序,并在排序后的文本框text3中輸出。(3)程序運行后窗體界面如下所示:實驗器材:微機+windows操作系統(tǒng)+VB6.0實驗步驟:(1)設計應用程序的界面:在窗體上創(chuàng)建一個命令按鈕Command1、三個標簽Label1、Label2和Label3、三個文本框Text1、Text2和Text3。(2)設置對象的屬性對象名稱屬性名稱屬性值Form1Caption單詞排序Command1Caption排序Label1Caption輸入單詞:Label2Caption排序前:Label3Caption排序后:Text1Text空串Text2Text空串Text2MultiLineTrueText2ScrollBars2-VerticalText3Text空串Text3MultiLineTrueText3ScrollBars2-Vertical(3)編寫事件代碼:Dima()AsString,n%PrivateSubCommand1_Click()Fori=1Ton-1Forj=i+1TonIfa(i)>a(j)Thent=a(i)a(i)=a(j)a(j)=tEndIfNextjNextiFori=1TonText3.Text=Text3.Text&a(i)&vbCrLfNextiEndSubPrivateSubText1_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13Thenn=n+1ReDimPreservea(n)'動態(tài)存儲數(shù)組a增加1個元素,前n-1個元素值保持不變。a(n)=Text1.TextText2.Text=Text2.Text+Text1.Text&vbCrLfText1.Text=""EndIfEndSub(4)程序的運行及保存。實驗結果:已經(jīng)顯示在窗體上。實驗小結:(要能回答如下問題)1.怎樣定義動態(tài)數(shù)組?2.定義動態(tài)數(shù)組時,Preserve的作用是什么?3.怎樣對各個字符串進行排序?實驗七VB過程與函數(shù)的應用舉例日期:2月23日實驗目的與要求:1.掌握Sub過程和函數(shù)過程的定義格式及調用;了解過程之間的參數(shù)傳遞(傳址和傳值);3.掌握過程與變量的作用域。實驗內容:自定義一Sub過程:實現(xiàn)把一個給定數(shù)插入到有序數(shù)列中,插入后數(shù)列仍然有序。編程:針對窗體的單擊事件中編寫程序代碼,驗證上述過程的正確性。實驗器材:微機+windows操作系統(tǒng)+VB6.0實驗步驟:(1)設計應用程序的界面:新建一新工程即可,無需添加任何控件。(2)編程分析:設n個有序數(shù)(從小到大)存放在數(shù)組a(1)-a(n)中,要插入的數(shù)為x。首先,確定x插在數(shù)組中的位置p,假設要在一個具有n個升序排列元素的一維數(shù)組中插入一個新的元素k,算法如下:①從第1個元素開始逐個與k比較,一旦發(fā)現(xiàn)第p個元素大于x,則確定插入的位置為p,如果所有元素均小于x,則確定插入的位置為n+1。②重新定義數(shù)組大小,從第n個元素到第p個元素逐一向后移動一個位置。③將x賦值給第p個元素,完成插入操作。(3)編寫自定義過程和窗體的單擊事件代碼:(4)程序的運行及保存。OptionBase1PrivateSubInstert(a(),xAsSingle)Dimp%,n%,i%n=UBound(a)ReDimPreservea(n+1)'讓數(shù)組長度增加1,以便存放插入的數(shù)p=1DoWhilex>a(p)Andp<=n'確定x應插入的位置p=p+1LoopFori=nTopStep-1a(i+1)=a(i)Nextia(p)=xEndSubPrivateSubForm_Click()DimiAsInteger,x()DimyAsSingle,kAsIntegerx=Array(1,4,8,10,20,30,40,46,50,55,60,64)Fori=LBound(x)ToUBound(x)'打印輸出插入前的數(shù)據(jù)Printx(i);NextiPrinty=Val(InputBox("輸入要插入的數(shù)"))CallInstert(x,y)'調用插入子過程實現(xiàn)插入操作Fori=LBound(x)ToUBound(x)'打印輸出插入后的數(shù)據(jù)Printx(i);NextiEndSub實驗結果:原序列為:1,4,8,10,20,30,40,46,50,55,60,64插入為:7則輸出為:1,4,7,8,10,20,30,40,46,50,55,60,64實驗小結:(要能回答如下問題)1.若n個有序數(shù)(從大到?。┐娣旁跀?shù)組中,如何改寫Insert()過程?2.如何改寫Insert()過程,使其既適合數(shù)組由小到大排序又適合由大到小排序的情況?3.如果調用時,數(shù)組x無序,則程序運行后出現(xiàn)什么情況?實驗八VB常用控件的應用(一)日期:2月23日實驗目的與要求:1.掌握單選按鈕、復選框、框架及組合框、列表框等控件的屬性、事件和方法的使用;2.學會使用各種常用控件設計相關VB實用應用程序。實驗內容:設計一個個人資料輸入窗口,使用單選按鈕選擇“性別”,組合框選擇“民族”和“職業(yè)”,檢查框選擇“愛好”,當單擊“確定”按鈕,列表框列出個人資料信息,程序運行界面如下:實驗器材:微機+windows操作系統(tǒng)+VB6.0實驗步驟:(1)設計應用程序的界面:在窗體上創(chuàng)建三個命令按鈕Command1、Command2和Command3、五個標簽Label1、Label2、Label3、Label4和Label5、兩個文本框Text1和Text2、兩個組合框Combo1和Combo2、一個列表框List1、兩個單選按鈕Option1和Option2、兩個框架Frame1和Frame2、四個檢查框Check1、Check2、Check3和Check4。(2)設置對象的屬性對象名稱屬性名稱屬性值Form1Caption個人資料Command1Caption確定Command2Caption重選Command2Caption上交Label1Caption姓名:Label2Caption民族:Label3Caption個人資料:Label4Caption年齡:Label5Caption職業(yè):Text1Text空串Text2Text空串Combo1Text漢族Combo2Text學生List1List空串Option1Caption男Option2Caption女Frame1Caption性別Frame2Caption愛好Check1Caption上網(wǎng)Check2Caption籃球Check3Caption音樂Check4Caption交友(3)編寫事件代碼:PrivateSubCommand1_Click()List1.AddItemText1IfOption1ThenList1.AddItem"男"ElseList1.AddItem"女"EndIfList1.AddItemText2List1.AddItemCombo1List1.AddItemCombo2List1.AddItem"愛好:"IfCheck1ThenList1.AddItem"上網(wǎng)"EndIfIfCheck2ThenList1.AddItem"籃球"EndIfIfCheck3ThenList1.AddItem"音樂"EndIfIfCheck4ThenList1.AddItem"交友"EndIfEndSubPrivateSubCommand2_Click()List1.ClearEndSubPrivateSubCommand3_Click()EndEndSub(4)程序的運行及保存。實驗結果:已經(jīng)顯示在窗體上。實驗小結:(要能回答如下問題)1.單選按鈕和檢查框控件常用屬性和事件有哪些?2.組合框和列表框控件的常用屬性和事件、方法有哪些?它們有什么不同?3.框架控件的作用是什么?實驗九VB常用控件的應用(二)日期:2月23日實驗目的與要求:1.掌握滾動條、時鐘控件的屬性、事件和方法的使用;2.學會使用鍵盤和鼠標事件的使用;3.學會使用各種控件設計相關VB實用應用程序。實驗內容:設計一個字號設置程序,要求如下:在文本框中輸入1-100范圍內的數(shù)值后,滾動條的滾動框會滾動到相應位置,同時標簽的字號也會相應改變;當滾動條的滾動框的位置改變后,文本框中也會顯示出相應的數(shù)值,標簽的字號也會相應改變。設計一個倒計時程序,要求如下:程序運行后,通過單選按鈕選擇計時時間,單擊“計時開始”按鈕進行倒計時;在標簽中顯示計時情況,計時結束后在標簽中顯示“時間到”;單選按鈕和“計時開始”按鈕在計時開始后被禁用,直到計時結束后才可以使用。實驗器材:微機+windows操作系統(tǒng)+VB6.0實驗步驟:實驗1:(1)設計應用程序的界面:在窗體上創(chuàng)建一個框架Frame1、一個標簽Label1、一個水平滾動條hsbFontSize、一個文本框Text1.(2)設置對象的屬性對象名稱屬性名稱屬性值Form1Caption字號設置Label1Caption學Frame1Caption示例文字hsbFontSizeNameText1Text空串(3)編寫事件代碼:PrivateSubForm_Load()'窗體初始化過程lblDisp.FontSize=10hsbFontSize.Min=1hsbFontSize.Max=100hsbFontSize.SmallChange=1hsbFontSize.LargeChange=5hsbFontSize.Value=10txtFontSize.Text="10"EndSubPrivateSubhsbFontSize_Change()'滾動條的Change事件過程lblDisp.FontSize=hsbFontSize.ValuetxtFontSize.Text=Str(hsbFontSize.Value)EndSubPrivateSubtxtFontSize_Change()'文本框的Change事件過程'判斷數(shù)據(jù)有效性IfIsNumeric(txtFontSize.Text)AndVal(txtFontSize.Text)>=hsbFontSize.MinAndVal(txtFontSize.Text)<=hsbFontSize.MaxThen'lblDisp.FontSize=hsbFontSize.ValuehsbFontSize.Value=Val(txtFontSize.Text)ElsetxtFontSize.Text="無效數(shù)據(jù)"EndIfEndSub(4)程序的運行及保存。實驗2:(1)設計應用程序的界面:在窗體上創(chuàng)建一個框架Frame1、三個單選按鈕Option1、Option2、Option3、一個標簽Label1、一個命令按鈕Command1、一個時鐘控件Timer1.(2)設置對象的屬性對象名稱屬性名稱屬性值Form1Caption倒計時Label1Caption1分0秒Label1BorderStyle1Label1Alignment2Frame1Caption選擇時間Option1Caption1分鐘Option2Caption5分鐘Option3Caption10分鐘Timer1Interval1000Timer1EnabledFalse(3)編寫事件代碼:DimpretimeAsIntegerDimmmAsInteger,ssAsIntegerPrivateSubCommand1_Click()'開始倒計時Command1.Enabled=FalseFrame1.Enabled=FalseTimer1.Enabled=TrueEndSubPrivateSubForm_Load()Timer1.Enabled=FalseOption1(1).Value=Truepretime=300EndSubPrivateSubOption1_Click(IndexAsInteger)SelectCaseIndexCase0pretime=60Case1pretime=300Case2pretime=600EndSelectmm=pretime\60ss=pretimeMod60Label1.Caption=Str(mm)&"分"&Str(ss)&"秒"EndSubPrivateSubTimer1_Timer()mm=pretime\60'計算分ss=pretimeMod60'計算秒Label1.Caption=Str(mm)&"分"&Str(ss)&"秒"Ifmm=0Andss=0ThenTimer1.Enabled=FalseEndIfpretime=pretime-1EndSub(4)程序的運行及保存。實驗結果:實驗1運行結果為:實驗2運行結果為:實驗小結:(要能回答如下問題)1.針對實驗1,程序運行時,哪些操作能觸發(fā)滾動條的Change事件?2.針對實驗1,如何使程序最終通過文本框的Change事件過程來改變標簽字號?3.針對實驗2,同樣是有規(guī)律地重復執(zhí)行特定的操作,循環(huán)結構與Timer事件過程有什么區(qū)別?4.針對實驗2,為什么要將pretime、mm、ss定義為窗體級變量?實驗十VB繪圖實例應用日期:2月23日實驗目的與要求:1.掌握三個重要的圖形控件的使用;2.掌握VB繪圖的常用方法;3.學會使用VB繪圖的方法繪制簡單的圖形。實驗內容:設置一個模擬行星圍繞太陽運動的程序。編程分析:行星運動的橢圓方程為:x=x0+rx*cos(alfa),y=y0+ry*sin(alfa).其中,x0,y0為橢圓圓心坐標,rx為水平半徑,ry為垂直半徑,alfa為圓心角。實驗器材:微機+windows操作系統(tǒng)+VB6.0實驗步驟:(1)設計應用程序的界面:在窗體上創(chuàng)建兩個形狀控件Shape1和Shape2、一個時鐘控件Timer1.(2)設置對象的屬性對象名稱屬性名稱屬性值Form1Caption行星運行模擬Shape1Shape3Shape2Shape3Timer1Interval200Timer1EnabledTrue(3)編寫事件代碼:DimrxAsSingle,ryAsSingle'定義窗體級變量DimalfaAsSinglePrivateSubForm_Load()'窗體最大化充滿屏幕,窗體的寬度、高度與屏幕同寬、同高Form1.Left=0Form1.Top=0Form1.Width=Screen.WidthForm1.Height=Screen.Height'讓Shape1位于窗體中央Shape1.Left=Form1.ScaleWidth/2-Shape1.Width/2Shape1.Top=Form1.ScaleHeight/2-Shape1.Height/2rx=Form1.ScaleWidth/2-Shape2.Width/2'計算橢圓軌道的水平半徑ry=Form1.ScaleHeight/2-Shape2.Height/2'計算橢圓軌道的垂直半徑'畫行星的運行軌跡Circle(Form1.ScaleWidth/2,Form1.ScaleHeight/2),rx,,,,ry/rx'將shape2的起始位置定位在水平軸的0度位置上Shape2.Left=Form1.ScaleWidth/2+rx-Shape2.Width/2Shape2.Top=Form1.ScaleHeight/2-Shape2.Height/2EndSubPrivateSubTimer1_Timer()alfa=alfa+0.05x=Form1.ScaleWidth/2+rx*Cos(alfa)'橢圓的x坐標y=Form1.ScaleHeight/2+ry*Sin(alfa)'橢圓的y坐標Shape2.Left=x-Shape2.Width/2Shape2.Top=y-Shape2.Height/2EndSub(4)程序的運行及保存。五、實驗結果:程序運行界面如下:六、實驗小結:(要能回答如下問題)1.為什么要將rx、ry定義為模塊級變量?2.如果在窗體上添加“啟動”和“停止”兩個命令按鈕,來控制小球運動,如何修改程序?3.小球運動軌跡與設計時小球的初始位置是否有關?實驗十一一個簡易的文本編輯器的開發(fā)日期:2月23日實驗目的與要求:1.掌握常用對話框控件的使用;2.掌握菜單的設計與應用;3.掌握狀態(tài)欄的設計與應用;4.學會使用以上技術進行簡易的文本編輯器的設計。實驗內容:設計一個類似于Windows“寫字板”的簡易的文本編輯器程序。設計界面如下:實驗器材:微機+windows操作系統(tǒng)+VB6.0實驗步驟:(1)界面設計(a)多文檔窗體主要控件:commonDialog、ImageList。菜單項屬性設置:標準工具欄設置:常用工具欄設置:狀態(tài)欄設置:(b)查找窗體(c)文檔子窗體(2)代碼清單如下:'多文檔窗口程序代碼:'建立通用過程,創(chuàng)建并打開一個文檔窗口PrivateSubShowDoc(strCapAsString)DimfrmDAsNewFrmDoc'創(chuàng)建一個文檔窗口frmdoc的實例frmDfrmD.Caption=strCapfrmD.ShowEndSub'建立通用過程,創(chuàng)建并打開一個新的文檔窗口PrivateSubShowNewDoc()DimfrmCapAsStringDocCount=DocCount+1frmCap="文檔"&str(DocCount)ShowDocfrmCapIfDocCount=1ThenMDIForm1.fmnuenableTrue'窗體總數(shù)為無時,調用MDIForm1中的fmnuenable過程EndSubPrivateSubMDIForm_Activate()DimYnAsBooleanYn=FalseIfClipboard.GetFormat(vbCFText)ThenYn=TrueIfClipboard.GetFormat(vbCFBitmap)ThenYn=TrueIfClipboard.GetFormat(vbCFDIB)ThenYn=TrueIfClipboard.GetFormat(vbCFRTF)ThenYn=TrueMDIForm1.Toolbar1.Buttons(6).Enabled=YnEndSubPrivateSubMnufont_Click()'實現(xiàn)設置字體功能CDg1.CancelError=True'通用對話框取消時出錯OnErrorGoToErr'錯誤處理當有錯時程序能繼續(xù)運行下去DimiAsByteWithMDIForm1.ActiveForm'把當前選定的文本格式賦給字體對話框CDg1.Flags=cdlCFBothOrcdlCFEffectsIf.DocBox.SelBold<>NullThenCDg1.FontBold=.DocBox.SelBoldIf.DocBox.SelItalic<>NullThenCDg1.FontItalic=.DocBox.SelItalicIf.DocBox.SelStrikeThru<>NullThenCDg1.FontStrikethru=.DocBox.SelStrikeThruIf.DocBox.SelUnderline<>NullThenCDg1.FontUnderline=.DocBox.SelUnderlineIf.DocBox.SelFontSize<>NullThenCDg1.FontSize=.DocBox.SelFontSizeIf.DocBox.SelFontName<>NullThenCDg1.FontName=.DocBox.SelFontNameIf.DocBox.SelColor<>NullThenCDg1.color=.DocBox.SelColorCDg1.ShowFont'打開字體對話框'把格式字體對話框里的字體格式賦給當前選定的文本.DocBox.SelBold=CDg1.FontBold.DocBox.SelItalic=CDg1.FontItalic.DocBox.SelStrikeThru=CDg1.FontStrikethru.DocBox.SelUnderline=CDg1.FontUnderline.DocBox.SelFontName=CDg1.FontName.DocBox.SelFontSize=CDg1.FontSize.DocBox.SelColor=CDg1.colorEndWithErr:EndSubPrivateSubCombo1_Click()'實現(xiàn)字體設置功能'把組合框選中的字體賦給選定的文本MDIForm1.ActiveForm.DocBox.SelFontName=Combo1.TextEndSubPrivateSubCombo1_KeyPress(KeyAsciiAsInteger)'實現(xiàn)字體設置功能OnErrorGoToErr'當字體不存在時,轉到Err語名IfKeyAscii=13ThenMDIForm1.ActiveForm.DocBox.SelFontName=Combo1.TextExitSubErr:MsgBox"對不起,此字號不存在",vbOKOnly,"非法操作!"Combo1.Text=""EndSubPrivateSubCombo2_Click()'實現(xiàn)字號設置功能'把組合框選中的字體大小賦給選定的文本MDIForm1.ActiveForm.DocBox.SelFontSize=Combo2.TextEndSubPrivateSubCombo2_KeyPress(KeyAsciiAsInteger)OnErrorGoToErr'當字號不存在時,轉到Err語名IfKeyAscii=13ThenMDIForm1.ActiveForm.DocBox.SelFontSize=Combo2.TextExitSubErr:MsgBox"對不起,此字號不存在",vbOKOnly,"非法操作!"Combo2.Text=""EndSubPrivateSubMnucolor_Click()'設置顏色DimcolorAsLongCDg1.CancelError=True'通用對話框取消時出錯OnErrorGoToErr'出錯時跳轉到Err語句CDg1.ShowColor'打開顏色對話框color=CDg1.colorMDIForm1.ActiveForm.DocBox.SelColor=colorErr:EndSubPrivateSubMDIForm_Load()DimiAsInteger'將字體名賦值給“字體”列表框Fori=0ToScreen.FontCount-1Combo1.AddItemScreen.Fonts(i),iNextiDocCount=0ShowNewDocMDIForm1.Toolbar1.Buttons(4).Enabled=FalseMDIForm1.Toolbar1.Buttons(5).Enabled=FalseMDIForm1.Toolbar1.Buttons(6).Enabled=FalseEndSubPrivateSubMDIForm_Unload(CancelAsInteger)UnloadMeEndEndSubPrivateSubmnunew_Click()'新建一個文檔窗口ShowNewDocEndSubPrivateSubmnuopen_Click()'打開文件DimFNameAsStringCDg1.FileName="*.RTF"CDg1.Filter="RTF文件(*.RTF)|*.RTF|文本文件(*.txt)|*.txt|所有文件(*.*)|*.*"CDg1.CancelError=True'通用對話框取消時出錯OnErrorGoToErr'出錯時跳轉到Err語句CDg1.ShowOpen'打開撕開對話框FName=CDg1.FileNameShowNewDoc'新建一個窗體MDIForm1.ActiveForm.DocBox.LoadFile(FName)'打開文件到活動窗體的文本框里MDIForm1.ActiveForm.Caption=FNameMDIForm1.ActiveForm.Boolmnusave=TrueMDIForm1.ActiveForm.Boolsave=TrueExitSubErr:ExitSubEndSub(4)程序的運行及保存。實驗結果:程序運行界面如下:實驗十二一個簡易的學生成績管理系統(tǒng)的創(chuàng)建日期:2月23日實驗目的與要求:1.掌握Data控件和ADOData控件的基本用法;了解在VisualBasic中使用SQL的基本方式;3.綜合運用以前所學知識設計一個簡易的學生成績管理系統(tǒng)。二、實驗內容:設計一個簡易的學生成績管理系統(tǒng)。設計界面如下:實驗器材:微機+windows操作系統(tǒng)+VB6.0實驗步驟:1、數(shù)據(jù)庫應用系統(tǒng)的開發(fā)應該遵循軟件工程的開發(fā)步驟:分析、設計編碼和測試。開發(fā)的第一步是需求分析,一方面分析整個系統(tǒng)需要哪些數(shù)據(jù),另一方面還要分析系統(tǒng)應用具備哪些功能,這一步直接決定將來設計出的數(shù)據(jù)庫以及在此基礎上開發(fā)的應用程序的適用性。它需要獲得學號、姓名、性別和相關課程的成績等數(shù)據(jù),應具備瀏覽、輸入、修改、刪除、查詢、統(tǒng)計等功能。2、數(shù)據(jù)庫如下:學生(學號、姓名、新別)課程(課程號、課程名、學時、學分)成績(學號、課程號、成績)3、設計實現(xiàn)如下:(1)主窗體代碼:'成功登錄系統(tǒng)前禁用編輯命令和查詢命令PrivateSubMDIForm_Load()mnuEdit.Enabled=FalsemnuQuery.Enabled=FalseEndSub'打開編輯窗體PrivateSubmnuEdit_Click()frmEdit.ShowfrmEdit.WindowState=vbMaximizedEndSub'打開登錄窗體PrivateSubmnuLogin_Click()frmLogin.ShowfrmLogin.WindowState=vbMaximizedEndSub'退出系統(tǒng)PrivateSubmnuLogout_Click()EndEndSub'打開查詢窗體PrivateSubmnuQuery_Click()frmQuery.ShowfrmQuery.WindowState=vbMaximizedEndSub
(2)登錄窗體代碼:OptionExplicitConstUSERNAMEAsString="admin"'定義窗體級常量表示用戶名ConstPASSWORDAsString="welcome"'定義窗體級常量表示密碼PrivateSubcmdCancel_Click()Me.HideEndSubPrivateSubcmdOK_Click()'檢查正確的用戶名和密碼IftxtUserName=USERNAMEAndtxtPassword=PASSWORDThenMe.HideMDIfrmMain.mnuEdit.Enabled=TrueMDIfrmMain.mnuQuery.Enabled=TrueElseMsgBox"無效的密碼,請重試!",,"登錄"txtPassword.SetFocusSendKeys"{Home}+{End}"EndIfEndSub(3)編輯窗體代碼:'"添加"按鈕的單擊事件過程PrivateSubcmdAdd_Click()'根據(jù)當前按鈕的標題進行不同的操作SelectCasecmdAdd.CaptionCase"添加"'向當前選項卡所對應表中添加記錄SelectCaseSSTab1.TabCase0datStudent.Recordset.AddNewCase1datCourse.Recordset.AddNewCase2datScore.Recordset.AddNewEndSelect'在添加操作完成前禁止進行其他操作SSTab1.TabEnabled(0)=FalseSSTab1.TabEnabled(1)=FalseSSTab1.TabEnabled(2)=FalsecmdAdd.Caption="確定"cmdEdit.Enabled=FalsecmdDel.Enabled=FalsecmdFirst.Enabled=FalsecmdPrev.Enabled=FalsecmdNext.Enabled=FalsecmdLast.Enabled=FalseCase"確定"SelectCaseSSTab1.TabCase0datStudent.UpdateRecordCase1datCourse.UpdateRecordCase2datScore.UpdateRecordEndSelectSSTab1.TabEnabled(0)=TrueSSTab1.TabEnabled(1)=TrueSSTab1.TabEnabled(2)=TruecmdAdd.Caption="添加"cmdEdit.Enabled=TruecmdDel.Enabled=TruecmdFirst.Enabled=TruecmdPrev.Enabled=TruecmdNext.Enabled=TruecmdLast.Enabled=TrueEndSelectEndSub'"刪除"按鈕的單擊事件過程PrivateSubcmdDel_Click()DimiAsIntegeri=MsgBox("確定要刪除此記錄?",vbYesNo+vbExclamation+vbDefaultButton1,"編輯")Ifi=vbYesThen'刪除當前選項卡所對應表中的記錄SelectCaseSSTab1.TabCase0datStudent.Recordset.DeletedatStudent.RefreshCase1datCourse.Recordset.DeletedatCourse.RefreshCase2datScore.Recordset.DeletedatScore.RefreshEndSelectEndIfEndSub'"修改"按鈕的單擊事件過程PrivateSubcmdEdit_Click()'根據(jù)當前按鈕的標題進行不同的操作SelectCasecmdEdit.CaptionCase"修改"'修改當前選項卡所對應表中的記錄SelectCaseSSTab1.TabCase0datStudent.Recordset.EditCase1datCourse.Recordset.EditCase2datScore.Recordset.EditEndSelect'在修改操作完成前禁止進行其他操作SSTab1.TabEnabled(0)=FalseSSTab1.TabEnabled(1)=FalseSSTab1.TabEnabled(2)=FalsecmdEdit.Caption="確定"cmdAdd.Enabled=FalsecmdDel.Enabled=FalsecmdFirst.Enabled=FalsecmdPrev.Enabled=FalsecmdNext.Enabled=FalsecmdLast.Enabled=FalseCase"確定"SelectCaseSSTab1.TabCase0datStudent.UpdateRecordCase1datCourse.UpdateRecordCase2datScore.UpdateRecordEndSelectSSTab1.TabEnabled(0)=TrueSSTab1.TabEnabled(1)=TrueSSTab1.TabEnabled(2)=TruecmdEdit.Caption="修改"cmdAdd.Enabled=TruecmdDel.Enabled=TruecmdFirst.Enabled=TruecmdPrev.Enabled=TruecmdNext.Enabled=TruecmdLast.Enabled=TrueEndSelectEndSub'"首記錄"按鈕的單擊事件過程PrivateSubcmdFirst_Click()SelectCaseSSTab1.TabCase0datStudent.Recordset.MoveFirstCase1datCourse.Recordset.MoveFirstCase2datScore.Recordset.MoveFirstEndSelectcmdFirst.Enabled=FalsecmdPrev.Enabled=FalsecmdNext.Enabled=TruecmdLast.Enabled=TrueEndSub'"尾記錄"按鈕的單擊事件過程PrivateSubcmdLast_Click()SelectCaseSSTab1.TabCase0datStudent.Recordset.MoveLastCase1datCourse.Recordset.MoveLastCase2datScore.Recordset.MoveLastEndSelectcmdFirst.Enabled=TruecmdPrev.Enabled=TruecmdNext.Enabled=FalsecmdLast.Enabled=FalseEndSub'"下一條"按鈕的單擊事件過程PrivateSubcmdNext_Click()SelectCaseSSTab1.TabCase0datStudent.Recordset.MoveNextIfdatStudent.Recordset.EOFThendatStudent.Recordset.MoveLastcmdFirst.Enabled=TruecmdPrev.Enabled=TruecmdNext.Enabled=FalsecmdLast.Enabled=FalseEndIfCase1datCourse.Recordset.MoveNextIfdatCourse.Recordset.EOFThendatCourse.Recordset.MoveLastcmdFirst.Enabled=TruecmdPrev.Enabled=TruecmdNext.Enabled=FalsecmdLast.Enabled=FalseEndIfCase2datScore.Recordset.MoveNextIfdatScore.Recordset.EOFThendatScore.Recordset.MoveLastcmdFirst.Enabled=TruecmdPrev.Enabled=TruecmdNext.Enabled=False
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 消化外科腹腔鏡手術護理方案
- 瑜伽纖細身形課件
- 氣候變化與人類活動影響研究
- 重癥醫(yī)學科創(chuàng)傷性氣胸急救教程
- 口腔科種植牙護理管理培訓教程
- 幼兒心理健康與教育課件
- 移動籃球框課件設計指南
- 眼科玻璃體出血手術后眼部護理指南
- 【物理】特殊方法測量物質的密度課件 2025-2026學年人教版物理八年級上學期
- 檢驗科常規(guī)檢驗操作規(guī)范手冊
- 谷歌員工關系管理案例
- 班級互動小游戲-課件共30張課件-小學生主題班會版
- 物流企業(yè)倉儲安全操作規(guī)程與培訓教材
- 黃體酮破裂課件
- 中學學生教育懲戒規(guī)則實施方案(2025修訂版)
- ISO 9001(DIS)-2026與ISO9001-2015英文標準對照版(編輯-2025年9月)
- 結算審計踏勘現(xiàn)場實施方案詳細版
- 手機玻璃工廠年終總結報告
- 全國大學生職業(yè)規(guī)劃大賽《信息與計算科學》專業(yè)生涯發(fā)展展示
- 急診科護士年終總結匯報
- 瓦斯發(fā)電安全規(guī)程培訓課件
評論
0/150
提交評論