版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
計算機(jī)2級C語言筆試部分。分為數(shù)據(jù)結(jié)構(gòu)、軟件工程、數(shù)據(jù)庫、面向程序設(shè)計。很詳細(xì)人生的成功不過是在緊要處有一份堅持。二級C語言公共基礎(chǔ)知識之?dāng)?shù)據(jù)結(jié)構(gòu)考點(diǎn)1算法的復(fù)雜度1.算法的基本概念算法的基本特征:可行性、確定性、有窮性、輸入(可為0)、輸出(不能為0)2.算法復(fù)雜度包括時間復(fù)雜度和空間復(fù)雜度名稱
描述
時間復(fù)雜度
是指執(zhí)行算法所需要的計算工作量
空間復(fù)雜度
是指執(zhí)行這個算法所需要的內(nèi)存空間
考點(diǎn)2邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)1.邏輯結(jié)構(gòu)允許插入的這一端稱為隊尾當(dāng)表中沒有元素時稱為空隊列隊列的修改是依照先進(jìn)先出的原則進(jìn)行的因此隊列也稱為先進(jìn)先出的線性表或者后進(jìn)后出的線性表例如:火車進(jìn)遂道最先進(jìn)遂道的是火車頭最后是火車尾而火車出遂道的時候也是火車頭先出最后出的是火車尾若有隊列:Q=(q1q2...qn)那么q1為隊頭元素(排頭元素)qn為隊尾元素隊列中的元素是按照q1q2...qn的順序進(jìn)入的退出隊列也只能按照這個次序依次退出即只有在q1q2...qn-1都退隊之后qn才能退出隊列因最先進(jìn)入隊列的元素將最先出隊所以隊列具有先進(jìn)先出的特性體現(xiàn)"先來先服務(wù)"的原則隊頭元素q1是最先被插入的元素也是最先被刪除的元素隊尾元素qn是最后被插入的元素也是最后被刪除的元素"先進(jìn)先出"入隊運(yùn)算為往隊列隊尾插入一個數(shù)據(jù)元素退隊運(yùn)算為從隊列的隊頭刪除一個數(shù)據(jù)元素考點(diǎn)6鏈表在鏈?zhǔn)酱鎯Ψ绞街幸竺總€結(jié)點(diǎn)由兩部分組成:一部分用于存放數(shù)據(jù)元素值稱為數(shù)據(jù)域另一部分用于存放指針稱為指針域其中指針用于指向該結(jié)點(diǎn)的前一個或后一個結(jié)點(diǎn)(即前件或后件)鏈?zhǔn)酱鎯Ψ绞郊瓤捎糜诒硎揪€性結(jié)構(gòu)也可用于表示非線性結(jié)構(gòu)(1)線性鏈表線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)稱為線性鏈表在某些應(yīng)用中對線性鏈表中的每個結(jié)點(diǎn)設(shè)置兩個指針一個稱為左指針用以指向其前件結(jié)點(diǎn);另一個稱為右指針用以指向其后件結(jié)點(diǎn)這樣的表稱為雙向鏈表在線性鏈表中各數(shù)據(jù)元素結(jié)點(diǎn)的存儲空間可以是不連續(xù)的且各數(shù)據(jù)元素的存儲順序與邏輯順序可以不一致在線性鏈表中進(jìn)行插入與刪除不需要移動鏈表中的元素(2)帶鏈的棧棧也是線性表也可以采用鏈?zhǔn)酱鎯Y(jié)構(gòu)帶鏈的棧可以用來收集計算機(jī)存儲空間中所有空閑的存儲結(jié)點(diǎn)這種帶鏈的棧稱為可利用??键c(diǎn)7二叉樹及其基本性質(zhì)1、二叉樹及其基本概念二叉樹是一種很有用的非線性結(jié)構(gòu)具有以下兩個特點(diǎn):①非空二叉樹只有一個根結(jié)點(diǎn);②每一個結(jié)點(diǎn)最多有兩棵子樹且分別稱為該結(jié)點(diǎn)的左子樹和右子樹在二叉樹中每一個結(jié)點(diǎn)的度最大為2即所有子樹(左子樹或右子樹)也均為二叉樹另外二叉樹中的每個結(jié)點(diǎn)的子樹被明顯地分為左子樹和右子樹在二叉樹中一個結(jié)點(diǎn)可以只有左子樹而沒有右子樹也可以只有右子樹而沒有左子樹當(dāng)一個結(jié)點(diǎn)既沒有左子樹也沒有右子樹時該結(jié)點(diǎn)即為葉子結(jié)點(diǎn)父結(jié)點(diǎn)(根)
在樹結(jié)構(gòu)中每一個結(jié)點(diǎn)只有一個前件稱為父結(jié)點(diǎn)沒有前件的結(jié)點(diǎn)只有一個稱為樹的根結(jié)點(diǎn)簡稱樹的根例如在圖1-1中結(jié)點(diǎn)A是樹的根結(jié)點(diǎn)
子結(jié)點(diǎn)和葉子結(jié)點(diǎn)
在樹結(jié)構(gòu)中每一個結(jié)點(diǎn)可以有多個后件稱為該結(jié)點(diǎn)的子結(jié)點(diǎn)沒有后件的結(jié)點(diǎn)稱為葉子結(jié)點(diǎn)例如在圖1-1中結(jié)點(diǎn)DEF均為葉子結(jié)點(diǎn)
度
在樹結(jié)構(gòu)中一個結(jié)點(diǎn)所擁有的后件的個數(shù)稱為該結(jié)點(diǎn)的度所有結(jié)點(diǎn)中最大的度稱為樹的度例如在圖1-1中根結(jié)點(diǎn)A和結(jié)點(diǎn)B的度為2結(jié)點(diǎn)C的度為1葉子結(jié)點(diǎn)DEF的度為0所以該樹的度為2
深度
定義一棵樹的根結(jié)點(diǎn)所在的層次為1其他結(jié)點(diǎn)所在的層次等于它的父結(jié)點(diǎn)所在的層次加1樹的最大層次稱為樹的深度例如在圖1-1中根結(jié)點(diǎn)A在第1層結(jié)點(diǎn)BC在第2層結(jié)點(diǎn)DEF在第3層該樹的深度為3
子樹
在樹中以某結(jié)點(diǎn)的一個子結(jié)點(diǎn)為根構(gòu)成的樹稱為該結(jié)點(diǎn)的一棵子樹
2、二叉樹基本性質(zhì)二叉樹具有以下幾個性質(zhì):性質(zhì)1:在二叉樹的第k層上最多有2k-1(k≥1)個結(jié)點(diǎn);性質(zhì)2:深度為m的二叉樹最多有2m-1個結(jié)點(diǎn);性質(zhì)3:在任意一棵二叉樹中度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個性質(zhì)4:具有n個結(jié)點(diǎn)的二叉樹其深度至少為[log2n]+1其中[log2n]表示取log2n的整數(shù)部分3、滿二叉樹與完全二叉樹滿二叉樹是指這樣的一種二叉樹:除最后一層外每一層上的所有結(jié)點(diǎn)都有兩個子結(jié)點(diǎn)在滿二叉樹中每一層上的結(jié)點(diǎn)數(shù)都達(dá)到最大值即在滿二叉樹的第k層上有2k-1個結(jié)點(diǎn)且深度為m的滿二叉樹有2m-1個結(jié)點(diǎn)完全二叉樹是指這樣的二叉樹:除最后一層外每一層上的結(jié)點(diǎn)數(shù)均達(dá)到最大值;在最后一層上只缺少右邊的若干結(jié)點(diǎn)對于完全二叉樹來說葉子結(jié)點(diǎn)只可能在層次最大的兩層上出現(xiàn):對于任何一個結(jié)點(diǎn)若其右分支下的子孫結(jié)點(diǎn)的最大層次為p則其左分支下的子孫結(jié)點(diǎn)的最大層次或為p或為p+1完全二叉樹具有以下兩個性質(zhì):性質(zhì)5:具有n個結(jié)點(diǎn)的完全二叉樹的深度為[log2n]+1性質(zhì)6:設(shè)完全二叉樹共有n個結(jié)點(diǎn)如果從根結(jié)點(diǎn)開始按層次(每一層從左到右)用自然數(shù)12......n給結(jié)點(diǎn)進(jìn)行編號則對于編號為k(k=12......n)的結(jié)點(diǎn)有以下結(jié)論:①若k=1則該結(jié)點(diǎn)為根結(jié)點(diǎn)它沒有父結(jié)點(diǎn);若k>1則該結(jié)點(diǎn)的父結(jié)點(diǎn)編號為INT(k/2)②若2k≤n則編號為k的結(jié)點(diǎn)的左子結(jié)點(diǎn)編號為2k;否則該結(jié)點(diǎn)無左子結(jié)點(diǎn)(顯然也沒有右子結(jié)點(diǎn))③若2k+1≤n則編號為k的結(jié)點(diǎn)的右子結(jié)點(diǎn)編號為2k+1;否則該結(jié)點(diǎn)無右子結(jié)點(diǎn)考點(diǎn)8二叉樹的遍歷在遍歷二叉樹的過程中一般先遍歷左子樹再遍歷右子樹在先左后右的原則下根據(jù)訪問根結(jié)點(diǎn)的次序二叉樹的遍歷分為三類:前序遍歷、中序遍歷和后序遍歷(1)前序遍歷:先訪問根結(jié)點(diǎn)、然后遍歷左子樹最后遍歷右子樹;并且在遍歷左、右子樹時仍然先訪問根結(jié)點(diǎn)然后遍歷左子樹最后遍歷右子樹ABDECF(2)中序遍歷:先遍歷左子樹、然后訪問根結(jié)點(diǎn)最后遍歷右子樹;并且在遍歷左、右子樹時仍然先遍歷左子樹然后訪問根結(jié)點(diǎn)最后遍歷右子樹DBEACF(3)后序遍歷:先遍歷左子樹、然后遍歷右子樹最后訪問根結(jié)點(diǎn);并且在遍歷左、右子樹時仍然先遍歷左子樹然后遍歷右子樹最后訪問根結(jié)點(diǎn)DEBFCA考點(diǎn)9順序查找查找是指在一個給定的數(shù)據(jù)結(jié)構(gòu)中查找某個指定的元素從線性表的第一個元素開始依次將線性表中的元素與被查找的元素相比較若相等則表示查找成功;若線性表中所有的元素都與被查找元素進(jìn)行了比較但都不相等則表示查找失敗例如在一維數(shù)組[21462499577786]中查找數(shù)據(jù)元素98首先從第1個元素21開始進(jìn)行比較與要查找的數(shù)據(jù)不相等接著與第2個元素46進(jìn)行比較以此類推當(dāng)進(jìn)行到與第4個元素比較時它們相等所以查找成功如果查找數(shù)據(jù)元素100則整個線性表掃描完畢仍未找到與100相等的元素表示線性表中沒有要查找的元素在下列兩種情況下也只能采用順序查找:(1)如果線性表為無序表則不管是順序存儲結(jié)構(gòu)還是鏈?zhǔn)酱鎯Y(jié)構(gòu)只能用順序查找(2)即使是有序線性表如果采用鏈?zhǔn)酱鎯Y(jié)構(gòu)也只能用順序查找考點(diǎn)10二分法查找二分法查找也稱拆半查找是一種高效的查找方法能使用二分法查找的線性表必須滿足兩個條件:用順序存儲結(jié)構(gòu);線性表是有序表在本書中為了簡化問題而更方便討論"有序"是特指元素按非遞減排列即從小到大排列但允許相鄰元素相等下一節(jié)排序中有序的含義也是如此順序查找法每一次比較只將查找范圍減少1而二分法查找每比較一次可將查找范圍減少為原來的一半效率大大提高對于長度為n的有序線性表在最壞情況下二分法查找只需比較log2n次而順序查找需要比較n次考點(diǎn)11排序冒泡排序法和快速排序法都屬于交換類排序法(1)冒泡排序法首先從表頭開始往后掃描線性表逐次比較相鄰兩個元素的大小若前面的元素大于后面的元素則將它們互換不斷地將兩個相鄰元素中的大者往后移動最后最大者到了線性表的最后然后從后到前掃描剩下的線性表逐次比較相鄰兩個元素的大小若后面的元素小于前面的元素則將它們互換不斷地將兩個相鄰元素中的小者往前移動最后最小者到了線性表的最前面對剩下的線性表重復(fù)上述過程直到剩下的線性表變空為止此時已經(jīng)排好序在最壞的情況下冒泡排序需要比較次數(shù)為n(n-1)/2(2)快速排序法任取待排序序列中的某個元素作為基準(zhǔn)(一般取第一個元素)通過一趟排序?qū)⒋旁胤譃樽笥覂蓚€子序列左子序列元素的排序碼均小于或等于基準(zhǔn)元素的排序碼右子序列的排序碼則大于基準(zhǔn)元素的排序碼然后分別對兩個子序列繼續(xù)進(jìn)行排序直至整個序列有序二級C語言公共基礎(chǔ)知識之軟件工程考點(diǎn)1軟件工程基本概念1.軟件定義與軟件特點(diǎn)軟件指的是計算機(jī)系統(tǒng)中與硬件相互依存的另一部分包括程序、數(shù)據(jù)和相關(guān)文檔的完整集合程序是軟件開發(fā)人員根據(jù)用戶需求開發(fā)的、用程序設(shè)計語言描述的、適合計算機(jī)執(zhí)行的指令序列數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu)文檔是與程序的開發(fā)、維護(hù)和使用有關(guān)的圖文資料可見軟件由兩部分組成:(1)機(jī)器可執(zhí)行的程序和數(shù)據(jù);(2)機(jī)器不可執(zhí)行的與軟件開發(fā)、運(yùn)行、維護(hù)、使用等有關(guān)的文檔根據(jù)應(yīng)用目標(biāo)的不同軟件可分應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)名稱
描述
應(yīng)用軟件
為解決特定領(lǐng)域的應(yīng)用而開發(fā)的軟件
系統(tǒng)軟件
計算機(jī)管理自身資源提高計算機(jī)使用效率并為計算機(jī)用戶提供各種服務(wù)的軟件
支撐軟件(或工具軟件)
支撐軟件是介于兩者之間協(xié)助用戶開發(fā)軟件的工具性軟件
2.軟件工程為了擺脫軟件危機(jī)提出了軟件工程的概念軟件工程學(xué)是研究軟件開發(fā)和維護(hù)的普遍原理與技術(shù)的一門工程學(xué)科所謂軟件工程是指采用工程的概念、原理、技術(shù)和方法指導(dǎo)軟件的開發(fā)與維護(hù)軟件工程學(xué)的主要研究對象包括軟件開發(fā)與維護(hù)的技術(shù)、方法、工具和管理等方面軟件工程包括3個要素:方法、工具和過程名稱
描述
方法
方法是完成軟件工程項目的技術(shù)手段
工具
工具支持軟件的開發(fā)、管理、文檔生成
過程
過程支持軟件開發(fā)的各個環(huán)節(jié)的控制、管理
考點(diǎn)2軟件生命周期1.軟件生命周期概念軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期一般包括可行性分析研究與需求分析、設(shè)計、實(shí)現(xiàn)、測試、交付使用以及維護(hù)等活動如圖3-1所示軟件生命周期分為3個時期共8個階段(1)軟件定義期:包括問題定義、可行性研究和需求分析3個階段;(2)軟件開發(fā)期:包括概要設(shè)計、詳細(xì)設(shè)計、實(shí)現(xiàn)和測試4個階段;(3)運(yùn)行維護(hù)期:即運(yùn)行維護(hù)階段軟件生命周期各個階段的活動可以有重復(fù)執(zhí)行時也可以有迭代如圖3-1所示2.軟件生命周期各階段的主要任務(wù)任務(wù)
描述
問題定義
確定要求解決的問題是什么
可行性研究與計劃制定
決定該問題是否存在一個可行的解決辦法指定完成開發(fā)任務(wù)的實(shí)施計劃
需求分析
對待開發(fā)軟件提出需求進(jìn)行分析并給出詳細(xì)定義編寫軟件規(guī)格說明書及初步的用戶手冊提交評審
軟件設(shè)計
通常又分為概要設(shè)計和詳細(xì)設(shè)計兩個階段給出軟件的結(jié)構(gòu)、模塊的劃分、功能的分配以及處理流程這階段提交評審的文檔有概要設(shè)計說明書、詳細(xì)設(shè)計說明書和測試計劃初稿
軟件實(shí)現(xiàn)
在軟件設(shè)計的基礎(chǔ)上編寫程序這階段完成的文檔有用戶手冊、操作手冊等面向用戶的文檔以及為下一步作準(zhǔn)備而編寫的單元測試計劃
軟件測試
在設(shè)計測試用例的基礎(chǔ)上檢驗軟件的各個組成部分編寫測試分析報告
運(yùn)行維護(hù)
將已交付的軟件投入運(yùn)行同時不斷的維護(hù)進(jìn)行必要而且可行的擴(kuò)充和刪改
考點(diǎn)3軟件設(shè)計基本概念從技術(shù)觀點(diǎn)上看軟件設(shè)計包括軟件結(jié)構(gòu)設(shè)計、數(shù)據(jù)設(shè)計、接口設(shè)計、過程設(shè)計(1)結(jié)構(gòu)設(shè)計定義軟件系統(tǒng)各主要部件之間的關(guān)系;(2)數(shù)據(jù)設(shè)計將分析時創(chuàng)建的模型轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)的定義;(3)接口設(shè)計是描述軟件內(nèi)部、軟件和協(xié)作系統(tǒng)之間以及軟件與人之間如何通信;(4)過程設(shè)計則是把系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換為軟件的過程性描述從工程管理角度來看軟件設(shè)計分兩步完成:概要設(shè)計和詳細(xì)設(shè)計(1)概要設(shè)計將軟件需求轉(zhuǎn)化為軟件體系結(jié)構(gòu)、確定系統(tǒng)級接口、全局?jǐn)?shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)庫模式;(2)詳細(xì)設(shè)計確立每個模塊的實(shí)現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu)用適當(dāng)方法表示算法和數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié)考點(diǎn)4軟件設(shè)計的基本原理1、軟件設(shè)計中應(yīng)該遵循的基本原理和與軟件設(shè)計有關(guān)的概念(1)抽象:軟件設(shè)計中考慮模塊化解決方案時可以定出多個抽象級別抽象的層次從概要設(shè)計到詳細(xì)設(shè)計逐步降低(2)模塊化:模塊是指把一個待開發(fā)的軟件分解成若干小的簡單的部分模塊化是指解決一個復(fù)雜問題時自頂向下逐層把軟件系統(tǒng)劃分成若干模塊的過程(3)信息隱蔽:信息隱蔽是指在一個模塊內(nèi)包含的信息(過程或數(shù)據(jù))對于不需要這些信息的其他模塊來說是不能訪問的(4)模塊獨(dú)立性:模塊獨(dú)立性是指每個模塊只完成系統(tǒng)要求的獨(dú)立的子功能并且與其他模塊的聯(lián)系最少且接口簡單模塊的獨(dú)立程度是評價設(shè)計好壞的重要度量標(biāo)準(zhǔn)衡量軟件的模塊獨(dú)立性使用耦合性和內(nèi)聚性兩個定性的度量標(biāo)準(zhǔn)內(nèi)聚性是信息隱蔽和局部化概念的自然擴(kuò)展一個模塊的內(nèi)聚性越強(qiáng)則該模塊的模塊獨(dú)立性越強(qiáng)一個模塊與其他模塊的耦合性越強(qiáng)則該模塊的模塊獨(dú)立性越弱2、衡量軟件模塊獨(dú)立性使用耦合性和內(nèi)聚性兩個定性的度量標(biāo)準(zhǔn)內(nèi)聚性是度量一個模塊功能強(qiáng)度的一個相對指標(biāo)內(nèi)聚是從功能角度來衡量模塊的聯(lián)系它描述的是模塊內(nèi)的功能聯(lián)系內(nèi)聚有如下種類它們之間的內(nèi)聚度由弱到強(qiáng)排列:偶然內(nèi)聚、邏輯內(nèi)聚、時間內(nèi)聚、過程內(nèi)聚、通信內(nèi)聚、順序內(nèi)聚、功能內(nèi)聚耦合性是模塊之間互相連接的緊密程度的度量耦合性取決于各個模塊之間接口的復(fù)雜度、調(diào)用方式以及哪些信息通過接口耦合可以分為下列幾種它們之間的耦合度由高到低排列:內(nèi)容耦合、公共耦合、外部耦合、控制耦合、標(biāo)記耦合、數(shù)據(jù)耦合、非直接耦合在程序結(jié)構(gòu)中各模塊的內(nèi)聚性越強(qiáng)則耦合性越弱一般較優(yōu)秀的軟件設(shè)計應(yīng)盡量做到高內(nèi)聚低耦合即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性有利于提高模塊的獨(dú)立性考點(diǎn)5結(jié)構(gòu)化分析方法1、結(jié)構(gòu)化分析方法的定義結(jié)構(gòu)化分析方法就是使用數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、結(jié)構(gòu)化英語、判定表和判定樹的工具來建立一種新的、稱為結(jié)構(gòu)化規(guī)格說明的目標(biāo)文檔結(jié)構(gòu)化分析方法的實(shí)質(zhì)是著眼于數(shù)據(jù)流、自頂向下、對系統(tǒng)的功能進(jìn)行逐層分解、以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具建立系統(tǒng)的邏輯模型2、結(jié)構(gòu)化分析方法常用工具(1)數(shù)據(jù)流圖(DFD)數(shù)據(jù)流圖是系統(tǒng)邏輯模型的圖形表示即使不是專業(yè)的計算機(jī)技術(shù)人員也容易理解它因此它是分析員與用戶之間極好的通信工具(2)數(shù)據(jù)字典(DD)數(shù)據(jù)字典是對數(shù)據(jù)流圖中所有元素的定義的集合是結(jié)構(gòu)化分析的核心數(shù)據(jù)流圖和數(shù)據(jù)字典共同構(gòu)成系統(tǒng)的邏輯模型沒有數(shù)據(jù)字典數(shù)據(jù)流圖就不嚴(yán)格若沒有數(shù)據(jù)流圖數(shù)據(jù)字典也難于發(fā)揮作用數(shù)據(jù)字典中有4種類型的條目:數(shù)據(jù)流、數(shù)據(jù)項、數(shù)據(jù)存儲和加工(3)判定表有些加工的邏輯用語言形式不容易表達(dá)清楚而用表的形式則一目了然如果一個加工邏輯有多個條件、多個操作并且在不同的條件組合下執(zhí)行不同的操作那么可以使用判定表來描述(4)判定樹判定樹和判定表沒有本質(zhì)的區(qū)別可以用判定表表示的加工邏輯都能用判定樹表示3、軟件需求規(guī)格說明書軟件需求規(guī)格說明書是需求分析階段的最后成果是軟件開發(fā)的重要文檔之一它的特點(diǎn)是具有正確性、無歧義性、完整性、可驗證性、一致性、可理解性、可修改性和可追蹤性考點(diǎn)6軟件測試的目的和準(zhǔn)則1.軟件測試的目的(1)測試是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程(2)好的測試用例(testcase)能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯誤(3)一次成功的測試是能發(fā)現(xiàn)至今為止尚未發(fā)現(xiàn)的錯誤測試的目的是發(fā)現(xiàn)軟件中的錯誤但是暴露錯誤并不是軟件測試的最終目的測試的根本目的是盡可能多地發(fā)現(xiàn)并排除軟件中隱藏的錯誤2.軟件測試的準(zhǔn)則根據(jù)上述軟件測試的目的為了能設(shè)計出有效的測試方案以及好的測試用例軟件測試人員必須深入理解并正確運(yùn)用以下軟件測試的基本準(zhǔn)則(1)所有測試都應(yīng)追溯到用戶需求(2)在測試之前制定測試計劃并嚴(yán)格執(zhí)行(3)充分注意測試中的群集現(xiàn)象(4)避免由程序的編寫者測試自己的程序(5)不可能進(jìn)行窮舉測試(6)妥善保存測試計劃、測試用例、出錯統(tǒng)計和最終分析報告為維護(hù)提供方便考點(diǎn)7軟件測試的方法和實(shí)施【考點(diǎn)精講】1、軟件測試方法軟件測試具有多種方法依據(jù)軟件是否需要被執(zhí)行可以分為靜態(tài)測試和動態(tài)測試方法如果依照功能劃分可以分為白盒測試和黑盒測試方法1.靜態(tài)測試和動態(tài)測試(1)靜態(tài)測試包括代碼檢查、靜態(tài)結(jié)構(gòu)分析、代碼質(zhì)量度量等其中代碼檢查分為代碼審查、代碼走查、桌面檢查、靜態(tài)分析等具體形式(2)動態(tài)測試靜態(tài)測試不實(shí)際運(yùn)行軟件主要通過人工進(jìn)行分析動態(tài)測試就是通常所說的上機(jī)測試是通過運(yùn)行軟件來檢驗軟件中的動態(tài)行為和運(yùn)行結(jié)果的正確性動態(tài)測試的關(guān)鍵是使用設(shè)計高效、合理的測試用例測試用例就是為測試設(shè)計的數(shù)據(jù)由測試輸入數(shù)據(jù)和預(yù)期的輸出結(jié)果兩部份組成測試用例的設(shè)計方法一般分為兩類:黑盒測試方法和白盒測試方法2.黑盒測試和白盒測試(1)白盒測試白盒測試是把程序看成裝在一只透明的白盒子里測試者完全了解程序的結(jié)構(gòu)和處理過程它根據(jù)程序的內(nèi)部邏輯來設(shè)計測試用例檢查程序中的邏輯通路是否都按預(yù)定的要求正確地工作(2)黑盒測試黑盒測試是把程序看成一只黑盒子測試者完全不了解或不考慮程序的結(jié)構(gòu)和處理過程它根據(jù)規(guī)格說明書的功能來設(shè)計測試用例檢查程序的功能是否符合規(guī)格說明的要求2、軟件測試的實(shí)施軟件測試過程分4個步驟即單元測試、集成測試、驗收測試和系統(tǒng)測試單元測試是對軟件設(shè)計的最小單位--模塊(程序單元)進(jìn)行正確性檢驗測試單元測試的技術(shù)可以采用靜態(tài)分析和動態(tài)測試集成測試是測試和組裝軟件的過程主要目的是發(fā)現(xiàn)與接口有關(guān)的錯誤主要依據(jù)是概要設(shè)計說明書集成測試所設(shè)計的內(nèi)容包括:軟件單元的接口測試、全局?jǐn)?shù)據(jù)結(jié)構(gòu)測試、邊界條件和非法輸入的測試等集成測試時將模塊組裝成程序通常采用兩種方式:非增量方式組裝和增量方式組裝確認(rèn)測試的任務(wù)是驗證軟件的功能和性能以及其他特性是否滿足了需求規(guī)格說明中確定的各種需求包括軟件配置是否完全、正確確認(rèn)測試的實(shí)施首先運(yùn)用黑盒測試方法對軟件進(jìn)行有效性測試即驗證被測軟件是否滿足需求規(guī)格說明確認(rèn)的標(biāo)準(zhǔn)系統(tǒng)測試是通過測試確認(rèn)的軟件作為整個基于計算機(jī)系統(tǒng)的一個元素與計算機(jī)硬件、外設(shè)、支撐軟件、數(shù)據(jù)和人員等其他系統(tǒng)元素組合在一起在實(shí)際運(yùn)行(使用)環(huán)境下對計算機(jī)系統(tǒng)進(jìn)行一系列的集成測試和確認(rèn)測試系統(tǒng)測試的具體實(shí)施一般包括:功能測試、性能測試、操作測試、配置測試、外部接口測試、安全性測試等考點(diǎn)8程序的調(diào)試在對程序進(jìn)行了成功的測試之后將進(jìn)入程序調(diào)試(通常稱Debug即排錯)程序的調(diào)試任務(wù)是診斷和改正程序中的錯誤調(diào)試主要在開發(fā)階段進(jìn)行程序調(diào)試活動由兩部分組成一是根據(jù)錯誤的跡象確定程序中錯誤的確切性質(zhì)、原因和位置;二是對程序進(jìn)行修改排除這個錯誤程序調(diào)試的基本步驟:(1)錯誤定位從錯誤的外部表現(xiàn)形式入手研究有關(guān)部分的程序確定程序中出錯位置找出錯誤的內(nèi)在原因;(2)修改設(shè)計和代碼以排除錯誤;(3)進(jìn)行回歸測試防止引進(jìn)新的錯誤軟件調(diào)試可分為靜態(tài)調(diào)試和動態(tài)調(diào)試靜態(tài)調(diào)試主要是指通過人的思維來分析源程序代碼和排錯是主要的設(shè)計手段而動態(tài)調(diào)試是輔助靜態(tài)調(diào)試的主要的調(diào)試方法有:(1)強(qiáng)行排錯法;(2)回溯法;(3)原因排除法二級C語言公共基礎(chǔ)知識之面向程序設(shè)計考點(diǎn)1程序設(shè)計的方法與風(fēng)格養(yǎng)成良好的程序設(shè)計風(fēng)格主要考慮下述因素:1.源程序文檔化(1)符號名的命名:符號名的命名應(yīng)具有一定的實(shí)際含義以便于對程序功能的理解(2)程序注釋:在源程序中添加正確的注釋可幫助人們理解程序程序注釋可分為序言性注釋和功能性注釋(3)視覺組織:通過在程序中添加一些空格、空行和縮進(jìn)等使人們在視覺上對程序的結(jié)構(gòu)一目了然2.?dāng)?shù)據(jù)說明的方法為使程序中的數(shù)據(jù)說明易于理解和維護(hù)可采用下列數(shù)據(jù)說明的風(fēng)格見表2-1數(shù)據(jù)說明風(fēng)格
詳細(xì)說明
次序應(yīng)規(guī)范化
使數(shù)據(jù)說明次序固定使數(shù)據(jù)的屬性容易查找也有利于測試、排錯和維護(hù)
變量安排有序化
當(dāng)多個變量出現(xiàn)在同一個說明語句中時變量名應(yīng)按字母順序排序以便于查找
使用注釋
在定義一個復(fù)雜的數(shù)據(jù)結(jié)構(gòu)時應(yīng)通過注解來說明該數(shù)據(jù)結(jié)構(gòu)的特點(diǎn)
3.語句的結(jié)構(gòu)程序應(yīng)該簡單易懂語句構(gòu)造應(yīng)該簡單直接4.輸入和輸出考點(diǎn)2結(jié)構(gòu)化程序設(shè)計1.構(gòu)化程序設(shè)計的原則結(jié)構(gòu)化程序設(shè)計方法引入了工程思想和結(jié)構(gòu)化思想使大型軟件的開發(fā)和編程得到了極大的改善結(jié)構(gòu)化程序設(shè)計方法的主要原則為:自頂向下、逐步求精、模塊化和限制使用goto語句自頂向上:先考慮整體再考慮細(xì)節(jié);先考慮全局目標(biāo)再考慮局部目標(biāo)逐步求精:對復(fù)雜問題應(yīng)設(shè)計一些子目標(biāo)作為過渡逐步細(xì)化模塊化:把程序要解決的總目標(biāo)分解為分目標(biāo)再進(jìn)一步分解為具體的小目標(biāo)把每個小目標(biāo)稱為一個模塊限制使用goto語句:在程序開發(fā)過程中要限制使用goto語句2.結(jié)構(gòu)化程序的基本結(jié)構(gòu)結(jié)構(gòu)化程序的基本結(jié)構(gòu)有三種類型:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)順序結(jié)構(gòu):是最基本、最普通的結(jié)構(gòu)形式按照程序中的語句行的先后順序逐條執(zhí)行選擇結(jié)構(gòu):又稱為分支結(jié)構(gòu)它包括簡單選擇和多分支選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu):根據(jù)給定的條件判斷是否要重復(fù)執(zhí)行某一相同的或類似的程序段循環(huán)結(jié)構(gòu)對應(yīng)兩類循環(huán)語句:先判斷后執(zhí)行的循環(huán)體稱為當(dāng)型循環(huán)結(jié)構(gòu);先執(zhí)行循環(huán)體后判斷的稱為直到型循環(huán)結(jié)構(gòu)考點(diǎn)3面向?qū)ο蠓椒嫦驅(qū)ο蠓椒êw對象及對象屬性與方法、類、繼承、多態(tài)性幾個基本要素(1)對象通常把對象的操作也稱為方法或服務(wù)屬性即對象所包含的信息它在設(shè)計對象時確定一般只能通過執(zhí)行對象的操作來改變屬性值應(yīng)該指的是純粹的數(shù)據(jù)值而不能指對象操作描述了對象執(zhí)行的功能若通過信息的傳遞還可以為其他對象使用對象具有如下特征:標(biāo)識惟一性、分類性、多態(tài)性、封裝性、模塊獨(dú)立性(2)類和實(shí)例類是具有共同屬性、共同方法的對象的集合它描述了屬于該對象類型的所有對象的性質(zhì)而一個對象則是其對應(yīng)類的一個實(shí)例類是關(guān)于對象性質(zhì)的描述它同對象一樣包括一組數(shù)據(jù)屬性和在數(shù)據(jù)上的一組合法操作(3)消息消息是實(shí)例之間傳遞的信息它請求對象執(zhí)行某一處理或回答某一要求的信息它統(tǒng)一了數(shù)據(jù)流和控制流一個消息由三部分組成:接收消息的對象的名稱、消息標(biāo)識符(消息名)和零個或多個參數(shù)(4)繼承廣義地說繼承是指能夠直接獲得已有的性質(zhì)和特征而不必重復(fù)定義它們繼承分為單繼承與多重繼承單繼承是指一個類只允許有一個父類即類等級為樹形結(jié)構(gòu)多重繼承是指一個類允許有多個父類(5)多態(tài)性對象根據(jù)所接受的消息而做出動作同樣的消息被不同的對象接受時可導(dǎo)致完全不同的行動該現(xiàn)象稱為多態(tài)性二級C語言公共基礎(chǔ)知識之?dāng)?shù)據(jù)庫考點(diǎn)1數(shù)據(jù)庫的基本概念數(shù)據(jù)是數(shù)據(jù)庫中存儲的基本對象描述事物的符號記錄數(shù)據(jù)庫是長期儲存在計算機(jī)內(nèi)、有組織的、可共享的大量數(shù)據(jù)的集合它具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲介質(zhì)內(nèi)是多種應(yīng)用數(shù)據(jù)的集成并可被各個應(yīng)用程序所共享所以數(shù)據(jù)庫技術(shù)的根本目標(biāo)是解決數(shù)據(jù)共享問題數(shù)據(jù)庫管理系統(tǒng)(DBMSDatabaseManagementSystem)是數(shù)據(jù)庫的機(jī)構(gòu)它是一種系統(tǒng)軟件負(fù)責(zé)數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操作、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)系統(tǒng)的核心為完成數(shù)據(jù)庫管理系統(tǒng)的功能數(shù)據(jù)庫管理系統(tǒng)提供相應(yīng)的數(shù)據(jù)語言:數(shù)據(jù)定義語言、數(shù)據(jù)操縱語言、數(shù)據(jù)控制語言考點(diǎn)2數(shù)據(jù)庫系統(tǒng)的發(fā)展和基本特點(diǎn)1.?dāng)?shù)據(jù)庫系統(tǒng)的發(fā)展數(shù)據(jù)管理技術(shù)的發(fā)展經(jīng)歷了三個階段:人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段關(guān)于數(shù)據(jù)管理三個階段中的軟硬件背景及處理特點(diǎn)簡單概括見表4-1
人工管理階段
文件管理階段
數(shù)據(jù)庫系統(tǒng)管理階段
背景
應(yīng)用目的
科學(xué)計算
科學(xué)計算、管理
大規(guī)模管理
硬件背景
無直接存取設(shè)備
磁盤、磁鼓
大容量磁盤
軟件背景
無操作系統(tǒng)
有文件系統(tǒng)
有數(shù)據(jù)庫管理系統(tǒng)
處理方式
批處理
聯(lián)機(jī)實(shí)時處理、批處理
分布處理、聯(lián)機(jī)實(shí)時處理和批處理
特點(diǎn)
數(shù)據(jù)管理者
人
文件系統(tǒng)
數(shù)據(jù)庫管理系統(tǒng)
數(shù)據(jù)面向的對象
某個應(yīng)用程序
某個應(yīng)用程序
現(xiàn)實(shí)世界
數(shù)據(jù)共享程度
無共享冗余度大
共享性差冗余度大
共享性大冗余度小
數(shù)據(jù)的獨(dú)立性
不獨(dú)立完全依賴于程序
獨(dú)立性差
具有高度的物理獨(dú)立性和一定的邏輯獨(dú)立性
數(shù)據(jù)的結(jié)構(gòu)化
無結(jié)構(gòu)
記錄內(nèi)有結(jié)構(gòu)整體無結(jié)構(gòu)
整體結(jié)構(gòu)化用數(shù)據(jù)模型描述
數(shù)據(jù)控制能力
由應(yīng)用程序控制
應(yīng)用程序控制
由DBMS提供數(shù)據(jù)安全性、完整性、并發(fā)控制和恢復(fù)
2.?dāng)?shù)據(jù)庫系統(tǒng)的特點(diǎn)數(shù)據(jù)獨(dú)立性是數(shù)據(jù)與程序間的互不依賴性即數(shù)據(jù)庫中的數(shù)據(jù)獨(dú)立于應(yīng)用程序而不依賴于應(yīng)用程序數(shù)據(jù)的獨(dú)立性一般分為物理獨(dú)立性與邏輯獨(dú)立性兩種(1)物理獨(dú)立性:當(dāng)數(shù)據(jù)的物理結(jié)構(gòu)(包括存儲結(jié)構(gòu)、存取方式等)改變時如存儲設(shè)備的更換、物理存儲的更換、存取方式改變等應(yīng)用程序都不用改變(2)邏輯獨(dú)立性:數(shù)據(jù)的邏輯結(jié)構(gòu)改變了如修改數(shù)據(jù)模式、增加新的數(shù)據(jù)類型、改變數(shù)據(jù)間聯(lián)系等用戶程序都可以不變考點(diǎn)3數(shù)據(jù)庫系統(tǒng)的內(nèi)部體系結(jié)構(gòu)1.?dāng)?shù)據(jù)統(tǒng)系統(tǒng)的3級模式(1)概念模式也稱邏輯模式是對數(shù)據(jù)庫系統(tǒng)中全局?jǐn)?shù)據(jù)邏輯結(jié)構(gòu)的描述是全體用戶(應(yīng)用)公共數(shù)據(jù)視圖一個數(shù)據(jù)庫只有一個概念模式(2)外模式外模式也稱子模式它是數(shù)據(jù)庫用戶能夠看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述它是由概念模式推導(dǎo)而出來的是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示一個概念模式可以有若干個外模式(3)內(nèi)模式內(nèi)模式又稱物理模式它給出了數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法內(nèi)模式處于最底層它反映了數(shù)據(jù)在計算機(jī)物理結(jié)構(gòu)中的實(shí)際存儲形式概念模式處于中間層它反映了設(shè)計者的數(shù)據(jù)全局邏輯要求而外模式處于最外層它反映了用戶對數(shù)據(jù)的要求2.?dāng)?shù)據(jù)庫系統(tǒng)的兩級映射兩級映射保證了數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的獨(dú)立性(1)概念模式到內(nèi)模式的映射該映射給出了概念模式中數(shù)據(jù)的全局邏輯結(jié)構(gòu)到數(shù)據(jù)的物理存儲結(jié)構(gòu)間的對應(yīng)關(guān)系;(2)外模式到概念模式的映射概念模式是一個全局模式而外模式是用戶的局部模式一個概念模式中可以定義多個外模式而每個外模式是概念模式的一個基本視圖考點(diǎn)4數(shù)據(jù)模型的基本概念【考點(diǎn)精講】數(shù)據(jù)模型從抽象層次上描述了數(shù)據(jù)庫系統(tǒng)的靜態(tài)特征、動態(tài)行為和約束條件因此數(shù)據(jù)模型通常由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作及數(shù)據(jù)約束三部分組成數(shù)據(jù)庫管理系統(tǒng)所支持的數(shù)據(jù)模型分為3種:層次模型、網(wǎng)狀模型和關(guān)系模型各數(shù)據(jù)模型的特點(diǎn)見表42發(fā)展階段
主要特點(diǎn)
層次模型
用樹形結(jié)構(gòu)表示實(shí)體及其之間聯(lián)系的模型稱為層次模型上級結(jié)點(diǎn)與下級結(jié)點(diǎn)之間為一對多的聯(lián)系
網(wǎng)狀模型
用網(wǎng)狀結(jié)構(gòu)表示實(shí)體及其之間聯(lián)系的模型稱為網(wǎng)狀模型網(wǎng)中的每一個結(jié)點(diǎn)代表一個實(shí)體類型允許結(jié)點(diǎn)有多于一個的父結(jié)點(diǎn)可以有一個以上的結(jié)點(diǎn)沒有父結(jié)點(diǎn)
關(guān)系模型
用二維表結(jié)構(gòu)來表示實(shí)體以及實(shí)體之間聯(lián)系的模型稱為關(guān)系模型在關(guān)系模型中把數(shù)據(jù)看成是二維表中的元素一張二維表就是一個關(guān)系
考點(diǎn)5E-R模型1、E-R模型的基本概念(1)實(shí)體:現(xiàn)實(shí)世界中的事物可以抽象成為實(shí)體實(shí)體是概念世界中的基本單位它們是客觀存在的且又能相互區(qū)別的事物(2)屬性:現(xiàn)實(shí)世界中事物均有一些特性這些特性可以用屬性來表示(3)碼:唯一標(biāo)識實(shí)體的屬性集稱為碼(4)域:屬性的取值范圍稱為該屬性的域(5)聯(lián)系:在現(xiàn)實(shí)世界中事物間的關(guān)聯(lián)稱為聯(lián)系兩個實(shí)體集間的聯(lián)系實(shí)際上是實(shí)體集間的函數(shù)關(guān)系這種函數(shù)關(guān)系可以有下面幾種:一對一的聯(lián)系、一對多或多對一聯(lián)系、多對多2、E-R模型的的圖示法R模型用E-R圖來表示(1)實(shí)體表示法:在E-R圖中用矩形表示實(shí)體集在矩形內(nèi)寫上該實(shí)體集的名字(2
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度旅游景區(qū)物業(yè)管理及租賃合同4篇
- 二零二五年度豬欄建設(shè)與養(yǎng)殖廢棄物資源化利用合同4篇
- 2025年度酒店廚房承包管理與維護(hù)協(xié)議4篇
- 2025年度個人住宅水電安裝與維護(hù)承包合同4篇
- 2025年度農(nóng)業(yè)科技創(chuàng)新土地承包使用權(quán)轉(zhuǎn)讓協(xié)議4篇
- 2025年出租車品牌形象使用權(quán)及股份轉(zhuǎn)讓合同3篇
- 2025年數(shù)字經(jīng)濟(jì)產(chǎn)業(yè)用地租賃合同范本4篇
- 喉頭腫瘤患者中醫(yī)食療方案應(yīng)用-深度研究
- 二零二五年度物流倉儲項目承包招商管理合同4篇
- 二零二五年度農(nóng)機(jī)產(chǎn)業(yè)園區(qū)建設(shè)與運(yùn)營合同4篇
- 妊娠合并低鉀血癥護(hù)理查房
- 煤礦反三違培訓(xùn)課件
- 向流程設(shè)計要效率
- 安全文明施工的管理要點(diǎn)
- 2024年中國航空發(fā)動機(jī)集團(tuán)招聘筆試參考題庫含答案解析
- 當(dāng)代中外公司治理典型案例剖析(中科院研究生課件)
- 動力管道設(shè)計手冊-第2版
- 2022年重慶市中考物理試卷A卷(附答案)
- Python繪圖庫Turtle詳解(含豐富示例)
- 煤礦機(jī)電設(shè)備檢修技術(shù)規(guī)范完整版
- 榆林200MWp并網(wǎng)光伏發(fā)電項目可行性研究報告
評論
0/150
提交評論