實驗報告標準答案_第1頁
實驗報告標準答案_第2頁
實驗報告標準答案_第3頁
實驗報告標準答案_第4頁
實驗報告標準答案_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、課程名稱: 實驗報告1 成績評定: 實驗項目名稱: 指導教師 實驗項目編號: 實驗項目類型: 實驗地點: 學生姓名: 學號: 學院: 系 專業(yè): 實驗時間 年 月 日 午 月 日 午一、 實驗目的1. 熟悉VB編程環(huán)境,能夠建立、編譯和運行VB程序。2. 掌握窗體、標簽、文本框、命令按鈕、圖形框的作用、常用屬性、事件和方法。3. 理解并掌握賦值語句、掌握表達式的書寫規(guī)則。4. 掌握使用Inputbox函數(shù)和MsgBox消息函數(shù)進行輸入輸出。5. 熟悉VB的數(shù)據(jù)類型和類型轉換。二、 實驗內(nèi)容(一) 字幕滾動1. 設計如下圖所示的界面實現(xiàn)字幕從上到下進行滾動,“歡迎使用VB”是一個字幕標簽,兩個命

2、令按鈕分別實現(xiàn)自動滾動和手動滾動。a) 在窗體水平居中的地方放置一個標簽。b) 當字幕向下移出窗體時,重新從窗體頂端開始繼續(xù)往下移動。c) 單擊“手動”按鈕一次字幕將向下移動一下,單擊“自動”按鈕字幕將連續(xù)移動,具體移動的速度或幅度、窗體和按鈕上的圖片由自己設定。d) 以EX1-1分別保存窗體和工程。2. 實驗要求a) 對于標簽應對其什么屬性設置什么值才能夠使窗體的背景不被遮擋?Backstyle-1b) 使標簽在窗體中水平居中需要設置什么屬性,如何設置?設置的依據(jù)是什么? label1.Left -form1.width/2-label1.width/2c) 要想在命令按鈕上顯示圖片,需要設

3、置哪些屬性,如何設置? Style -1 d) 寫出標簽從上往下移動的代碼,注意,當標簽移出窗體后要從窗體上頂端開始繼續(xù)往下。 Label1.Move Label1.Left, Label1.Top + 50 If Label1.Top Form1.Height Then Label1.Top = 0e) 要使Timer控件啟用,必須設置哪兩個屬性,屬性值設置為多少?Timer1.Interval=100Timer1.enabled=truef) 單擊“手動”按鈕時,如何使Timer控件停用?需要在什么地方編寫代碼?請寫出代碼?Timer1.Interval=0 或 Timer1.enable

4、d=false(二) 打開教材實驗材料中工程文件EXA05.vbp,完成下面的任務。1觀察窗體上分別有哪些類的控件,根據(jù)觀察結果制作下表,表格行數(shù)視情況而定。以EX1-2保存窗體和工程??丶惪丶Q2啟動程序,右圖為啟動之后的初始界面?;卮鹣旅娴膯栴}: List1中為什么會被添加了兩項內(nèi)容?啟動后,窗體從無到有,大小發(fā)生改變form_resize焦點放置在文本框內(nèi),觸發(fā) text1_gotfocus 單擊按鈕Command1,List1中又被添加了1項什么內(nèi)容?單擊了命令按鈕Command1 拖拽窗體的右下角改變窗體的大小,List1中又被添加了什么內(nèi)容?窗體Form1的大小改變3關閉程序,

5、寫出你對該程序功能的理解。通過在各個控件的一些事件里編寫代碼,當操作或系統(tǒng)觸發(fā)事件,可將所有的操作記錄下來。(三) BMI計算。1. 編寫一個計算人的身體質(zhì)量指數(shù)BMI的程序,計算公式為BMI等于體重(千克)除以身高(米)的平方,計算結果按四舍五入保留2位小數(shù)。運行時的界面如下圖所示。a) 設計如圖所示界面,兩個文本框用于輸入體重和身高。b) 點擊“計算”按鈕或者在文本框中輸入回車時,計算BMI的值。c) 當計算完成時將當前時間的BMI值打印在圖形框,如果輸入錯誤使用MsgBox彈出對話框提示輸入錯誤。d) 窗體大小設置為固定大小,窗體的標題顯示系統(tǒng)當前的時間,使用計時器每隔1秒鐘更新Form

