VB實驗任務

2022-11-12 01:18:04 字數 3500 閱讀 7380

實驗1請先手工寫出以下表示式的值和型別,然後上機驗證不同資料型別之間的運算,並判斷結果的資料型別。

要求:請分別在窗體的單擊事件過程中,按如下形式判斷表示式的結果型別,比較不同型別常數運算的結果型別;觀察算術運算子的不同,對結果有什麼影響;記錄驗證結果,找出出錯原因;

分析:在實際程式設計中我們應盡量避免不同型別的變數之間的運算和相互賦值,應為可能會引起「型別不匹配」的錯誤。但是我們應該清楚哪些情況是允許的,哪些情況會出錯

注意:型別符省略為:%——integer,&——long,!——single,#——double,@——currency,

結果轉換方向:整型→長整型→單精度型→雙精度型→貨幣型

private sub form_click()

print typename(1& + 1!) 'typename()函式可以求出資料的型別名稱

end sub

第(1)組(求下面15個表示式的值和型別,若將運算子加號改為減號、乘號和除號又會有什麼不同)

1% + 1% 1& + 11! + 11# + 11@ + 1%

1& + 11! + 11#+ 11@+ 1&

1! + 11#+ 11@+ 1!

1#+ 11@+ 1#

1@+ 1@

第(2)組(求下面10個表示式的值和型別)

dim a as integer, b as single, c as single

a < 2 = 3b^2 - 4*a*c > 0 "abc">"acbabc" = "abc" 200 + true

#1/1/2007# - #1/1/200030" + 140 "123" & 456123" + 456123ab" & 246

實驗2請先手工寫出以下程式段的執行結果,然後使用在窗體的click事件過程中分別新增如下的程式段,執行驗證,進一步理解和掌握運算子和表示式的應用。

實驗3 實驗書62頁實驗4-3

製作乙個檢視某年的元旦是星期幾的萬年曆。要求在圖4-4所示介面上輸入年份,單擊「檢視」按鈕,檢視某年的元旦是星期幾。

圖4-4 實驗4-3的執行介面

分析:確定某年的元旦是星期幾的公式如下:

其中,y為公元年號,w為計算出的結果星期幾(0表示星期日,1表示星期一,依次類推)。請根據上述分析和參考介面自行編寫**。

實驗4實驗書63頁實驗4-4 利用文字框1和文字框2輸入直角三角形的兩條直角邊長,計算直角三角形的周長和面積。

提示:① 該題先設兩條直角邊為x,y,根據勾股定理可以計算出直角三角形的斜邊,直角三角形面積s =(x*y)/2。可以利用文字框接收資料和輸出結果,注意由於文字框的text屬性為字元型,在計算時應使用val函式進行轉換,數值型的結果輸出時應使用str或cstr函式進行轉換。

② 在窗體上放置4個標籤控制項、4個文字框和3個命令按鈕,如圖4-5所示。

實驗5 實驗書63頁實驗4-5

加密整數。加密過程:對於乙個4位正整數,將每一位上的數字加7,然後對10取餘替代原來的數字,再將該4位整數進行左右兩邊數字互換,第1位與第4位互換,第2位與第3位互換。

提示:4位整數可用隨機函式rnd和取整函式int生成,最後加密結果可以直接顯示在窗體上(見圖4-5),或採用文字框、標籤顯示。

圖4-5 實驗4-5的執行介面

提示:模仿參考例題的二種方案獨立完成程式編寫

[參考例題] 如圖實現逆序輸出使用者輸入的三位整數。例如:使用者輸入361,應逆序輸出163。

分析:逆序輸出整數,其實就是將原整數x的每一位上的數字,重新改變所在位置後輸出。關鍵:如何取得整數x每一位上的數字?

執行介面

個位數字 = x mod 10 十位數字 = x \ 10 mod 10 百位數字 = x \100

此時逆序後的資料 = 個位數字 * 100 + 十位數字 * 10+ 百位數字

option explicit

private sub form_load()

= 3 '設定文字框的maxlength屬性,限制使用者輸入》3位的整數

end sub

private sub cmdreverse_click()

dim x as integer, indiv as integer, ten as integer, hundred as integer

x = val( '從文字框中取得待逆序的資料

indiv = x mod 10通過取餘方法獲取個位上的數字

ten = x \ 10 mod 10 '通過整除和取餘方法獲取十位上的數字

hundred = x \ 100 '通過整除方法獲取百位上的數字

x = indiv * 100 + ten * 10 + hundred

'對每位上的數字重新賦予權值、累加構造逆序數

= cstr(x) '輸出逆序結果

end sub

方案二:先將x轉換成字串形式,通過取子串mid函式等實現:

個位數字字元 = mid(x, 3, 1) 十位數字字元 = mid(x, 2, 1) 百位數字字元 = mid(x, 1, 1)

最後逆序後的資料即為每一位上的數字字元用字串連線符&的逆序連線。

private sub cmdreverse_click()

dim x as string * 3 ' 此處資料x主要參與的是字串運算,因此定義其為字串型

dim indiv as string * 1, ten as string * 1, hundred as string * 1

x = ' 從文字框中取得待逆序的資料

indiv = mid(x, 3, 1) '通過取子串mid函式取得個位上的數字字元

ten = mid(x, 2, 1通過取子串mid函式取得十位上的數字字元

hundred = mid(x, 1, 1) '通過取子串mid函式取得百位上的數字字元

x = indiv & ten & hundred '將每一位上的數字字元用字串連線符&的逆序連線

txtrnum = x逆序輸出密文結果

end sub

補充實驗:

實驗6 課本91頁例題4-10

執行介面加密方法

分析:類似於鐘錶盤的迴圈問題,常常借助mod運算子來解決,形式如下:

密文數字m =(明文數字n + 迴圈偏移量δd + 10)mod 10

根據題目要求,此處迴圈偏移量δd = -2,所以該題的密文數字m =(明文數字n -2 + 10)mod 10

option explicit

private sub cmdencrypt_click() '「加密」命令按鈕的單擊事件

dim n as integer, m as integer

n = val(txtnum) '從文字框中獲取使用者輸入的數字

m加密txtcryptograph = cstr(m) '通過文字框顯示加密結果

end sub

思考:若要實現字母的迴圈移動加密,該如何改寫上述**呢?實驗7

VB程式設計技術課程實驗任務書

實驗一 1 實驗名稱 簡單的vb程式設計 2 實驗目的 熟悉vb開發環境 語法規則和程式設計的3種基本結構 學會向窗體中放置控制項和使用屬性視窗 掌握查詢幫助資訊。3 實驗性質 設計性 4 實驗內容 1 計如下圖所示使用者介面,窗體上有四個命令按鈕和乙個標籤,使標籤內容為 vb整合開發環境 設定字型...

vb實驗作業

實驗四窗體常用事件的實驗 首先在d盤建立乙個作業資料夾,資料夾名為 學號 姓名 例如 本次作業所有檔案均儲存到該資料夾裡 1 實驗目的 1 熟悉vb6.0的整合環境及其基本操作 2 掌握窗體的click keypress resize等常用事件。2 實驗要求 1 用窗體click keypress ...

VB實驗報告

台州學院 vb程式設計 實驗報告 實驗二 visual basic 程式設計基礎 班級 14生科2 學號 1431210034 姓名 何敏 實驗日期 20150331 一 實驗目的和要求 1 掌握基本語句 print語句 賦值語句 dim語句等 的使用 2 掌握表示式的正確書寫方法及函式 運算子的正...