第7章程序設(shè)計(jì)基礎(chǔ)_第1頁
第7章程序設(shè)計(jì)基礎(chǔ)_第2頁
第7章程序設(shè)計(jì)基礎(chǔ)_第3頁
第7章程序設(shè)計(jì)基礎(chǔ)_第4頁
第7章程序設(shè)計(jì)基礎(chǔ)_第5頁
已閱讀5頁,還剩38頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第7章程序設(shè)計(jì)基礎(chǔ)第7章程序設(shè)計(jì)基礎(chǔ)7.1程序、程序設(shè)計(jì)與程序設(shè)計(jì)語言7.2程序設(shè)計(jì)的基本方法7.3程序設(shè)計(jì)的基本結(jié)構(gòu)7.4面向?qū)ο蟮某绦蛟O(shè)計(jì)簡(jiǎn)介

內(nèi)容7.1.1程序7.1.2程序設(shè)計(jì)7.1.3程序設(shè)計(jì)語言

7.1程序、程序設(shè)計(jì)與程序設(shè)計(jì)語言程序是計(jì)算機(jī)解決某個(gè)(或某些)問題,依照計(jì)算機(jī)能識(shí)別的語言編寫的語句序列。

7.1.1程序程序設(shè)計(jì)是用計(jì)算機(jī)語言來實(shí)現(xiàn)所求解問題算法的過程。程序設(shè)計(jì)是用一種計(jì)算機(jī)語言(程序設(shè)計(jì)語言)對(duì)求解的問題確定解題方式、設(shè)計(jì)程序流程圖、使問題內(nèi)容或解題計(jì)劃變?yōu)橛?jì)算機(jī)能夠接受的指令或語句序列的過程,通常也稱程序編制。它是創(chuàng)建計(jì)算機(jī)程序的技巧和科學(xué)。

7.1.2程序設(shè)計(jì)

程序設(shè)計(jì)語言是人與計(jì)算機(jī)交流的工具,是用來編寫計(jì)算機(jī)程序的工具。按照程序設(shè)計(jì)語言發(fā)展的過程,可以分為機(jī)器語言、匯編語言和高級(jí)語言3種。高級(jí)語言可以分為3類。⑴面向過程的語言⑵面向問題的語言⑶面向?qū)ο蟮恼Z言

7.1.3程序設(shè)計(jì)語言7.2.1面向計(jì)算機(jī)的程序設(shè)計(jì)7.2.2面向過程的程序設(shè)計(jì)7.2.3面向?qū)ο蟮某绦蛟O(shè)計(jì)7.2.4三種程序設(shè)計(jì)方法的比較7.2程序設(shè)計(jì)的基本方法

人類最早的編程語言是機(jī)器語言,就是計(jì)算機(jī)能直接識(shí)別和執(zhí)行的二進(jìn)制指令編寫的二進(jìn)制語言。用機(jī)器語言編寫程序工作量極大,所編寫的程序又難讀、難記、難修改,只有非常專業(yè)的計(jì)算機(jī)編程人員(軟件工程師)才能編寫程序。這一時(shí)期的程序設(shè)計(jì)屬于面向計(jì)算機(jī)的程序設(shè)計(jì),軟件開發(fā)的難度大,周期長(zhǎng),開發(fā)出來的軟件功能簡(jiǎn)單,界面也不友好,計(jì)算機(jī)的應(yīng)用僅限于科學(xué)計(jì)算。

7.2.1面向計(jì)算機(jī)的程序設(shè)計(jì)20世紀(jì)50年代后期,更接近人類思維習(xí)慣的高級(jí)語言誕生了,先是FORTRAN,隨后COBOL、PASCAL、BASIC等相繼誕生。在面向過程的程序設(shè)計(jì)中,由于數(shù)據(jù)和操作的分離,使程序的重用性差,維護(hù)代價(jià)高,不便于程序的更新?lián)Q代。為了克服這一缺點(diǎn),人們提出了面向?qū)ο蟮某绦蛟O(shè)計(jì)方法。

7.2.2面向過程的程序設(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)(Object-OrientedProgramming,OOP)思想是:注重對(duì)象,抽象成類。⒈對(duì)象對(duì)象是系統(tǒng)中描述客觀事物的實(shí)體,是由描述事物屬性結(jié)構(gòu)的數(shù)據(jù)和定義在數(shù)據(jù)上的一組操作組成的實(shí)體。