6、的Caption。以EX1-3保存窗體和工程。2. 實驗要求a) 該程序的計算用到了哪些變量,作用分別是什么?需要在什么地方定義這些變量,請寫出這些變量的定義,并注明變量的作用。窗體通用程序段或”計算”按鈕的click事件內(nèi)聲明 ,兩個變量用于保存文本框內(nèi)輸入的數(shù)值。一個變量用于保存bmi b) 進行BMI計算的表達式是什么,使用自己定義的變量來表示。a = Val(Text1.Text) b = Val(Text2.Text) bmi = a / (b / 100) 2)c) BMI計算的結果保留2位小數(shù)打印在PictureBox圖形框中,請寫出具體的Print語句。Picture1.Pri

7、nt Now & 的BMI是 & Round(bmi, 2)d) 請寫出Timer1_Timer事件的代碼,該代碼用于控制窗體的標題,使標題顯示當前時間。Form1.Caption = Time課程名稱: 實驗報告2 成績評定: 實驗項目名稱: 指導教師 實驗項目編號: 實驗項目類型: 實驗地點: 學生姓名: 學號: 學院: 系 專業(yè): 實驗時間 年 月 日 午 月 日 午一、 實驗目的1. 掌握條件分支中邏輯表達式的書寫,掌握If語句的使用方法,包括單分支、雙分支和多分支結構。掌握分支條件語句的嵌套形式,學會運用Select Case語句。2. 掌握ForNext語句的使用方法,能準確、靈活

8、地確定初值、終值及步長。掌握循環(huán)的嵌套。3. 掌握DoLoop語句的使用方法,理解幾種不同形式DoLoop語句的區(qū)別,能夠正確描述控制循環(huán)的條件。4. 分析理解如何避免死循環(huán)。二、 實驗內(nèi)容(一) 設計如下圖所示界面,實現(xiàn)兩個變量的交換。1. 編寫一個程序,用于演示兩個變量內(nèi)容的交換,界面設計如下圖。運行通過后用文件名EX2-1分別保存窗體和工程。a) 點擊“第一步”按鈕將時“數(shù)據(jù)1”的信息存放在temp變量中。b) 點擊“第二步”按鈕將時“數(shù)據(jù)2”的信息移至“數(shù)據(jù)1”。c) 點擊“第三步”按鈕時將“Temp”中的信息移至“數(shù)據(jù)2”。d) 點擊“交換”按鈕時直接將兩個數(shù)據(jù)交換。提示:圖中的橫線

9、為line控件。2. 實驗要求a) 寫出實現(xiàn)變量交換的代碼,即“交換”按鈕中的代碼。temp = Text1.Text Text1.Text = Text2.Text Text2.Text = tempb) 如何保證按鈕“第一步”,“第二步”,“第三步”的事件中都能夠使用臨時變量的值?填寫以下事件的代碼 將該臨時變量定義為窗體級變量Private Sub Command2_Click()“第一步”按鈕temp = Text1.TextText3.Text = tempEnd SubPrivate Sub Command3_Click() “第二步”按鈕Text1.Text = Text2.Te

10、xtEnd SubPrivate Sub Command4_Click() “第三步”按鈕Text2.Text = tempEnd Sub(二) 生成字符1. 設計如下圖所示界面,并編碼實現(xiàn):(1)窗體加載時,反復通過33至126之間的隨機數(shù)生成一個ASCII字符,將其連接到文本框Text1中,直到生成的字符為“Z”時為止。(2)單擊“生成Text2中字符”命令按鈕時,反復通過33至126之間的隨機數(shù)生成一個ASCII字符,將其連接到文本框Text2中,直到生成的字符已在Text2中時為止。(3)單擊統(tǒng)計命令按鈕時,將文本框Text1和Text2中的大寫字母的總數(shù)、小寫字母的總數(shù)、數(shù)字的總數(shù)和

