第一章面向?qū)ο蟪绦蛟O(shè)計(jì)_第1頁
第一章面向?qū)ο蟪绦蛟O(shè)計(jì)_第2頁
第一章面向?qū)ο蟪绦蛟O(shè)計(jì)_第3頁
第一章面向?qū)ο蟪绦蛟O(shè)計(jì)_第4頁
第一章面向?qū)ο蟪绦蛟O(shè)計(jì)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 面向?qū)ο蟪绦蛟O(shè)計(jì) 長春理工大學(xué) 計(jì)算科學(xué)技術(shù)學(xué)院 學(xué)習(xí)這門課程的目的 信息時代的要求 新的時代要求我們自覺地、主動地學(xué)習(xí)和掌握計(jì)算 機(jī)的基本知識和基本技能,并把它作為自己應(yīng)該具 備的基本素質(zhì)。 對于大學(xué)生的要求 對于大學(xué)生而言,掌握一門高級語言及其基本的編 程技能是必需的。大學(xué)學(xué)習(xí)編程語言可以培養(yǎng)科學(xué) 精神、鍛煉思維方法、養(yǎng)成嚴(yán)謹(jǐn)踏實(shí)的科研作風(fēng), 訓(xùn)練分析問題、解決問題的能力,這些都是你們?nèi)?后工作的基礎(chǔ)。 學(xué)習(xí)方法 1. 課上認(rèn)真聽講。 2. 課后勤思考,多實(shí)踐。 3. 注意總結(jié)。 考試成績 平時成績,上機(jī)程序,期末考試成績。 考試方式 平時出勤情況和課堂測驗(yàn)情況,上機(jī)和實(shí)驗(yàn)報(bào) 告完成情況

2、,期末考試。 第1章 概述(Introduction) v本章主要內(nèi)容本章主要內(nèi)容 v面向?qū)ο蟪绦蛘Q生的原因面向?qū)ο蟪绦蛘Q生的原因 v面向?qū)ο笳Z言的特征面向?qū)ο笳Z言的特征 vC+和和C v基礎(chǔ)知識基礎(chǔ)知識 v統(tǒng)一建模語言(統(tǒng)一建模語言(UML) 1.1 面向?qū)ο蟪绦蛟O(shè)計(jì)誕生的原因 語言是人類創(chuàng)造的工具,它用來表達(dá)意思,交流思想。 程序設(shè)計(jì)(編程)語言(programming language)是 人類與計(jì)算機(jī)交流的工具。人們用程序設(shè)計(jì)語言描述 需要解決的問題,用“語言翻譯/編譯器”加工以使計(jì) 算 機(jī)理解其描述,爾后就能使計(jì)算機(jī)代替人們工作了。 1.1.1 面向過程語言 vtc pasic ba

3、sic 等是面向過程的變成工具,等是面向過程的變成工具, 所謂過程就是程序段了,也可以是一個函數(shù),所謂過程就是程序段了,也可以是一個函數(shù), 講究的是自頂向下,逐步求精的編程理念講究的是自頂向下,逐步求精的編程理念 。 計(jì)算機(jī)語言的發(fā)展階段 1.機(jī)器語言(用二進(jìn)制代碼表示) 2.匯編語言(用符號表示) 3.高級語言(類似自然語言) 一串串由“0”和“1”組成的指令序列交由計(jì)算機(jī)執(zhí)行, 這 種語言,就是機(jī)器語言。 特點(diǎn): v可讀性差 v修改困難 v重用性差 v執(zhí)行效率高 1. 機(jī)器語言 2. 匯編語言 用一些簡潔的英文字母、符號串來替代一個特定 的指令的二進(jìn)制串,這種程序設(shè)計(jì)語言就稱為匯 編語言

4、特點(diǎn): v可讀性較好 v修改比較困難 v重用性比較差 v執(zhí)行效率較高 3. 高級語言 接近于數(shù)學(xué)語言或人的自然語言,同時又不依賴于 計(jì)算機(jī)硬件,編出的程序能在所有機(jī)器上通用,這 樣的語言叫作高級語言。 1954年,第一個完全脫離機(jī)器硬件的高級語言 FORTRAN問世了 1.2 C+前史 1970年,AT 1.4.3 編程風(fēng)格 1、注釋 (1)定義:為增加程序的可讀性而在程序中 附加的說明性文字。 (2)形式: 以符號/打頭,只占一行。C+特有的注釋 形式。 包含在符號/與/之間,可占多行。繼承 C的注釋形式。 使用空行顯示模塊充分而合理地使用程序注釋 給函數(shù)和全局?jǐn)?shù)據(jù)加注釋。不要注釋不好的代

5、碼,應(yīng)該重寫。不要與代碼矛盾。 2、命名(為常量、變量、函數(shù)取名) (1)名字必須符合標(biāo)識符的規(guī)范。 (2)標(biāo)識符:由字母、數(shù)字、下劃線組成,而且只 能以字母、下劃線打頭。 (3)名字不能是保留字(系統(tǒng)有固定用途的標(biāo)識 符)。 (4)字母的大小寫有區(qū)別。 (5)名字最好能表達(dá)一定的含義。 全局變量用具有描述意義的名字,局部變量用短名字。 函數(shù)采用動作性的名字。 3、在編程中,應(yīng)仔細(xì)研究編譯程序給出的錯誤信息和 警告信息,弄清楚每條信息的確切根源并予以解決。 4、用最規(guī)范的、最清晰的、最容易理解的方式寫程序。 5、隨時注意表達(dá)式計(jì)算過程和類型 6、友好的程序界面,程序界面的方便性及有效性。 兩條