7.2.3面向?qū)ο蟮某绦蛟O(shè)計(jì)⒉類類是一組對(duì)象的抽象,是具有相同的屬性結(jié)構(gòu)和操作的一組對(duì)象的集合。⒊封裝封裝是OOP的一個(gè)重要特性,它是指對(duì)象在把數(shù)據(jù)與操作作為一個(gè)整體時(shí),其數(shù)據(jù)的表示方式及對(duì)數(shù)據(jù)的操作細(xì)節(jié)是盡可能地被隱藏的。

7.2.3面向?qū)ο蟮某绦蛟O(shè)計(jì)⒋繼承繼承是OOP的又一個(gè)重要特性,它是指特殊類的對(duì)象擁有其一般類的全部屬性結(jié)構(gòu)的操作行為。⒌多態(tài)性多態(tài)性也是OOP的又一個(gè)重要特性,它是指在一般類中定義的屬性或行為,被特殊類繼承之后,可以具有不同的數(shù)據(jù)類型或不同的行為。

7.2.3面向?qū)ο蟮某绦蛟O(shè)計(jì)

7.2.4三種程序設(shè)計(jì)方法的比較7.3.1順序結(jié)構(gòu)7.3.2選擇結(jié)構(gòu)7.3.3循環(huán)結(jié)構(gòu)

7.3程序設(shè)計(jì)的基本結(jié)構(gòu)順序結(jié)構(gòu)的程序其語句的執(zhí)行順序是自上而下順序執(zhí)行。例如某程序由3條語句組成,書寫順序?yàn)椋赫Z句1語句2語句3則該程序的執(zhí)行順序是先執(zhí)行語句1,然后執(zhí)行語句2,最后執(zhí)行語句3。

7.3.1順序結(jié)構(gòu)【例7.2】輸入任意兩個(gè)數(shù),計(jì)算它們的和、差、積、商。用QBASIC編制計(jì)算程序。程序如下:INPUT“X,Y=”;X,Y‘鍵盤輸入語句,程序運(yùn)行時(shí)輸入數(shù)據(jù)HE=X+YCHA=X-YJI=X*YSH=X/YPRINT“HE=”;HE,“CHA=”;CHA,“JI=”;JI,“SH=”;SHEND運(yùn)行結(jié)果:X,Y=15,3HE=18CHA=12JI=45SH=5

7.3.1順序結(jié)構(gòu)【例7.3】已知某圓的半徑為6,計(jì)算該圓的周長(zhǎng)和面積。用QBASIC編制計(jì)算程序。程序如下:CONSTPI=3.14159‘定義常數(shù)π值為3.14159LETR=6C=2*PI*RS=PI*R*RPRINT“R=”;R,“C=”;C,“S=”;SEND運(yùn)行結(jié)果:R=6C=37.69908S=113.09724

7.3.1順序結(jié)構(gòu)選擇結(jié)構(gòu)中的語句是否執(zhí)行是由某個(gè)條件來控制的,這種結(jié)構(gòu)有3種形式。

7.3.2選擇結(jié)構(gòu)⒈單分支選擇結(jié)構(gòu)單分支選擇結(jié)構(gòu)是按照某個(gè)條件是否成立來決定某條語句是否執(zhí)行。其流程圖如圖7.3所示?!纠?.4】輸入一個(gè)正整數(shù),若該數(shù)為奇數(shù),打印“*”;若為偶數(shù),則打印“**”。用QBASIC編寫程序。程序如下:INPUT“X”;XIFXMOD2=0THEN‘利用求余運(yùn)算,來判斷X是奇數(shù)還是偶數(shù)PRINT“**”

‘能被2整除,則是偶數(shù),打印出 2個(gè)*號(hào)ENDIFIFXMOD2<>0THENPRINT“*”

ENDIF⒈單分支選擇結(jié)構(gòu)雙分支選擇結(jié)構(gòu)是按照某個(gè)條件是否成立,從兩條語句中選取一條語句來執(zhí)行。其流程圖如圖7.4所示。

⒉雙分支選擇結(jié)構(gòu)【例7.5】輸入3個(gè)數(shù),用QBASIC編寫程序,求出其中的最大數(shù)和最小數(shù)。程序如下:INPUT“X,Y,Z”;X,Y,ZIFX>YTHENMAX=X:MIN=YELSEMAX=Y:MIN=XENDIFIFZ>MAXTHENMAX=ZENDIFIFZ<MINTHENMIN=ZENDIFPRINTMAX,MINEND