11、其它字符的總數(shù)信息顯示在Picture1中。(4)運行通過后用文件名EX2-2分別保存窗體和工程。2. 實驗要求a) 設置哪些屬性使得文本框能夠顯示垂直滾動條?Scrollbars-2-verticalb) 窗體加載時生成字符的代碼需要寫在哪個事件中?請寫出具體的代碼。Form_load()Text1.Text = RandomizeDo Until s = Z s = Chr(Int(Rnd * 94) + 33) Text1.Text = Text1.Text & sLoopc) 寫出生成Text2中字符的代碼。Text2.Text = Do s = Chr(Int(Rnd * 94) +

12、 33) Text2.Text = Text2.Text & sLoop Until InStr(Left(Text2.Text, Len(Text2.Text) - 1), s) 0d) 寫出統(tǒng)計字符的代碼?描述代碼中的難點。Dim Up%, Lw%, Nu%, Oth%s = Text1.Text & Text2.TextFor i = 1 To Len(s) Select Case Asc(Mid(s, i, 1) Case 48 To 57 Nu = Nu + 1 數(shù)字字符 Case 65 To 90 Up = Up + 1 大寫字母 Case Asc(a) To Asc(z) Lw

13、= Lw + 1 小寫字母 Case Else Oth = Oth + 1 標點字符 End SelectNext iPicture1.ClsPicture1.PrintPicture1.Print 數(shù)字字符個數(shù); NuPicture1.Print 大寫字母個數(shù); UpPicture1.Print 小寫字母個數(shù); LwPicture1.Print 標點字符個數(shù); Oth難點在于各類字符的識別。e) 你編寫代碼的過程中有沒有出現(xiàn)死機等問題,原因是什么?是怎么解決的?(三) 設計如下圖所示界面,并編碼實現(xiàn):1. 利用迭代公式求一個數(shù)的立方根,界面如下圖。求a的立方根的迭代公式為:迭代到|= 0 T

14、hen Text3 = Format(a (1 / 3), 0.00)Else Text3 = Format(-(-a) (1 / 3), 0.00)End Ifc) 寫出用迭代法求立方根的循環(huán)語句,并對語句進行簡單解釋。Dim x0#, x1#, a#a = Val(Text1)x0 = a 初始值If a = 0 Then x1 = 0 Else x1 = x0 * 2 / 3 + a / (3 * x0 * x0) 如果輸入不為0,才計算立方根End IfDo While Abs(x1 - x0) 0.00001 x0 = x1 迭代,根據(jù)舊值獲得新值 x1 = x0 * 2 / 3 +

15、 a / (3 * x0 * x0) 迭代,根據(jù)舊值獲得新值Loop課程名稱: 實驗報告3 成績評定: 實驗項目名稱: 指導教師 實驗項目編號: 實驗項目類型: 實驗地點: 學生姓名: 學號: 學院: 系 專業(yè): 實驗時間 年 月 日 午 月 日 午一、 實驗目的1. 掌握數(shù)組的聲明、數(shù)組的賦值和數(shù)組元素的訪問方法。正確地使用ReDim語句。2. 掌握函數(shù)和子過程的定義和調(diào)用方法。理解形參和實參的作用以及關系。3. 熟練運用數(shù)組類控件:組合框和列表框。4. 理解參數(shù)傳地址和傳值的區(qū)別和使用方法。二、 實驗內(nèi)容(一) 按下面的要求對Form1的Click事件編程,運行通過后用文件名EX3-1分別

16、保存窗體和工程。要求功能為:1. 隨機產(chǎn)生20個20以內(nèi)的正整數(shù)存入數(shù)組a中,并在窗體上顯示;2. 將數(shù)組a中相同的元素只保留第一個,其余的全部刪除,并且要求同時改變數(shù)組a的大小;3. 將數(shù)組a中的元素依升序排列并顯示在窗體上。4. 實驗要求a) 本題中數(shù)組a定義為靜態(tài)數(shù)組還是動態(tài)數(shù)組呢?為什么?動態(tài)數(shù)組。需要改變數(shù)組大小b) 語句ReDim Preserve中Preserve的作用是什么?保留數(shù)組中原來的數(shù)據(jù)c) 描述刪除重復元素的算法思路,寫出刪除重復元素的代碼?從第二個元素起,依次判斷前面有無出現(xiàn)重復元素。如果有,則將其后的元素都依次往前移動一個位置,覆蓋重復元素。k = 1 從第二個元