6、原則: 1、簡單性原則 (1)可以用一句話說清楚的,不要用一頁紙去說明, 可以用一個簡單的語句完成的功能,不要用許多語句 來完成。 (2)不要寫太長的函數(shù),可以用函數(shù)調(diào)用來縮短函數(shù) 的定義。 (3)不要寫太長的語句,可以用多條語句來代替一條 語句。 (4)如果文件太長,將它分成幾個小文件。 (5)不要用太多的嵌套,可以考用switch語句或者引 入新的函數(shù)來解決問題。 (6)定義類時,一個文件放一個類的定義。 2、一致性原則 保持一致性??s進(jìn)形式顯示程序結(jié)構(gòu),使用一致的縮 行和加括號風(fēng)格。 1.5 程序與算法 1.5.1 程序 1、程序:數(shù)據(jù)+操作 計(jì)算機(jī)程序或者軟件程序(通常簡稱程序)是指一

7、 組指示計(jì)算機(jī)每一步動作的指令,通常用某種程序 設(shè)計(jì)語言編寫,運(yùn)行于某種目標(biāo)體系結(jié)構(gòu)上。 1.5.2 算法 算法是求解特定問題的一組有限的操作序列。 1、算法的特性、算法的特性 算法的特性包括: 確定性。 能行性。 輸入。 輸出。 有窮性。 滿足前四個特性的一組規(guī)則不能稱為算法,只能稱為計(jì) 算過程,操作系統(tǒng)是計(jì)算過程的一個例子,操作系統(tǒng)用 來管理計(jì)算機(jī)資源,控制作業(yè)的運(yùn)行,沒有作業(yè)運(yùn)行時, 計(jì)算過程并不停止,而是處于等待狀態(tài)。 1.5.3 編程與結(jié)構(gòu) 算法+數(shù)據(jù)結(jié)構(gòu)=程序 從動態(tài)性上說,程序仍然是計(jì)算機(jī)中的過程運(yùn)行體, 即操作系統(tǒng)中的進(jìn)程。 從靜態(tài)上說,程序不再是單純的過程體(操作序列) 了,

8、不再是單純的算法了,而是算法和數(shù)據(jù)結(jié)構(gòu)的有 機(jī)組織。程序含有更多的數(shù)據(jù)組織描述,而數(shù)據(jù)組織 描述又包含有一系列的操作。 1.6 過程化程序設(shè)計(jì) 1.6.1基于過程的程序設(shè)計(jì) 將復(fù)雜的過程簡單地按功能分層從而達(dá)到解 決問題的目的,這種思想就是過程化程序設(shè) 計(jì)的思想。 例 有一些日期數(shù)據(jù),放在數(shù)據(jù)文件abc.txt中, 這些日期的年,月,日數(shù)值加起來若等于15, 則收集,然后按日期從小到大的順序打印出 來。 1.6.2結(jié)構(gòu)化程序設(shè)計(jì) 3、結(jié)構(gòu)化程序設(shè)計(jì)方法主要體現(xiàn)在過程的功 能劃分與過程內(nèi)部的編寫規(guī)則上,因此它是 一種規(guī)范的過程化程序設(shè)計(jì)思想。 1、描述任何實(shí)體的操作序列只需用三種基本 控制結(jié)構(gòu)。

9、 順序 選擇 循環(huán) 2、程序設(shè)計(jì)中的各個過程體和組成部分應(yīng)以 模塊表示 高內(nèi)聚,低外聯(lián) 1.7 對象化程序設(shè)計(jì) 1.7.1基于對象的程序設(shè)計(jì) 程序 算法 抽象數(shù)據(jù)類型 1.7.2 面向?qū)ο蟮某绦蛟O(shè)計(jì) 1、對象:對象是用來描述客觀世界中的客體的 單位。 面向?qū)ο笫且环N程序設(shè)計(jì)思想,就是在程序空 間內(nèi),利用數(shù)據(jù)抽象的方法對客觀世界的實(shí)體進(jìn) 行描述,即將一種數(shù)據(jù)結(jié)構(gòu)和操作該數(shù)據(jù)結(jié)構(gòu)的 方法捆綁在一起,封裝在一個程序?qū)嶓w內(nèi),從而 實(shí)現(xiàn)了數(shù)據(jù)封裝和信息隱藏。 面向?qū)ο蟪绦蛟O(shè)計(jì)方法中的對象應(yīng)該具有如下特性: 自治性:指對象具有一定的獨(dú)立操作能力; 封閉性:指對象具有信息隱蔽的能力; 通信性:指對象具有與其

10、他對象通信的能力; 被動行:指對象的狀態(tài)改變需要外部的激發(fā); 暫存性:指程序中的對象是動態(tài)創(chuàng)建和消亡的。 2、類:是具有相同屬性特征的一組對象的抽象描述。 類是面向?qū)ο蟪绦虻奈ㄒ粯?gòu)造單位,面向?qū)ο蟪绦?看上去就是由一些類組成的。面向?qū)ο蟪绦蛟O(shè)計(jì)方 法對對象進(jìn)行分類,按照共同的屬性和行為特征把 對象分組,這樣,每個組內(nèi)的對象就都具有改組的 共同特性,把這些共同特性抽象出來,形成改組的 代表并加以描述,就形成了類。 類 數(shù)據(jù)和操作的封裝 3、繼承:類的復(fù)用 繼承是指一個對象直接使用另一對象的屬性和方法。 4、封裝: 就是把一個或者一些功能通過函數(shù)、類的方式封裝起 來,對外只提供一個簡單的接口, 調(diào)用者不需要知道 函數(shù)內(nèi)部如何實(shí)現(xiàn)的,只需要知道這個函數(shù)或者類提 供什么功能。 5、多態(tài)性: 多態(tài)性的定義是:同一操作作用于不同的類的實(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

提交評論