-C 語言程序設(shè)計.ppt_第1頁
-C 語言程序設(shè)計.ppt_第2頁
-C 語言程序設(shè)計.ppt_第3頁
-C 語言程序設(shè)計.ppt_第4頁
-C 語言程序設(shè)計.ppt_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、+語言程序設(shè)計,主講教師:林清瀅 授課對象:軟件工程專業(yè),第 1 章 概 述 Chapter 1 Introduction,教學(xué)內(nèi)容 程序設(shè)計語言發(fā)展 過程化程序設(shè)計 對象化程序設(shè)計 C+編程流程, 程序設(shè)計語言發(fā)展,機器語言 匯編語言 高級語言,在程序設(shè)計語言發(fā)展初期的十來年中,人們對語言研究的注意力主要放在新語言成分及擁有新的語言成分的語言上,而極少從軟件開發(fā)及程序設(shè)計方法的角度來設(shè)計語言。1968年E.W.Dijkstra給COMM.ACM雜志編緝寫了一封信,指出了語言中轉(zhuǎn)向語句使用上帶來的問題,從而引發(fā)了程序設(shè)計語言中要不要使用轉(zhuǎn)向語句的討論,這場討論使人們開始注重對程序設(shè)計方法進(jìn)行研

2、究,從而導(dǎo)致了結(jié)構(gòu)化程序設(shè)計這一新的程序設(shè)計方法問世 結(jié)構(gòu)化程序設(shè)計語言:Pascal 、C,1970年,AT 1983年正式取名為C+;從1989年開始C+語言的標(biāo)準(zhǔn)化工作;于1998年11月被國際標(biāo)準(zhǔn)化組織(ISO)批準(zhǔn)為國際標(biāo)準(zhǔn),成為目前的標(biāo)準(zhǔn)C+。 當(dāng)面向?qū)ο蠹夹g(shù)得到認(rèn)可后,許多支持面向過程方法和結(jié)構(gòu)化程序設(shè)計方法的語言,如 Pascal、Basic等,也都和C語言一樣,擴充了對面向?qū)ο蠹夹g(shù)的支持。這樣的程序設(shè)計語言有Delphi 、Visual Basic等。,同時,隨著Internet網(wǎng)絡(luò)的快速發(fā)展,網(wǎng)絡(luò)編程語言需求越來越大,1995年SUN公司推出了Java語言。Java語言是一

3、種純粹型面向?qū)ο蟪绦蛟O(shè)計語言,Java語言的最大特點是跨平臺性和安全性。Java語言在電子商務(wù)等方面的應(yīng)用非常廣泛。,標(biāo)準(zhǔn)C+優(yōu)勢: 標(biāo)準(zhǔn)C+具有更強的可移植性,豐富的標(biāo)準(zhǔn)庫資源,使它更能抽象和便捷地編程。 C+是一種編程靈活、運行效率高,它可進(jìn)行多種方法編程;既可用于面向過程的結(jié)構(gòu)化程序設(shè)計,又可用于面向?qū)ο蟮某绦蛟O(shè)計。適用于商業(yè)處理、科學(xué)計算、系統(tǒng)應(yīng)用等重要領(lǐng)域。,過程化程序設(shè)計,1. 基于過程的程序設(shè)計 在二十世紀(jì)五六十年代,一個軟件項目往往是由單個人獨立完成,當(dāng)時人們認(rèn)為寫出的程序只要能在計算機上得出正確的結(jié)果,程序的寫法可以不受任何約束。然而對于大型的、需要多人完成的項目,這種作坊式

4、的開發(fā)方法顯然行不通。于是人們開始嘗試把其它工程領(lǐng)域中行之有效的方法應(yīng)用到軟件開發(fā)中來,2. 結(jié)構(gòu)化程序設(shè)計 在二十世紀(jì)六七十年代,Yourdon E. 和 Constantine L. 等人借鑒工廠利用流水線組織生成的方法,提出了結(jié)構(gòu)化程序開發(fā)技術(shù),利用抽象模型的概念,按照數(shù)據(jù)傳遞、變換的關(guān)系,自頂向下、逐層細(xì)化地將系統(tǒng)分解成層級結(jié)構(gòu)的模塊,每個模塊實現(xiàn)為一個函數(shù)或過程。 這種方法最大的特點是數(shù)據(jù)和過程的分離,整個系統(tǒng)由一組被動的數(shù)據(jù)和一組能動的過程組成,其中數(shù)據(jù)表示某種信息,而過程完成對數(shù)據(jù)一定的處理。 系統(tǒng)運行時,輸入的數(shù)據(jù)從一個過程流向下一個過程,這好比流水線上的生產(chǎn)資料和半成品從一個