⒉雙分支選擇結(jié)構(gòu)

多分支選擇結(jié)構(gòu)是用n個(gè)條件控制n+1條語句。哪個(gè)條件成立,就去執(zhí)行相應(yīng)的語句。所有條件均不成立,則執(zhí)行第n+1條語句。其流程圖如圖7.5所示。

⒊多分支選擇結(jié)構(gòu)【例7.6】某學(xué)校要開教工運(yùn)動(dòng)會(huì),按照年齡對(duì)運(yùn)動(dòng)員進(jìn)行分組,28歲以下為A組,28~35歲為B組,35~45歲為C組,45~55歲為D組,55歲以上為E組。用QBASIC編程,輸入某教工年齡,對(duì)其進(jìn)行分組。程序如下:INPUT“age=”;ageSELECTCASEageCASEIS<28PRINT“A組”CASE28TO35PRINT“B組”CASE35TO45PRINT“C組”CASE45TO55PRINT“D組”CASEIS>55PRINT“E組”ENDSELECTEND

⒊多分支選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)是由某個(gè)條件(稱為循環(huán)控制條件)來控制某個(gè)語句或多個(gè)語句(稱為循環(huán)體)是否反復(fù)執(zhí)行。循環(huán)結(jié)構(gòu)也有3種形式:當(dāng)型循環(huán)結(jié)構(gòu)、直到型循環(huán)結(jié)構(gòu)和次數(shù)型循環(huán)結(jié)構(gòu)。⒈當(dāng)型循環(huán)結(jié)構(gòu)當(dāng)型循環(huán)結(jié)構(gòu)是先判斷控制循環(huán)的條件,若條件成立,則執(zhí)行循環(huán)體。返回再判斷控制循環(huán)的條件,反復(fù)上述操作,直至控制循環(huán)的條件不成立,退出循環(huán),執(zhí)行后續(xù)語句。其流程圖如圖7.6所示。

7.3.3循環(huán)結(jié)構(gòu)

7.3.3循環(huán)結(jié)構(gòu)

⒈當(dāng)型循環(huán)結(jié)構(gòu)【例7.7】求S=12+22+32+……+n2(設(shè)n為100),用QBASIC編其計(jì)算程序。S=0:N=0WHILEN<100N=N+1S=S+N*NWENDPRINT“S=”;SEND

⒉直到型循環(huán)結(jié)構(gòu)直到型循環(huán)結(jié)構(gòu)是執(zhí)行語句(循環(huán)體),然后判斷控制循環(huán)的條件,若條件成立,則繼續(xù)上述操作(循環(huán)),直到條件不成立時(shí)為止,退出循環(huán)。其流程圖如下?!纠?.8】在100~999之間找出所有“水仙花”數(shù)。所謂“水仙花”數(shù),就是指一個(gè)3位數(shù),其值等于各位數(shù)值的立方和,如371=33+73+13。用QBASIC編其計(jì)算程序。程序如下:N=100DOWHILEN<1000I=N/100‘求出百位數(shù)J=(N-I*100)/10‘求出十位數(shù)K=N-I*100-J*10‘求出個(gè)位數(shù)S=I*I*I+J*J*J+K*K*KIFN=STHENPRINTN;“

“;ENDIFN=N+1LOOPENDDOEND

⒉直到型循環(huán)結(jié)構(gòu)

⒊次數(shù)型循環(huán)結(jié)構(gòu)次數(shù)型循環(huán)結(jié)構(gòu)是反復(fù)執(zhí)行某語句(循環(huán)體)指定的次數(shù)。其流程圖如圖7.8所示。【例7.9】輸入任意10個(gè)數(shù),統(tǒng)計(jì)其中正數(shù)、負(fù)數(shù)和零的個(gè)數(shù)。用QBASIC編其計(jì)算程序。程序如下:X=0:Y=0:Z=0‘設(shè)統(tǒng)計(jì)正、負(fù)、零個(gè)數(shù)的變量初值為0FORI=1TO10‘控制循環(huán)次數(shù)為10次INPUT“A=”;A‘循環(huán)中嵌套選擇IFA>0THENX=X+1ELSEIFA<0THENY=Y+1ELSEZ=Z+1ENDIFNEXTPRINT“X=”;X,“Y=”;Y,“Z=”;ZEND