17、素開始 Do 判斷下標從0,1,.k-1的數(shù)組元素與下標為k的元素是否有重復 i = 0 Do Repeat = a(k) = a(i) If Repeat Then a(k)與前面的某個元素重復 k右邊的元素全部左移一位,即刪除a(k) For j = k To UBound(a) - 1 a(j) = a(j + 1) Next j 數(shù)組長度減1 ReDim Preserve a(UBound(a) - 1) 當前位置k左移一位 k = k - 1 End If i = i + 1 Loop While i UBound(a)d) 刪除重復元素時,有無出現(xiàn)錯誤?原因是什么,是怎么解決的?e

18、) 寫出排序代碼冒泡法對a進行排序 For i = UBound(a) To 1 Step -1 For j = 0 To i - 1 If a(j) a(j + 1) Then k = a(j) a(j) = a(j + 1) a(j + 1) = k End If Next j Next i(二) 最大公因數(shù)1. 編寫一個使用遞歸算法實現(xiàn)求兩個整數(shù)的最大公因數(shù)的函數(shù)GCD%(m%, n%)并調(diào)用。界面如下。以EX3-2分別保存窗體和工程。2. 求最大公約數(shù)有兩種方法:舉例如下表:碾轉相減碾轉相除98633563352835287287212172121714147798 mod 63356

19、3 mod 352835 mod 28728 mod 703. 兩個整數(shù)的最大公因數(shù)的遞歸定義為:若使用碾轉相除法,n整除m則n就是最大公因數(shù),即GCD(m, n) = n,否則GCD(m, n) = GCD(n, m Mod n)。4. 實驗要求a) 對于函數(shù)GCD(m%, n%),將m和n使用地址傳遞和使用值傳遞時有什么不同?被調(diào)函數(shù)執(zhí)行完畢后,主調(diào)過程中m和n的值有什么不同?如果是傳值,則實參數(shù)據(jù)傳遞進函數(shù)后,實參與形參就斷開聯(lián)系,被調(diào)函數(shù)執(zhí)行完畢后,主調(diào)過程中m和n的值不會改變。;如果是傳址,形參獲得的是實參的內(nèi)存地址,形參的改變就是實參的改變。被調(diào)函數(shù)執(zhí)行完畢后,主調(diào)過程中m和n的值

20、會改變。b) 對于遞歸過程而言需要跳出分支,若使用碾轉相除法求最大公因數(shù),使遞歸終止的分支條件是什么?使用碾轉相減法呢?碾轉相除法 if m mod n=0 then GCD=n碾轉相減法if m - n=0 then GCD=nc) 寫出GCD(m%, n%)函數(shù)。Function GCD%(m%, n%) If m = 0 Or n = 0 Then Exit Function If m 0 Then PositiveInt = TrueEnd Function并回答以下問題: 標識符PositiveInt在函數(shù)體內(nèi)部是作為一個局部變量嗎?是 判斷一個數(shù)a是正整數(shù)的條件是什么?用自然語言描

21、述。大于0 ,且取整前后相等。 如果PositiveInt在函數(shù)體內(nèi)部沒有被賦值至少一次,會出現(xiàn)什么樣的后果?函數(shù)沒有返回值b) 整個project中有幾個模塊,相互之間的關系是什么?一個窗體,一個標準模塊。屬于同一個工程。c) 補充函數(shù)SumFactor的代碼。Function SumFactor&(x%)SumFactor = 0 For i = 1 To x - 1 If x Mod i = 0 Then SumFactor = SumFactor + i Form1.Combo1.AddItem i End IfEnd Functiond) 當窗體上文本框中內(nèi)容不是正整數(shù)時,用MsgB

