




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課程名稱: 實(shí)驗(yàn)報(bào)告1 成績(jī)?cè)u(píng)定: 實(shí)驗(yàn)項(xiàng)目名稱: 指導(dǎo)教師 實(shí)驗(yàn)項(xiàng)目編號(hào): 實(shí)驗(yàn)項(xiàng)目類型: 實(shí)驗(yàn)地點(diǎn): 學(xué)生姓名: 學(xué)號(hào): 學(xué)院: 系 專業(yè): 實(shí)驗(yàn)時(shí)間 年 月 日 午 月 日 午一、 實(shí)驗(yàn)?zāi)康?. 熟悉VB編程環(huán)境,能夠建立、編譯和運(yùn)行VB程序。2. 掌握窗體、標(biāo)簽、文本框、命令按鈕、圖形框的作用、常用屬性、事件和方法。3. 理解并掌握賦值語(yǔ)句、掌握表達(dá)式的書寫規(guī)則。4. 掌握使用Inputbox函數(shù)和MsgBox消息函數(shù)進(jìn)行輸入輸出。5. 熟悉VB的數(shù)據(jù)類型和類型轉(zhuǎn)換。二、 實(shí)驗(yàn)內(nèi)容(一) 字幕滾動(dòng)1. 設(shè)計(jì)如下圖所示的界面實(shí)現(xiàn)字幕從上到下進(jìn)行滾動(dòng),“歡迎使用VB”是一個(gè)字幕標(biāo)簽,兩個(gè)命
2、令按鈕分別實(shí)現(xiàn)自動(dòng)滾動(dòng)和手動(dòng)滾動(dòng)。a) 在窗體水平居中的地方放置一個(gè)標(biāo)簽。b) 當(dāng)字幕向下移出窗體時(shí),重新從窗體頂端開始繼續(xù)往下移動(dòng)。c) 單擊“手動(dòng)”按鈕一次字幕將向下移動(dòng)一下,單擊“自動(dòng)”按鈕字幕將連續(xù)移動(dòng),具體移動(dòng)的速度或幅度、窗體和按鈕上的圖片由自己設(shè)定。d) 以EX1-1分別保存窗體和工程。2. 實(shí)驗(yàn)要求a) 對(duì)于標(biāo)簽應(yīng)對(duì)其什么屬性設(shè)置什么值才能夠使窗體的背景不被遮擋?Backstyle-1b) 使標(biāo)簽在窗體中水平居中需要設(shè)置什么屬性,如何設(shè)置?設(shè)置的依據(jù)是什么? label1.Left -form1.width/2-label1.width/2c) 要想在命令按鈕上顯示圖片,需要設(shè)
3、置哪些屬性,如何設(shè)置? Style -1 d) 寫出標(biāo)簽從上往下移動(dòng)的代碼,注意,當(dāng)標(biāo)簽移出窗體后要從窗體上頂端開始繼續(xù)往下。 Label1.Move Label1.Left, Label1.Top + 50 If Label1.Top > Form1.Height Then Label1.Top = 0e) 要使Timer控件啟用,必須設(shè)置哪兩個(gè)屬性,屬性值設(shè)置為多少?Timer1.Interval=100Timer1.enabled=truef) 單擊“手動(dòng)”按鈕時(shí),如何使Timer控件停用?需要在什么地方編寫代碼?請(qǐng)寫出代碼?Timer1.Interval=0 或 Timer1.e
4、nabled=false(二) 打開教材實(shí)驗(yàn)材料中工程文件EXA05.vbp,完成下面的任務(wù)。1觀察窗體上分別有哪些類的控件,根據(jù)觀察結(jié)果制作下表,表格行數(shù)視情況而定。以EX1-2保存窗體和工程。控件類控件名稱2啟動(dòng)程序,右圖為啟動(dòng)之后的初始界面?;卮鹣旅娴膯栴}: List1中為什么會(huì)被添加了兩項(xiàng)內(nèi)容?啟動(dòng)后,窗體從無到有,大小發(fā)生改變form_resize焦點(diǎn)放置在文本框內(nèi),觸發(fā) text1_gotfocus 單擊按鈕Command1,List1中又被添加了1項(xiàng)什么內(nèi)容?單擊了命令按鈕Command1 拖拽窗體的右下角改變窗體的大小,List1中又被添加了什么內(nèi)容?窗體Form1的大小改變3
5、關(guān)閉程序,寫出你對(duì)該程序功能的理解。通過在各個(gè)控件的一些事件里編寫代碼,當(dāng)操作或系統(tǒng)觸發(fā)事件,可將所有的操作記錄下來。(三) BMI計(jì)算。1. 編寫一個(gè)計(jì)算人的身體質(zhì)量指數(shù)BMI的程序,計(jì)算公式為BMI等于體重(千克)除以身高(米)的平方,計(jì)算結(jié)果按四舍五入保留2位小數(shù)。運(yùn)行時(shí)的界面如下圖所示。a) 設(shè)計(jì)如圖所示界面,兩個(gè)文本框用于輸入體重和身高。b) 點(diǎn)擊“計(jì)算”按鈕或者在文本框中輸入回車時(shí),計(jì)算BMI的值。c) 當(dāng)計(jì)算完成時(shí)將當(dāng)前時(shí)間的BMI值打印在圖形框,如果輸入錯(cuò)誤使用MsgBox彈出對(duì)話框提示輸入錯(cuò)誤。d) 窗體大小設(shè)置為固定大小,窗體的標(biāo)題顯示系統(tǒng)當(dāng)前的時(shí)間,使用計(jì)時(shí)器每隔1秒鐘更
6、新Form的Caption。以EX1-3保存窗體和工程。2. 實(shí)驗(yàn)要求a) 該程序的計(jì)算用到了哪些變量,作用分別是什么?需要在什么地方定義這些變量,請(qǐng)寫出這些變量的定義,并注明變量的作用。窗體通用程序段或”計(jì)算”按鈕的click事件內(nèi)聲明 ,兩個(gè)變量用于保存文本框內(nèi)輸入的數(shù)值。一個(gè)變量用于保存bmi b) 進(jìn)行BMI計(jì)算的表達(dá)式是什么,使用自己定義的變量來表示。a = Val(Text1.Text) b = Val(Text2.Text) bmi = a / (b / 100) 2)c) BMI計(jì)算的結(jié)果保留2位小數(shù)打印在PictureBox圖形框中,請(qǐng)寫出具體的Print語(yǔ)句。Picture
7、1.Print Now & "的BMI是" & Round(bmi, 2)d) 請(qǐng)寫出Timer1_Timer事件的代碼,該代碼用于控制窗體的標(biāo)題,使標(biāo)題顯示當(dāng)前時(shí)間。Form1.Caption = Time課程名稱: 實(shí)驗(yàn)報(bào)告2 成績(jī)?cè)u(píng)定: 實(shí)驗(yàn)項(xiàng)目名稱: 指導(dǎo)教師 實(shí)驗(yàn)項(xiàng)目編號(hào): 實(shí)驗(yàn)項(xiàng)目類型: 實(shí)驗(yàn)地點(diǎn): 學(xué)生姓名: 學(xué)號(hào): 學(xué)院: 系 專業(yè): 實(shí)驗(yàn)時(shí)間 年 月 日 午 月 日 午一、 實(shí)驗(yàn)?zāi)康?. 掌握條件分支中邏輯表達(dá)式的書寫,掌握If語(yǔ)句的使用方法,包括單分支、雙分支和多分支結(jié)構(gòu)。掌握分支條件語(yǔ)句的嵌套形式,學(xué)會(huì)運(yùn)用Select Case語(yǔ)句。2
8、. 掌握ForNext語(yǔ)句的使用方法,能準(zhǔn)確、靈活地確定初值、終值及步長(zhǎng)。掌握循環(huán)的嵌套。3. 掌握DoLoop語(yǔ)句的使用方法,理解幾種不同形式DoLoop語(yǔ)句的區(qū)別,能夠正確描述控制循環(huán)的條件。4. 分析理解如何避免死循環(huán)。二、 實(shí)驗(yàn)內(nèi)容(一) 設(shè)計(jì)如下圖所示界面,實(shí)現(xiàn)兩個(gè)變量的交換。1. 編寫一個(gè)程序,用于演示兩個(gè)變量?jī)?nèi)容的交換,界面設(shè)計(jì)如下圖。運(yùn)行通過后用文件名EX2-1分別保存窗體和工程。a) 點(diǎn)擊“第一步”按鈕將時(shí)“數(shù)據(jù)1”的信息存放在temp變量中。b) 點(diǎn)擊“第二步”按鈕將時(shí)“數(shù)據(jù)2”的信息移至“數(shù)據(jù)1”。c) 點(diǎn)擊“第三步”按鈕時(shí)將“Temp”中的信息移至“數(shù)據(jù)2”。d) 點(diǎn)擊
9、“交換”按鈕時(shí)直接將兩個(gè)數(shù)據(jù)交換。提示:圖中的橫線為line控件。2. 實(shí)驗(yàn)要求a) 寫出實(shí)現(xiàn)變量交換的代碼,即“交換”按鈕中的代碼。temp = Text1.Text Text1.Text = Text2.Text Text2.Text = tempb) 如何保證按鈕“第一步”,“第二步”,“第三步”的事件中都能夠使用臨時(shí)變量的值?填寫以下事件的代碼 將該臨時(shí)變量定義為窗體級(jí)變量Private Sub Command2_Click()“第一步”按鈕temp = Text1.TextText3.Text = tempEnd SubPrivate Sub Command3_Click() “第二
10、步”按鈕Text1.Text = Text2.TextEnd SubPrivate Sub Command4_Click() “第三步”按鈕Text2.Text = tempEnd Sub(二) 生成字符1. 設(shè)計(jì)如下圖所示界面,并編碼實(shí)現(xiàn):(1)窗體加載時(shí),反復(fù)通過33至126之間的隨機(jī)數(shù)生成一個(gè)ASCII字符,將其連接到文本框Text1中,直到生成的字符為“Z”時(shí)為止。(2)單擊“生成Text2中字符”命令按鈕時(shí),反復(fù)通過33至126之間的隨機(jī)數(shù)生成一個(gè)ASCII字符,將其連接到文本框Text2中,直到生成的字符已在Text2中時(shí)為止。(3)單擊統(tǒng)計(jì)命令按鈕時(shí),將文本框Text1和Text
11、2中的大寫字母的總數(shù)、小寫字母的總數(shù)、數(shù)字的總數(shù)和其它字符的總數(shù)信息顯示在Picture1中。(4)運(yùn)行通過后用文件名EX2-2分別保存窗體和工程。2. 實(shí)驗(yàn)要求a) 設(shè)置哪些屬性使得文本框能夠顯示垂直滾動(dòng)條?Scrollbars-2-verticalb) 窗體加載時(shí)生成字符的代碼需要寫在哪個(gè)事件中?請(qǐng)寫出具體的代碼。Form_load()Text1.Text = ""RandomizeDo Until s = "Z" s = Chr(Int(Rnd * 94) + 33) Text1.Text = Text1.Text & sLoopc) 寫出
12、生成Text2中字符的代碼。Text2.Text = ""Do s = Chr(Int(Rnd * 94) + 33) Text2.Text = Text2.Text & sLoop Until InStr(Left(Text2.Text, Len(Text2.Text) - 1), s) > 0d) 寫出統(tǒng)計(jì)字符的代碼?描述代碼中的難點(diǎn)。Dim Up%, Lw%, Nu%, Oth%s = Text1.Text & Text2.TextFor i = 1 To Len(s) Select Case Asc(Mid(s, i, 1) Case 48 T
13、o 57 Nu = Nu + 1 ' "數(shù)字字符" Case 65 To 90 Up = Up + 1 '"大寫字母" Case Asc("a") To Asc("z") Lw = Lw + 1 ' "小寫字母" Case Else Oth = Oth + 1 '"標(biāo)點(diǎn)字符" End SelectNext iPicture1.ClsPicture1.PrintPicture1.Print "數(shù)字字符個(gè)數(shù)" NuPicture
14、1.Print "大寫字母?jìng)€(gè)數(shù)" UpPicture1.Print "小寫字母?jìng)€(gè)數(shù)" LwPicture1.Print "標(biāo)點(diǎn)字符個(gè)數(shù)" Oth難點(diǎn)在于各類字符的識(shí)別。e) 你編寫代碼的過程中有沒有出現(xiàn)死機(jī)等問題,原因是什么?是怎么解決的?(三) 設(shè)計(jì)如下圖所示界面,并編碼實(shí)現(xiàn):1. 利用迭代公式求一個(gè)數(shù)的立方根,界面如下圖。求a的立方根的迭代公式為:迭代到|<0.00001時(shí)為止,并用求立方根的算術(shù)表達(dá)式進(jìn)行比較。運(yùn)行通過后用文件名EXF06分別保存窗體和工程。a) 對(duì)求得的根保留2位小數(shù)顯示,以EX2-3保存窗體和工程。2.
15、 實(shí)驗(yàn)要求a) 求解過程中用到了哪些臨時(shí)變量?定義為哪種數(shù)據(jù)類型比較合適?為什么?單精度。足夠精度。數(shù)值不大,且精度要求不是很高。b) 求立方根的表達(dá)式是什么?If a >= 0 Then Text3 = Format(a (1 / 3), "0.00")Else Text3 = Format(-(-a) (1 / 3), "0.00")End Ifc) 寫出用迭代法求立方根的循環(huán)語(yǔ)句,并對(duì)語(yǔ)句進(jìn)行簡(jiǎn)單解釋。Dim x0#, x1#, a#a = Val(Text1)x0 = a 初始值If a = 0 Then x1 = 0 Else x1 =
16、x0 * 2 / 3 + a / (3 * x0 * x0) 如果輸入不為0,才計(jì)算立方根End IfDo While Abs(x1 - x0) > 0.00001 x0 = x1 迭代,根據(jù)舊值獲得新值 x1 = x0 * 2 / 3 + a / (3 * x0 * x0) 迭代,根據(jù)舊值獲得新值Loop課程名稱: 實(shí)驗(yàn)報(bào)告3 成績(jī)?cè)u(píng)定: 實(shí)驗(yàn)項(xiàng)目名稱: 指導(dǎo)教師 實(shí)驗(yàn)項(xiàng)目編號(hào): 實(shí)驗(yàn)項(xiàng)目類型: 實(shí)驗(yàn)地點(diǎn): 學(xué)生姓名: 學(xué)號(hào): 學(xué)院: 系 專業(yè): 實(shí)驗(yàn)時(shí)間 年 月 日 午 月 日 午一、 實(shí)驗(yàn)?zāi)康?. 掌握數(shù)組的聲明、數(shù)組的賦值和數(shù)組元素的訪問方法。正確地使用ReDim語(yǔ)句。2. 掌握
17、函數(shù)和子過程的定義和調(diào)用方法。理解形參和實(shí)參的作用以及關(guān)系。3. 熟練運(yùn)用數(shù)組類控件:組合框和列表框。4. 理解參數(shù)傳地址和傳值的區(qū)別和使用方法。二、 實(shí)驗(yàn)內(nèi)容(一) 按下面的要求對(duì)Form1的Click事件編程,運(yùn)行通過后用文件名EX3-1分別保存窗體和工程。要求功能為:1. 隨機(jī)產(chǎn)生20個(gè)20以內(nèi)的正整數(shù)存入數(shù)組a中,并在窗體上顯示;2. 將數(shù)組a中相同的元素只保留第一個(gè),其余的全部刪除,并且要求同時(shí)改變數(shù)組a的大小;3. 將數(shù)組a中的元素依升序排列并顯示在窗體上。4. 實(shí)驗(yàn)要求a) 本題中數(shù)組a定義為靜態(tài)數(shù)組還是動(dòng)態(tài)數(shù)組呢?為什么?動(dòng)態(tài)數(shù)組。需要改變數(shù)組大小b) 語(yǔ)句ReDim Pres
18、erve中Preserve的作用是什么?保留數(shù)組中原來的數(shù)據(jù)c) 描述刪除重復(fù)元素的算法思路,寫出刪除重復(fù)元素的代碼?從第二個(gè)元素起,依次判斷前面有無出現(xiàn)重復(fù)元素。如果有,則將其后的元素都依次往前移動(dòng)一個(gè)位置,覆蓋重復(fù)元素。k = 1 '從第二個(gè)元素開始 Do '判斷下標(biāo)從0,1,.k-1的數(shù)組元素與下標(biāo)為k的元素是否有重復(fù) i = 0 Do Repeat = a(k) = a(i) If Repeat Then 'a(k)與前面的某個(gè)元素重復(fù) 'k右邊的元素全部左移一位,即刪除a(k) For j = k To UBound(a) - 1 a(j) = a(j
19、 + 1) Next j '數(shù)組長(zhǎng)度減1 ReDim Preserve a(UBound(a) - 1) '當(dāng)前位置k左移一位 k = k - 1 End If i = i + 1 Loop While i < k And Not Repeat k = k + 1 '繼續(xù)下一個(gè)數(shù)組元素 Loop Until k > UBound(a)d) 刪除重復(fù)元素時(shí),有無出現(xiàn)錯(cuò)誤?原因是什么,是怎么解決的?e) 寫出排序代碼'冒泡法對(duì)a進(jìn)行排序 For i = UBound(a) To 1 Step -1 For j = 0 To i - 1 If a(j) &
20、gt; a(j + 1) Then k = a(j) a(j) = a(j + 1) a(j + 1) = k End If Next j Next i(二) 最大公因數(shù)1. 編寫一個(gè)使用遞歸算法實(shí)現(xiàn)求兩個(gè)整數(shù)的最大公因數(shù)的函數(shù)GCD%(m%, n%)并調(diào)用。界面如下。以EX3-2分別保存窗體和工程。2. 求最大公約數(shù)有兩種方法:舉例如下表:碾轉(zhuǎn)相減碾轉(zhuǎn)相除98633563352835287287212172121714147798 mod 633563 mod 352835 mod 28728 mod 703. 兩個(gè)整數(shù)的最大公因數(shù)的遞歸定義為:若使用碾轉(zhuǎn)相除法,n整除m則n就是最大公因數(shù),
21、即GCD(m, n) = n,否則GCD(m, n) = GCD(n, m Mod n)。4. 實(shí)驗(yàn)要求a) 對(duì)于函數(shù)GCD(m%, n%),將m和n使用地址傳遞和使用值傳遞時(shí)有什么不同?被調(diào)函數(shù)執(zhí)行完畢后,主調(diào)過程中m和n的值有什么不同?如果是傳值,則實(shí)參數(shù)據(jù)傳遞進(jìn)函數(shù)后,實(shí)參與形參就斷開聯(lián)系,被調(diào)函數(shù)執(zhí)行完畢后,主調(diào)過程中m和n的值不會(huì)改變。;如果是傳址,形參獲得的是實(shí)參的內(nèi)存地址,形參的改變就是實(shí)參的改變。被調(diào)函數(shù)執(zhí)行完畢后,主調(diào)過程中m和n的值會(huì)改變。b) 對(duì)于遞歸過程而言需要跳出分支,若使用碾轉(zhuǎn)相除法求最大公因數(shù),使遞歸終止的分支條件是什么?使用碾轉(zhuǎn)相減法呢?碾轉(zhuǎn)相除法 if m m
22、od n=0 then GCD=n碾轉(zhuǎ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 < n Then tmp = m: m = n: n = tmp If m Mod n = 0 Then GCD = n Else GCD = GCD(n, m Mod n) End IfEnd Function(三) 判斷完數(shù)1. 按下面的要求編寫程序判斷一個(gè)正整數(shù)是否為完數(shù):如果一個(gè)正整數(shù)等于它的所有因子之和,則它是完數(shù),界面如下圖所示
23、。題目要求如下:a) 為工程添加一個(gè)模塊,命名為MyFunctions。b) 在模塊MyFunctions上編寫一個(gè)函數(shù)PositiveInt (s$) As Boolean,當(dāng)s為正整數(shù)時(shí)返回True,否則為False。c) 在模塊MyFunctions上編寫一個(gè)求給定整數(shù)的所有因子(包括1但不包括本身)之和的函數(shù)SumFactor&(n%)。d) 在文本框Text1中輸入一個(gè)正整數(shù),當(dāng)按下Enter鍵時(shí)調(diào)用函數(shù)PositiveInt。當(dāng)Text1中的內(nèi)容不是正整數(shù)時(shí):用消息框給出相應(yīng)提示;將焦點(diǎn)置于Text1;選中Text1中的內(nèi)容。否則,調(diào)用函數(shù)SumFactor求這個(gè)正整數(shù)的所
24、有因子之和;如果它的所有因子之和等于其本身,則在標(biāo)簽Label1中輸出“是完數(shù)”,否則輸出“不是完數(shù)”。并將文本框中數(shù)的所有因子輸出到組合框中。注意,應(yīng)清除上一次計(jì)算的結(jié)果。e) 運(yùn)行通過后用文件名EX3-3分別保存窗體工程。2. 實(shí)驗(yàn)要求a) 補(bǔ)充如下代碼,完成PositiveInt函數(shù)的編寫。特別注意函數(shù)參數(shù)和返回值的類型。Function PositiveInt(s ) As boolean If IsNumeric(s) And (Val(s) = Int(s) And Val(s) > 0 Then PositiveInt = TrueEnd Function并回答以下問題:
25、標(biāo)識(shí)符PositiveInt在函數(shù)體內(nèi)部是作為一個(gè)局部變量嗎?是 判斷一個(gè)數(shù)a是正整數(shù)的條件是什么?用自然語(yǔ)言描述。大于0 ,且取整前后相等。 如果PositiveInt在函數(shù)體內(nèi)部沒有被賦值至少一次,會(huì)出現(xiàn)什么樣的后果?函數(shù)沒有返回值b) 整個(gè)project中有幾個(gè)模塊,相互之間的關(guān)系是什么?一個(gè)窗體,一個(gè)標(biāo)準(zhǔn)模塊。屬于同一個(gè)工程。c) 補(bǔ)充函數(shù)SumFactor的代碼。Function SumFactor&(x%)SumFactor = 0 For i = 1 To x - 1 If x Mod i = 0 Then SumFactor = SumFactor + i Form1.
26、Combo1.AddItem i End IfEnd Functiond) 當(dāng)窗體上文本框中內(nèi)容不是正整數(shù)時(shí),用MsgBox對(duì)話框提示并且選擇Text1中的內(nèi)容。寫出選中Text1中內(nèi)容的3條語(yǔ)句:MsgBox "不是正整數(shù)" Text1.SetFocus Text1.SelStart = 0 Text1.SelLength = Len(Text1.Text)e) 往組合框中添加數(shù)據(jù)前是否要清空組合框,否則會(huì)有怎樣的結(jié)果?要。否則組合框中保留了其他數(shù)字的因子。課程名稱: 實(shí)驗(yàn)報(bào)告4 成績(jī)?cè)u(píng)定: 實(shí)驗(yàn)項(xiàng)目名稱: 指導(dǎo)教師 實(shí)驗(yàn)項(xiàng)目編號(hào): 實(shí)驗(yàn)項(xiàng)目類型: 實(shí)驗(yàn)地點(diǎn): 學(xué)生姓名:
27、 學(xué)號(hào): 學(xué)院: 系 專業(yè): 實(shí)驗(yàn)時(shí)間 年 月 日 午 月 日 午一、 實(shí)驗(yàn)?zāi)康?. 掌握常用控件的常用屬性、事件和方法。包括窗體、文本框、標(biāo)簽、命令按鈕、組合框、列表框、單選按鈕、復(fù)選框等。2. 熟練合理使用不同的控制結(jié)構(gòu)和函數(shù)過程。3. 掌握數(shù)組的相關(guān)操作和常用算法,以及自定義數(shù)據(jù)類型數(shù)組的使用。4. 掌握順序文件的特點(diǎn),掌握順序文件的打開、讀寫和關(guān)閉的方法。掌握Line Input和Input的使用。5. 能夠根據(jù)應(yīng)用程序的需要讀寫脫機(jī)數(shù)據(jù)。6. 掌握菜單的設(shè)計(jì)方法。二、 實(shí)驗(yàn)內(nèi)容(一) 綜合練習(xí)1. 設(shè)計(jì)如下圖所示界面的窗體。(1) 將左側(cè)組合框設(shè)置為升序,當(dāng)添加新的待選課程名稱時(shí)自動(dòng)
28、放至合適的位置上。(2) 編寫事件過程。a) 當(dāng)窗體加載時(shí),分別從文件“待選課.txt”、“已選課.txt”中讀取數(shù)據(jù)顯示在左側(cè)的組合框和右側(cè)的列表框中。b) 在左側(cè)組合框中輸入數(shù)據(jù)按回車鍵時(shí),檢查無重復(fù)后,添加新的待選課程名稱至待選課列表框中。c) 編寫移動(dòng)按鈕事件:l “>”:將選中的課程移至已選課列表中l(wèi) “>>”:將所有待選課程移至已選課列表中l(wèi) “<”:從已選課列表中刪除選中的已選課程,并將其移入待選課列表l “<<”:從已選課列表中刪除所有的已選課程,并將其移入待選課列表d) 單擊“退出”按鈕時(shí),分別將組合框和列表框中的數(shù)據(jù)保存至“待選課.txt
29、”和“已選課.txt”文件中。e) 編寫SortASC和SortDSC過程對(duì)已選課列表框中的數(shù)據(jù)進(jìn)行排序,在單擊“升序”按鈕時(shí)調(diào)用SortASC過程,并將按鈕的標(biāo)題修改為“降序”,反之亦然。f) 以EX4-1保存窗體和工程。2. 實(shí)驗(yàn)要求a) 將左側(cè)組合框設(shè)置為升序時(shí),需要設(shè)置什么屬性?該屬性的設(shè)置能否用代碼完成,為什么?Sorted屬性設(shè)置為true。不能,因?yàn)槭侵蛔x屬性b) 添加新的待選課程名稱到組合框時(shí)需要檢查有無重復(fù),請(qǐng)?jiān)谙旅婵瞻滋帉懗稣_的代碼。Private Sub Combo1_KeyPress(KeyAscii As Integer)If KeyAscii = 13 Then
30、For i = 0 To Combo1.ListCount - 1 If Combo1.Text = Combo1.List(i) Then Exit For Next i If i = Combo1.ListCount Then Combo1.AddItem Combo1.Text End IfEnd Subc) “>”按鈕單擊事件中,如果沒有選中任何待選課程,會(huì)出現(xiàn)什么樣的情況?原因是什么?出錯(cuò)。因?yàn)闆]有選擇項(xiàng),則Combo1.Listindex 為-1, Combo1.List(-1) 不存在,溢出。所以應(yīng)設(shè)置選擇結(jié)構(gòu),當(dāng)選中項(xiàng)后,才將該項(xiàng)添加至右邊列表框。d) 以下是對(duì)列表框數(shù)據(jù)
31、進(jìn)行升序排序的子過程SortASC,請(qǐng)完善。Sub SortASC(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(二) 綜合練習(xí)1. 在窗體上放置一個(gè)文本框,并設(shè)計(jì)如下圖所示菜單。文件打開Ctrl+O保存-退出格式字體字號(hào)宋體隸書變大變小排序年
32、齡性別升序降序升序降序(1) 編寫事件過程。a) “文件”-“打開”:打開應(yīng)用程序所在目錄的student1.dat文件?!拔募?“保存”:將文本框中內(nèi)容保存至student2.dat文件。b) 在讀取或者保存數(shù)據(jù)時(shí)需要保存數(shù)據(jù)的格式,因此在處理文件中的數(shù)據(jù)時(shí)需要使用自定義數(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 定義一個(gè)StudType類型的動(dòng)態(tài)數(shù)組c) “格式”-“字體”:設(shè)置文本框中字體格式為“宋體”或者“隸書”“格式”-“字號(hào)”:增大或者減小字體大小。d) “排序”-“年齡”:按照年齡進(jìn)行升序或降序排序“排序”-“性別”:按照性別進(jìn)行升序或降序排序。(2) 要求
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 個(gè)人財(cái)產(chǎn)安全設(shè)備銷售與租賃合同
- 外墻保溫裝飾一體板施工合同
- 學(xué)校專家聘用合同
- 關(guān)于提高工作效率的溝通機(jī)制研究報(bào)告
- 鄉(xiāng)村發(fā)展行動(dòng)指導(dǎo)書
- 制造業(yè)企業(yè)數(shù)字化轉(zhuǎn)型實(shí)施方案
- 核電安全施工方案模板
- 籃球場(chǎng)工程施工方案
- 河南電力電纜線槽施工方案
- 建筑工程切險(xiǎn)保險(xiǎn)合同
- 2024年全國(guó)高考體育單招考試語(yǔ)文試卷試題(含答案詳解)
- 藥品養(yǎng)護(hù)記錄表
- 校級(jí)課題立項(xiàng)評(píng)審工作方案
- 現(xiàn)代密碼學(xué)第二講古典密碼學(xué)
- 醫(yī)院后勤保障部門考核標(biāo)準(zhǔn)
- 大學(xué)語(yǔ)文優(yōu)質(zhì)課件《盛唐-李白》
- 《做自己情緒的主人》課件
- 產(chǎn)品、過程質(zhì)量檢查清單
- 設(shè)備外協(xié)加工維修單
- 【基于GONE理論的宜華生活公司財(cái)務(wù)舞弊的案例分析18000字(論文)】
評(píng)論
0/150
提交評(píng)論