計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)(VB)實(shí)驗(yàn)指導(dǎo)書.doc_第1頁(yè)
計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)(VB)實(shí)驗(yàn)指導(dǎo)書.doc_第2頁(yè)
計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)(VB)實(shí)驗(yàn)指導(dǎo)書.doc_第3頁(yè)
計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)(VB)實(shí)驗(yàn)指導(dǎo)書.doc_第4頁(yè)
計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)(VB)實(shí)驗(yàn)指導(dǎo)書.doc_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)(VB)實(shí)驗(yàn)指導(dǎo)書主編:劉華偉單位:信息工程學(xué)院實(shí)驗(yàn)一 VB6.0環(huán)境和程序設(shè)計(jì)初步一、實(shí)驗(yàn)?zāi)康?學(xué)會(huì)使用VB開發(fā)環(huán)境。2學(xué)會(huì)建立、編輯、運(yùn)行一個(gè)簡(jiǎn)單的VB應(yīng)用程序的全過程。3掌握變量的概念及使用。4通過程序?qū)嵺`結(jié)合課堂例子,理解類、對(duì)象的概念,掌握屬性、事件、方法的應(yīng)用。5學(xué)會(huì)如何用斷點(diǎn)調(diào)試程序二、實(shí)驗(yàn)內(nèi)容:1熟悉VB開發(fā)環(huán)境的標(biāo)題欄、菜單欄、工具欄、窗體窗口、屬性窗口、工程資源管理器窗口、代碼窗口、立即窗口、窗體布局窗口、工具箱窗口的位置以及用法。2編寫一個(gè)四則運(yùn)算的功能,在界面上輸入兩個(gè)數(shù),并設(shè)置加減乘除四個(gè)按鈕,點(diǎn)擊不同的按鈕,顯示不同的運(yùn)算結(jié)果。步驟:(1)建立用戶界面的對(duì)象。(2)對(duì)象屬性的設(shè)置。(3)對(duì)象事件過程及編程。(4)保存和運(yùn)行程序。3自己編寫一個(gè)小程序,使用斷點(diǎn)技術(shù)來測(cè)試程序運(yùn)行過程中的某一瞬間,某變量的值。步驟:(1) 在某一個(gè)事件過程中編寫一個(gè)5-10行的簡(jiǎn)單程序。(2) 在測(cè)試行的左端打上斷點(diǎn)。(3) 運(yùn)行程序,程序中斷時(shí)將鼠標(biāo)放在測(cè)試變量上。實(shí)驗(yàn)二 選擇結(jié)構(gòu)程序設(shè)計(jì)一、 實(shí)驗(yàn)?zāi)康? 掌握邏輯表達(dá)式的正確書寫形式。2 掌握單分支與雙分支語句的使用。3 掌握多分支條件語句的使用。4 掌握情況語句的使用與多分支條件語句的區(qū)別。二、 實(shí)驗(yàn)內(nèi)容1 P307實(shí)驗(yàn)三的3.1,3.2,3.3,界面按自己思路設(shè)計(jì)。 其中實(shí)驗(yàn)3.1要求用兩種方法實(shí)現(xiàn)。2 在界面上輸入4個(gè)數(shù),求最大值和最小值并顯示,要求用兩種方法實(shí)現(xiàn)。提示:先編寫求最大值的程序,然后再編寫求最小值的程序。實(shí)驗(yàn)三 循環(huán)和數(shù)組一、實(shí)驗(yàn)?zāi)康?理解循環(huán)結(jié)構(gòu)的思想2學(xué)會(huì)用for語句編寫程序3掌握數(shù)組的概念、用法4學(xué)會(huì)用for循環(huán)語句與數(shù)組結(jié)合來解決問題二、實(shí)驗(yàn)內(nèi)容(1)課本101頁(yè)第9題前兩小題(2)求1-2+3-4+5-6+99-100(3)在界面上設(shè)計(jì)5個(gè)文本框,輸入5個(gè)數(shù)并存入一數(shù)組中,通過for語句求出最大值,最小值以及和數(shù),并在另外的幾個(gè)文本框中顯示出來.實(shí)驗(yàn)四 簡(jiǎn)單算法設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康?鞏固循環(huán)以及數(shù)組的知識(shí)2學(xué)習(xí)多重循環(huán)二、實(shí)驗(yàn)內(nèi)容1驗(yàn)證歌德巴赫猜想:任意一個(gè)充分大的偶數(shù),都可以分解成兩個(gè)質(zhì)數(shù)的和。編一個(gè)程序,界面上有三個(gè)文本框,在一個(gè)文本框中輸入一個(gè)任意大的偶數(shù),點(diǎn)擊按鈕后,在另兩個(gè)文本框中顯示出分解的兩個(gè)質(zhì)數(shù)。當(dāng)輸入的數(shù)小于5或者不是偶數(shù)時(shí),用msgbox提示出錯(cuò)信息。(要注意存盤,輸入的數(shù)據(jù)如果特別大,可能造成死機(jī))。步驟:(1)先參照課本例題編寫一個(gè)如何判斷一個(gè)數(shù)是否是素?cái)?shù)的小程序(2)用雙重循環(huán)來實(shí)現(xiàn)數(shù)的分割。2用數(shù)組結(jié)合自定義類型實(shí)現(xiàn)以下功能:首先從界面上依次輸入一些(不超過5個(gè))學(xué)生的姓名和成績(jī)信息,每輸入一個(gè)學(xué)生信息,點(diǎn)擊一下“下一個(gè)”按鈕,輸入5個(gè)學(xué)生后,依次自動(dòng)顯示出5個(gè)學(xué)生信息,然后在同一個(gè)窗體上設(shè)置查詢功能,使得能夠通過輸入學(xué)生的姓名進(jìn)行查詢(設(shè)置姓名文本框以及查詢按鈕),若該姓名與曾經(jīng)輸入的某個(gè)學(xué)生的姓名相同,則在窗體的左上角顯示出該學(xué)生姓名以及成績(jī),如果不同,則給出相應(yīng)提示信息,如果輸入的學(xué)生信息超過5個(gè),給出出錯(cuò)信息。步驟:(1)定義一個(gè)存放學(xué)生信息的數(shù)組。(2)每次輸入一個(gè)學(xué)生信息,都將其信息存入數(shù)組中。(3)每次輸入一個(gè)學(xué)生信息,都要判斷是否已經(jīng)是第5個(gè)學(xué)生,如果是,就顯示數(shù)組中所有學(xué)生信息,如果超過5,則給出出錯(cuò)信息。(4)輸入需要查詢的學(xué)生信息后,將其姓名與數(shù)組中存放的所有學(xué)生的信息進(jìn)行比較,若存在相同,則顯示出所有信息,若不存在相同的,顯示相應(yīng)提示信息。實(shí)驗(yàn)五 過程一、實(shí)驗(yàn)?zāi)康?掌握自定義函數(shù)過程和自過程的定義和調(diào)用方法。2掌握形參和實(shí)參的對(duì)應(yīng)關(guān)系。3掌握變量、函數(shù)和過程的作用域。二、實(shí)驗(yàn)內(nèi)容1求出1-50的所有素?cái)?shù),并依次顯示在窗體的左上角,要求定義一個(gè)判斷一個(gè)數(shù)是否為素?cái)?shù)的函數(shù),通過調(diào)用函數(shù)的方式來逐一求得。步驟:(1)定義一個(gè)判斷一個(gè)數(shù)是否為素?cái)?shù)的函數(shù),首先確定參數(shù)的個(gè)數(shù),類型,意義,然后確定返回值的類型。(2)通過循環(huán)的方法,將1-50的每個(gè)數(shù)都作為函數(shù)的參數(shù)調(diào)用一次,如果判斷結(jié)果為真,則顯示,若為假,則不顯示。2在三個(gè)文本框上輸入不等整數(shù)x,y,z,排列一下使得結(jié)果為xyz,并將結(jié)果依次顯示在窗體的左上角。要求定義一個(gè)交換兩個(gè)數(shù)的子過程,通過調(diào)用子過程的方式來求解。步驟:(1)復(fù)習(xí)課本83頁(yè)例4.4,吃透思想。(2)程序中三處用到交換兩個(gè)數(shù)的功能,因此將此功能定義成子過程。(3)在程序中將每一處交換兩個(gè)數(shù)的地方都換成子過程調(diào)用的形式。實(shí)驗(yàn)六 常用控件和普通菜單設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康?掌握單選鈕、復(fù)選框、框架等控件的基本用法。2掌握菜單設(shè)計(jì)技術(shù)。二、實(shí)驗(yàn)內(nèi)容1做一個(gè)簡(jiǎn)易考試系統(tǒng),包括兩道單選題,一道多選題(4個(gè)選項(xiàng),正確答案為其中三個(gè)選項(xiàng)),一道填空題,要求所有的題目做在一個(gè)窗體界面上,題目及答案自定。評(píng)分標(biāo)準(zhǔn)為:?jiǎn)芜x題每題20分,多選題40分(錯(cuò)選不得分,漏選:選中一個(gè)得10分,選中兩個(gè)得20分),填空題20分,滿分100分,共4道題,點(diǎn)擊提交按鈕,用msgbox函數(shù)顯示總成績(jī)以及每題的得分情況。步驟:先設(shè)計(jì)一個(gè)單選題,調(diào)試成功了再設(shè)計(jì)一個(gè)單選題,在調(diào)試成功了設(shè)計(jì)多選題,單選題主要考慮如何用框架分組,多選題主要考慮實(shí)現(xiàn)按照評(píng)分標(biāo)準(zhǔn)判分,最后設(shè)計(jì)分?jǐn)?shù)的顯示功能。2設(shè)計(jì)一個(gè)三級(jí)菜單,每一級(jí)別并列項(xiàng)數(shù)不少于兩項(xiàng)。實(shí)驗(yàn)七 項(xiàng)目實(shí)踐-五子棋軟件設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康?通過五子棋軟件設(shè)計(jì)或者自擬題目設(shè)計(jì),鞏固本課程所學(xué)的各個(gè)章節(jié)重點(diǎn)知識(shí)。2通過開發(fā)一個(gè)較大的系統(tǒng),增強(qiáng)軟件開發(fā)能力。3通過調(diào)試系統(tǒng),增強(qiáng)邏輯思維能力。二、實(shí)驗(yàn)內(nèi)容1基本要求:(1)輸入兩個(gè)對(duì)手名字,然后進(jìn)入游戲界面。(2)用鼠標(biāo)點(diǎn)擊的方式在棋盤上擺放棋子,黑白交替。(棋盤15*15)(3)可以悔棋。(4)五子連在一起的時(shí)候能判斷勝利,并且顯示出勝利者的名字。(5)能夠?qū)⑵寰值慕Y(jié)果保存,保存該棋局結(jié)束的狀態(tài)、對(duì)手名字、 棋局名字(棋局名字在保存時(shí)由用戶在相應(yīng)的界面下添入)(此功能要求用數(shù)據(jù)庫(kù)和文件兩種技術(shù)實(shí)現(xiàn))。(6)棋局能夠恢復(fù),即重新打開,打開后出現(xiàn)棋局結(jié)束的狀態(tài)、對(duì)手名字(此功能要求用數(shù)據(jù)庫(kù)和文件兩種技術(shù)實(shí)現(xiàn))。2其它要求:(1)界面友好、漂亮。(2)程序盡可能無bug。(3)程序健壯性強(qiáng),基本上達(dá)到無論用戶如何操作,軟件都不出錯(cuò),都有相應(yīng)的處理方法。3設(shè)計(jì)步驟(1)首先做界面界面包括幾個(gè)窗體,窗體上有相應(yīng)的控件。因?yàn)樾枰嬈灞P,所以必須有圖形容器,這里用picturebox框第一個(gè)窗體是登陸界面,因?yàn)橥婕倚彰枰诔绦蛑胁粩嘧儞Q,因此需要將玩家名定義成兩個(gè)變量,又因?yàn)檫@兩個(gè)變量在幾個(gè)窗體中都用到,所以在模塊中定義為全局變量當(dāng)五子棋主界面啟動(dòng)之后,首先系統(tǒng)要自動(dòng)繪制棋盤。思路:用直線繪制棋盤-直線是由點(diǎn)繪制的-每個(gè)點(diǎn)都有坐標(biāo)-改變坐標(biāo)系為用戶坐標(biāo)系用戶坐標(biāo)系的定義要在窗體啟動(dòng)時(shí)實(shí)現(xiàn)。(2)坐標(biāo)系的兩個(gè)頂點(diǎn)坐標(biāo)的確定?考慮到五子棋15*15,確定棋盤坐標(biāo)系頂點(diǎn)為(-8, 8),(8, -8)(3)棋子的繪制與存儲(chǔ)棋子的繪制用實(shí)心圓模式,顏色為黑色及白色兩種。棋子在內(nèi)存中的存儲(chǔ)方式:因?yàn)楸硎靖鱾€(gè)棋子的數(shù)據(jù)類型都相同,所以考慮用數(shù)組存儲(chǔ),因?yàn)槠灞P是二維的,因此棋子用二維數(shù)組a存儲(chǔ)。a(i,j)表示用戶坐標(biāo)(i,j)的棋子狀態(tài),0表示此處無棋子,1表示此處為黑子,2表示此處為白子,下棋初始時(shí),棋盤所有位置的初始狀態(tài)都為0(4)下棋子的步驟鼠標(biāo)點(diǎn)擊棋盤交叉點(diǎn)附近的位置,系統(tǒng)應(yīng)實(shí)現(xiàn)自動(dòng)識(shí)別鼠標(biāo)點(diǎn)擊位置附近的交叉點(diǎn)解決方法:坐標(biāo)系的變換已經(jīng)將棋盤交叉點(diǎn)坐標(biāo)整數(shù)化,因此系統(tǒng)所需要實(shí)現(xiàn)的功能即是將鼠標(biāo)所點(diǎn)擊的位置坐標(biāo)化為整數(shù)即可,例如將(6.2, -5.3)變成(6, -5)。在交叉點(diǎn)上交替下黑白棋子。解決方法:定義一個(gè)邏輯數(shù)據(jù)類型變量blackwhite,該變量的值為真時(shí)下黑子,為假時(shí)下白子,每下一個(gè)棋子,該變量的值都要取反(NOT)。(5)判斷贏棋每次下子時(shí)都必須進(jìn)行贏棋判斷,判斷的依據(jù)是5個(gè)子按照橫線、豎線或斜線連成一行。解決方法:2層循環(huán)。當(dāng)有一方勝利時(shí),棋局結(jié)束,此時(shí)在棋盤上繼續(xù)點(diǎn)擊,將不再下棋。解決方法:設(shè)置一個(gè)邏輯變量wuziqi,其值為真時(shí)說明棋局沒有結(jié)束,可以在棋盤上放棋子,該值為假時(shí),說明該棋局結(jié)束,不能放棋子。(6)五子棋保存棋局思路:保存棋局的功能即把內(nèi)存中與棋局相關(guān)的數(shù)據(jù)(棋局名稱、棋子位置、棋子顏色、棋局狀態(tài)(即棋局是否結(jié)束)存入外存中,以便以后能夠恢復(fù)棋局。保存的實(shí)現(xiàn)用兩種技術(shù)實(shí)現(xiàn):文件和數(shù)據(jù)庫(kù)。采用數(shù)據(jù)庫(kù)技術(shù)實(shí)現(xiàn)棋局保存:數(shù)據(jù)庫(kù)設(shè)計(jì):數(shù)據(jù)表字段:棋局名、x坐標(biāo)、y坐標(biāo)、該點(diǎn)狀態(tài)值、下棋狀態(tài)。每條記錄表示棋盤上一個(gè)存儲(chǔ)的點(diǎn)的信息。 要實(shí)現(xiàn)用數(shù)據(jù)庫(kù)保存數(shù)據(jù),就必須使程序連接到數(shù)據(jù)庫(kù)上,這里用的是data控件,通過在程序中對(duì)data控件屬性的設(shè)置來連接數(shù)據(jù)庫(kù)、數(shù)據(jù)表。首先判斷如果輸入的棋局名和當(dāng)前記錄的棋局名相等,說明表中有輸入棋局名對(duì)應(yīng)的棋局信息,將其刪除,判斷過程是將用戶輸入的棋局名(字符串)從記錄集(即表)的棋局字段頂端至下逐一比較在表的最后,也就是最后一條記錄后加上新保存棋局的各條記錄因?yàn)槠灞P上空點(diǎn)居多,大部分點(diǎn)的信息為0,因此只需保存有棋子的點(diǎn)的信息用文件技術(shù)進(jìn)行棋局保存,思路相同。(7)五子棋恢復(fù)棋局思路:首先從數(shù)據(jù)庫(kù)文件中找到要恢復(fù)棋局的數(shù)據(jù)(即曾經(jīng)保存的數(shù)據(jù)),然后把這些數(shù)據(jù)賦值給內(nèi)存中相應(yīng)的數(shù)組或者變量中,按照這些數(shù)據(jù)重新繪制棋盤和棋子,即完成了對(duì)棋局的恢復(fù)。窗體啟動(dòng)事件應(yīng)該完成的事情:組合框中應(yīng)該顯示曾經(jīng)保存的棋局名。因?yàn)槊看伪4嫫寰謺r(shí),都是將棋局所有棋子的記錄添加在表的最后,因此表中關(guān)于棋局名的記錄只能是類似于aaabbbbccccc的形式,而不可能是abbcacc的形式,根據(jù)這個(gè)特點(diǎn)編程序取出表中不同的棋局名。具體算法:用一個(gè)字符串變量strfile初始值為空,從表的頂端向下依次移動(dòng)記錄指針,如果當(dāng)前記錄的棋局名字段和strfile不相等,說明進(jìn)入另一個(gè)棋局的記錄中,將該棋局記錄的棋局名賦值給strfile,并加入到組合框中,一直到表中最后一個(gè)記錄因?yàn)橐獜臄?shù)據(jù)庫(kù)中取出相關(guān)數(shù)據(jù)到a數(shù)組中,因此要將a數(shù)組所有數(shù)據(jù)清零。要建立一個(gè)data控件,與數(shù)據(jù)庫(kù)連接起來,而后識(shí)別棋局(即表中的棋局名字段與在列表框中選擇的棋局名比較),將數(shù)據(jù)庫(kù)該棋局中所有信息都賦值給a數(shù)組及相關(guān)變量。剛才僅僅是數(shù)據(jù)的恢復(fù),即將數(shù)據(jù)庫(kù)中已經(jīng)保存過的數(shù)據(jù)恢復(fù)到內(nèi)存中,下一步應(yīng)該根據(jù)內(nèi)存中的數(shù)據(jù)重新繪制棋盤以及棋子。重新繪制棋盤是獨(dú)立的一塊功能,因此考慮用全局子過程來實(shí)現(xiàn),該子過程定義在模塊中。思路如下:清屏繪制棋盤根據(jù)a數(shù)組中的每一項(xiàng)的兩個(gè)下標(biāo)來決定繪制棋子的位置,根據(jù)每一項(xiàng)的值是1還是2來決定在該位置繪制何顏色的棋子。決定該黑白方走的blackwhite變量當(dāng)時(shí)沒有保存,可以采用在數(shù)據(jù)庫(kù)中保存的方式來解決,本例中解決方法是通過數(shù)黑白棋子個(gè)數(shù)來決定恢復(fù)棋局

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論