計算機二級考試必備資料及答案?計算機二級公共基礎知識,我來為大家科普一下關于計算機二級考試必備資料及答案?以下内容希望對你有幫助!
計算機二級公共基礎知識
1算法的基本概念
1、算法一般應具有以下幾個基本特征:可行性、确定性、有窮性、擁有足夠的情報。
算法是對解題方案的準确而完整的描述,是一組嚴謹地定義運算順序的規則,并且每一個規則都是有效和明确的,此順序将在有限的次數下終止。
2、算法的基本要素
(1)算法中對數據的運算和操作。通常有4類:算術運算,邏輯運算,關系運算和數據傳輸。
(2)算法的控制結構。算法的功能不僅僅取決于所選擇的操作,還與操作之間的執行順序及算法的控制結構有關。
3、算法設計基本方法
算法設計的基本方法有列舉法、歸納法和遞推法、遞歸法和減半遞推技術。
4、算法的複雜度(在算法正确的前提下,評價算法的标準)
(1)算法的時間複雜度
算法的時間複雜度是指執行算法所需要的計算工作量。算法的工作量用算法所執行的基本運算次數來度量,而算法所執行的基本運算次數是問題規模的函數。
(2)算法的空間複雜度
算法的空間複雜度,一般是指執行這個算法所需要的内存空間。一個算法所占的存儲空間包括算法程序所占的空間、輸入的初始數據所占的存儲空間以及算法執行過程中所需要的額外空間。
數據結構,直接影響算法的選擇和效率。而數據結構包括兩方面,即數據的邏輯結構和數據的存儲結構。
數據之間的相互關系稱為邏輯結構。通常分為4類基本邏輯結構,即集合、線性結構、樹形結構和圖狀結構或網狀結構。存儲結構圖是邏輯結構在存儲器中的映象,它包含數據元素的映象和關系的映象。存儲結構在計算機有兩種,即順序存儲結構和鍊式存儲結構。
時間複雜度與空間複雜度之間沒有必然的聯系。
2數據結構基本概念
1、 數據結構是指反映數據元素之間的數年據元素集合的表示。
2、 所謂數據的邏輯結構,是指所映數據元素之間邏輯關系的數據結構。數據的邏輯結構有兩個要素:一是數據元素的集合;二是數據元素之間的關系。
3、 各數據元素在計算機存儲空間中的位置關系與它們的邏輯關系不一定是相同的。數據的邏輯結構在計算機存儲空間中的存放形式稱為數據的存儲結構(也稱數據的物理結構)。
3線性表和線性鍊表
1、 線性結構與非線性結構
根據數據結構中各數據元素之間前後件關系複雜程度,一般将數據結構分為兩大類型:線性結構與非線性結構。如果一個非空的數據結構滿足下列兩個條件:
(1) 有且隻有一個根結點。(2)每一個結點最多有一個前件,也最多有一個後件。
則稱該數據結構不是線性結構,則稱之為非線性結構。
如果一個關系中的屬性或屬性組并非該關系的關鍵字,但它是另一個關系的關鍵字,則稱其為本關系的外關鍵字
2、 線性表的基本概念
線性表是由n(n>=0)個數據元素
組成的一個有限序列,表中的每一個數據元素,除了第一個外,有且隻有一個前件,除了最後一個外,有且隻有一個後件。
3、線性表的順序存儲結構
線性表的順序存儲結構具有以下兩個基本特點:線性表中所有元素所占的存儲空間是連續的。線性表中各數據元素在存儲結構中,其前後件兩個元素在存儲空間中是緊鄰的,且前件元素一定存儲在後件元素的前面。
在順序存儲結構中,線性表中每一個數據元素在計算機存儲空間中的存儲地址由該元素在線性表中的位置序号唯一确定。
3、 線性鍊表
大的線性表,特别是元素變動頻繁的大線性表不宜采用順序存儲結構,而應采用鍊式存儲結構。
在鍊式存儲結構中,要求每個結點由兩部分組成:一部分用于存放數據元素值,稱為數據域;另一部分用于存放指針,稱為指針域。其中指針于指向該結點的前一個或後一個結點。
在鍊式存儲結構稱為線性鍊表。一般來說,在線性表的鍊式存儲結構中,各數據結點的存儲序号是不連續的,并且各結點在存儲空間中的位置關系與邏輯關系也不一緻。棧和隊列也是線性表,也可以采用鍊式存儲結構。
4、 線性鍊表的基本運算
線性鍊表的基本運算有:在非空線性鍊表中尋找包含指定元素值X的前一個結點P,線性鍊表的插入,線性鍊表的删除。
5、 循環鍊表及其基本運算
循環鍊表的結構與一般的單鍊表相比,具有以下兩個特點:
(1) 在循環鍊表中增加了一個表頭結點,其數據域為任意或者根據需要來設置,指針域指向線性表的第一個元素的結點。循環鍊表的頭指針指向表頭結點。
(2) 循環鍊表中最後一個結點的指針域不是空,而是指向表頭結點。
(3) 在單鍊表中,增加頭結點的目的是方便運算的實現。
(4) 循環鍊表的主要優點是從表中任一結點出發都能訪問到整個鍊表。
⑸ 線性表的順序存儲結構和線性表的鍊式存儲結構分别是随機存取的存儲結構、順序存取的存儲結構
4棧和隊列
棧是限定在一端進行插入與删除的線性表。棧是按照“先進後出”或“後進先出”的原則組織數據的。棧的運算、退棧運算、讀棧頂元素。
隊列是是允許在一端進行插入、而在另一端進行删除的線性表。隊列又稱為“先進先出”或“後進後出”的線性表,它體現了“先來先服務”的原則。
所謂循環隊列,就是将隊列存儲空間的最後一個位置繞到第一個位置,形成邏輯上環狀空間,供隊列循環使用。循環隊列的初始狀态為空,即rear=front=m。
循環隊列主要有兩個基本運算:入隊運算和退隊運算。
5樹與二叉樹
1、 樹的基本概念
樹是一種簡單的非線性結構。樹結構中,每一個結點隻有一個前件,稱為父結點。在樹中,沒前件的結點隻有一個,稱為樹的根結點,簡稱為樹的根。在樹結構中,每一個結點可以有多個後件,它們都稱為該結點的子結點。沒有後件的結點稱為葉子結點。
在樹結構中,一個結點所擁有的後件個數稱為結點的度。
樹結構具有明顯的層次關系,樹是是一種層次結構。根結點在第1層。同一層上所有結點的所有子結點在下一層。樹的最大層次稱為樹的深度。
在樹中,以某結點的一個子結點為根構成的樹稱為該結點的一棵子樹。要樹中,葉子結點沒有子樹。
2、 二叉樹的特點
(1) 非空二叉樹隻有一個根結點;每一個結點最多有兩個棵子樹,且分别稱為該結點的左子樹與與右子樹。
(2) 在二叉樹中,每一個結點的度最大為2,即所有子樹(左子樹或右子樹)也均為二叉樹。而樹結構中的每一個結點的度可以是任意的。另外,二叉樹中的每一個結點的子樹被明顯地分為左子樹與右子樹。在二叉樹中,一個結點可以隻有左子樹而沒有右子樹,也可以隻有右子樹而沒有左子樹。當一個結點既沒有左子樹也沒有右子樹時,該結點即是葉子結點。
3、 二叉樹的性質
(1) 在二叉樹的第K層上,最多有2 k-1(k≥1)個結點。
(2) 深度為m的二叉樹最多有2 m-1個結點。
(3) 在任意一棵二叉樹中,度為0的結點(即葉子結點)總是比度為2的結點多一個。
(4) 具有n個結點的二叉樹,其深度至少為[log2n] 1,其中[log2n]表示取log2n的整數部分。
4、 滿二叉樹與完全二叉樹
(1) 滿二叉樹,除最後一層外,每一層上的所有結點都有兩個子結點。這就是說,在滿二叉樹中,每一層上的結點數都達到最大值,即在滿二叉樹的第k層上有2 k-1個結點,且深度為m的滿二叉樹有2 m-1個結點。
(2) 完全二叉樹。除最後一層外,每一層上的結點數均達到最大值;在最後一層上隻缺少右邊的若幹結點。
對于完全二叉樹來說,葉子結點隻可能在層次最大的兩層上出現;對于任何一個結點,若其右分支下的子孫結點的最大層次為p,則其左分支下的子孫結點的最大層次或為p,或為p 1.
滿二叉樹也是完全二叉樹,而完全二叉樹一般不是滿二叉樹。
具有n個結點的完全二叉樹的深度為[log2n] 1。
5、 二叉樹的存儲結構
二叉樹通常采用鍊式存儲結構。與線性鍊表類似,用于存儲二叉樹中各元素的存儲結點也由兩部分組成:數據域與指針域。
6、 二叉樹的遍曆 高校學習牆
二叉樹的遍曆是指不重複地訪問二叉樹中的所有結點。在遍曆二叉樹的過程中,一般先遍曆左子樹,然後再遍曆右子樹。在先左後右的原則下,根據訪問根結點的次序,二叉樹的遍曆可以分為3種:前序遍曆、中序遍曆、後序遍曆。
(1) 前序遍曆(DLR)。所謂前序遍曆是首先訪問根結點,然後遍曆左子樹,最後遍曆右子樹;并且,在遍曆左、右子樹時,仍然先訪問根結點,然後遍曆左子樹,最後遍曆右子樹。因此,前序遍曆二叉樹的過程是一個遞歸的過程。
(2) 中序遍曆(LDR)。所謂中序遍曆是首先遍曆左子樹,然後訪問根結點,最後遍曆右子樹;并且,在遍曆左、右子樹時,仍然先遍曆左子樹,然後訪問根結點,最後遍曆右子樹。因此,中序遍曆二叉樹的過程也是一個遞歸的過程。
(3) 後序遍曆(LRD)。所謂後序遍曆是首先遍曆左子樹,然後遍曆右子樹,最後訪問根結點,并且,在遍曆左、右子樹時,仍然先遍曆左子樹,然後右子樹,最後訪問根結點。因此,後序遍曆二叉樹的過程也是一個遞歸的過程。
6查找技術
1、順序查找
順序查找又稱順序搜索。順序查找一般是指在線性表中查找指定的元素。
如果線性表中的第一個元素就是被查找的元素,則隻需做一次比較就查找成功,最壞的情況是被查元素是線性表中的最後一個元素,或者被查元素在線性表中根本不存在,則為了查找這個元素需要與線性表中所有的元素進行比較。平均情況下,利用順序查找法在線性表中查找一個元素,大約要與線性表中一半的元素進行比較。
2、二分法查找
二分法查找隻适用于順序存儲的有序表。
設有序線性表的長度為n,被查元素為x,則對分查找的方法為:将x與線性表的中間項進行比較,如果中間項的值等于x,則說明查到,查找結束;如果x小于中間項的值,則在線性表的前半部分以相同的方法進行查找;如果大于中間項的值,則在線性表的後半部分以相同的方法進行查找,這個過程一直進行到查找成功或子表長度為0(說明線性表中沒有該元素)為止。
當有序線性表為順序存儲時才能采用二分查找,效率比順序查找高得多。對于長度為n的有序線性表,在最壞的情況下,二分查找隻需要比較log2n次。
最簡單的交換排序方法是冒泡排序法。
7排序技術
排序是指将一個無序序列整理成按值非遞減順序排序的有序序列。
1、 交換類排序法
交換類排序法是指借助數據元素之間的互相交換進行排序的一種方法。冒泡排序法和快速排序法都屬于交換類的排序方法。
(1) 冒泡排序。假設線性表的長度為n,則在最壞情況下,冒泡排序需要經過n/2遍的從前往後的掃描和n/2遍的從後往前的掃描,需要的比較次數為n(n-1)/2。
(2) 快速排序。快速排序法的基本思想為:從線性表中選取一個元素,設為T,将線性表後面小于T的元素移到前面,而前面大于T的元素移到後面,結果就将線性表分成了兩部分,T插入到分界線的位置處,這個過程稱為線性表的分隔。如果對分割後的各子表再按上述原則進行分割,并且,這種分割過程可以一直做下去,直到所有子表為空為止,則此時的線性表就變成了有序表。
2、 插入排序法
所謂插入排序,是指将無序序列中的各元素依次插入到已經有序的線性表中。
(1) 簡單插入排序法。在簡單插入排序中,每一次比較後最多移掉一個逆序,因此,這種排序方法的效率與冒泡排序法相同。在最壞情況下,簡單插入排序需要n(n-1)/2次比較。
(2) 希爾排序法。希爾排序的效率與所選取的增量序列有關。如果選取上述增量序列,則在最壞情況下,希爾排序所需要的比較次數為O(n1.5).
3選擇類排序
(1) 簡單選擇排序。簡單選擇排序在最壞情況下需要比較n(n-1)/2次。
(2) 堆排序。在最壞情況下,堆排序需要比較的次數為O(nlog2n)。
4常見的排序方法有插入排序(包括簡單插入排序法和希爾排序法等)、交換排序(包括冒泡排序和快速排序法等)和選擇排序(包括簡單選擇排序和堆排序等)。
8程序設計方法與風格
1、 源程序文檔化
(1) 符号的命名:符号名應具有一定的實際含義,以便于對程序功能的理解。
(2) 程序注釋:正确的注釋能夠幫助讀者理解程序。注釋一般分為序言性注釋和功能性注釋。
(3) 視覺組織:為使程序的結構一目了然,可以在程序中利用空格、空行、縮進等技巧使程序層次清晰。
2、 數據說明的方法
數據說明的風格一般應注意:數據說明的次序規範化;說明語句中變量安排有序化;使用釋來說明複雜數據的結構。
3、 語言結構
程序應簡單易懂,語句構造應簡單直接。
4、 輸入和輸出
輸入輸出的方式和格式應盡可能方便用戶的使用。
9結構化程序設計
1、 結構化程序設計的原則
結構化程序設計方法的主要原則為自頂向下,逐步求精,模塊化,限制使用goto語句。
(1) 自頂向下:程序設計時,應先考慮總體,後考慮細節;先考慮全局目标,後考慮局部目标;先從最上層總目标開始設計,逐步使問題具體化。
(2) 逐步求精:對複雜問題,應設計一些子目标作為過渡,逐步細化。
(3) 模塊化:一個複雜問題,是由若幹個簡單問題構成的。模塊化是把程序要解決的總目标分解分目标,再進一步分解為具體的小目标,把每一個小目标稱為一個模塊。
(4) 限制使用goto語句:濫用goto語句有害,應盡量避免。
2、 結構化程序的基本結構和特點
采用結構化程序設計方法編寫程序,可使程序結構良好、易讀、易理解、易維護。程序設計語言僅用順序、選擇、重複3種基本控制結構就可以表達出各種其他形式結構的程序設計方法。
(1) 順序結構:順序結構是順序執行結構,所謂順序執行,就是按照程序語句行的自然順序,一條語句一條語句地執行程序。
(2) 選擇結構:又稱為分支結構,它包括簡單選擇和多分支選項擇結構。這種結構根據設定的條件,判斷應該選擇哪一條分支來執行相應的語句。
(3) 重複結構:又稱循環結構,它根據給定的條件,判斷是否需要重複執行某一相同的或類似的程序段,利用重複結構可簡化大量的程序行。重複結構有兩類循環語句,先判斷後執行循環體的稱為當型循環結構,先執行循環後判斷的稱為直到型循環結構。
遵循結構化程序的設計原則,按結構化程序設計方法設計出的程序具有的優點為:其一,程序易于理解、使用和維護;其二,提高了編程工作的效率,降低了軟件開發成本。
3、 結構化程序的設計原則和方法的應用
在結構圖化程序設計的具體實施中,要注意把握如下因素:
(1) 使用程序設計語言的順序、選擇、循環等有限的控制結構表示程序的控制邏輯。
(2) 選用的控制結構隻準許有一個入口和一個出口。
(3) 程序語句組成容易識别的塊,每塊隻有一個入口和一個出口。
(4) 複雜結構應該應用嵌套的基本控制結構進行組合嵌套來實現。
(5) 語言中所沒有的控制結構,應該采用前後一緻的方法來模拟。
(6) 嚴格控制goto語句的使用。
10面向對象的程序設計
1、 面向對象方法的主要優點
面向對象方法的主要優點為:與人類習慣的思維方式一緻;穩定性好;可重用性好;易于開發大型軟件産品;可維護性好。
2、 面向對象技術的基本概念
(1) 對象。面向對象的程序設計方法中涉及的對象是系統中用來描述客觀事物的一個實體,是構成系統的一個基本單位,它由一組表示其靜态特征的屬性和它可執行的一組操作組成。
(2) 類和實例。類是具有共同屬性、共同方法的對象的集合。類是對象的抽象,它描述了屬于該對象類型的所有對象的性質,而一個對象是其對應類的一個實例。類同對象一樣,也包括一組數據屬性和在數據上的一組合法操作。
(3) 消息。消息是一個實例與另一個實例之間傳遞的信息,它請求對象執行某一處理或回答某一要求的信息,它統一了數據流和控制流。消息的使用類似于函數調用,消息中指定了某一個實例,一個操作和一個參數表。
(4) 繼承。繼承是使用已有的類定義作為基礎建立新類的定義技術。在面向對象技術中,把類組成具有層次結構的系統:一個類的上層可以有父類,下層可以有子類;一個類直接繼承其父類的描述(數據和操作)或特性,子類自動地共享基類中定義的數據和方法。
(5) 多态性。對象根據所接受的信息而做出動作,同樣的消息被不同的對象接受時可導緻完全不同的行動,該現象稱為多态性。更多資料關注高校學習牆
(6) 面向對象技術中包括以下幾個基本概念,即對象、類、方法、消息、繼承和封裝,其中封裝是一種信息隐蔽技術,目的在于将對象的使用者對象的和設計者分開。
11軟件工程基本概念
1、 軟件及軟件工程的定義
軟件是計算機系統中與硬件相互依存的另一部分,是包括程序、數據及相關文檔的完整集合。
程序是軟件開發人員根據用戶需求開發的,用程序設計語言描述的、适合計算機執行的指令序列。數據是使程序能正常操縱信息的數據結構。文檔是與程序開發、維護和使用有關的圖文資料。
軟件工程學是用工程、科學和數學的原理與方法研制、維護計算機軟件的有關技術及管理方法的一門工程學科。軟件工程是應用于計算機軟件的定義、開發和維護的一整套方法、工具、文檔、實踐标準和工序。
軟件工程包括3個要素,即方法、工具和過程。方法是完成軟件工程項目的技術手段;工具支持軟件的開發、管理、文檔生成;過程支持軟件開發的各個環節的控制、管理。
2、 軟件生命周期
軟件産品從提出、實現、使用維護到停止使用退役的過程稱為軟件生命周期。一般包括可行性研究與需求分析、設計、實現、測試、交付使用以及維護等活動。還可将軟件生命周期分為軟件定義、軟件開發及軟件運行維護3個階段。軟件生命周期的主要活動階段是:可行性研究與計劃指定、需求分析、軟件設計、軟件測試、運行和維護。
3、 軟件開發工具與軟件開發環境
軟件開發工具與軟件開發環境的使用提高了軟件的開發效率、維護效率和軟件質量。
軟件工程的出現是由于軟件危機的出現。
軟件開發離不開系統環境資源的支持,其中必要的測試數據屬于輔助資源。
軟件結構是以模塊化為基礎而組成的一種控制層次結構。
12結構化分析方法
1、 需求分析與需求分析方法
軟件需求是指用戶對目标軟件系統在功能、行為、性能、設計約束等方面的期望。需求分析的任務是發現需求、求精、建模和定義需求的過程。
需求分析階段的工作,可概括為以下幾方面:需求獲取、需求分析、編寫需求規格說明書、需求評審。
常見的需求分析方法有結構化分析方法和面向對象的分析方法。
2、 結構化分析方法
結構化分析方法是結構化程序設計理論在軟件需求分析階段的運用。結構化分析方法是着眼于數據流,自頂向下,逐層分解,建立系統的處理流程,以數據流圖和數據字典為主要工具,建立系統的邏輯模型。
結構化分析的常用工具有數據流圖、數字字典、判斷樹、判斷表。
(1) 數據流圖(DFD)。數據流圖是描述數據處理過程的工具,是需求理解的邏輯模型的圖形表示,它直接支持系統的功能建模。數據流圖從數據傳遞和加工的角度,來刻畫數據流從輸入到輸出的移動變換過程。數據流圖中的主要圖形元素如下圖。
第一個是加工(轉換);第二個是數據流;第三個是存儲文件(數據源);第四個是源(潭)。
建立數據流圖的步驟:由外向裡,自頂向下,逐層分解。
(2) 數據字典(DD)。數據字典是結構化分析方法的核心。數據字典是對所有與系統相關的數據元素的一個有組織的列表。數據字典的作用是對數據流圖中出現的被命名的圖形元素的确切解釋。數據字典包含的信息有名稱、别名、何處使用如何使用、内容描述、補充信息等。
(3) 數據字典是各類數據描述的集合,它通常包括5個部分,即數據項,是數據的最小單位;數據結構,是若幹數據項有意義的集合;數據流,可以是數據項,也可以是數據結構,表示某一處理過程的輸入或輸出;數據存儲,處理過程中存取的數據,常常是手工憑證、手工文檔或計算機文件;處理過程
3、 軟件需求規格說明書
軟件需求規格說明書把在軟件計劃中确定的軟件範圍加以展開,制定出完整的信息描述、詳細的功能說明、恰當的檢驗标準以及其他與要求有關的數據。
13結構化設計方法
1、 軟件設計的基本概念
從技術觀點來看,軟件設計包括結構設計、數據設計、接口設計、過程設計。從工程管理角度來看,軟件設計分兩步完全,即概要設計和詳細設計。
2、 軟件設計的基本原理
衡量軟件的模塊獨立性使用耦合性和内聚性兩個定性的度量标準。耦合性是模塊間互相聯結的緊密程度的度量。内聚性是一個模塊内部各個元素間彼此結合的緊密程度的度量。一般較優秀的軟件設計,應盡量做到高内聚、低耦合。
3、 概要設計
概要設計也稱總體設計。軟件概要設計的任務是:設計軟件系統結構、數據結構及數據庫設計、編寫概要設計文檔、概要設計文檔評審。
常用的軟件設計工具為程序結構圖。
典型的數據流類型有兩種:變換型和事務型。
設計準則:提高模塊獨立性;模塊規模适中;深度、寬度、扇入和扇出适當;使模塊的作用域在該模塊的控制域内;應減少模塊的接口和界面的複雜性;設計成單入口、單出口的模塊;設計功能可預測的模塊。
4、 詳細設計
詳細設計為軟件結構圖中的每一個模塊确定實現算法和局部數據結構,用某種選定的表達工具表示算法和數據結構的細節。
設計工具:圖形工具(程序流程圖、N-S、PAD、HIPO)、表格工具(判定表)、語言工具(僞碼)。
結構化程序設計主要強調的是程序易讀性。
軟件的過程設計是指系統結構部件轉換成軟件的過程描述。
軟件設計模塊化的目的是降低複雜性。
結構化分析方法主要包括:面向數據流的結構化分析方法(SA-Structured analysis),面向數據結構的Jackson方法(JSD-Jackson system development method)和面向數據結構的結構化數據系統開發方法(DSSD-Data structured system development method)。
14軟件測試
1、 軟件測試方法和技術
軟件測試是為了發現錯誤而執行程序的過程,其主要過程涵蓋了整個軟件生命期的過程。
若從是否需要執行被測軟件的角度劃分,軟件測試方法和技術可以分為靜态測試和動态測試方法。若按照功能劃分,可以分為黑盒測試和白盒測試。
(1) 白盒測試
白盒測試方法也稱結構測試或邏輯驅動測試。白盒測試把測試對象看做一個打開的盒子,允許測試人員利用程序内部進行,主要用于完成軟件内部操作的驗證。
白盒測試的基本原則:保證所測模塊中每一獨立路徑至少執行一次;保證所測模塊所有判斷的每一分支至少執行一次;保證所測模塊中每一循環都在邊界條件和一般條件下至少各執行一次;驗證所有内部數據結構的有效性。
白盒測試的主要方法有邏輯覆蓋、基本路徑測試等。
(2) 黑盒測試方法
黑盒測試方法也稱功能測試或數據驅動測試。黑盒測試完全不考慮程序内部的邏輯結構和内部特性,隻依據程序的需求和功能規格說明,檢查程序的功能是否符合它的功能說明。黑盒測試在軟件接口處進行。
黑盒測試主要診斷功能不對或遺漏、界面錯誤、數據結構或外部數據庫訪問錯誤、性能錯誤、初始化和終止條件錯誤。
黑盒測試的主要診斷方法有等價類劃分法、邊界分析法、錯誤推測法、因果圖法等,主要用于軟件确認測試。
2、 軟件測試的實施
軟件測試一般按4個步驟進行,即單元測試、集成測試、确認測試和系統測試。通過這些步驟的實施來驗證軟件是否合格,能否交付用戶使用。
軟件測試的目标是在精心控制的環境下執行程序,以發現程序中的錯誤,給出程序可靠性的鑒定;調試也稱排錯,它是一個與測試有聯系又有區别的概念。具體來說,測試的目的是暴露錯誤,評價程序的可靠性,而調試的目的是發現錯誤的位置,并改正錯誤。
15程序的調試
程序進行了成功的測試之後進入調試階段,程序調試是診斷和改正程序中潛在的錯誤。調試主要在開發階段。
程序的調試活動由兩部分組成,一是根據錯誤的迹象确定程序中錯誤的确切性質、原因和位置。二是對程序進行修改,排除錯誤。
程序調試的基本步驟為:錯誤定位,修改設計和代碼,進行回歸測試。
軟件調試的方法從是否跟蹤和執行程序的角度,可分為靜态調試和動态調試。靜态調試主要指通過人的思維來分析源程序代碼和排錯,是主要的調試手段,而動态調試是輔助靜态調試的。
主要的調試方法為:強行排錯法,回溯法,原因排除法。
16數據庫系統的基本概念
1、 數據、數據庫、數據庫管理系統
(1) 數據。數據是描述事物的符号記錄。
(2) 數據庫。數據庫是數據的集合,它具有統一的結構形式并存放于統一的存儲介質内,是多種應用數據的集成,并可被各個應用程序所共享。
(3) 數據庫管理系統。數據庫管理系統(Database Management System,DBMS)是位于用戶與操作系統之間的一個數據管理軟件。負責數據庫中的數據組織、數據操縱、數據維護、控制及保護和數據服務等。
(4) 數據庫管理系統提供給用戶的接口是宿主語言。
(5) 數據庫管理員。由于數據庫的共享性,因此對數據庫的規劃、設計、維護、監視等需要有專人管理,稱他們為數據管理員。主要工作有數據庫設計、數據庫維護、改善系統性能和提高系統效率等。
(6) 數據庫系統。數據庫系統(Database Sytem,DBS)由數據庫(數據)、數據庫管理系統(軟件)、數據管理員(人員)、硬件平台(系統平台之一)和軟件平台(系統平台之一)5部分組成。在數據庫系統中,硬件平台包括:計算機和網絡,軟件平台包括:操作系統數據庫開發工具和接口軟件。
(7) 數據庫管理系統的核心是數據管理系統。
2、 數據庫系統的發展
數據管理的發展經曆了3個階段:
(1) 人工管理階段主要用于科學計算,硬件沒有磁盤,數據被直接存取,軟件沒有操作系統。
(2) 文件系統階段具有簡單的數據共享和數據管理能力,無法提供統一的、完整的管理和數據共享能力。
(3) 數據庫系統階段
數據庫系統階段具有以下特點:
1、 數據的集成性:采用統一的數據結構方式:按照多個應用的需要組織全局的統一的數據結構;每個應用的數據是全局結構中的一部分。
2、 數據的高共享性與低冗餘性:數據共享可減少數制冗餘及存儲空間,避免數據的不一緻。
3、 數據獨立性:這是數據與程序間的互不依賴性,即數據庫中數據獨立于應用程序而不依賴于應用程序。也就是說,數據的邏輯結構、存儲結構與存取方式的改變不會影響應用程序。數據獨立性分為物理獨立性和邏輯獨立性。
4、 數據統一管理與控制:主要包含3個主面,即數據的完整性檢查、數據的安全性保護和并發控制。數據的恢複。
5、 安全性控制:防止未經授權的用戶有意或無意存取數據庫中的數據,以免數據被洩露、更改或破壞;完整性控制:保證數據庫中數據及語義的正确性和有效性,防止任何對數據造成錯誤的操作;并發控制:正确處理好多用戶、多任務環境下的并發操作,防止錯誤發生;恢複:當數據庫被破壞或數據不正确時,使數據庫能恢複到正确的狀态。
3、 數據庫系統的内部結構體系
數據庫的三級模式:概念模式、外模式、内模式。
數據庫的二級映射:概念模式到内模式的映射,外模式到概念模式的映射。
内模式是能夠給出數據庫物理存儲結構與物理存取方式。
外模式是用戶的數據視圖。也就是用戶所見到的數據模式。
概念模式是數據庫系統中全局邏輯結構的描述,是全體用戶的公共數據視圖。
數據庫技術的主要特點有以下幾個方面:數據的集成性,數據的高共享性與低冗餘性,數據獨立性,數據統一管理與控制。
數據元素之間邏輯關系的整體稱為邏輯結構。數據的邏輯結構就是數據的組織形式。
分布式數據庫系統不具有的特點是數據冗餘。而具有數據分布性、邏輯整體性、位置透明性和複制透明性、分布性。
為用戶與數據庫系統提供接口的語言是彙編語言。
(DDL)是數據描述語言,(DML)數據操縱語言。
關系的完整性約束指關系的某種約束條件,包括實體完整性、參照完整性和用戶定義的完整性。其中,前兩種完整性約束由關系數據庫系統自動支持。
17數據模型(數據庫設計的核心)
1、 數據模型的基本概念
數據是現實世界符号的抽象,而數據模型是數據特征的抽象。數據模型所描述的内容有3個部分:數據結構、數據操作和數據約束。數據模型按不同的應用層次分成3種類型,分别是概念數據模型、邏輯數據模型和物理數據模型。
概念模型與具體的數據庫管理系統無關,與具體的計算機平台無關。較為有名的概念模型有E-R模型、擴充的E-R模型、面向對象模型及謂詞模型等。
邏輯數據模型又稱數據模型,是一種面向數據庫系統的模型。概念模型隻有在轉換成數據模型後才能在數據庫中得以表示。大量使用過的邏輯數據模型有層次模型、網狀模型、關系模型(堅實理論基礎)和面向對象模型。
物理數據模型又稱物理模型,它是一種面向計算機物理表示的模型,此模型給出了數據模型在計算機上物理結構的表示。
2、E-R模型
(1)E-R模型的基本概念
現實世界中的事物可以抽象成為實體,實體是概念世界中的基本單位,它們是客觀存在的且又能相互區别的事物。凡是有共性的實體可組成一個集合,稱為實體集。
屬性刻畫了實體的特征。一個實體可以有若幹個屬性。每個屬性可以有值,一個屬性的取值範圍稱為該屬性的值域或值集。
(2)實體間的聯系
實體集間的聯系可以歸結為3類:
a) 一對一的聯系,簡記為1:1。
b) 一對多的聯系,簡記為M:1(m:1)或1:M(1:m)。
c) 多對多的聯系,簡記為M:N或m:n。
(3)E-R模型的圖示法
E-R模型可以用一種直觀圖的形式來表示,這種圖稱為E-R圖。
(4)一個關系中屬性個數為1時,稱此關系為一元關系。
3、層次模型
層次模型的基本結構是樹形結構,自頂向下,層次分明。由于層次模型形成早,受文件系統影響大,模型受限制多,物理成分複雜,操作與使用均不理想,且不适用于表示非層次性的聯系。
4、 網狀模型
網狀模型是不加任何條件限制的無向圖。網狀模型在數據表示和數據操縱方面比層次模型更高效、更成熟。但網狀模型在使用時涉及系統内部的物理因素較多,用戶使用操作并不方便,其數據模式與系統實現也不甚理想。
5、 關系模型
(1) 關系的數據結構
關系模型采用二維來表示,簡稱表。二維表由表框架和表的元組組成。表框架由n個命名的屬性組成,每個屬性有一個取值範圍稱為值域。在框架中按行可以存放數據,每行數據稱為元組。
在二維表中能唯一标識元組的最小屬性集稱為該表的鍵或碼。二維表中可能有若幹個鍵,它們稱為該表的候選碼或候選鍵。從二維表的所有候選鍵中選取一個作為用戶使用的鍵稱為主鍵或主碼。表A中的某屬性集是某表B的鍵,則稱為該屬性集為A的外鍵或外碼。
表中一定要有鍵,如果表中所有屬性的子集均不是鍵,則表中屬性的全集必為鍵。在關系元組的分量中允許出現空值表示信息空缺。主鍵中不允許出現空值。
關系框架與關系元組構成一個關系。一個語義相關的關系集合構成一個關系數據庫。關系的框架稱為關系模式,而語義相關的關系模式集合構成了關系數據庫模式。
關系模式支持子模式,關系子模式是關系數據庫模式中用戶所見到的那部分數據模式的描述。關系子模式也是二維表結構,關系子模式對應用戶數據庫稱為視圖。
(2) 關系的操縱
關系模型的數據操縱,即是建立在關系上的數據操縱,一般有查詢、增加、删除及修改4種。
(3) 關系中的數據約束
關系模型允許定義3類數據約束,它們是實體完整性約束、參照完整性約束和用戶完整性約束。
18關系代數
關系數據庫系統建立在數學理論的基礎之上,使用關系代數可以表示關系模型的數據操作。由于操作是對關系的運算,而關系是有序組的集合,因此,可以将操作看成是集合的運算。
1、 關系模型的基本運算
(1) 插入
設有關系R需插入若幹元組,要插入的元組組成關系R`,則插入可用集合并運算表示為R并R`。
(2) 删除
設有關系R需删除若幹元組,要删除的元組組成關系R`,則删除可用集合差運算表示為R-R`。
(3) 修改
修改關系R内的元組内容可以用下面的方法實現:設需修改的元組構成關系R`,則先作删除得R-R`。設修改後的元組構成關系R``,此時将其插入即得到結果:(R-R`)U R’’。
(4) 查詢
投影運算:投影運算是在給定關系的某些域上進行的運算。經過投影運算後,會取消某些列,而且有可能出現一些重複元組。
選擇運算:關系R通過選擇運算後,由R中滿足邏輯條件的元組組成。
笛卡兒運算:對于兩個關系的合并操作可以用笛卡兒積表示。設有n元關系R及m元關系S,它們分别有p、q個元組,則關系R與S經笛卡兒積記為RXS.該關系是一個n m元關系,元組個數是pXq,由R與S的有序組組合而成。
2、 關系代數中的擴充運算
(1) 交運算。關系R與S經交運算後所得到的關系是由那些既在R内又在S内的有序組所組成,記為R∩S
(2) 除運算。當關系T=RXS時,則可将除運算寫為T/R=S。設有關系T、S,T能被R除的充分必要條件是:T中的域包含R中的所有屬性;T中有一些域不出現在R中。在除運算中S的域由T中那些不出現在R中的域所組成。
(3) 連接與自然連接運算。連接運算又可稱為
連接運算,通過它可以将兩個關系合并成一個大關系。
注意:投影、選擇、連接是從二維表的列的方向來進行運算。
19數據庫設計與管理
數據庫設計目前一般采用生命周期法,即将整個數據庫應用系統的開發分解成目标獨立的若幹階段。它們是:需求分析階段、概念設計階段、邏輯設計階段、物理設計階段、編碼階段、測試階段、運行階段、進一步修改階段。
1、 數據庫設計的需求分析
需求分析階段的任務是通過詳細調查現實世界要處理的對象,充分了解原系統的工作概況,明确用戶的各種需求,然後在此基礎上确定新系統的功能。
分析和表達用戶的需求,經常采用的方法有結構化分析方法和面向對象的方法。結構化分析方法用自頂向下、逐層分解的的方式分析系統。數據流圖表達了數據和處理過程的關系,數據字典對系統中數據的詳盡描述是各類數據屬性的清單。數據字典是進行詳細的數據收集和數據分析所獲得的主要結果。數據字典是各類數據描述的集合,它包含5個部分,即數據項、數據結構、數據流、數據存儲和處理過程。數據字典是在需求分析階段建立,在數據設計過程中不斷修改、充實、完善的。
2、 數據庫的概念設計
(1) 數據庫概念設計
數據庫概念設計的目的是分析數據間内的語義關聯,在此基礎上建立一個數據的抽象模型。數據庫概念設計的方法有兩種:集中式模式設計法:視圖集成設計法以下。
(2) 數據庫概念設計的過程
使用E-R模型與視圖集成法進行設計時,需要按以下步驟進行:首先選擇局部應用,再進行局部視圖進行集成得到概念模式。
3、 數據庫的邏輯設計
(1) 從E-R圖向關系模式轉換
将E-R圖轉換為關系模型的轉換方法如下:
一個實體型轉換為一個關系模式。
一個1:1聯系可以轉換為一個獨立的關系模式,也可以與任意一端(一般為全部參與方)對應的關系模式合并。
一個1:n聯系可以轉換為一個獨立的關系模式,也可以與n端對應的關系模式合并。
一個m:n聯系轉換為一個關系模式。
3個或3個以上實體間的多元聯系轉換為一個關系模式。
具有相同碼的關系模式可合并。
(2) 邏輯模式規範化
在關系數據庫設計中經常存在的問題有:數據冗餘、插入異常、删除異常和更新異常。
數據庫規範化的目的在于消除數據冗餘和插入、删除、更新異常。規範化理論有4個範式,從第一範式一第四範式的規範化程度逐漸升高。
(3) 關系視圖設計
關系視圖又稱為外模式設計。關系視圖是在關系模式基礎上所設計的直接面向操作用戶的視圖,它可以根據用戶需求随時創建。
4、 數據庫的物理設計
數據庫物理設計的主要目标是對數據庫内部物理結構作調整并選擇合理的存取路徑,以提高數據庫訪問速度及有效利用存儲空間。
5、 數據庫管理
數據庫管理包括數據庫的建立、調整、重組、安全性與完整性控制、故障恢複和監控。
6、 數據庫的建立包括數據模式的建立和數據加載。
定義指向整型元素的指針變量形式為:int*指針變量名。定義指向整型一維數組的行指針形式為:int(*指針變量名[長度],定義指向返回值為整型的函數的指針變量的形式為:int(*函數名)(),定義返回值為指向整型的指針型函數的形式為:int *函數名()。本題定義的是一個返回值為指針型的函數f()。
程序設計語言的基本成分是數據成分、運算成分、控制成分和傳輸成分。
SQL語言又稱為結構化查詢語言。
C語言的函數可以嵌套調用
構成C程序的基本單位是函數
常用的存儲表示方法有4種,順序存儲、鍊式存儲、索引存儲、散列存儲。其中,順序存儲方法是把邏輯上相鄰的結點存儲在物理位置也相鄰的存儲單元中。
軟件工程的理論和技術性研究的内容主要包括:軟件開發技術和軟件工程管理。軟件開發技術包括:軟件開發方法學、開發過程、開發工具和軟件工程環境,其主體内容是軟件開發方法學。軟件工程管理包括:軟件管理學、軟件工程經濟學,以及軟件心理學等内容。
在關系操作中,所有操作對象與操作結果都是關系。而關系定義為元數相同的元組的集合。因此,關系操作的特點是集合操作。
在一般系統中,一個float型數據在内存中占4個字節(32位),一個double型數據占8個字節。
ASC表示升序排列,DESC表示降序排列,多用在索引定義和SELECT語句中的ORDER子句中。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!