⒊次數(shù)型循環(huán)結(jié)構(gòu)【例7.10】求S=1!+2!+3!+……+10!。用QBASIC編其計(jì)算程序。程序如下:S=0FORI=1TO10‘循環(huán)的嵌套,外循環(huán)計(jì)算累加T=1FORJ=1TOI‘內(nèi)循環(huán)計(jì)算階乘T=T*JNEXTS=S+TNEXTPRINT“S=”;SEND

⒊次數(shù)型循環(huán)結(jié)構(gòu)【例7.11】求出3~100之間的所有素?cái)?shù)。用QBASIC編其計(jì)算程序。程序如下:FORI=3TO100STEP2‘只要檢測(cè)奇數(shù)即可X=0‘I不為素?cái)?shù)時(shí)的標(biāo)志FORJ=2TOI-1‘循環(huán)嵌套IFIMODJ=0THEN‘判斷I是否為素?cái)?shù)X=1‘是素?cái)?shù),則設(shè)X=1為標(biāo)志EXITFOR‘退出內(nèi)循環(huán)ENDIFNEXTJIFX<>1THEN‘X<>1,說明I為素?cái)?shù)PRINTI;“

‘打印出素?cái)?shù)ENDIFNEXTIEND

⒊次數(shù)型循環(huán)結(jié)構(gòu)7.4.1VisualBasic概述7.4.2VB的集成開發(fā)環(huán)境7.4.3面向?qū)ο蟪绦蛟O(shè)計(jì)7.4.4創(chuàng)建一個(gè)VB應(yīng)用程序

7.4面向?qū)ο蟮某绦蛟O(shè)計(jì)簡(jiǎn)介VisualBasic(簡(jiǎn)稱VB)是Microsoft公司成功開發(fā)的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言新產(chǎn)品。VisualBasic6.0具有以下特點(diǎn):⑴VB易學(xué)易用,功能強(qiáng)大。⑵Microsoft公司非常重視VB程序設(shè)計(jì)語言的開發(fā),在其中引用了最新的程序設(shè)計(jì)思想,并不斷把最新的技術(shù)運(yùn)用到VB中。⑶使用嵌入式VB語言VBforApplication(VBA)能對(duì)流行軟件(如MicrosoftOffice、AutoDesk、AutoCAD、CorelDRAW等)進(jìn)行二次開發(fā)。7.4.1VisualBasic概述⒈啟動(dòng)VB6.0和“新建工程”對(duì)話框通常采用二種方法:一是使用“開始”/“程序”/“MicrosoftVisualBasic6.0”;二是雙擊桌面上vb6.exe的快捷方式。⒉VB的主窗口主窗口也稱設(shè)計(jì)窗口。它由標(biāo)題欄、菜單欄、“標(biāo)準(zhǔn)”工具欄、窗體設(shè)計(jì)器、工程資源管理器窗口、屬性窗口、布局窗口、工具箱等組成。

7.4.2VB的集成開發(fā)環(huán)境(1)標(biāo)題欄(2)菜單欄(3)“標(biāo)準(zhǔn)”工具欄⑷窗體設(shè)計(jì)器⑸工程資源管理器窗口⑹屬性窗口⑺工具箱窗口⑻窗體布局窗口⑼代碼窗口⑽立即窗口

7.4.2VB的集成開發(fā)環(huán)境⒈對(duì)象(Object)在VB程序中,對(duì)象是指VB可以訪問的實(shí)體。如窗體、命令按鈕、標(biāo)簽、文件、變量等等。⒉屬性(Property)在VB6.0中,建立了對(duì)象后,可以通過兩種方法設(shè)置對(duì)象屬性。⑴在程序設(shè)計(jì)狀態(tài),通過屬性窗口對(duì)該對(duì)象的屬性進(jìn)行修改或設(shè)置。⑵在程序運(yùn)行狀態(tài),通過程序中的語句動(dòng)態(tài)地更改對(duì)象的屬性。語句的一般格式如下:對(duì)象名.屬性名稱=新設(shè)置屬性值

7.4.3面向?qū)ο蟪绦蛟O(shè)計(jì)⒊方法(Method)方法指的是對(duì)象所具有的動(dòng)作和行為。方法只能在代碼中使用,用下面的格式調(diào)用:對(duì)象名.方法名[參數(shù)]⒋事

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論