22、ox對話框提示并且選擇Text1中的內(nèi)容。寫出選中Text1中內(nèi)容的3條語句:MsgBox 不是正整數(shù) Text1.SetFocus Text1.SelStart = 0 Text1.SelLength = Len(Text1.Text)e) 往組合框中添加數(shù)據(jù)前是否要清空組合框,否則會有怎樣的結果?要。否則組合框中保留了其他數(shù)字的因子。課程名稱: 實驗報告4 成績評定: 實驗項目名稱: 指導教師 實驗項目編號: 實驗項目類型: 實驗地點: 學生姓名: 學號: 學院: 系 專業(yè): 實驗時間 年 月 日 午 月 日 午一、 實驗目的1. 掌握常用控件的常用屬性、事件和方法。包括窗體、文本框、標簽

23、、命令按鈕、組合框、列表框、單選按鈕、復選框等。2. 熟練合理使用不同的控制結構和函數(shù)過程。3. 掌握數(shù)組的相關操作和常用算法,以及自定義數(shù)據(jù)類型數(shù)組的使用。4. 掌握順序文件的特點,掌握順序文件的打開、讀寫和關閉的方法。掌握Line Input和Input的使用。5. 能夠根據(jù)應用程序的需要讀寫脫機數(shù)據(jù)。6. 掌握菜單的設計方法。二、 實驗內(nèi)容(一) 綜合練習1. 設計如下圖所示界面的窗體。(1) 將左側組合框設置為升序,當添加新的待選課程名稱時自動放至合適的位置上。(2) 編寫事件過程。a) 當窗體加載時,分別從文件“待選課.txt”、“已選課.txt”中讀取數(shù)據(jù)顯示在左側的組合框和右側的

24、列表框中。b) 在左側組合框中輸入數(shù)據(jù)按回車鍵時,檢查無重復后,添加新的待選課程名稱至待選課列表框中。c) 編寫移動按鈕事件:l “”:將選中的課程移至已選課列表中l(wèi) “”:將所有待選課程移至已選課列表中l(wèi) “”:從已選課列表中刪除選中的已選課程,并將其移入待選課列表l “”按鈕單擊事件中,如果沒有選中任何待選課程,會出現(xiàn)什么樣的情況?原因是什么?出錯。因為沒有選擇項,則Combo1.Listindex 為-1, Combo1.List(-1) 不存在,溢出。所以應設置選擇結構,當選中項后,才將該項添加至右邊列表框。d) 以下是對列表框數(shù)據(jù)進行升序排序的子過程SortASC,請完善。Sub S

25、ortASC(a As listbox ) 選擇排序的子過程For i = 0 To listbox.listcount - 2 For j = i + 1 To a.ListCount - 1 If a.List(i) a.List(j) Then Tmp= a.List(i) a.List(i)= a.List(j) a.List(j)=tmp End If Next jNext iEnd Sub(二) 綜合練習1. 在窗體上放置一個文本框,并設計如下圖所示菜單。文件打開Ctrl+O保存-退出格式字體字號宋體隸書變大變小排序年齡性別升序降序升序降序(1) 編寫事件過程。a) “文件”-“打

26、開”:打開應用程序所在目錄的student1.dat文件?!拔募?“保存”:將文本框中內(nèi)容保存至student2.dat文件。b) 在讀取或者保存數(shù)據(jù)時需要保存數(shù)據(jù)的格式,因此在處理文件中的數(shù)據(jù)時需要使用自定義數(shù)據(jù)類型的數(shù)組。數(shù)據(jù)文件中的數(shù)據(jù)類型StudType定義如下:Private Type StudType Name As String * 3 Sex As String * 1 Age As IntegerEnd TypeDim s() As StudType 定義一個StudType類型的動態(tài)數(shù)組c) “格式”-“字體”:設置文本框中字體格式為“宋體”或者“隸書”“格式”-“字號”:增大或者減小字體大小。d) “排序”-“年齡”:按照年齡進行升序或降序排序“排序”-“性別”:按照性別進行升序或降序排序。(2) 要求在文本框中輸出時對齊,如下圖。(3) 右鍵點擊文本框時出現(xiàn)格式菜單,并且禁止系統(tǒng)菜單的出現(xiàn)。 (4) 運行通過后用文件名EX4-2分別保存窗體和工程。2. 實驗要求a) 由于不清楚文件中的數(shù)據(jù)有多少,所以要使用動態(tài)數(shù)組來存放文件中的數(shù)據(jù)。下面代碼的功

溫馨提示

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

評論

0/150

提交評論