5、工段到下一個工段。,程序控制結(jié)構(gòu),設(shè)計思路: 自頂向下、逐步求精,采用模塊分解。 程序結(jié)構(gòu): 按功能劃分為若干個基本模塊,形成一個樹狀結(jié)構(gòu)。 各模塊間的關(guān)系盡可能簡單,功能上相對獨立; 每一模塊內(nèi)部均是由順序、選擇和循環(huán)三種基本結(jié)構(gòu)組成,優(yōu)點: 能有效地將一個較復(fù)雜的程序系統(tǒng)設(shè)計任務(wù)分解成許多易于控制和處理的子任務(wù),便于開發(fā)和維護(hù)。 缺點: 可重用性差、難以開發(fā)大型軟件 把數(shù)據(jù)和處理數(shù)據(jù)的過程分離為相互獨立的實體,當(dāng)數(shù)據(jù)結(jié)構(gòu)改變時,所有相關(guān)的處理過程都要進(jìn)行相應(yīng)的修改。程序=(算法)+(數(shù)據(jù)結(jié)構(gòu)),例如:考慮一個銀行系統(tǒng),該系統(tǒng)允許顧客開設(shè)不同類型的銀行賬戶,包括現(xiàn)金賬戶、支票賬戶和貸款賬戶,

6、同時允許顧客存款、取款和轉(zhuǎn)帳。 首先考慮數(shù)據(jù)結(jié)構(gòu): struct account char *name; / 賬戶 unsigned long accountId; / 賬號 float balance; /余額 float interestYTD; / 年利息 char accountType; / 賬戶類型(現(xiàn)金x、支票z和貸款d) ;,再考慮用三個過程分別負(fù)責(zé)存款、取款和轉(zhuǎn)帳。我們可以三個C函數(shù): MakeDeposit ( ) WithDraw ( ) Transfer ( ) 這種數(shù)據(jù)結(jié)構(gòu)與過程分離有很多問題,例如增加一種賬戶類型工資賬戶(g),則三個函數(shù)都必須重新編寫。,對象化程序

7、設(shè)計方法,對象是OOP方法中最基本和最核心的概念。 從程序設(shè)計的本質(zhì)上看:對象是把數(shù)據(jù)和處理數(shù)據(jù)的過程當(dāng)成一個整體。 (在C+中,對象=數(shù)據(jù)+函數(shù)) 類是OOP方法中程序設(shè)計的主體。 對同一類型對象抽象出其共性,形成類。 類是對象的抽象,而對象是類的實例,C+編程流程,在Windows 環(huán)境下支持C+的集成開發(fā)環(huán)境有: Microsoft Visual C+ 6.0 (VC6) Borland C+ Builder 6.0 (BCB6) Microsoft Visual C+. NET,一、在BCB6中開發(fā)C+程序: 1、創(chuàng)建Console工程(控制臺應(yīng)用程序),系統(tǒng)將會創(chuàng)建源程序文件(.cp

8、p)、工程文件(.bpr) 注:對于多個工程的應(yīng)用程序,將會創(chuàng)建工程組文件(.bpg) 2、工程管理可選擇菜單(View|Project Manager)彈出工程管理窗口進(jìn)行管理。,3、編程過程 編輯:將C+語言源程序通過鍵盤輸入到計算機中,并以文件的形式存入到磁盤中(.cpp) 編譯(compile):即將源程序翻譯成機器語言程序的過程。編譯出來的程序稱為目標(biāo)程序(.obj) 連接(link或make或build):編譯后生成的目標(biāo)文件經(jīng)過連接后生成最終的可執(zhí)行程序(.exe) 運行或調(diào)試 注:make:若文件有更改過,則會編譯你這一次更改過的文件,然后連接。 build:是對所有文件全部重

9、新編譯后鏈接。,二、最小樣板程序 /在屏幕上輸出Hello World并換行 #include int main() std:coutHello World.n; ,C+為了解決名稱的沖突,使用名空間機制,C+標(biāo)準(zhǔn)庫提供的類和函數(shù)都是在std名空間中聲明的,因為cout是C+標(biāo)準(zhǔn)庫中的輸出流類對象。,預(yù)編譯指令 聲明該程序要使用的外部文件iostream.h ,該文件包含了輸入cin和輸出cout的定義。 在程序編譯之前把指定文件內(nèi)容復(fù)制到此處,注釋 第一種形式: 以 ” / ” 開始至行末,注釋 第二種形式: /* 之間可括住多行 */,函數(shù)是C+程序基本運行單位,一般形式為: 類型 函數(shù)名 ( 參數(shù)表 ) 語句序列 C+程序中有且僅有一個main函數(shù),/在屏幕上輸出Hello World并換行 #include using namespace std; /使得后面的名稱若沒有定義,則會/自動至std的名空間中去找 int main() coutHello World.n; ,三、C+程序的結(jié)構(gòu)特點,1、C+程序是由函數(shù)組成。必須有一個main函數(shù),main函數(shù)可位于程序的任何位置。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論