全國計算機等級考試二級C語言的復習知識點超全整_第1頁
全國計算機等級考試二級C語言的復習知識點超全整_第2頁
全國計算機等級考試二級C語言的復習知識點超全整_第3頁
全國計算機等級考試二級C語言的復習知識點超全整_第4頁
全國計算機等級考試二級C語言的復習知識點超全整_第5頁
已閱讀5頁,還剩23頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、全國計算機等級考試高頻考點秘籍 選擇題真考考點P八、二級。語言程序設計(內含:公共基礎知識及計算機基礎考點目錄第一部分公共基礎知識 TOC o 1-5 h z 第1章算法與數據結構1考點1算法1.考點2數據結構1考點3線性表及其順序存儲結構 1考點4棧和隊列1考點5線性鏈表2考點6樹與二叉樹 2考點7查找技術3考點8排序技術3第2章程序設計基礎4考點1程序設計方法與風格 4考點2結構化程序設計 5考點3面向對象的程序設計5第3章軟件工程基礎 5考點1軟件工程基本概念 5考點2軟件分析方法 6考點3結構化設計方法 7考點4軟件測試8考點5程序的調試9第4章數據庫設計基礎 9考點1數據庫系統的基本

2、概念 9考點2數據庫系統的基本概念 10考點3關系代數12考點4數據庫設計與管理 12第二部分二級C語言第1章程序設計基本概念14考點1程序設計14考點2C程序的結構和格式 14考點3常量和變量14考點4算術表達式15考點5賦值表達式16考點6自加、自減和逗號運算16第2章順序結構17考點1字符型常量與變量 17考點2 putchar 與 getchar 函數17考點3printf函數17考點4scanf函數18考點5位運算的含義和應用18第3章選擇結構19考點1關系運算符和關系表達式19考點2邏輯運算符和邏輯表達式 19考點3 if語句及其構成的選擇結構19考點4 switch語句與brea

3、k語句 20第4章循環結構 20考點1 while循環結構 20考點2 do-while循環結構21考點3 for循環結構21考點4嵌套循環語句21第5章函數21考點1庫函數21考點2函數的調用22考點3參數傳遞22考點4函數的遞歸調用23考點5局部、全局變量和存儲分類.23第6章地址與指針23考點1變量的地址和指針 23考點2指針變量的操作24考點3函數之間地址的傳遞24第7章數組24考點1 一維數組的定義及元素的引用.24考點2函數對一維數組及元素的引用.25考點3二維數組的定義25考點4二維數組和指針25考點5二維數組名和指針數組作為實參26第8章字符串26考點1用一維字符數組存放字符串

4、26考點2使指針指向字符串 26考點3字符串的輸入和輸出26考點4字符串數組27考點5用于字符串處理的函數27第9章編譯預處理和動態存儲分配 27考點1編譯預處理27考點2宏替換27考點3文件包含處理28考點4動態存儲分配28第10章結構體、共用體和用戶定義類型28考點1結構體28考點2共用體29考點3用戶定義類型29第11章文件29考點1文件指針29考點2文件的讀寫30第一部分公共基礎知識 第1章算法與數據結構考點1算法.什么是算法算法是指對解題方案的準確而完整的描 述。計算機 程序本質上就是一個算法,它告訴計算機確切的步驟來執 行一個指定的任務。算法的基本特征一般來說,算法應具有:可行性、

5、確定性、有窮 性、擁有足夠的情報這幾個特征。算法的組成要素通常,一個算法由兩部分組成:一是對數據 對象的 運算和操作,二是算法的控制結構。算法的復雜度算法的復雜度是算法規模的度量,一個算法的復雜度 高低體現在運行該算法所需要的計算機資源的多少,所需 的資源越多,就說明該算法的復雜度越高;反之,所需的 資源越少,則該算法的復雜度越低。算法復雜度包括算法 的時間復雜度和算法的空間復雜度。考點2數據結構數據結構的概念所謂數據結構是指由某一數據對象及該對象中所有 數據成員之間的關系組成的集合。成員之間的關系有很多 種,最常見的是前后件關系。數據的邏輯結構邏輯結構的定義數據的邏輯結構,是指反映數據之間邏

6、輯關系的數 據結構。對于電腦上的數據而言,邏 輯結構就是能夠用眼 睛看到的數據形式,包括在屏幕上看到的文本、圖片、視 頻等。邏輯結構的分類根據數據結構中各元素之間前后關系的復雜程度, 將數據的邏輯結構分成線性結構和非線性結構。一個非空 的線性結構如果滿足以下兩個條件:有且只有一個根結 點;每一個結點最多有一個前件,也最多有一個后件。數據的存儲結構數據的存儲結構也稱為數據的物理結構,是指數據 在計算機中存放的方式,包括數據元素的存儲和關系的存 儲。通常,一種數據的邏 輯結構根據需要可以表示成多種 存儲結構,常用的存儲結構有順序、鏈式存儲結構。考點3線性表及其順序存儲結構.線性表的基本概念線性表是

7、由n個數據元素組成的有限序 列,是最簡 單、最常用的數據結構。其中的數據元素有著廣泛的含 義,可以是一個單獨的數字或字母,可以是矩陣中的一行 或一列向量,也可以是二維表中的一條記錄。線性表是一 種線性結構。數據元素在線性表中的位置,只取決于它 們自己的序號,即數據元素之間的相對 位置是線性的。.線性表的順序存儲結構一種數據的邏輯結構根據需要可以表示成多 種存儲 結構。線性表的存儲結構常用的是順序存 儲,也稱為順序 分配。線性表的順序存儲結構具有以下兩個基本特點: 線性表中所有元素所占的存儲空間是連續的;線性表中 各數據元素在 存儲空間中是按邏輯順序依次存放的。.順序表的插入所謂“順序表”指的是

8、使用順序存儲結構的線性 表。在順序表中插入一個新的數據元素,就像是在排隊買 票的時候進來了一個插隊的人。.順序表的刪除在順序表中刪除一個數據元素,就像是在排隊買票 的時候其中的一個人離開了。在平均情況下,要在線性表 中刪除一個元素,需要移動線性 表中一半的數據元素。 考點4棧和隊列1 .棧及其基本運算什么是棧棧是一種特殊的線性表。在這種特殊的線性表中, 其插入和刪除運算都只能在線性表的一端進行。一端是封 閉的,不允許插入和刪除 數據元素;另一端是敞開的,允 許插入和刪除數據 元素。在棧中,允許插入和刪除數據元素的一端 稱為棧 頂,而不允許插入和刪除數據元素的一端稱為棧底。棧頂 元素總會是被最后

9、插入的元素,從而也是最先被刪除的元 素;棧底元素總是最先被插入的元素,從而也是最后才能 被刪 除的元素。即棧是按照“先進后出”或“后進 先 出”的原則組織數據的。棧具有記憶的功能,支持子程序 的調用。通常用指針top來指示棧頂位置,用指針 bottom來指示棧底的位置。往棧中插入一個元素稱為入 棧運算,從棧中刪除一個元素稱為退棧運算。通過棧頂指 針top來反反映棧中元素的動態變化情況。棧的基本運算棧的基本運算有3種:入棧、退棧與讀棧 頂元素。 入棧運算。入棧運算是指在棧頂位置插入一個新元素。 這個運算有兩個基本操作:首先將棧頂指針進一(即top 加1),然后將新元素插入到棧頂指針指向的位置。退

10、 棧運算。退棧運算是指取出棧頂元素并賦給指定的變 量。這個運算有兩個基本操作:首先將棧 頂元素賦值給一 個指定的變量,然后將棧頂指針退一(即top減1 )。 讀棧頂元素。讀棧頂 元素是指將棧頂元素賦給一個指定的 變量,但是不刪除棧頂元素。因此,在這個運算中,棧 頂指針不會改變。當棧頂指針為0時,說明棧 空,讀不 到棧頂元素。隊列及其基本運算什么是隊列隊列是指允許在表的一端進行插入、而在另 一端進 行刪除的線性表。允許插入的一端稱為隊 尾,通常用一個 隊尾指針(rea)指向隊尾元 素,隊尾指針總是指向最后被 插入的元素;允許刪除的一端稱為排頭(也稱為隊頭),通 常也用一個排頭指針(front)指

11、向排頭元素的前一個位置。(2)循環隊列及其運算隊列的順序存儲結構一般采用循環隊列的形式。所 謂的循環隊列,就是將隊列的存儲 空間的最后一個位置繞 到第一個位置,形成邏輯上的環狀空間,供隊列循環使 用。入隊運算。入隊運算是指在循環隊列的隊尾加入一個新元素。這個運算有兩個 基本操作:首先將隊尾指針進一(即rear=rera+1),并 當rear=m+1時置rear=1然后將新元素插入到 隊尾指針指 向的位置。退隊運算。退隊運算是指在循環隊列的排頭 位置退出一個元素并賦值給 指定的變量。這個運算有兩個 基本操作:首先將排頭指針進一(即front=front+1), 并當 front=m+1時置fro

12、nt=1;然后將排頭指針指向的 元素賦 給指定的變量。考點5線性鏈表線性鏈表(1)線性鏈表線性表的鏈式存儲結構稱為線性鏈表。在線性鏈表 中,存儲空間上的每一個存儲結點都要分成兩部分:一部 分用于存儲數據元素的值,稱為數據域;另一部分用于存 儲該數據元素的存儲序號(存儲結點的地址,即指向后件 結點),稱為指針域。(2)線性鏈表的查找在非空的線性鏈表中查找指定元素的操作:從頭指 針指向的結點開始往后沿著指針進行掃描,如果找到要查 找的內容,則查找成功;如 果沒有對應的要查找的元素, 則查找失敗。為了彌補線性單鏈表的這個缺點,對線性鏈 表中的每個結點設置兩個指針,一個稱為左指針(Llink ),用以

13、指向其前件結點;另一個稱為 右指針 (Rlink),用來指向其后件結點。這樣的線性表稱為雙向 鏈表。(3)線性鏈表的插入在向線性鏈表中插入一個新元素之前,我們先要給該 元素分配一個新結點,其中包括值域和指針域以便用于存 儲該元素的值。然后找到插入位置,將插入位置前件的指 針指向新結點,將新接點的指針指向插入位置后件的結點。(4)線性鏈表的刪除要從線性表中刪除一個元素,首先將要刪除元素的 前后件兩個指針斷開,然后把要刪除結點的前件的指針, 指向刪除結點后的數據元素。2 .循環鏈表循環鏈表與單鏈表唯一的不同,就是最后一個結點 的指針域中的值不同。單鏈表的最后一個結點的指針域存 放的是一個空指針,而

14、循環鏈表的最后一個結點的指針域 存放的是指向第一個結點的指針。 考點6樹與二叉樹 1 .樹的基本概念樹是一種比較簡單的非線型結構。在樹中所有的數 據元素之間具有明顯的層次關系。之所以將這種數據結構 命名為“樹”,是因為其結構 看上去像一棵倒長著的樹。 在樹的圖形表示中,上端的結點是前件,下端的結點是后 件。2 .二叉樹及基本性質(1)二叉樹二叉樹是一種特殊的樹,是一種很有用的非線型結 構。所有樹結構上的術語都可以用在二叉 樹上。二叉樹具 有以下兩個特征:非空二叉樹只有一個根結點;每 個結點最多有兩棵子樹,且分別稱為該結點的左子樹和右 子樹。在二叉樹中,每個結點的度最大為2,所有的左子 樹和右子

15、樹也均是二叉樹。同時,在二叉樹中所有的結 點可以沒有左子樹,也可以沒有右子樹。即沒有左子樹又 沒有右子樹的結點是葉子結點。(2)滿二叉樹所謂滿二叉樹是指:除最后一層外,每一層上的所 有結點都有兩個子結點。這就是說,在滿二叉樹中,每一 層上的結點數都達到最大值,即 滿二叉樹的第k層上有 2k-1個結點,且深度為m的滿二叉樹有2m-l個結點。(3)完全二叉樹所謂的完全二叉樹是指:除最后一層外,每一層上 的結點數均達到最大值,最后一層上只缺少右邊的若干個 結點。完全二叉樹就是去掉最后一層若干個右邊結點的滿 二叉樹。(4)二叉樹的基本性質二叉樹的基本性質。二叉樹具有以下幾個基本 性質:性質1 :在二叉

16、樹的第K層上最 多有2k-1 (k 1)個結點。性質2 :深度為m的二叉樹最多有2m-1個結 點。性質3:在任意一棵二叉樹中,葉子結點(即度為0 的結點),總比度為2的結點多一個。性質4:具有n個 結點的二叉樹,其深度至少為log2n+1 o完全二叉樹的兩項特性。完全二叉樹還具有以 下兩項特性:性質5:具有n個結點的完全二叉樹,其深 度為2“+1。性質6:設完全二叉樹共有n個結點。如 果從根結點開始,按層序(每一層從左到右)用自然數“1,2”,n”給結點進行編號。二叉樹的遍歷二叉樹的遍歷是指按照一定的順序訪問二叉樹中的 結點,每個結點只被訪問一次。為了保證所有結點被不重 不漏地訪問,必須按照一

17、定的順序進行。(1)前序遍歷(DLR)首先訪問根結點,然后遍歷左子樹,最后遍 歷右子 樹;在遍歷左、右子樹時,也按上述的順序執行。可見前 序遍歷二叉樹是一個遞歸的過程。對于二叉樹的前序遍 歷,具有如下的規則:對于空的 二叉樹,不進行操作返回 空值。對于非空的二叉樹的遍歷按下列順序執行:訪問 根結點;前序遍歷左子樹;前序遍歷右子樹。中序遍歷(LDR )首先遍歷左子樹,然后訪問根結點,最后遍歷右子 樹;在遍歷左、右子樹時,也按上述的順 序執行。可見中 序遍歷二叉樹也是一個遞歸的過程。對于二叉樹的中序遍 歷,具有的規則:對 于空的二叉樹,不進行操作返回空 值。對于非空的二叉樹的遍歷按下列順序執行:中

18、序遍 歷左子樹;訪問根結點;中序遍歷右子樹。后序遍歷(LRD)首先遍歷左子樹,然后遍歷右子樹,最后 訪問根結 點;在遍歷左、右子樹時,也按上述 的順序執行。可見后 序遍歷二叉樹同樣也是一個遞歸的過程。對于二叉樹的后 序遍歷,具有的規則:對于空的二叉樹,不進行操作返 回空值。對于非空的二叉樹的遍歷按下列順序執行: 后序遍歷左子樹;后序遍歷右子樹;訪 問根結點。考點7查找技術查找就是從給定的一個數據結構中,找出指 定的數 據元素。本節中我們只學習對線性表的查 找,常用的查找 方法有順序查找和二分法查找。.順序查找順序查找的過程是:從線性表的第一個元素 開始, 依次將線性表中的數據與要查找的數據進行

19、比較,如果找 到了相等的數據,則查找成功,停止向下查找;如果比較 完了線性表中的所有數 據元素,沒有找到相等的數據,則 查找失敗。.二分法查找二分法查找又稱為折半查找,只能應用于 順序存儲 的有序表。有序表是指線性表中的元 素已經按值非遞減 (從整體上看是升序,但相 鄰的元素的值可以相同)排 列。考點8排序技術排序就是將一組無序的數據按照一定的順序排列起 來。本節中所指的順序是非遞減順序(整體上呈升序,但相鄰的數據可以相等),基 本排序 算法主要有交換類排序、插入類排序和選擇類排序3大 類。.交換類排序交換排序就是借助數據元素之間的互相交換進行排 序的方法。常用的交換排序方法有冒泡排序和快速排

20、序。冒泡排序冒泡排序的過程簡單,它的基本思想是通過對相鄰 元素進行比較,并根據比較的結果交換位置,從而逐步由 任意序列變為有序序列。過程是:先從頭往后掃描、然后從后往頭掃描、再 重復上述過程快速排序快速排序就是一種可以通過一次交換而消除多個逆 序的排序方法,因此相對冒泡排序 法而言,速度要快。插入類排序插入排序,就是將無序序列中的各個元素依 次插入 到已經排好序的線性表中。常用的插入排 序的方法有簡單 插入排序和希爾排序。簡單插入排序簡單插入排序的方法是:在初始序列中,將只包含 第1個元素的子序列看成是一個有序 序列,然后從第2個 元素起,依次將每個元素插入到前1個有序子序列中。希爾排序希爾排

21、序的基本思想是:將整個無序序列分割成若 干個子序列,對每個子序列分別進行簡單插入排序,最后 再對全體元素進行一次簡 單插入排序。與簡單插入排序的 子序列構成方式不同,希爾排序是將原序列中相隔某個增 量h的元素構成一個子序列。在排序過程中逐步減少這 個增量,最后當h減到1時,進行一次 插入排序,排序就 完成了。增量序列一般取h = n/2k (k=1,2, Iog2n),其中n為待排序序列的長度。希爾排序的效率 與所選取的增量序列有關。通過希爾排序法對長度為n 的線性表進 行排序,如果選取了上述增量序列,最壞情況 下,需要比較的次數為0( n1.5)。選擇類排序常用的選擇排序有兩種,簡單選擇排序

22、和 堆排序。簡單選擇排序簡單選擇排序的基本步驟是:在一組n個數據中選擇出最小值;若 它不是這 組數據中的第1個數據,則將它與這 組數據中的第1個數 據互換位置;對剩下的子表采用同樣的方法,直到子表 空為止。堆排序法在學習堆排序之前,我們先來看一下堆的定義,堆 的定義如下:具有n個元素的序列(h1,h2,hn), 當且僅當滿足或并沖(i=1,2,,n/2)時稱之為堆。 第2章程序設計基礎 考點1程序設計方法與風格程序是一組計算機指令的集合,是程序設計的最終 成果。程序設計方法所要做的工作是,如何對實際問題進 行抽象和歸納以及對程序進行編排,才能使程序的可讀 性、穩定性、可維護性、效率等更好。目前

23、,主要有兩種 程序設計方法:結構化程序設計和面向對象程序設計。源程序文檔化符號名的命名:符號名的命名應盡量表達一些實 際意義,以增強程序的可讀性。程序注 釋:良好的注釋 能夠幫助讀者理解程序。注釋一般分為序言性注釋和功能 性注釋,以給出程序的整體說明和程序的主要功能。序言 性注釋一般位于每一個程序的開頭部分,它給出程序的整 體說明;功能性注釋一般嵌在原程序之中。視覺組 織:為使程序的結構清晰明了,可以在程序中利 用空行、 空格、縮進等技巧使程序層次清晰。數據說明的方法在編寫程序時,一定要注意數據說明的方法。為使 程序中的數據說明易于理解和維護。語句的結構程序的語句應該簡單易懂,在編寫程序時,應

24、注 重:每一行只寫一條語句。程序編寫優先考慮清晰性。一 般情況下,在編寫程序時,要 做到清晰第一,效率第二。 首先要保證程序的正確性,然后再提高速度。避免使用臨 時變量而使 程序的可讀性下降。盡可能使用庫函數。避免 不必要的轉移。利用信息隱蔽,保證每一個模塊的獨立 性。避免使用復雜的條件嵌套語句。避免 使用無條件轉移 語句。盡量做到模塊功能單一化。不要修補不好的程序, 要重新編寫。輸入和輸出輸入和輸出的方式應盡可能方便用戶的使 用。系統 能否讓用戶接受,往往取決于輸入和輸出的風格。考點2結構化程序設計結構化程序設計的原則結構化程序設計必須遵守模塊化、自頂向下、逐步 求精、限制使用goto語句的

25、原則。結構化程序設計的基本結構與特點結構化程序設計方法是一種程序設計的先進方法。實事證明,在程序設計時,只要使用3種程序結構就可以 實現所有的結構形式,它們是順序結構、選擇結構和循環 結構。結構化程序設計原則和方法的應用結構化程序設計的效率較高,但是在實際設計程序 時,應要注意:使用程序設計語言中 的順序、選擇、循環 等有限的控制結構表示程序的控制邏輯。選用的控制結構 只允許有一個入口和一個出口。程序語句組成容易識別的 語句序列塊,每塊只允許有一個入口和一個出口。復雜 結構的程序設計時,僅用嵌套的基本控制結構進行組合嵌 套來實現。語言中所沒有的控制結構,應采用前后一致的 方法來模擬。嚴格控制g

26、oto語句的使用,但不是完全不 能用。考點3面向對象的程序設計面向對象方法,現在已經發展為一種主流的軟件開 發方法。它歷經了多年的研究和發展,已經日益成熟和完 善,應用也越來越深入 和廣泛。面向對象方法的特點面向對象的程序設計,是在結構化程序設計的基礎 上,以更接近人們通常思維的方式來解決問題的一種全新 的軟件開發技術。面向對象的程序設計以對象為核心,強調對象的 “封裝性”“繼承性” “抽象性”和“多態性”。其本 質就是主張從客觀世界固有的事物出發 來構造系統,提倡 用人類在現實生活中常用的思維方法來認識、理解和描述 客觀事物。面向對象方法的基本概念對象(object)面向對象方法認為:現實世

27、界是由一系列的對象組 成的。對象是現實世界中彼此相關并互通信息的實體。每 個對象都包含了兩部分的內容:描述對象狀態的數據和描 述對象行為。對象是面向對象方法中最基本的概念。因 此,面向對象方法中的對象是由描述該對象屬性的 數據 以及可以對這些數據施加的所有操作封裝在一起構成的整 體。對象可以做的操作表示它的動態行為,在面向對象分 析和面向對象設計中,通常把對象的操作也稱為方法或服 務。類和實例類是具有共同屬性、共同方法的對象的集合,是關 于對象的抽象描述,反應屬于該對象類型的所有對象的性 質。消息(Message)消息傳遞是對象間通信的手段,一個對象通過向另 一對象發送信息來請求其服務。消息

28、機制統一了數據流和 控制流,一個消息由下述3部分組成:接收消息的對象名 稱、消息名、零個或多個參數。繼承(Inheritance)類的繼承:繼承廣義地說,是指能夠直接獲得已 有的屬性和特征,而不必重復地定義。繼承的傳遞性: 繼承具有傳遞性,如果 類A繼承類B,類B繼承類C,則類 A繼承類C。因此,一個類實際上繼承了它上層的全部 基 類特性,也就是說,屬于某類的對象除了具有該類定義的 特性外,還具有該類上層全部基類定義的特性。單繼承: 一個子類只有唯一的一個父類,這種繼承稱為單繼承。多 重繼承:一個子類也可以有多個父類,它可以從多個父 類中繼承特性。繼承的優點:相似的對象可 以共享程序 代碼和數

29、據,從而大大減少了程序 中的冗余信息,提高軟 件的可重用性,便于軟件修改維護。多態性(Polymorphism)多態性:對象根據所接收的消息而做出動作,同樣 的消息被不同的對象接收時可導致完全不同的行為,該現 象稱為多態性。第3章軟件工程基礎考點1軟件工程基本概 念1 .軟件的定義與特點軟件的定義一般認為計算機軟件是計算機系統中與硬件相互依 存的另一部分,包括程序、數據及相 關文檔的完整集合。 可見軟件可分為兩個部分:一是機器可執行的程序和數 據;二是機器 不可執行的,與軟件開發、運行、維護、使 用 相關的文檔。軟件的特點計算機軟件具有如下的幾個特點:軟件是一種邏輯 實體,而不是物理實體,具有

30、抽象性;與硬件的生產不 同,軟件沒有明顯的制作過 程;軟件在使用期間不存在磨 損、老化問題;對硬件和環境具有依賴性;軟件復雜度 高,成 本昂貴;軟件開發涉及諸多的社會因素。軟件的分類計算機軟件按功能可分為3類:應用軟件、系統軟 件、支撐軟件(或稱為工具軟件)。軟件危機和軟件工程軟件工程概念的出現源自軟件危機。軟件危機“軟件危機”是20世紀60年代末以后出現的, 其泛指在計算機軟件的開發和維護過程中所遇到的一系列 嚴重問題。實際上,幾乎所 有的軟件都不同程度地存在這 些問題。隨著計算機技術的發展和應用領域的擴大,軟件已 經成為計算機科學發展的“瓶頸”。軟件工程為了消除軟件危機,通過認真研究軟件危

31、機的方 法,認識到軟件工程是使計算機軟件走向工程科學的途 徑,逐步形成了軟件工程概 念,開辟了工程學的新興領域 一一軟件工程學。它是采用工程的概念、原理、技術和方 法 來開發與維護軟件,把經過時間考驗而證明正 確的管 理技術與當前能夠得到的最好的技術方 法結合起來,經濟 地開發出高質量的軟件并有效地維護它。軟件工程過程與軟件生命周期軟件工程過程ISO 9000定義:軟件工程過程是指把輸入轉化為輸 出的一組彼此相關的資源和活動。軟件生命周期軟件生命周期是指軟件產品從提出、實現、使用維護 到停止使用退役的整個過程。也就是說,軟 件產品從考慮 其概念開始,到該軟件產品不能使用為止的整個時期都屬 于軟

32、件生命周期。一般包括可行性研究與需求分析、設計、 實現、測試、交付使用以及維護等活動。這些階段可以有 重復,執行時也可以有迭代。軟件工程的目標與原則軟件工程的目標軟件工程的目標是:在給 定成本、進度的前提下,開發出具有有效性、可靠性、可 維護性、可重用性、可適應性、可移植性、可追蹤性和 可互操作性且滿足用戶需求的產品。為實現軟件工程的目標,軟件工程的理論和技術性 研究的內容主要包括軟件開發技術和軟件工程管理兩個方 面。軟件工程的原則為了達到上述的軟件工程目標,在軟件開 發過程 中,必須遵循以下軟件工程的基本原則U:抽象、確定性、 模塊化、信息隱蔽、局部化、完備性、一致性、可驗證性。軟件開發工具

33、與軟件開發環境軟件工程技術鼓勵研制和采用各種先進的軟件開發 方法、工具和環境。工具和環境的使用進一步提高了軟件 的開發效率、維護效率和軟件質量。軟件開發工具軟件開發工具的發展是從單項工具的開發逐步向集 成工具發展的,軟件開發工具為軟件 工程方法提供了自動 的或半自動的軟件支撐環境。軟件開發環境軟件開發環境或稱軟件工程環境是指全面支持軟件 開發全過程的軟件工具的集合。計算機輔助軟件工程 (CASE)是當前軟件開發環境中富有特色的研究工作和發展 方向。考點2軟件分析方法軟件開發方法是指軟件開發過程所遵循的方法 和步 驟,其目的在于有效地得到一些工作產品,即 滿足質量要 求的程序和文檔。軟件開發方法

34、包括分析方法、設計方法 和程序設計方法。.需求分析與需求分析方法軟件需求是指用戶對目標軟件系統在功 能、行為、 性能、設計約束等方面的期望。需求分析的任務是發現需 求、求精、建模和定義 需求的過程。需求分析的目標是創 建所需的數據模型、功能模型和控制模型。需求分析的定義1997年IEEE軟件工程標準詞匯表對需求 分析定義 如下:用戶解決問題或達到目標所需的條件或 功能; 系統或系統部件要滿足合同、標準、規范或其他正式規定 文檔所需具有的條件或功能;一種反映或所描述的 條件或功能的 文檔說明。需求分析階段的工作需求分析階段的工作主要分為4個方面:需求獲 取、需求分析、編寫需求規格說明書、 需求評

35、審。需求分析方法常用的需求分析方法有兩種:結構化分析方法。主要包括:面向數據結構的Jackson方法(JSD),面向數據流的結構化分析方法(SA),面向數據 結構的結構化數據系統開發方法(DSSD)。面向對象的分 析方法(00A )。從需求分析建立的模型的特性來分,需求 分析方法又分為靜態分析方法和動態分析方法。結構化分析方法結構化分析方法的基本概念結構化分析方法是面向數據流、自頂向下、逐步 求 精、進行需求分析的方法。該方法使用簡單易讀符號,根 據軟件內部數據傳遞、變換的關系,自頂向下、逐層分 解,描繪出滿足要求的軟件模型。結構化分析的常用工具結構化分析方法利用圖形等結構化的描述方式表達 需

36、求,簡明易懂,用它們形成需求說明書中的主要部分。 這種方法所用的常用工具 有:數據流圖、數據字典、判定 樹和判定表。軟件需求規格說明書軟件需求規格說明書(SRS)是需求分析 階段得出的最 主要的文檔。它通常用自然語言完整、準確、具體地描述 系統的數據要求、功能需求、性能需求、可靠性和可用性 要求、出錯處理需求、接口需求、約束、逆向需求以及 將來可能提出的要求。軟件需求規格說明書的作用軟件需求規格說明書具有幾個作用:便于用戶、開 發人員進行理解和交流;反映出用戶 問題的結構,可以作 為軟件開發工作的基礎和依據;作為確認測試和驗收的依 據。軟件需求規格說明書的內容軟件需求規格說明書是作為需求分析的

37、一部分而制 定的可交付文檔。軟件需求規格說明書的特點軟件需求規格說明書是確保軟件質量的有力措施, 衡量軟件需求規格說明書質量的標準:正確性、無歧義 性、完整性、一致性、可理解性、可驗證性、可修改性和 可追蹤性。考點3結構化設計方法軟件設計的基本概念軟件設計的基礎軟件設計是一個把軟件需求轉化為軟件表示的過 程,是軟件工程的重要階段。軟件設 計的基本目標是用比 較抽象、概括的方式確定目標系統如何完成預定的任務, 即軟件設計是確定系統的物理模型。軟件設計的基本原理軟件設計應遵循軟件工程的基本目標和原貝U,建立 適用于在軟件設計中應該遵守的基本原理和軟件設計中的 有關概念。模塊化、抽象、信息隱藏和局部

38、化、模塊 獨立性。結構化設計方法結構化設計方法是目前采用最為廣泛的一種軟件設 計方法,其基本思想是將軟件設計成由相對獨立、單一功 能的模塊組成的結構 2 .概要設計概要設計又稱為總體設計或初步設計。軟件概要設 計的基本任務是:設計軟件的系統結構。在需求分析階段,已經把 系統分解成層次結構,而在概要設計階段,需要進一步分 解,劃分為模塊以及模塊的層次結構。數據結構及數據 庫設計。數據設計是實現需求定義和規格說明過程中提出 的數據對象的邏輯表示。編寫概要設計文檔。在概要設 計階段,需要編寫的文檔有:概要設計說明書、數據庫設 計說明書、集中測試計劃等。概要設計文檔評審。在概要設計中,對設計部 分是否

39、完整地實現了需求中規定的功能、性能等要求,設 計方案的可行性,關鍵的處理及內外部接口定義正確性、 有效性,各部 分之間的一致性等都要進行評審,以免在以 后 的設計中出現大的問題而返工。概要設計工具結構圖(SC),也稱程序結構圖,是描述 軟件結構的 圖形工具,是常用的軟件結構設計 工具。模塊用一個矩形 表示,矩形內注明模塊 的功能和名字;箭頭或直線表示模 塊間的調用 關系。在結構圖中還可以用帶注釋的箭頭表示 模塊調用過程中來回傳遞的信息。常用的結構 圖有4種模 塊類型:傳入模塊、傳出模塊、變換模塊和協調模塊。面向數據流的設計方法在需求分析階段,主要是分析信息在系統中的加工 和流動情況。面向數據流

40、的設計方法的目標是給出設計軟 件結構的一個系統化的 途徑。數據流類型。典型的數據流類型有 兩種:變 換型和事務型。面向數據流設計方法的實施要點與設計過 程。設計的準則通過大量設計實踐證明,以下設計準則可以借鑒為 設計的指導和對軟件結構圖進行優化。提高模塊獨立性、模塊規模適中、深度、寬度、扇 出和扇入適當、使模塊的作用域在該模塊的控制域內、應 減少模塊的接口和界面的復雜性、設計成單入口、單出口 的模塊和設計 功能可預測的模塊。詳細設計詳細設計的任務就是為軟件結構圖中的 每一個模塊 確定實現算法和局部數據結構,用某種選定的表達工具表 示算法和數據結構的細節。常用的設計工具有以下幾種:圖形工具程序流

41、程圖:程序流程圖是軟件過程的設計表示 工具,表達直觀、清晰,易于學習和 掌握。N-S圖:N 一S圖是用方框圖來代替傳統的程序流程圖的技術。基本 圖形有5種。PAD圖:PAD圖即問題分析圖(Problem Analysis Diagram)。它是繼程序流程圖和方框圖之后, 提出的又一種描述軟件詳細設計的圖 形工具。基本圖形有 5種。表格工具用表格來描述處理動作及相應的各種條件或描述輸 入、處理、輸出的過程。語言工具用與程序設計語言很相近的偽碼描述處理過程的細 節。過程設計語言(PDL)也稱為結構化的英語和偽碼,它 是一種混合語言,采用英語的詞匯和結構化程序設計語言 的語法,類似編程語言。考點4軟

42、件測試軟件測試就是在軟件投入運行之前,盡可能多地發 現軟件中的錯誤。它是對軟件規格說明、設計和編碼的最 后復審。通常,軟件測試 的工作量往往占軟件開發總工作 量的40%以上。軟件測試的目的軟測試的目的:測試是為了發現錯誤而執 行程序的 過程;一個好的測試用例是指很可能找到迄今為止尚未發 現的錯誤的用例;一個成功的測試是發現了至今尚未發現 的錯誤的測試;測試是要以查找錯誤為中心,而不是為了 演示軟件的正確功能。.軟件測試的準則要作好軟件測試,必須設計有效的測試方案和好的 測試用例。.軟件測試技術和方法軟件測試的方法是多種多樣的。若從是否需要執行 被測軟件的角度劃分,可以分為靜態測試和動態測試;若

43、 按照功能劃分,可以分為白盒測試和黑盒測試。靜態測試與動態測試靜態測試:靜態測試包括代碼檢查、靜態結構分 析、代碼質量度量等。靜態測試主要 由人工進行,充分發 揮人的邏輯思維優勢,也 可以借助軟件工具自動進行。 動態測試:動態測試是基于計算機的測試,是為了發現錯 誤而執行程序的過程。白盒測試與測試用例設計白盒測試的方法也稱結構測試或邏輯測試。它是根 據軟件的內部工作過程,檢查內部 成分,以確認每種內部 操作是否符合設計要求。白盒測試允許測試人員利用程序 內部的邏 輯結構及有關信息來設計和選擇測試用例,對 程序所有的邏輯路徑進行測試。邏輯覆蓋測試。邏輯覆蓋測試泛指以程序內部 的邏輯結構為基礎的測

44、試用例設計書。從覆蓋源程序語句 的詳盡程度分析,大致有以下一些 不同的覆蓋標準:語句 覆蓋、判定覆蓋、條件覆 蓋、判斷-條件覆蓋。基本路徑測試。基本路徑測試的思想和步驟是,根據軟件過程性描述中的控制流程確定程序的環路復 雜性度量,用此度量定義基本路徑集合,并由此導出一組 測試用例對每一條獨立執行路徑進行測試。黑盒測試與測試用例設計 黑盒測試也稱功能 測試或數據驅動測試,是對軟件已經實現的功能是否滿足需求進行測試和驗證。 所以,黑盒測試的測試用例是根據程序的外部功能進行設 計的,在軟件接口處進 行,完成功能驗證。.軟件測試的實施軟件測試是保證軟件質量的重要手段。為使軟件測 試工作系統化,我們應制

45、定測試流程。所謂測試流程就是 軟件測試這個過程規定的程序。軟件測試過程一般按4個步驟進行,即單 元測試、集成測試、驗收測試(確認測試)和 系統測試。考點5程序的調試基本概念在對程序進行了成功的測試之后將進入程序調試(通 常稱Debug即排錯)。程序調試的任務是診斷和改正程序 中的錯誤。程序調試的基本步驟錯誤定位:從錯誤的外部表現形式入手,研究 有關部分的程序,確定程序中出錯位置,找出錯誤的內在 原因。修改設計和代碼,以排除錯誤:排錯是軟件開發 過程中一項艱苦的工作,這也決定了調試工作是一個具有 很強技術性和技巧性的工作。進行回歸測試,防止引進 新的錯誤:重復進行暴露這個錯誤的原始測試或某些有關

46、 測試,以確認該錯誤是 否被排除、是否引進了新的錯誤。程序調試的原則調試活動由對程序中錯誤的定性、定位和排錯兩部 分組成,因此調試原則也從確定錯誤的性質和位置時的注 意事項和修改錯誤的原則兩個方面考慮。軟件測試方法調試的關鍵在于推斷程序內部的錯誤位置及 原因。 軟件調試可以分為靜態調試和動態調試。軟件測試中討論 的靜態分析方法同樣適用靜態調試。靜態調試主要指通過 人的思維來分析源程序 代碼和排錯,是主要的調試手段, 而動態調試是輔助靜態調試的。主要的調試方法有強行排 錯法、回溯法和原因排除法。第4章數據庫設計基礎 考點1數據庫系統的 基本概念數據、數據庫、數據庫管理系統數據數據:描述事物的符號

47、記錄。計算機中的數據一般分成兩部分,其中一部分與程 序僅有短時間的交互關系,隨著程序 的結束而消亡,這樣 的數據稱為臨時性數據,一般存放在計算機內存中;而另 一部分數據則對系統起著長期持久的作用,這樣的數據稱 為持久性數據,一般存放在計算機的長期存儲設備(如硬 盤)中。數據庫系統中處理的就是這種持久性數據。數據庫數據庫:數據庫(DataBase DB)是指長期存儲在計算 機內的、具有統一的結構形式、可共享的數據集合。數據 庫中的數據按一定的數據模型組織、描述和存儲,具有較 小的冗余 度、較高的數據獨立性和易擴展性,并可為各 種應用程序所共享。數據庫管理系統數據庫管理系統:數據庫管理系統(Dat

48、aBase Management System DBMS)是管理數據庫的機 構,是一個系統軟件,負責數據庫中的數據組織、數據操 縱、數據維護、控制及保護和數據服務等。數據庫管理系 統是數據庫系統的核心,其主要功能包括幾個方面:數據 模式定義、數據存取的物理構建、數據操縱、數據的完整 性、安全性定義與檢查、數據庫的并發控制與故 障恢復和 數據的服務。數據庫管理員數據庫管理員:對數據庫的規劃、設計、維護、監 視等進行管理的人員,稱為數據庫管 理員。其主要工作: 數據庫設計、數據庫維護和改善系統性能。數據庫系統數據庫系統(DBS)是指引入數據庫后的計算機系 統,一般由數據庫、數據庫管理系 統、應用系

49、統、數據庫 管理員和用戶構成。數據庫應用系統數據庫應用系統(DBAS)是數據庫系統再加上應用軟 件及應用界面這三者所組成,具體包括:數據庫、數據庫 管理系統、數據庫管理員、硬件平臺、軟件平臺、應用軟 件、應用界面。.數據庫系統的發展數據管理發展到今經歷了:人工管理、文件系統 和數據庫系統3個階段。其中數據獨立性最高的是數據 庫系統,這里的數據獨立性指的是數據庫和應用程序的相 互獨立。文件系統階段文件系統是數據庫系統發展的初級階段,它提供了 簡單的數據共享和數據管理能力,但是它無法提供完整統 一的管理和數據共享的能力。層次與網狀數據庫系統階段從20世紀60年代末起,真正的數據庫 系統一一 層次數

50、據庫與網狀數據庫開始發展,它們為統一管理與共 享數據提供了大力支撐。但是這兩個系統也存在不足,主 要是其脫胎與文件系統,受文件的物理影響較大,對數據 庫 使用帶來的諸多不便,同時,此類系統的數據 模式構 造繁瑣不宜于推廣。關系數據庫系統階段關系數據庫系統結構簡單、使用方便、邏輯性 強、物理性少。在數據庫的儲多新技術中,下面3種是比 較重要的:面向對象數據庫系統、知識庫系統和關系數據 庫系統的擴充。數據庫系統的基本特點數據庫技術是在文件系統基礎上發展產生的,兩者 都以數據文件的形式組織數據,但由于 數據庫系統在文件 系統之上加入DBMS對數據進行管理,從而使得數據庫系 統具有以下特點。(1)數據

51、的高集成性數據庫系統的數據高集成性主要表現在如下幾個方 面:在數據庫系統中采用統一的數據結構方式,如在 數據庫中采用二維表作為統一結構方式。在數據庫系統 中按照多個應用的需要組織全局統一的數據結構(即數據 模式),數據模 式不僅可以建立全局的數據結構,還可以 建立數據間的語義聯系,從而構成一個內在緊密聯 系的 數據整體。數據庫系統中的數據模式是多個應用共同 的、全局的數據結構,而每個應用的數據則是全局結構中 的一部分,稱為局部結構(即視圖),這種全局與局部的結 構模式構成了數據庫系統數據集成性的主要特征。數據的高共享性與低冗余性由于數據的集成 性使得數據可為多個應用所共享。數據共享的使用大大減

52、少數據冗余,節約存儲 空間。減少冗余性以避免數據的 不同出現是保證系統一致 性的基礎。數據高獨立性數據獨立性是指數據與程序間的互不依賴性,是數 據庫中常用的術語。其包括數據的物理獨立性和數據的邏 輯獨立性。數據統一管理與控制數據庫系統不僅為數據提供高度集成環境,同時它 還為數據提供操作功能,這主要包含以下3個方面:數據 的完整性檢查、數據的安全性保 護、并發控制。4 .數據庫系統的內部結構系統數據庫系統在其內部具有三級模式和二級映射,三 級模式分別是外模式、概念模式與內模式。二級映射則分 別是,外模式一概念模式映射和概念模式一內模式映射。 這種三級模式與二級映射構成了數據庫系統內部的抽象結 構

53、 體系。數據庫系統的三級模式數據模式是數據庫系統中數據結構的一種表示形 式,它具有不同的層次與結構方式:外模式也稱子模式或用戶模式。它能夠看見和使 用局部數據的邏輯結構和特征的描述,它是用戶的數據視 圖,一個數據庫可以有多個外模式。概念模式是數據庫 系統中全局數據邏輯結構的描述,是全體用戶(應用)公 共數據視圖。一個數據庫只有一個概念模式。內模式又 稱物理模式,一個數據庫只有一個內模式。它是數據物理 結構和存儲方式的描述,是 數據在數據庫內部的表示方 式。數據庫系統的兩級映射數據庫系統的三級模式是對數據的3個級別的抽 象,它把數據具體物理實現留給物理模式,使用戶能邏輯 地、抽象地處理數據,而不

54、必關心數據在計算機中的具體 表示方式和存 儲方式。考點2數據庫系統的基本概念.數據模型的基本概念數據模型(Data Model)研究的就是數據 的組織形 式及方式。數據庫是某個企業、組織或部門所涉及的數據 的綜合,它不僅要反映數據本身的內容,而且要反映數據 之間的聯系。數據模型通常由數據結構、數據操作和完整性約束3部分組成。數據結構數據結構是所研究的對象類型的集合。數據 結構是 對系統靜態特征的描述。數據操作數據操作是指對數據庫中各種對象的實例允許執行 的操作的集合,包括操作及有關的操作規則。數據操作是 對系統動態特征的描述。數據的約束條件數據的約束條件是一組完整性規則的集 合。完整性 規則是

55、給定的數據模型中數據及其 聯系所具有的約束和依 存規則,用以限定符合 數據模型的數據庫狀態以及狀態的 變化,以保證數據的正確、有效、相容。數據模型的分類數據模型按不同的應用層次分成3種類型,它們是概念數據模型、邏輯數據模型、物理數據模 型。概念數據模型概念數據模型簡稱概念模型,它是一種面向客觀世 界、面向用戶的模型;它與具體的數據庫管理系統無關, 與具體的計算機平臺無 關。概念模型是整個數據模型的基 礎。邏輯數據模型邏輯數據模型又稱數據模型,它是一種面向數據 庫系統的模型,該模型著重于在數據庫系統一級的實現。 目前,數據庫領域中最常用的邏輯數據模型有四種,分別 為:層次模型、網狀模型、關系模型

56、和面向對象模型。物理數據模型物理數據模型又稱物理模型,它是一種面 向計算機 物理表示的模型,此模型給出了數據模型在計算機上物理 結構的表示。. E- R模型概念模型是面向現實世界,它的出發點是 有效和自 然地模擬現實世界,給出數據的概念 化結構。它的表示方 法很多,其中最著名是E-R模型(或實體一聯系模型),它于1976年由Peter Chen 首先提出。(1) E-R模型的基本概念實體是客觀存在并可相互區別的事物。實體可 以是具體的人、事、物,也可以是抽象的概念或聯系。 屬性是實體所具有的某一特性。一個實體可由若干個屬性 來刻畫。碼是能夠唯一標識實體的屬性集。屬性的取 值范圍稱為該屬性的域。

57、用實體名及其屬性名集合來抽 象和刻畫同類實體,稱為實體型。同型實體的集合稱 為實體集。例如,全體學生就是一個實體集。在現實世界中,事物內部以及事物之間是普遍 聯系的。 在E-R模型中,這些聯系反映為實體內部的聯系和實體之 間的聯系。(2) E-R模型的圖形表示方法E-R模型可以用一種非常直觀的圖的形式表示,這 種圖稱為E-R圖。E-R圖提供了表示實體集、屬性和聯系 的方法。實體型:用矩形表示,矩形框內寫明實 體名。 屬性:用橢圓形表示,并用無向邊將其與相應的實體連接 起來。聯系:用菱形表 示,菱形框內寫明聯系名,并用 無向邊將其與有關實體連接起來,在無向邊旁標上聯系的 類型(1 : 1,1 :

58、 n 或 m : n)。.層次模型層次模型是數據庫系統中最早出現的數據模型,層 次數據庫系統采用層次模型作為數據的組織方式。.網狀模型在現實世界中事物之間的聯系更多的是非 層次關系 的,用層次模型表示非樹形結構是很不直接的,網狀模型 則可以克服這一弊病。網狀數據庫系統采用網狀模型作為 數據的組織方式。網狀模型是一種比層次模型更具普遍性的結構,它 去掉了層次模型的兩個限制,允許多個結點沒有雙親結 點,允許結點有多個雙親結點,此外它還允許兩個結點之 間有多種聯系。.關系模型關系模型由關系數據結構、關系操縱和關系完整性 約束3部分組成。關系的數據結構關系模型的數據結構非常單一。在關系模型中,現 實世

59、界的實體以及實體間的各種聯系都用關系來表示。關 系模型米用二維表來表示,簡稱表。二維表由表結構及表 的元組組成。表結構由n個命名的屬性組成。每個屬性有 一個取值范圍稱為值域。表框架對應了關系的模式,即類 型的概念。關系操縱關系模型中常用的關系操縱包括:選擇、投影、連 接、除、并、交、差等查詢操作和增力口、刪除、修改操作 兩大部分。其中,查詢操作是最主要的部分。數據查詢。用戶可查詢數據庫中的數據,它包括 一個關系內的查詢以及多個關系間的查 詢。數據刪除。 數據刪除的基本單位是一個關系內的元組,它的功能是將 指定關系內的指定元 組刪除。它也分為定位與操作兩部 分,其中定位 部分只需要橫向定位而無需

60、縱向定位, 定位后即執行刪除操作。數據插入。數據插入僅對一個關系而 言,在指定關系中插入一個或多個元組。在數據插入中不 需定位,僅需做關系中元組插入操作,因此數據插入只有 一個 基本操作。數據修改。數據修改是在一個表 中修 改指定的元組與屬性。數據修改不是一個 基本操作,它可 以分解為刪除需修改的元組與插入修改后的元組兩個更基 本的操作。關系中的數據約束關系模型允許定義3類完整性約束:實體完整性、 參照完整性和用戶定義的完整性。其中,實體完整性和參 照完整性是關系模型必須滿足的完整性約束條件,用戶定 義的完整性是應用領域需要遵循的約束條件。考點3關系代數1關系代數的基本概念關系代數是一種抽象的

溫馨提示

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

評論

0/150

提交評論