版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第11章程序設計基礎2024/4/2第11章程序設計基礎第11章程序設計基礎2024/4/1第11章程序設計基礎1 通過本章的教學,使學生理解軟件開發(fā)的整體流程,了解數(shù)據(jù)結(jié)構(gòu)的意義?;疽蠹敖虒W目的第11章程序設計基礎基本要求及教學目的第11章程序設計基礎2教學要點 本門課程的學習方法、指定本課程的課外閱讀書籍及閱讀成果的表現(xiàn)形式、考核方法,1學時;程序的思想、數(shù)據(jù)結(jié)構(gòu)、算法2學時。第11章程序設計基礎教學要點 本門課程的學習方法、指定本課程的課外閱讀書籍及3重點及難點重點: 軟件設計的總體流程、數(shù)據(jù)結(jié)構(gòu)及算法的理解。難點: 編寫程序,設計算法。
第11章程序設計基礎重點及難點重點:第11章程序設計基礎411.1程序設計概述11.1.1程序設計語言的分類
按照語言級別可以分為低級語言和高級語言。按照用戶的要求有過程式語言和非過程式語言之分。按照應用范圍,有通用語言與專用語言之分按照使用方式,有交互式語言和非交互式語言之分。按照成分性質(zhì),有順序語言、并發(fā)語言和分布語言之分。第11章程序設計基礎11.1程序設計概述11.1.1程序設計語言的分類第511.1.2程序設計的基本過程
程序設計包括分析問題、畫出程序的基本輪廓和實現(xiàn)該程序這三個基本步驟。1.分析問題3.實現(xiàn)程序2.形成程序的基本輪廓第11章程序設計基礎11.1.2程序設計的基本過程第11章程序設計基礎611.2軟件工程軟件工程是一門研究用工程化方法構(gòu)建和維護有效的、實用的和高質(zhì)量的軟件的學科。它涉及到程序設計語言、數(shù)據(jù)庫、軟件開發(fā)工具、系統(tǒng)平臺、標準、設計模式等方面。第11章程序設計基礎11.2軟件工程軟件工程是一711.2.1軟件工程的基本概念1.軟件軟件是計算機系統(tǒng)必不可少的組成部分,是程序、數(shù)據(jù)和相關(guān)文檔的集合。其中程序是軟件開發(fā)人員根據(jù)用戶需求開發(fā)的、用程序設計語言描述的、適合計算機執(zhí)行的指令序列;數(shù)據(jù)是使程序正常操縱信息的數(shù)據(jù)結(jié)構(gòu);文檔是與程序開發(fā)、維護和使用相關(guān)的各種圖文資料。第11章程序設計基礎11.2.1軟件工程的基本概念第11章程序設計基礎82.軟件危機隨著計算機應用的日益普及,軟件需求量急劇增大在軟件發(fā)展的初期許多程序員沒有接受過正規(guī)的教育,他們邊學習邊開發(fā);在組織方面,解決問題的方法就是增加更多的程序員到項目中去。結(jié)果,軟件通常時難以按時交付,程序也不能像用戶期望的那樣工作,程序很少能適應變化的環(huán)境,而且在軟件交付給用戶之后又會發(fā)現(xiàn)很多錯誤。更嚴重的是,許多程序的個體化特征使得它們最終成為不可維護的軟件,這就是“軟件危機”。第11章程序設計基礎2.軟件危機第11章程序設計基礎93.軟件工程
為了更有效地開發(fā)和維護軟件,逐漸形成了一門新的工程學科,即計算機軟件工程學,簡稱為軟件工程。第11章程序設計基礎3.軟件工程第11章程序設計基礎1011.2.2軟件開發(fā)方法軟件工程中的開發(fā)方法主要有3種:面向過程的方法面向?qū)ο蟮姆椒嫦驍?shù)據(jù)的方法
第11章程序設計基礎11.2.2軟件開發(fā)方法第11章程序設計基礎111.面向過程的方法面向過程的方法又稱為結(jié)構(gòu)化方法。它包括面向過程需求分析、面向過程設計、面向過程編程、面向過程測試、面向過程維護和面向過程管理,習慣上稱為結(jié)構(gòu)化分析、結(jié)構(gòu)化設計、結(jié)構(gòu)化編程、結(jié)構(gòu)化測試和結(jié)構(gòu)化維護。第11章程序設計基礎1.面向過程的方法第11章程序設計基礎122.面向?qū)ο蟮姆椒?/p>
面向?qū)ο蟮姆椒ò嫦驅(qū)ο笮枨蠓治?、面向?qū)ο笤O計、面向?qū)ο缶幊獭⒚嫦驅(qū)ο鬁y試、面向?qū)ο缶S護和面向?qū)ο蠊芾怼5?1章程序設計基礎2.面向?qū)ο蟮姆椒ǖ?1章程序設計基礎133.面向數(shù)據(jù)的方法面向數(shù)據(jù)的方法也稱為面向元數(shù)據(jù)的方法。元數(shù)據(jù)是關(guān)于數(shù)據(jù)的數(shù)據(jù),組織數(shù)據(jù)的數(shù)據(jù)。如數(shù)據(jù)庫概念設計中的實體名和屬性名、數(shù)據(jù)庫物理設計中的表名和字段名就是元數(shù)據(jù)。而一個具體的特定的實例就不是元數(shù)據(jù),而叫做對象或記錄,是被元數(shù)據(jù)組織或統(tǒng)帥的數(shù)據(jù)。第11章程序設計基礎3.面向數(shù)據(jù)的方法第11章程序設計基礎1411.2.3軟件生命周期1.軟件生命周期軟件生命周期是指軟件產(chǎn)品從提出開始直到停止使用的全過程。概括地講,軟件生命周期是由軟件定義、軟件開發(fā)和軟件維護3個時期組成,每個時期又進一步劃分成若干個階段。第11章程序設計基礎11.2.3軟件生命周期第11章程序設計基礎152.軟件生命周期模型軟件生命周期模型表達的是軟件生命周期內(nèi)各種活動如何組織,以及各個階段應該如何銜接,它給出的是直觀的圖示表達。目前,提出的軟件生命周期模型主要有瀑布模型、螺旋模型、原型模型、噴泉模型和職能模型等。第11章程序設計基礎2.軟件生命周期模型第11章程序設計基礎1611.2.4軟件測試軟件測試和軟件質(zhì)量是密不可分的。測試是手段,質(zhì)量是目的,因此軟件分析與測試已成為現(xiàn)代軟件工程學研究和應用的熱點。軟件測試是軟件質(zhì)量保證的關(guān)鍵,是對計劃、設計和編碼的最終檢查,是發(fā)現(xiàn)軟件中錯誤和缺陷的主要手段。一般情況下,軟件測試過程與整個軟件開發(fā)過程基本上是平行進行的。第11章程序設計基礎11.2.4軟件測試第11章程序設計基礎171.軟件測試的目的2.軟件測試的原則3.軟件測試的方法4.軟件測試過程第11章程序設計基礎第11章程序設計基礎1811.2.5軟件維護軟件維護是指在軟件已經(jīng)交付使用之后(即運行維護階段),為了改正錯誤或滿足新的需要而修改軟件的過程。它是軟件開發(fā)周期的最后一個階段,處于系統(tǒng)投入生產(chǎn)性運行之后的時期。
第11章程序設計基礎11.2.5軟件維護第11章程序設計基礎1911.2.6軟件開發(fā)工具與軟件開發(fā)環(huán)境1.軟件開發(fā)工具軟件開發(fā)工具是一種軟件,是輔助和支持其他軟件研制和維護工作的工具?,F(xiàn)代軟件工程方法能得以實施,重要的保證是軟件開發(fā)工具和環(huán)境的保證,使軟件在效率和質(zhì)量等方面得到了改善。
2.軟件開發(fā)環(huán)境軟件開發(fā)環(huán)境(SDE)又稱為集成式項目支撐環(huán)境(IPSE),是一組相關(guān)的軟件工具的集合,將它們組織在一起,可以支持某種軟件開發(fā)方法。
第11章程序設計基礎11.2.6軟件開發(fā)工具與軟件開發(fā)環(huán)境第11章程序設計基礎2011.3算法
11.3.1算法的概念算法是對解決某一特定問題的操作步驟地具體描述,或者說算法是解決一個問題而采取的方法和步驟。如上網(wǎng)的過程是:打開瀏覽器的窗口、輸入網(wǎng)址、在網(wǎng)頁上操作、關(guān)閉網(wǎng)頁,這就是“上網(wǎng)算法”。第11章程序設計基礎11.3算法11.3.1算法的概念第11章程2111.3.2算法的特征一個好的算法應該具有以下幾個特性:1.正確性2.可讀性3.準確性4.高效率和低存儲量第11章程序設計基礎11.3.2算法的特征第11章程序設計基礎2211.3.2算法的特征一個好的算法應該具有以下幾個特性:1.正確性2.可讀性3.準確性4.高效率和低存儲量第11章程序設計基礎11.3.2算法的特征第11章程序設計基礎2311.3.3算法的表示1.自然語言2.傳統(tǒng)流程圖3.N-S圖4.偽代碼5.計算機語言第11章程序設計基礎11.3.3算法的表示第11章程序設計基礎2411.3.4算法設計的基本方法1.列舉法2.歸納法3.遞推法4.遞歸法5.回溯法第11章程序設計基礎11.3.4算法設計的基本方法第11章程序設計基礎2511.3.5算法的復雜度算法的優(yōu)劣與它的復雜度有關(guān),而算法的復雜度是算法效率的度量,是評價算法優(yōu)劣的重要依據(jù)。一個算法的復雜度的高低體現(xiàn)在運行該算法所需要的計算機資源的多少上面,算法所需的資源越多,其復雜度就越高;相反,算法所需的資源越低,其復雜性就越低。第11章程序設計基礎11.3.5算法的復雜度第11章程序設計基礎261.時間復雜度一個算法的運行時間不是固定的,而是受到了多種因素的影響,比如使用的語言不同、使用不同的編譯程序、運行環(huán)境的不同等。2.空間復雜度算法的空間復雜度,主要是考慮算法所占有系統(tǒng)資源的情況。第11章程序設計基礎1.時間復雜度第11章程序設計基礎2711.4數(shù)據(jù)結(jié)構(gòu)
數(shù)據(jù)結(jié)構(gòu)主要研究的問題是:(1)數(shù)據(jù)集合中各數(shù)據(jù)元素之間所固有的邏輯關(guān)系,即數(shù)據(jù)的邏輯結(jié)構(gòu)。(2)在對數(shù)據(jù)進行處理時,各數(shù)據(jù)元素在計算機中的存儲關(guān)系,即數(shù)據(jù)的存儲結(jié)構(gòu)。(3)對各種數(shù)據(jù)結(jié)構(gòu)進行的運算。第11章程序設計基礎11.4數(shù)據(jù)結(jié)構(gòu)第11章程序設計基礎2811.4.1數(shù)據(jù)結(jié)構(gòu)的概念1.數(shù)據(jù)(Data)2.數(shù)據(jù)元素(DataElement)3.數(shù)據(jù)對象(DataObject)4.數(shù)據(jù)類型(DataType)5.數(shù)據(jù)結(jié)構(gòu)(DataStructure)第11章程序設計基礎11.4.1數(shù)據(jù)結(jié)構(gòu)的概念第11章程序設計基礎2911.4.2線性表
數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu)。在線性結(jié)構(gòu)中有且僅有一個無前驅(qū)的結(jié)點和一個無后繼的結(jié)點,并且所有結(jié)點都最多只有一個前驅(qū)和一個后繼。典型的線性結(jié)構(gòu)有線性表、順序表。第11章程序設計基礎11.4.2線性表第11章程序設計基礎301.線性表的定義2.線性表的順序存儲表示3.線性表的運算4.線性表的鏈式存儲表示第11章程序設計基礎1.線性表的定義第11章程序設計基礎3111.4.3棧和隊列1.棧(Stack)棧是一種特殊的線性表,這種線性表上的插入和刪除運算限定在表的一端進行2.隊列(Queue)隊列是只允許在一端進行插入元素,而在另外一端進行刪除元素的線性表。
第11章程序設計基礎11.4.3棧和隊列第11章程序設計基礎3211.4.4樹和二叉樹樹型結(jié)構(gòu)是一類重要的非線性數(shù)據(jù)結(jié)構(gòu)。其中以樹和二叉樹最為常用,直觀看來,樹是以分支關(guān)系定義的層次結(jié)構(gòu)。
第11章程序設計基礎11.4.4樹和二叉樹第11章程序設計基礎331.樹(Tree)樹是n(n≥0)個結(jié)點組成的有限集。在任意一棵非空樹中:(1)有且僅有一個特定的結(jié)點稱為根結(jié)點;(2)當n>1時,其余結(jié)點可分為m(m>0)個互不相交的有限集T1,T2,…,Tm,其中每一個集合本身又是一棵樹,并且稱為根的子樹(SubTree)。第11章程序設計基礎1.樹(Tree)第11章程序設計基礎342.二叉樹(BinaryTree)
二叉樹是另一種樹型結(jié)構(gòu),它的特點是每個結(jié)點至多只有兩棵子樹(即二叉樹中不存在度大于2的結(jié)點),并且,二叉樹的子樹有左右之分,其次序不能任意顛倒。第11章程序設計基礎2.二叉樹(BinaryTree)第11章程序設計基礎3511.4.5圖
圖(Graph):由兩個集合V(G)和E(G)所組成,記做G=(V,E),其中V(G)是圖中頂點的非空有限集合,E(G)是邊的有限集合。第11章程序設計基礎11.4.5圖第11章程序設計基礎36
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 市政公用設施改建用電方案
- 團隊重要性培訓課程
- 項目部治理人員安全培訓試題有解析答案可打印
- 建筑行業(yè)人才晉升管理方案
- 兒童游樂場裝修施工方案
- 部門安全培訓試題附參考答案【滿分必刷】
- 項目部治理人員安全培訓試題含完整答案【奪冠系列】
- 職工安全培訓試題參考
- 生產(chǎn)車間消防安全監(jiān)測方案
- 大型游樂園安全管理方案
- DL∕T 2014-2019 電力信息化項目后評價
- 安全治本攻堅三年行動方案及重大事故隱患會議紀要(完整版)
- 東營山東東營市中醫(yī)院(東營市傳染病醫(yī)院東營市精神衛(wèi)生中心)招聘46人筆試歷年典型考題及考點附答案解析
- 高級流行病學與醫(yī)學統(tǒng)計學智慧樹知到期末考試答案章節(jié)答案2024年浙江中醫(yī)藥大學
- 油煙管道系統(tǒng)清洗合同
- 2024陸上風電場工程可行性研究報告編制規(guī)程
- 2024年重慶市中考數(shù)學試卷(B卷)附答案
- 民航服務心理案例分析
- 醫(yī)院手術(shù)室空氣質(zhì)量控制標準
- 2024年石家莊北國人百集團有限責任公司招聘筆試沖刺題(帶答案解析)
- 幼兒園一等獎公開課:小班歌唱游戲《兩只小鳥》課件
評論
0/150
提交評論