




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、計(jì)算機(jī)導(dǎo)論計(jì)算機(jī)導(dǎo)論第第第第第第4 4 4章章章章章章高級(jí)語言軟件開發(fā)能高級(jí)語言軟件開發(fā)能高級(jí)語言軟件開發(fā)能高級(jí)語言軟件開發(fā)能高級(jí)語言軟件開發(fā)能高級(jí)語言軟件開發(fā)能力培養(yǎng)力培養(yǎng)力培養(yǎng)力培養(yǎng)力培養(yǎng)力培養(yǎng) 本章學(xué)習(xí)目標(biāo)本章學(xué)習(xí)目標(biāo) 高級(jí)語言的分類、特點(diǎn)和選擇 常用編程語言的特點(diǎn) Turbo C的基本結(jié)構(gòu)和語句 面向?qū)ο蟮木幊谭椒?高級(jí)語言編程技術(shù)與編程風(fēng)格 本章內(nèi)容安排本章內(nèi)容安排本章內(nèi)容安排本章內(nèi)容安排本章內(nèi)容安排本章內(nèi)容安排 4.1 計(jì)算機(jī)程序和高級(jí)語言 人們?cè)谙嗷ソ徽剷r(shí)使用的是相互理解的語言,如漢語、英語、俄語等,它們統(tǒng)稱為自然語言。人們用以同計(jì)算機(jī)“交談”的語言,稱之計(jì)算機(jī)語言。 計(jì)算機(jī)每做
2、的一次動(dòng)作,一個(gè)步驟,都是按照已經(jīng)用計(jì)算機(jī)語言編好的程序來執(zhí)行的,程序是計(jì)算機(jī)要執(zhí)行的有序指令的集合,而程序全部都是用我們所掌握的語言來編寫的。所以人們要控制計(jì)算機(jī)一定要通過計(jì)算機(jī)語言向計(jì)算機(jī)發(fā)出命令。 計(jì)算機(jī)所能識(shí)別的語言只有機(jī)器語言。 計(jì)算機(jī)語言計(jì)算機(jī)語言 機(jī)器語言(由0和1構(gòu)成的代碼)匯編語言(英文縮寫的助記符) 高級(jí)語言直接對(duì)硬件操作 1、采用比較接近人們習(xí)慣的自然語言2、具有很大的通用性(即不受具體機(jī)器指令的約束)3、 面向算法編寫程序高級(jí)語言按轉(zhuǎn)換方式可將它們分為兩類 : (1)解釋類:應(yīng)用程序源代碼一邊由相應(yīng)語言的解釋器“翻譯”成目標(biāo)代碼,一邊執(zhí)行。 效率比較低,而且不能生成可獨(dú)
3、立執(zhí)行的可執(zhí)行文件,應(yīng)用程序不能脫離其解釋器,但這種方式比較靈活,可以動(dòng)態(tài)地調(diào)整、修改應(yīng)用程序。 (2)編譯類:編譯是指在應(yīng)用源程序執(zhí)行之前,就將程序源代碼“翻譯”成目標(biāo)代碼,因此其目標(biāo)程序可以脫離其語言環(huán)境獨(dú)立執(zhí)行。 現(xiàn)在大多數(shù)的編程語言都是編譯型的。 4.1.1 程序設(shè)計(jì)語言的特點(diǎn)程序設(shè)計(jì)語言的特點(diǎn)(1)名字說明 預(yù)先說明程序中使用的對(duì)象的名字,使編譯程序能檢查程序中出現(xiàn)的名字的合法性,從而能幫助程序員發(fā)現(xiàn)和改正程序中的錯(cuò)誤。 (2)類型說明 通過類型說明用戶定義了對(duì)象的類型,從而確定了該對(duì)象的使用方式。編譯程序能夠發(fā)現(xiàn)程序中對(duì)某個(gè)特定類型的對(duì)象使用不當(dāng)?shù)腻e(cuò)誤,因此有助于減少程序錯(cuò)誤。 (
4、3)初始化 為減少發(fā)生錯(cuò)誤的可能性,應(yīng)該強(qiáng)迫程序員對(duì)程序中說明的所有變量初始化。 4.1.1 程序設(shè)計(jì)語言的特點(diǎn)程序設(shè)計(jì)語言的特點(diǎn)(4)程序?qū)ο蟮木窒扌?程序設(shè)計(jì)的一般原理是,程序?qū)ο蟮拿謶?yīng)該在靠近使用它們的地方引入,并且應(yīng)該只有程序中真正需要它們的那些部分才能訪問它們。即局部化和信息隱蔽原理。 (5)程序模塊 模塊有一系列優(yōu)點(diǎn):第一,可以構(gòu)造抽象數(shù)據(jù)類型,用戶可以對(duì)這種數(shù)據(jù)進(jìn)行操作,而并不需要知道它們的具體表示方法;第二,可以把有關(guān)的操作歸并為一組,并且以一種受控制的方式共享變量;第三,這樣的模塊是獨(dú)立編譯的方便單元。 (6)循環(huán)控制結(jié)構(gòu) 4.1.1 程序設(shè)計(jì)語言的特點(diǎn)程序設(shè)計(jì)語言的特點(diǎn)(
5、7)分支控制結(jié)構(gòu) (8)異常處理 提供了相應(yīng)的機(jī)制,從而不必為異常處理過分增加程序長度,并且可以把出現(xiàn)異常的信息從一個(gè)程序單元方便地傳送到另一個(gè)單元。 (9)獨(dú)立編譯 獨(dú)立編譯意味著能分別編譯各個(gè)程序單元,然后再把它們集成為一個(gè)完整的程序。如果沒有獨(dú)立編譯的機(jī)制,就不是適合軟件工程需要的好語言。 4.1.2 程序設(shè)計(jì)語言的選擇程序設(shè)計(jì)語言的選擇 (2)可以使用的編譯程序 運(yùn)行目標(biāo)系統(tǒng)的環(huán)境中可以提供的編譯程序往往限制了可以選用的語言的范圍。 (3)可以得到的軟件工具 如果某種語言有支持程序開發(fā)的軟件工具可以利用,則目標(biāo)系統(tǒng)的實(shí)現(xiàn)和驗(yàn)證都變得比較容易。 (1)系統(tǒng)用戶的要求 如果所開發(fā)的系統(tǒng)由用
6、戶負(fù)責(zé)維護(hù),用戶通常要求用他們熟悉的語言書寫程序。 (4)工程規(guī)模 4.1.2 程序設(shè)計(jì)語言的選擇程序設(shè)計(jì)語言的選擇 (6)軟件可移植性要求 如果目標(biāo)系統(tǒng)將在幾臺(tái)不同的計(jì)算機(jī)上運(yùn)行,或者預(yù)期的使用壽命很長,那么選擇一種標(biāo)準(zhǔn)化程度高、程序可移植性好的語言就是很重要的。 (7)軟件的應(yīng)用領(lǐng)域 選擇語言時(shí)應(yīng)該充分考慮目標(biāo)系統(tǒng)的應(yīng)用范圍。 (5)程序員的知識(shí) 完全掌握一種新語言需要實(shí)踐。 4.2 常用編程語言簡(jiǎn)介 BASIC是一種易學(xué)易用的高級(jí)語言,它是Beginners All-Purpose Symbolic Instruction Code的縮寫,其含義是“初學(xué)者通用符號(hào)指令編碼”。它是從FOR
7、TRAN語言簡(jiǎn)化而來的,最初是美國Daltmouth學(xué)院為便于教學(xué)而開發(fā)的會(huì)話語言。它自1965年誕生以來,其應(yīng)用己遠(yuǎn)遠(yuǎn)超出教學(xué)范圍,并于1977年開始了標(biāo)準(zhǔn)化工作。 BASIC語言的特點(diǎn)是簡(jiǎn)單易學(xué),基本BASIC只有17種語句,語法結(jié)構(gòu)簡(jiǎn)單,結(jié)構(gòu)分明,容易掌握;具有人機(jī)會(huì)話功能,便于程序的修改與調(diào)試,非常適合初學(xué)者學(xué)習(xí)運(yùn)用。 BASIC的主要版本有:標(biāo)準(zhǔn)BASIC、高級(jí)BASIC、結(jié)構(gòu)化BASIC(如QBASIC、True BASIC、Turbo BASIC)、CAREALIZER、GFA BASIC、POWER BASIC,以及在Windows環(huán)境下運(yùn)行的Visual BASIC。 FOR
8、TRAN是 1954年問世, 于1957年由IBM公司正式推出,是最古老的高級(jí)程序語言, FORTRAN不便于進(jìn)行結(jié)構(gòu)化程序的設(shè)計(jì)和編寫。 FORTRAN是一種主要用于科學(xué)計(jì)算方面的高級(jí)語言。它是第一種被廣泛使用的計(jì)算機(jī)高級(jí)語言,并且至今仍富有強(qiáng)大的生命力。FORTRAN是英文Formula Translator的縮寫,其含義是“公式翻譯”,允許使用數(shù)學(xué)表達(dá)式形式的語句來編寫程序。 程序分塊結(jié)構(gòu)是FORTRAN的基本特點(diǎn),該語言書寫緊湊,靈活方便,結(jié)構(gòu)清晰,自誕生以來至今不衰,先后經(jīng)歷了FORTRAN II、FORTRAN IV、FORTRAN 77的發(fā)展過程,現(xiàn)又發(fā)展了FORTRAN結(jié)構(gòu)程序
9、設(shè)計(jì)語言。 COBOLCOBOL是英文Common Business Oriented Language的縮寫,其意為“面向商業(yè)的通用語言”。第一個(gè)COBOL文本于1960年推出,其后又修改和擴(kuò)充了十幾次,并逐步標(biāo)準(zhǔn)化。 COBOL語言的特點(diǎn)是按層次結(jié)構(gòu)來描述數(shù)據(jù),具有完全適合現(xiàn)實(shí)事務(wù)處理的數(shù)據(jù)結(jié)構(gòu)、具有更接近英語自然語言的程序設(shè)計(jì)風(fēng)格、有較強(qiáng)的易讀性,是世界上標(biāo)準(zhǔn)化最早的語言,通用性強(qiáng)。由于COBOL的這些特點(diǎn),使其成為數(shù)據(jù)處理方面應(yīng)用最為廣泛的語言。 然而,用COBOL編寫的程序不夠精練,程序文本的格式規(guī)定、內(nèi)容等都比較龐大,不便記憶。 PASCAL語言是系統(tǒng)地體現(xiàn)結(jié)構(gòu)程序設(shè)計(jì)思想的第一種
10、語言,既適用于數(shù)值計(jì)算,又適用于數(shù)據(jù)處理。PASCAL語言的特點(diǎn)是結(jié)構(gòu)清晰,便于驗(yàn)證程序的正確性,簡(jiǎn)潔、精致;控制結(jié)構(gòu)和數(shù)據(jù)類型都十分豐富,表達(dá)力強(qiáng)、實(shí)現(xiàn)效率高、容易移植。 PASCAL的成功在于它的以下特色:(1)PASCAL具有豐富的數(shù)據(jù)類型,有著像枚舉、子界、數(shù)組、記錄、集合、文件、指針等眾多的用戶自定義數(shù)據(jù)類型,能夠用來描述復(fù)雜的數(shù)據(jù)對(duì)象,十分便于書寫系統(tǒng)程序和應(yīng)用程序。(2)PASCAL提供的語言設(shè)施體現(xiàn)了結(jié)構(gòu)程序設(shè)計(jì)的原則,有著簡(jiǎn)明通用的語句,基本結(jié)構(gòu)少,但框架優(yōu)美,功能很強(qiáng);算法和數(shù)據(jù)結(jié)構(gòu)采用分層構(gòu)造,可自然地應(yīng)用自頂向下的程序設(shè)計(jì)技術(shù);程序可讀性好,編譯簡(jiǎn)單,目標(biāo)代碼效率較高。
11、 1C 語言的產(chǎn)生與發(fā)展 C 語言是1972年由美國的Dennis Ritchie設(shè)計(jì)發(fā)明的, 并首次在UNIX操作系統(tǒng)的 DEC PDP-11計(jì)算機(jī)上使用。它由早期的編程語言 BCPL( Basic Combined Programming Language) 發(fā)展演變而來。在1970年,AT&T貝爾實(shí)驗(yàn)室的Ken Thompson根據(jù)BCPL語言設(shè)計(jì)出較先進(jìn)的并取名為 B的語言, 最后導(dǎo)了C 語言的問世。 2C 語言的特點(diǎn) (1)C是中級(jí)語言 (2)C是結(jié)構(gòu)式語言 (3)C語言功能齊全 (4)C語言適用范圍大 Turbo C 概述 Turbo C 是美國Borland 公司的產(chǎn)品,
12、 Turbo C 2.0 則是該公司1989年出版的。Turbo C 2.0在原來集成開發(fā)環(huán)境的基礎(chǔ)上增加了查錯(cuò)功能, 并可以在Tiny模式下直接生成.COM (數(shù)據(jù)、代碼、堆棧處在同一64K 內(nèi)存中) 文件。 Turbo C 2.0可運(yùn)行于IBM-PC系列微機(jī), 包括XT, AT及IBM 兼容機(jī)。 此時(shí)要求DOS 2.0或更高版本支持, 并至少需要448K的RAM, 可在任何彩、單色80列監(jiān)視器上運(yùn)行。 Turbo C 2.0有六張低密軟盤(或兩張高密軟盤)。 4.2.6 Turbo C的基本結(jié)構(gòu) 1、程序的一般組成部分 2、關(guān)鍵字 3、標(biāo)識(shí)符 4、格式化輸入輸出函數(shù) 5、控制流程語句 1.
13、 Turbo C程序的一般組成部分程序的一般組成部分 Turbo C 2.0 象其它語言一樣按其規(guī)定的格式和提供的語句由用戶編寫應(yīng)用程序。請(qǐng)看下面一段Turbo C源程序。 /*Example program of Turbo C*/ #include /*包含文件說明*/ void lgc(void); /*子函數(shù)說明*/ char answer; /*定義全程變量*/ int main() /*主函數(shù)定義*/ char a; /*定義局部變量*/ clrscr(); gotoxy(12,3); puts(Welcome to use Turbo C2.0!); gotoxy(15, 13)
14、; printf(-Exit); gotoxy(15, 15); printf(-Continue); while(1) a=getch(); if(a=27) break; if(a=13) lgc(); if(answer=y|answer=Y) gotoxy(23,14); puts(Please Write to the Company); getch(); break; return(0); void lgc(void) clrscr(); gotoxy(12,8); printf(The Excellent Selection!); gotoxy(21,12); printf(Do
15、 you have any question?(Y/N); answer=getche(); 可以看出, Turbo C源程序主要有以下幾個(gè)特點(diǎn): (1) 程序一般用小寫字母書寫; (2).大多數(shù)語句結(jié)尾必須要用;作為終止符, 否則Turbo C 不認(rèn)為該語句結(jié)束; (3) 每個(gè)程序必須有一個(gè)而且只能有一個(gè)稱作主函數(shù)的main()函數(shù); (4)每個(gè)程序體(主函數(shù)和每個(gè)子函數(shù), 如上例中的main()函數(shù)和sub()函數(shù))必須用一對(duì)花括號(hào)和括起來; (5)一個(gè)較完整的程序大致包括:包含文件(一組#include語句)、用戶函數(shù)說明部分、全程變量定義、主函數(shù)和若干子函數(shù)組成。在主函數(shù)和子函數(shù)中又包
16、括局部變量定義、若干個(gè)Turbo C庫函數(shù)、控制流程語句、 用戶函數(shù)的調(diào)用語句等; (6)注釋部分包含在“/*”和“*/”之間, 在編譯時(shí)它被Turbo C編譯器忽略。 說明: 1. 象其它一些語言一樣,Turbo C的變量在使用之前必須先定義其數(shù)據(jù)類型,未經(jīng)定義的變量不能使用。定義變量類型應(yīng)在可執(zhí)行語句前面,如上例main()函數(shù)中的第一條語句就是變量定義語句,它必須放在第一個(gè)執(zhí)行語句clrscr()前面。 2. 在Turbo C中, 大、小寫字母是有區(qū)別的,相同字母的大、小寫代表不同的變量。 3. Turbo C程序的書寫格式非常靈活,沒有嚴(yán)格限制。 可以得出Turbo C源程序的一般形式
17、為:: 包含文件 子函數(shù)類型說明 全程變量定義 main( ) 局部變量定義 sub1() 局部變量定義 sub2( ) 局部變量定義 . subN( ) 局部變量定義 其中sub1(), ., subN()代表用戶定義的子函數(shù), 程序體指Turbo C 2.0提供的任何庫函數(shù)調(diào)用語句、控制流程語句或其它用子函數(shù)調(diào)用語句等。 2、關(guān)鍵字、關(guān)鍵字 所謂關(guān)鍵字就是已被Turbo C2.0本身使用, 不能作其它用途使用的字。例如關(guān)鍵字不能用作變量名、函數(shù)名等。 Turbo C2.0有以下關(guān)鍵字: Turbo C2.0擴(kuò)展的共11個(gè) asm _cs _ds _es _ss cdecl far near
18、 huge interrupt pascal 由ANSI標(biāo)準(zhǔn)定義的共32個(gè) auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if while static 3、標(biāo)識(shí)符、標(biāo)識(shí)符 所謂標(biāo)識(shí)符是指常量、變量、語句標(biāo)號(hào)以及用戶自定義函數(shù)的名稱。 Turbo C 2.0標(biāo)識(shí)符的定義十分靈活。作
19、為標(biāo)識(shí)符必須滿足以下規(guī)則: 1. 所有標(biāo)識(shí)符必須由一個(gè)字母(az, AZ)或下劃線(_)開頭; 2. 標(biāo)識(shí)符的其它部分可以用字母、下劃線或數(shù)字(09)組成; 3. 大小寫字母表示不同意義, 即代表不同的標(biāo)識(shí)符; 4. 標(biāo)識(shí)符只有前32個(gè)字符有效; 5. 標(biāo)識(shí)符不能使用Turbo C2.0的關(guān)鍵字。 下面舉出幾個(gè)正確和不正確的標(biāo)識(shí)符: 正確 不正確 smart 5smart decision bomb? key_board key.board FLOAT float 4、格式化輸入輸出函數(shù)、格式化輸入輸出函數(shù) Turbo C2.0 標(biāo)準(zhǔn)庫提供了兩個(gè)控制臺(tái)格式化輸入、 輸出函數(shù)printf( )
20、和scanf(), 這兩個(gè)函數(shù)可以在標(biāo)準(zhǔn)輸入輸出設(shè)備上以各種不同的格式讀寫數(shù)據(jù)。printf()函數(shù)用來向標(biāo)準(zhǔn)輸出設(shè)備(屏幕)寫數(shù)據(jù); scanf() 函數(shù)用來從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)上讀數(shù)據(jù)。 printf()函數(shù)是格式化輸出函數(shù), 一般用于向標(biāo)準(zhǔn)輸出設(shè)備按規(guī)定格式輸出信息。在編寫程序時(shí)經(jīng)常會(huì)用到此函數(shù)。printf()函數(shù)的調(diào)用格式為: printf(“”, ); scanf()函數(shù)是格式化輸入函數(shù), 它從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤) 讀取輸入的信息。其調(diào)用格式為: scanf(, ); 5、控制流程語句、控制流程語句主要有:條件語句、循環(huán)語句和開關(guān)語句。 (一)條件語句 象其它語言一樣Turbo
21、C2.0也提供條件語句。在Turbo C2.0中條件語句的一般形式為: if(表達(dá)式) 語句1; else 語句2; 注注 意意: : 1. 條件執(zhí)行語句中else 語句2;部分是選擇項(xiàng), 可以缺省, 此時(shí)條件語句變成: if(表達(dá)式) 語句1; 表示若表達(dá)式的值為非0則執(zhí)行語句1 , 否則跳過語句1繼續(xù)執(zhí)行。 2. 如果語句1或語句2有多于一條語句要執(zhí)行時(shí), 必須使用和 把這些語句包括在其中, 此時(shí)條件語句形式為: if(表達(dá)式) 語句體1; else 語句體2; 注注 意意: : 3. 條件語句可以嵌套, 這種情況經(jīng)常碰到, 但條件嵌套語句容易出錯(cuò),其原因主要是不知道哪個(gè)if對(duì)應(yīng)哪個(gè)els
22、e。 例如: if(x20|x-10) if(yx) printf(Good); else printf(Bad); 對(duì)于上述情況, Turbo C2.0規(guī)定: else語句與最近的一個(gè)if語句匹配, 上例中的else與if(yx)相匹配。為了使else與if(x20|x20|x-10) if(yx) printf(Good); else printf(Bad); 注注 意意: : 4. 可用階梯式if-else-if結(jié)構(gòu)。 階梯式結(jié)構(gòu)的一般形式為: if(表達(dá)式1) 語句1; else if(表達(dá)式2) 語句2; else if(表達(dá)式3) 語句3; . . else 語句n; 如果每一個(gè)條
23、件中有多于一條語句要執(zhí)行時(shí), 必須使用和把這些語句包括在其中。 循環(huán)語句 Turbo C2.0提供三種基本的循環(huán)語句: for語句、while語句和do-while語句。 1 for循環(huán) for循環(huán)是開界的,它是計(jì)數(shù)循環(huán)語句。它的一般形式為: for(; ; ) 語句; 例如: for(i=1; i=10; i+) 語句; for循環(huán)可以有多層嵌套。 例5: main() int i, j, k; printf(i j kn); for (i=0; i2; i+) for(j=0; j2; j+) for(k=0; k2; k+) printf(%d %d %dn, i, j, k); 輸出結(jié)
24、果為: i j k 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 while循環(huán) 的一般形式為: while (條件) 語句; 例: #include main() char c; c=0; /*初始化c*/ while(c!=X0D) /*回車結(jié)束循環(huán)*/ c=getche(); /*帶回顯的從鍵盤接收字符*/ Do-while循環(huán) 的一般格式為: do 語句; while (條件); 這個(gè)循環(huán)與while循環(huán)的不同在于: 它先執(zhí)行循環(huán)中的語句, 然后再判斷條件是否為真, 如果為真則繼續(xù)循環(huán); 如果為假, 則終止循環(huán)。因此, do-while
25、循環(huán)至少要執(zhí)行一次循環(huán)語句。 同樣當(dāng)有許多語句參加循環(huán)時(shí), 要用和把它們括起來。 開關(guān)語句開關(guān)語句格式為: switch(變量) case 常量1: 語句1或空; case 常量2: 語句2或空; case 常量n; 語句n或空; default: 語句n+1或空; 例: main() int test; for(test=0; test=10; test+) switch(test) /*變量為整型數(shù)的開關(guān)語句*/ case 1: printf(%dn, test); break; /*退出開關(guān)語句*/ case 2: printf(%dn, test); break; case 3: pr
26、intf(%dn, test); break; default: puts(Error); break; goto語句語句是一種無條件轉(zhuǎn)移語句, 與BASIC中的goto語句相似。goto 語句的使用格式為: goto 標(biāo)號(hào); 其中標(biāo)號(hào)是Turbo C2.0中一個(gè)有效的標(biāo)識(shí)符, 這個(gè)標(biāo)識(shí)符加上一個(gè): 一起出現(xiàn)在函數(shù)內(nèi)某處, 執(zhí)行g(shù)oto語句后, 程序?qū)⑻D(zhuǎn)到該標(biāo)號(hào)處并執(zhí)行其后的語句。另外標(biāo)號(hào)必須與goto語句同處于一個(gè)函數(shù)中, 但可以不在一個(gè)循環(huán)層中。通常goto語句與if條件語句連用, 當(dāng)滿足某一條件時(shí), 程序跳到標(biāo)號(hào)處運(yùn)行。 goto語句通常不用, 主要因?yàn)樗鼘⑹钩绦驅(qū)哟尾磺澹?且不易讀,
27、 但在多層嵌套退出時(shí), 用goto語句則比較合理。因此,在現(xiàn)代結(jié)構(gòu)化程序設(shè)計(jì)方法中,對(duì)goto 語句采取的策略是:有限制地使用goto語句。 4.3 面向?qū)ο缶幊陶Z言簡(jiǎn)介 什么是對(duì)象 一個(gè)對(duì)象是一個(gè)數(shù)據(jù)類型。對(duì)象就象記錄一樣,是一種數(shù)據(jù)結(jié)構(gòu)。 對(duì)象可被理解為可視化部件如按鈕、標(biāo)簽、表等。 對(duì)象最突出的特征有三個(gè):封裝性、繼承性、多態(tài)性。 把數(shù)據(jù)和代碼組合在同一個(gè)結(jié)構(gòu)中,這就是對(duì)象的封裝特性。 繼承性是指把一個(gè)新的對(duì)象定義成為已存在對(duì)象的后代;新對(duì)象繼承了舊類的一切東西。 多態(tài)性是在對(duì)象體系中把設(shè)想和實(shí)現(xiàn)分開的手段。 Visual Basic是Microsoft公司提供的Windows環(huán)境下的面
28、向?qū)ο蟮目梢暬_發(fā)工具,它提供了開發(fā)Windows應(yīng)用程序迅速、簡(jiǎn)捷的方法。不論是Windows應(yīng)用程序的專業(yè)開發(fā)人員還是初學(xué)者,Visual Basic 都提供了整套工具,以方便開發(fā)應(yīng)用程序。何謂 Visual Basic?“Visual”指的是開發(fā)圖形用戶界面 (GUI) 的方法。不需編寫大量代碼去描述界面元素的外觀和位置,而只要把預(yù)先建立的對(duì)象添加到屏幕上的一點(diǎn)即可。如果已使用過諸如 Paint 之類的繪圖程序,則實(shí)際上已掌握了創(chuàng)建用戶界面的必要技巧?!癇asic”指的是 BASIC 語言,一種在計(jì)算技術(shù)發(fā)展史上應(yīng)用得最為廣泛的語言。Visual Basic 在原有BASIC 語言的基礎(chǔ)
29、上進(jìn)一步發(fā)展,至今包含了數(shù)百條語句、函數(shù)及關(guān)鍵詞,其中很多和 Windows GUI 有直接關(guān)系。 Visual C+最主要技術(shù)特點(diǎn)是:可視化編程和支持面向?qū)ο蟮木幊碳夹g(shù),Visual C+提供了一系列可視化編程的工具。如APP Wizard 和Class Wizard 等,它們使得Windows編程更加直觀,它的面向?qū)ο蟮木幊碳夹g(shù)包裝了Windows內(nèi)在的復(fù)雜的運(yùn)行機(jī)制,使Windows編程更為簡(jiǎn)單易學(xué)。Visual C+就象一個(gè)奇妙的魔盒 ,在其美麗的外表下包裝著很大的“魔力”,掌握它,你將進(jìn)入Windows編程的自由王國。Visual C+最底硬件配置為:486CPU、100M硬盤空間、
30、16M內(nèi)存。軟件為:32位操作系統(tǒng)、Windows95/98及NT或更高版本。 Delphi的語言基礎(chǔ)是Pascal,但是它與傳統(tǒng)的Pascal語言有著根本性的差別。Delphi編程環(huán)境自動(dòng)為Delphi應(yīng)用程序生成應(yīng)用程序框架,這一框架正是應(yīng)用程序的“骨架”。在骨架上即使沒有附著任何東西,仍可以嚴(yán)格地按照設(shè)計(jì)運(yùn)行。編程人員所要做的工作只是在“骨架”中加入程序代碼,以實(shí)現(xiàn)自己的目的??梢哉f應(yīng)用程序框架通過提供所有應(yīng)用程序共有的東西,為用戶應(yīng)用程序的開發(fā)打下了良好的基礎(chǔ)。Delphi已經(jīng)做好了一切應(yīng)用程序的基礎(chǔ)工作程序框架本身就是一個(gè)已經(jīng)完成的可運(yùn)行的應(yīng)用程序,只是不處理任何事情。編程人員所需要
31、做的,只是在程序中加入完成功能所需的代碼而已??梢赃@么說,Delphi就是Visual Pascal。 打開一個(gè)新的空窗體,加入一個(gè)memo部件和四個(gè)按鈕,并排列整齊。改變按鈕部件的Name屬性,分別命名為Cut,Copy,Paste,Clear。您會(huì)發(fā)現(xiàn),當(dāng)Name屬性發(fā)生改變時(shí),Caption屬性將發(fā)生相應(yīng)的變化。在Caption屬性前加標(biāo)“&”號(hào)設(shè)立加速鍵,即稱為圖4.3.1的窗體。 將memo部件的ScrollBars屬性設(shè)為ScVertical,以便加上滾行條。將WordWrap屬性設(shè)置為True,這樣當(dāng)用戶輸入文本到達(dá)Memo部件的右邊緣時(shí)會(huì)自動(dòng)回行。將Line屬性第一行的
32、Memo1文本刪除,使得memo部件在初始顯示時(shí)為空的。 4.4 編程語言的風(fēng)格與原理 寫程序的風(fēng)格 1程序內(nèi)部的文檔所謂程序內(nèi)部的文檔包括恰當(dāng)?shù)臉?biāo)識(shí)符、適當(dāng)?shù)淖⒔夂统绦虻囊曈X組織等等。 2數(shù)據(jù)說明 數(shù)據(jù)說明的次序應(yīng)該標(biāo)準(zhǔn)化 。當(dāng)多個(gè)變量名在一個(gè)語句中說明時(shí),應(yīng)該按字母順序排列這些變量。設(shè)計(jì)時(shí)使用了一個(gè)復(fù)雜的數(shù)據(jù)結(jié)構(gòu),則應(yīng)該用注解說明用程序設(shè)計(jì)語言實(shí)現(xiàn)這個(gè)數(shù)據(jù)結(jié)構(gòu)的方法和特點(diǎn)。3語句構(gòu)造 構(gòu)造語句時(shí)應(yīng)該遵循的原則是,每個(gè)語句都應(yīng)該簡(jiǎn)單而直接 。 寫程序的風(fēng)格 4輸入輸出在設(shè)計(jì)和編寫程序時(shí)應(yīng)該考慮下述有關(guān)輸入輸出風(fēng)格的規(guī)則: 對(duì)所有輸入數(shù)據(jù)都進(jìn)行檢驗(yàn); 檢查輸入項(xiàng)重要組合的合法性; 保持輸入格式
33、簡(jiǎn)單; 使用數(shù)據(jù)結(jié)束標(biāo)記,不要要求用戶指定數(shù)據(jù)的數(shù)目; 明確提示交互式輸入的請(qǐng)求,詳細(xì)說明可用的選擇或邊界數(shù)值; 當(dāng)程序設(shè)計(jì)語言對(duì)格式有嚴(yán)格要求時(shí),應(yīng)保持輸入格式一致; 設(shè)計(jì)良好的輸出報(bào)表; 給所有輸出數(shù)據(jù)加標(biāo)志。 寫程序的風(fēng)格 5、效率 效率主要指處理機(jī)時(shí)間和存儲(chǔ)器空間兩個(gè)方面??蓮娜齻€(gè)方面進(jìn)一步討論效率問題:(1)程序運(yùn)行時(shí)間(2)存儲(chǔ)器效率 (3)輸入輸出的效率 高級(jí)語言的程序設(shè)計(jì)原理 完成給定任務(wù)的程序設(shè)計(jì)大致包括下列步驟:確定算法與數(shù)據(jù)結(jié)構(gòu);用流程圖表示編制程序的思路;用高級(jí)語言編制源程序。 所謂算法,是指精確定義的一系列規(guī)則,這些規(guī)則指定了一系列操作順序,以便在有限的步驟內(nèi)產(chǎn)生出所
34、求問題的解答。它們都必須滿足下列要求。(1)確定性(2)能行性(3)輸入:一個(gè)算法有零個(gè)以上的輸入。(4)輸出:一個(gè)算法產(chǎn)生一個(gè)或多個(gè)輸出。 (5)有窮性:高級(jí)語言的程序設(shè)計(jì)原理 程序設(shè)計(jì) 循環(huán)程序、子程序和分支程序是程序設(shè)計(jì)的最基本方法 。 人們常把程序定義為:程序=算法+數(shù)據(jù)結(jié)構(gòu)結(jié)構(gòu)程序的編寫原則是: (1)把整個(gè)任務(wù)看成是一個(gè)大系統(tǒng)。 (2)對(duì)任務(wù)分層,即把一個(gè)大系統(tǒng)分成幾個(gè)單元,再把這些單元各看成一個(gè)子系統(tǒng),再分層,直至被細(xì)化到最小單元。 (3)每個(gè)單元完成相對(duì)獨(dú)立的功能,可獨(dú)立編譯。 (4)單元與單元之間的接口信息要明確,要規(guī)定交換信息流的性質(zhì)、數(shù)量、規(guī)則和方向等各種約定。 程序設(shè)計(jì)
35、方法論 主要有兩種程序設(shè)計(jì)方法論,分別稱為自頂向下的程序開發(fā)方法和自底向上的程序開發(fā)方法。 按照軟件工程的方法論,編碼之前應(yīng)該經(jīng)過總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩個(gè)階段的充分設(shè)計(jì),編碼只不過是把設(shè)計(jì)結(jié)果翻譯成程序代碼。因此,不論采用上述哪種開發(fā)方法對(duì)程序的結(jié)構(gòu)和可讀性都不會(huì)有多大影響,在這種情況下,兩種開發(fā)方法的差別主要表現(xiàn)為測(cè)試策略的不同。 本章小結(jié)(1)計(jì)算機(jī)程序是有序指令的集合,而程序是計(jì)算機(jī)程序是有序指令的集合,而程序是用計(jì)算機(jī)語言編寫的。匯編語言與機(jī)器指令一用計(jì)算機(jī)語言編寫的。匯編語言與機(jī)器指令一一對(duì)應(yīng),仍是一種面向機(jī)器的語言。高級(jí)語言一對(duì)應(yīng),仍是一種面向機(jī)器的語言。高級(jí)語言獨(dú)立于具體機(jī)器,它是面向算法的,同時(shí)比較獨(dú)立于具體機(jī)器,它是面向算法的,同時(shí)比較接近自然語言,因而得到了廣泛的應(yīng)用。接近自然語言,因而得到了廣泛的應(yīng)用。 軟件開發(fā)人員應(yīng)關(guān)注程序設(shè)計(jì)語言的特點(diǎn)軟件開發(fā)人員應(yīng)關(guān)注程序設(shè)計(jì)語言的特點(diǎn)及其對(duì)軟件質(zhì)量的影響,從而在系統(tǒng)開發(fā)時(shí),及其對(duì)軟件質(zhì)量的影響,從而在系統(tǒng)開發(fā)時(shí),選擇適合的程序設(shè)計(jì)語言,以提高軟件開發(fā)效選擇適合的程序設(shè)計(jì)語言,以提高軟件開發(fā)效率和質(zhì)量。程序設(shè)計(jì)語言的特點(diǎn)主要集中在以率和質(zhì)量。程序設(shè)計(jì)語言的特點(diǎn)主要集中在
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 木聚糖酶產(chǎn)業(yè)分析報(bào)告
- 《藥事管理與法規(guī)》課程標(biāo)準(zhǔn)
- 剪發(fā)屬于合同范本
- 勞務(wù)合同范本定制
- 個(gè)人原因離職的辭職報(bào)告
- 各類模具加工合同范本
- 業(yè)務(wù)印章自查報(bào)告
- 接觸網(wǎng)中級(jí)工考試模擬題(附答案)
- 二手房房買賣合同范本
- 單位用工合同范本6
- 個(gè)人車輛出租合同范本
- 重慶市渝北區(qū)大灣鎮(zhèn)招錄村綜合服務(wù)專干(全考點(diǎn))模擬卷
- PhotoShop機(jī)試試題(帶素材)
- 教務(wù)處教學(xué)教案作業(yè)檢查記錄表
- 美甲基礎(chǔ)理論精品專業(yè)課件
- 監(jiān)護(hù)人考試試題含答案
- 冀教版四年級(jí)下冊(cè)英語全冊(cè)教學(xué)設(shè)計(jì)(經(jīng)典,可直接打印使用)
- 新編地圖學(xué)教程(第三版)毛贊猷_期末復(fù)習(xí)知識(shí)點(diǎn)總結(jié)
- 經(jīng)銷商授權(quán)協(xié)議合同書(中英文對(duì)照)
- 初三化學(xué)公式大全
- 安裝超載限制器方案
評(píng)論
0/150
提交評(píng)論