




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第一部分公共基礎知識第1章數據結構與算法1.1算法1 .算法的基本概念(1)概念:算法是指一系列解決問題的清晰指令。(2)4個基本特征:可行性、確定性、有窮性、擁有足夠的情報。(3)兩種基本要素:對數據對象的運算和操作、算法的控制結構(運算和操作時間的順序)。(4)設計的基本方法:列舉法、歸納法、遞推法、遞歸法、減半遞推技術和回溯法。2 .算法的復雜度(1)算法的時間復雜度:執行算法所需要的計算工作量。(2)算法的空間復雜度:執行算法所需的內存空間。1.2 數據結構的基本概念數據結構指相互有關聯的數據元素的集合,即數據的組織形式。其中邏輯結構反映數據元素之間邏輯關系;存儲結構為數據的邏輯結構在
2、計算機存儲空間中的存放形式,有順序存儲、鏈式存儲、索引存儲和散列存儲4種方式。數據結構按各元素之間前后件關系的復雜度可劃分為:(1)線性結構:有且只有一個根節點,且每個節點最多有個直接前驅和個直接后繼的非空數據結構。(2)非線性結構:不滿足線性結構的數據結構。1.3 線性表及其順序存儲結構1 .線性表的基本概念線性結構又稱線性表,線性表是最簡單也是最常用的一種數據結構。2 .線性表的順序存儲結構元素所占的存儲空間必須連續。元素在存儲空鳳的位置是按邏輯順序存放的。3 .線性表的插入運算在第i個元素之前插入一個新元素的步驟如下:步驟一:把原來第n個節點至第i個節點依次往后移一個元素位置。步驟二:把
3、新節點放在第i個位置上。步驟三:修正線性表的節點個數。在最壞情況下,即插入元素在第一個位置,線性表中所有元素均需耍移動。4 .線性表的刪除運算刪除第i個位置的元素的步驟如下:步驟一:把第i個元素之后不包括第i個元素的n-i個元素依次前移一個位置;步驟二:修正線性表的結點個數。5 .4棧和隊列1.棧及其基本運算(1)基本概念:棧是一種特殊的線性表,其插入運算與刪除運算都只在線性表的一端進行,也被稱為“先進后出”表或“后進先出”表。 棧頂:允許插入與刪除的一端。 棧底:棧頂的另一端。 空棧:棧中沒有元素的棧。特點。 棧頂元素是最后被插入和最早被刪除的兀素。 棧底元素是最早被插入和最后被刪除的元素。
4、 棧有記憶作用。 在順序存儲結構下,棧的插入和刪除運算不需移動表中其他數據元素。棧頂指針top動態反映了棧中元素的變化情況(3)順序存儲和運算:入棧運算、退棧運算和讀棧頂運算。2.隊列及其基本運算(1)基本概念:隊列是指允許在端進行插入,在另端進行刪除的線性表,又稱“先進先出”的線性表。隊尾:允許插入的一端,用尾指針指向隊尾元素。排頭:允許刪除的一端,用頭指針指向頭元素的前一位置。(2)循環隊列及其運算。所謂循環隊列,就是將隊列存儲空間的最后一個位置繞到第個位置,形成邏輯上的環狀空間。入隊運算是指在循環隊列的隊尾加入一個新元素。當循環隊列非空(s=l)且隊尾指針等于隊頭指針時,說明循環隊列已滿
5、,不能進行入隊運算,這種情況稱為“上溢”。退隊運算是指在循環隊列的隊頭位置退出一個元素并賦給指定的變量。苜先將隊頭指針進一,然后將排頭指針指向的元素賦給指定的變量。當循環隊列為空(s=O)時,不能進行退隊運算,這種情況稱為“T溢”。1.5 線性鏈表在定義的鏈表中,若只含有一個指針域來存放下一個元素地址,稱這樣的鏈表為單鏈表或線性鏈表。在鏈式存儲方式中,要求每個結點山兩部分組成:一部分用于存放數據元素值,稱為數據域;另一部分用于存放指針,稱為指針域。其中指針用于指向該結點的前一個或后一個結點(即前件或后件)。1.6 樹和二叉樹1 .樹的基本概念樹是簡單的非線性結構,樹中有且僅有一個沒有前驅的節點
6、稱為“根”,其余節點分成m互不相交的有限集合T1,T2,To,每個集合又是一棵樹,稱TLH2,,T。為根結點的子樹。父節點:每一個節點只有個前件,無前件的節點只有一個,稱為樹的根結點(簡稱樹的根)。子節點:每一個節點可以后多個后件,無后件的節點稱為葉子節點。樹的度:所有節點最大的度。樹的深度:樹的最大層次。2 .二叉樹的定義及其基本性質(1)二叉樹的定義:二叉樹是一種非線性結構,是有限的節點集合,該集合為空(空二叉樹)或由一個根節點及兩棵互不相交的左右二叉子樹組成。可分為滿二叉樹和完全二叉樹,其中滿二叉樹一定是完全二叉樹,但完全二叉樹不一定是滿二叉樹。二叉樹具有如下兩個特點:二叉樹可為空,空的
7、二叉樹無節點,非空二叉樹有且只有一個根結點;每個節點最多可有兩棵子樹,稱為左子樹和右子樹。(2)二叉樹的基本性質。性質1:在二叉樹的第k層上至多有214"個結點(kl)。性質2:深度為m的二叉樹至多有2m-l個結點。性質3:對任何一棵二叉樹,度為0的結點(即葉子結點)總是比度為2的結點多一個。性質4:具有n個結點的完全二叉樹的深度至少為10g2n+1,其中Log2n表示lOg2n的整數部分。3 .滿二叉樹與完全二叉樹(1)滿二叉樹:滿二叉樹是指這樣的一種二叉樹:除最后一層外,每一層上的所有結點都有兩個子結點。滿二叉樹在其第i層上有2"個結點。從上面滿二叉樹定義可知,二叉樹的
8、每一層上的結點數必須都達到最大,否則就不是滿二叉樹。深度為m的滿二叉樹有2m-l個結點。(2)完全二叉樹:完全二叉樹是指這樣的二叉樹:除最后一層外,每一層上的結點數均達到最大值;在最后一層上只缺少右邊的若干結點。如果一棵具有n個結點的深度為k的二叉樹,它的每一個結點都與深度為k的滿二叉樹中編號為1-n的結點一對應。4 .二叉樹的存儲結構二叉樹通常采用鏈式存儲結構,存儲節點由數據域和指針域(左指針域和右指針域)組成。二叉樹的鏈式存儲結構也稱二叉鏈表,對滿二叉樹和完全二叉樹可按層次進行順序存儲。5 .二叉樹的遍歷二叉樹的遍歷是指不重復地訪問二叉樹中所有節點,主要指非空二叉樹,對于空二叉樹則結束返回
9、。二叉樹的遍歷包括前序遍歷、中序遍歷和后序遍歷。(1)前序遍歷。前序遍歷是指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先訪問根結點,然后遍歷左子樹,最后遍歷右子樹:并且,在遍歷左右子樹時,仍然先訪問根結點,然后遍歷左子樹,最后遍歷右子樹。前序遍歷描述為:若二叉樹為空,則執行空操作;否則訪問根結點;前序遍歷左子樹;前序遍歷右子樹。(2)中序遍歷。中序遍歷是指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結點,最后遍歷右子樹;并且,在遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結點,最后遍歷右子樹。中序遍歷描述為:若二叉樹為空,則執行空操作;否則中序遍歷左子樹;訪
10、問根結點;中序遍歷右子樹。(3)后序遍歷。后序遍歷是指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然后遍歷右子樹,最后訪問根結點,并且,在遍歷左、右子樹時,仍然先遍歷左子樹,然后遍歷右子樹,最后訪問根結點。后序遍歷描述為:若二叉樹為空,則執行空操作;否則后序遍歷左子樹;后序遍歷右子樹;訪問根結點。6 .7查找技術(1)順序查找:在線性表中查找指定的元素。最壞情況下,最后一個元素才是要找的元素,則需要與線性表中所有元素比較,比較次數為n。(2)二分查找:二分查找也稱折半查找,它是一種高效率的查找方法。但二分查找有條件限制,它要求表必須用順序存儲結構,且表中元素必須按關鍵字有序(
11、升序或降序均可)排列。對長度為n的有序線性表,在最壞情況下,二分查找法只需比較lOg2n次。1.8排序技術(1)交換類排序法。 冒泡排序:通過對待排序序列從后向前或從前向后,依次比較相鄰元素的排序碼,若發現逆序則交換,使較大的元素逐漸從前部移向后部或較小的元素逐漸從后部移向前部,直到所有元素有序為止。在最壞情況下,對長度為n的線性表排序,冒泡排序需要比較的次數為n(n-1)/2。 快速排序:是迄今為止所有內排序算法中速度最快的一種。它的基本思想是:任取待排序序列中的某個元素作為基準(一般取第一個元素),通過一趟排序,將待排元素分為左右兩個子序列,左子序列元素的排序碼均小于或等于基準元素的排序碼
12、,右子序列的排序碼則大于基準元素的排序碼,然后分別對兩個子序列繼續進行排序,宜至整個序列有序。最壞情況下,即每次劃分,只得到一個序列,時間效率為0(n2)。(2)插入類排序法。 簡單插入排序法:把n個待排序的元素看成為一個有序表和一個無序表,開始時有序表中只包含一個元素,無序表中包含有n-1個元素,排序過程中每次從無序表中取事第一個元素,把它的排序碼依次與有序表元素的排序碼進行比較,將它插入到有序表中的適當位置,使之成為新的有序表。在最壞情況下,即初始排序序列是逆序的情況下,比較次數為n(n-1)/2,移動次數為n(n-1)/2。 希爾排序法:先將整個待排元素序列分割成若干個子序列(由相隔某個
13、“增量”的元素組成的)分別進行直接插入排序,待整個序列中的元素基本有序(增量足夠小)時,再對全體元素進行一次直接插入排序。(3)選擇類排序法。 簡單選擇排序法:掃描整個線性表,從中選出最小的元素,將它交換到表的最前面;然后對剩下的子表采用同樣的方法,直到子表空為止。最壞情況下需要比較n(n-1)/2次。 堆排序的方法:首先招一個無序序列建成堆;然后將堆頂元素(序列中的最大項)與堆中最后一個元素交換(最大項應該在序列的最后)。不考慮已經換到最后的那個元素,只考慮前n-1個元素構成的子序列,將該子序列調整為堆。反復做步驟,直到剩下的子序列空為止。在最壞情況下,堆排序法需要比較的次數為0(nlOg2
14、n)。相關真考題庫試題下列敘述中正確的是(D)A)一個算法的空間復雜度大,則其時間復雜度也必定大B)一個算法的空間復雜度大,則其時間復雜度必定小c)一個算法的時間復雜度大,則其空間復雜度必定小D)算法的時間復雜度與空間復雜度沒有直接關系【解析】算法的空間復雜度是指算法在執行過程中所需要的內存空間,算法的時間復雜度,是指執行算法所需要的計算工作量,兩者之間并沒有直接關系,答案為D。(2)下列敘述中正確的是(B)A)算法的效率只與問題的規模有關,而與數據的存儲結構無關B)算法的時間復雜度是指執行算法所需要的計算工作量C)數據的邏輯結構與存儲結構是一一對應的D)算法的時間復雜度與空間復雜度一定相關【
15、解析】算法的效率與問題的規模和數據的存儲結構都有關,A錯誤。算法的時間復雜度,是指執行算法所需要的計算工作量,B正確。山于數據元素在計算機存儲空間中的位置關系可能與邏輯關系不同,因此數據的邏輯結構和存儲結構不是一一對應的,C錯誤。算法的時間復雜度和空間或雜度沒有直接的聯系,D錯誤。(3)下列敘述中正確的是(A)A)程序執行的效率與數據的存儲結構密切相關B)程序執行的效率只取決于程序的控制結構c)程序執行的效率只取決于所處理的數據量D)以上說法均錯誤【解析】程序執行的效率數據的存儲結構、數據的邏輯結構、程序的控制結構、所處理的數據量等有關。(4)卜.列關于棧的敘述中,正確的是(C)A)棧底元素定
16、是最后入棧的元素B)棧頂元素一定是最先人棧的元素c)棧操作遵循先進后出的原則D)以上說法均錯誤【解析】棧頂元素總是后被插入的元素,從而也是最先被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素。棧的修改是按后進先出的原則進行的。因此,棧稱為先進后出表,或“后進先出”表,所以選擇C。(5)-個棧的初始狀態為空?,F將元素1,2,3,A,B,C依次入棧,然后再依次出棧,則元素出棧的順序是(C)A)1,2,3,A,B,CB)C,B,A,1,2,3C)C,B,A,3,2,1D)1,2,3,C,B,A【解析】棧的修改是按后進先出的原則進行的,所以順序應寫入棧順序相反,故選C。(6)下
17、列與隊列結構有關聯的是(D)A)函數的遞歸調用B)數組元素的引用c)多重循環的執行D)先到先服務的作業調度【解析】隊列的修改是依先進先出的原則進行的,D正確。(7)下列敘述中正確的是(A)A)循環隊列中的元素個數隨隊頭指針與隊尾指針的變化而動態變化B)循環隊列中的元素個數隨隊頭指針的變化而動態變化c)循環隊列中的元素個數隨隊尾指針的變化而動態變化D)以上說法都不對【解析】在循環隊列中,用隊尾指針rear指向隊列中的隊尾元素,用排頭指針front指向排頭元素的前個位置。因此,從排頭指針front指向的后一個位置直到隊尾指針rear指向的位置之間所有的元素均為隊列中的元素。所以循環隊列中的元素個數
18、與隊頭指針和隊尾指針的變化而變化,A正確。(8)設循環隊列的存儲空間為Q(l:35),初始狀態為front=rea=35。現經過一系列入隊與退隊運算后.front=15,rear=15,則循環隊列中的元素個數為(D)A)15B)16C)20D)0或35【解析】在循環隊列中,用隊尾指針rear指向隊列中的隊尾元素,用排頭指針front指向排頭元素的前一個位置。在循環隊列中進行出隊、人隊操作時,頭尾指針仍要加1,朝前移動。只不過當頭尾指針指向向量上界時,其加1操作的結果是指向向量的下界O。由于入隊時尾指針向前追趕頭指針,出隊時頭指針向前追趕尾指針,故隊空和隊滿時,頭尾指針均相等。答案為D選項。(9
19、)下列敘述中正確的是:(C)A)線性表鏈式存儲結構的存儲空間一般要少于順序存儲結構B)線性表鏈式存儲結構與順序存儲結構的存儲空間都是連續的c)線性表鏈式存儲結構的存儲空間可以是連續的,也可以是不連續的.D)以上說法均錯誤【解析】線性表的順序存儲結構具備如下兩個基本特征:線性表中的所有元素所占的存儲空間是連續的:線性表中各數據元素在存儲空間中是按邏輯順序依次存放的。用一組任意的存儲單元來依次存放線性表的結點,這組存儲單元既可以是連續的,也可以是不連續的,甚至是零散分布在內存中的任意位置上的。因此CiE確。(10)下列鏈表中,其邏輯結構屬于非線性結構的是(A)A)二叉鏈表B)循環鏈表C)雙向鏈表D
20、)帶鏈的?!窘馕觥吭诙x的鏈表中,若只含有一個指針域來存放下一個元素地址,稱這樣的鏈表為單鏈表或線性鏈表。帶鏈的棧可以用來收集計算機存儲空間中所有空閑的存儲結點,是線性表。在單鏈表中的結點中增加一個指針域指向它的直接前件,這樣的鏈表,就稱為雙向鏈表(一個結點中含有兩個指針),也是線性鏈表。循環鏈表具有單鏈表的特征,但又不需要增加額外的存貯空間,僅對表的鏈接方式稍做改變,使得對表的處理更加方便靈活,屬于線性鏈表。二叉鏈表是二叉樹的物理實現,是一種存儲結構,不屬于線性結構。答案為A選項。(11)-棵二叉樹中共有80個葉子結點與70個度為1的結點,則該二叉樹中的總結點數為(B)A)219B)229C
21、)230D)231【解析】二叉樹中,度為O的節點數等于度為2的節點數加1,即n2=n0-l,葉子節點即度為O,則n2=79,總結點數為nO+nl+n2=80+70+79-229,答案為B。(12)某二叉樹共有12個結點,其中葉子結點只有1個。則該二叉樹的深度為(根結點在第1層)(D)A)3B)6C)8D)12【解析】二叉樹中,度為0的節點數等于度為2的節點數加1,即n2=nO-1,葉子節點即度為0,n0=l,則n2=0,總節點數為12=ngnl+n2=I+nl+O,則度為1的節點數nl=1L故深度為12,選D。(13)對卜,列二叉樹進行前序遍歷的結果為(C)A)DYBEAFCZXB)YDEBF
22、ZXCAC)ABDYECFXZD)ABCDEFXYZ【解析】前序遍歷是指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,苜先訪問根結點,然后遍歷左子樹,最后遍歷右子樹;并且,在遍歷左右子樹時,仍然先訪問根結點,然后遍歷左子樹,最后遍歷右子樹。前序遍歷描述為:若二叉樹為空,則執行空操作。否則:訪問根結點;前序遍歷左子樹:前序遍歷右子樹,C正確。(14)對長度為10的線性表進行冒泡排序.最壞情況下需要比較的次數為©A)9B)10C)45D)90【解析】冒泡法是在掃描過程中逐次比較相鄰兩個元素的大小,最壞的情況是每次比較都要將相鄰的兩個元素互換,需要互換的次數為9+8+7+6+5+4+3+2
23、+1=45,選C.(15)對長度為n的線性表作快速排序,在最壞情況下,比較次數為:(D)A)nB)n-1C)n(n-l)D)n(n-l)/2【解析】快速排序最壞情況就是每次選的基準數都和其他數做過比較,共需比較(n1)+(n-2)+l=n(n-1)/2,選D第2章程序設計基礎2.1 程序設計方法與風格(1)設計方法:指設計、編制、調試程序的方法和過程,主要有結構化程序設計方法、軟件工程方法和面向對象方法。(2)設計風格:良好的設計風格要注重源程序文檔化、數據說明方法、語句的結構和輸入輸出。2.2 結構化程序設計1 .結構化程序設計的原則結構化程序設計強調程序設計風格和程序結構的規范化,提倡清晰
24、的結構。(1)自頂向下:即先考慮總體,后考慮細節;先考慮全局目標,后考慮局部H標。(2)逐步求精:對復雜問題,應設計一些子目標做過渡,逐步細化。(3)模塊化:把程序要解決的總目標分解為分目標,再進一步分解為具體的小目標,把每個小目標稱為一個模塊;(4)限制使用GOTO語句。2 .結構化程序的基本結構與特點(1)順序結構:自始至終嚴格按照程序中語句的先后順序逐條執行,是最基本、最普遍的結構形式。(2)選擇結構:又稱為分支結構,包括簡單選擇和多分支選擇結構。(3)重復結構:又稱為循環結構,根據給定的條件,判斷是否需要重復執行某一相同的或類似的程序段。結構化程序設計中,應注意事項:(1)使用程序設計
25、語言中的順序、選擇、循環等有限的控制結構表示程序的控制邏輯。(2)選用的控制結構只準許有一個入口和一個出口。(3)程序語言組成容易識別的塊,每塊只有一個入口和一個出口。(4)復雜結構應該用嵌套的基本控制結構進行組合嵌套來實現。(5)語言中所沒有的控制結構,應該采用前后致的方法來模擬。(6)盡量避免GOTO語句的使用。2.3面向對象的程序設計面向對象方法的本質是主張從客觀世界固有的事物出發來構造系統,強調建立的系統能映射問題域。 對象:用來表示客觀世界中任何實體,可以是任何有明確邊界和意義的東西。 類:具有共同屬性、共同方法的對象的集合。 實例:一個具體對象就是其對應分類的一個實例。 消息:實例
26、間傳遞的信息,它統一了數據流和控制流。 繼承:使用已有的類定義作為基礎建立新類的定義技術。 多態性:指對象根據所接受的信息而作出動作,同樣的信息被不同的對象接收時有不同行動的現象。面向對象程序設計的優點:與人類習慣的思維方法一致、穩定性好、可重用性好、易于開發大型軟件產品、可維護性好。相關真考題庫試題(1)結構化程序設計中,下面對goto語句使用描述正確的是(C)A)禁止使用goto語句B)使用goto語句程序效率高C)應避免濫用goto語句D)以上說法均錯誤【解析】結構化程序沒計中,要注意盡量避免goto語句的使用,故選C。(2)下面對對象概念描述正確的是(A)A)對象間的通信靠消息傳遞B)
27、對象是名字和方法的封裝體C)任何對象必須有繼承性D)對象的多態性是指一個對象有多個操作【解析】對象之間進行通信的構造叫做消息,A正確。多態性是指同一個操作可以是不同對象的行為,D錯誤。對象不一定必須有繼承性,C錯誤。封裝性是指從外面看只能看到對象的外部特征,而不知道也無須知道數據的具體結構以及實現操作,B錯誤。第3章軟件工程基礎3.1軟件工程基本概念1.軟件的定義與特點(1)定義:軟件是指與計算機系統的操作有關的計算機程序、規程、規則,以及可能有的文件、文檔和數據。特點。 是邏輯實體,有抽象性。 生產沒有明顯的制作過程。' 運行使用期間不存在磨損、老化問題。 開發、運行對計算機系統有依
28、賴性,受計算機系統的限制,導致了軟件移植問題。 復雜性較高,成本昂貴。 開發涉及諸多社會因素。2 .軟件的分類軟件可分應用軟件、系統軟件和支撐軟件3類。(1)應用軟件是特定應用領域內專用的軟件。(2)系統軟件居于計算機系統中最靠近硬件的層,是計算機管理自身資源,提高計算機使用效率并為計算機用戶提供各種服務的軟件。(3)支撐軟件介于系統軟件和應用軟件之間,是支援其它軟件的開發與維護的軟件。3 .軟件危機與軟件工程軟件危機指在計算機軟件的開發和維護中遇到的一系列嚴重問題。軟件工程是應用于計算機軟件的定義、開發和維護的一整套方法、工具、文檔、實踐標準和工序,包括軟件開發技術和軟件工程管理。4 .軟件
29、生命周期軟件產品從提出、實現、使用維護到停止使用的過程稱為軟件生命周期。在國家標準中,軟件生命周期劃分為8個階段:軟件定義期:包括問題定義、可行性研究和需求分析3個階段。軟件開發期:包括概要設計、詳細設計、實現和測試4個階段。運行維護期:即運行維護階段。5 .軟件工程的原則軟件工程的原則包括:抽象、信息隱蔽、模塊化、局部化、確定性、一致性、完備性和可驗證性。6 .2結構化分析方法需求分析的任務是發現需求、求精、建模和定義需求的過程,可概括為:需求獲取、需求分析、編寫需求規格說明書和需求評審。1 .常用的分析方法結構化分析方法:其實質著眼于數據流,自頂向下,逐層分解.建立系統的處理流程。,面向對
30、象分析方法。2 .結構化分析常用工具結構化分析常用工具包括數據流圖、數字字典(核心方法)、判斷樹和判斷表。(1)數據流圖:即DFD圖,以圖形的方式描繪數據在系統中流動和處理的過程,它只反映系統必須完成的邏輯功能,是種功能模型。符號名稱作用: 箭頭代表數據流,沿箭頭方向傳送數據的通道 圓或橢圓代表加工,輸入數據經加工變換產生輸出 雙杠代表存儲文件,表示處理過程中存放各種數據文件 方框代表源和潭,表示系統和環境的接口(2)數據字典:結構化分析方法的核心。數據字典是對所有與系統相關的數據元素的一個有組織的列表,以及精確的、嚴格的定義,使得用戶和系統分析員對于輸入、輸出、存儲成分和中間計算結果有共同的
31、理解。(3)判定樹:使用判定樹進行描述時,應先從問題定義的文字描述中分清判定的條件和判定的結論,根據描述材料中的連接詞找出判定條件之間的從屬關系、并列關系、選擇關系,根據它們構造判定樹。(4)判定表:與判定樹相似,當數據流圖中的加工要依賴于多個邏輯條件的取值,即完成該加工的一組動作是由于某一組條件取值的組合引發的,使用判定表比較適宜。3 .軟件需求規格說明書軟件需求規格說明書是需求分析階段的最后成果,是軟件開發的重要文檔之一。(1)軟件需求規格說明書的作用:便于用戶、開發人員進行理解和交流;反映出用戶問題的結構,可以作為軟件開發工作的基礎和依據;作為確認測試和驗收的依據。軟件需求規格說明書的內
32、容:概述;數據描述;功能描述;性能描述;參考文獻;附錄。軟件需求規格說明書的特點:正確性;無歧義性;完整性;可驗證性;一致性;可理解性;可修改性;可追蹤性。3.3結構化設計方法1 .軟件設計的基本概念和方法軟件設計是一個把軟件需求轉換為軟件表示的過程。(1)基本原理:抽象、模塊化、信息隱藏、模塊獨立性(度量標準:耦合性和內聚性,高耦合、低內聚)。(2)基本思想:將軟件設計成由相對獨立、單一功能的模塊組成的結構。2 .概要設計(1)4個任務:設計軟件系統結構、數據結構及數據庫設計、編寫概要設計文檔、概要設計文檔評審。(2)面向數據流的設計方法:數據流圖的信息分為交換流和事物流,結構形式有交換型和
33、事務型。3 .詳細設計的工具詳細設計的工具包括: 圖形工具:程序流程圖、N-S、PAD、HIPOo 表格工具:判定表。 語言工具:PDL(偽碼)。3.4軟件測試1 .目的為了發現錯誤而執行程序的過程。2 .準則 所有測試應追溯到用戶需求。 嚴格執行測試計劃,排除測試的隨意性。 充分注意測試中的群集現象。 程序員應避免檢查自己的程序。 窮舉測試不可能。 妥善保存設計計劃、測試用例、出錯統計和最終分析報告。3 .軟件測試技術和方法軟件測試的方法按是否需耍執行被測軟件的角度,可分為靜態測試和動態測試,按功能分為白盒測試和黑盒測試。(1)白盒測試:根據程序的內部邏輯設計測試用例,甘要方法有邏輯覆蓋測試
34、、基本路徑測試等。(2)黑盒測試:根據規格說明書的功能來設計測試用例,主要診斷方法有等價劃分法、邊界值分析法、錯誤推測法、因果圖法等,主耍用于軟件確認測試。4 .軟件測試的實施軟件測試是保證軟件質量的重要手段,軟件測試是個過程,其測試流程是該過程規定的程序,目的是使軟件測試工作系統化。軟件測試過程分4個步驟,即單元測試、集成測試、驗收測試和系統測試。單元測試是對軟件設計的最小單位模塊(程序單元)進行正確性檢驗測試。單元測試的目的是發現各模塊內部可能存在的各種錯誤。單元測試的依據是詳細的設計說明書和源程序。單兀測試的技術可以采用靜態分析和動態測試。5 .5程序的調試(1)任務:診斷和改正程序中的
35、錯誤。(2)調試方法:強行排錯法、回溯法和原因排除法。相關真考題庫試題(1)構成計算機軟件的是(D)A)源代碼B)程序和數據C)程序和文檔D)程序、數據及相關文檔【解析】軟件指的是計算機系統中與硬件相互依賴的另一部分,包括程序、數據和有關的文檔,選D。(2)下面不屬于軟件需求分析階段主要工作的是(A)A)需求變更申請B)需求分析c)需求評審D)需求獲取【解析】需求分析階段的工作可概括為4個方面:需求獲取。需求分析。編寫需求規格說明書。需求審評。(3)下面不能作為結構化方法軟件需求分析工具的是(A)A)系統結構圖B)數據字典(DD)C)數據流程圖(DFD圖)D)判定表【解析】結構化方法軟件需求分
36、析工具主要有數據流圖、數據字典、判定樹和判定表。(4)數據字典(DD)所定義的對象都包含于(A)A)數據流圖(DFD圖)B)程序流程圖C)軟件結構圖D)方框圖【解析】在數據流圖中,對所有元素都進行了命名,所有名字的定義集中起來就構成了數據字典。因此選A,而B、C、D都不符合(5)軟件生命周期可分為定義階段、開發階段和維護階段,卜面不屬于開發階段任務的是(C)A)測試B)設計c)可行性研究D)實現【解析】開發階段包括分析、設計和實施兩類任務。其中分析、設計包括需求分析、總體設計相詳細設計3個階段,實施則包括編碼和測試兩個階段,C不屬于開發階段。(6)軟件需求規格說明曲的作用不包括(D)A)軟件驗
37、收的依據B)用戶與開發人員對軟件要做什么的共同理解C)軟件設計的依據D)軟件可行性研究的依據【解析】軟件需求規格說明書是需求分析階段的最后成果,是軟件開發的重要文檔之.軟件需求規格說明書有以下幾個方面的作用。便于用戶、開發人員進行理解和交流,B正確;反映出用戶問題的結構,可以作為軟件開發工作的基礎和依據,C正確;作為確認測試和驗收的依據,A正確。(7)卜.面不屬于軟件設計階段任務的是(C)A)軟件總體設計B)算法設計C)制定軟件確認測試計劃D)數據庫設計【解析】從技術觀點上看,軟件設計包括軟件結構設計、數據設計、接口設計、過程設計。所以A、B、D正確,C為軟件測試階段的任務。(8)軟件設計中模
38、塊劃分應遵循的準則是(C)A)低內聚低耦合B)高耦合高內聚C)高內聚低耦合,D)以上說法均錯誤I解析】根據軟件設計原理提出如下優化準則:劃分模塊時,盡量做到高內聚、低耦合,保持模塊相對獨立性,并以此原則優化初始的軟件結構。一個模塊的作用范圍應在其控制范圍之內,且判定所在的模塊應與受其影響的模塊在層次上盡量靠近。軟件結構的深度、寬度、扇人、扇出應適當。模塊的大小要適中。c正確。(9)下面屬于黑盒測試方法的是(C)A)語句覆蓋B)邏輯覆蓋C)邊界值分析D)路徑覆蓋【解析】黑盒測試不關心程序內部的邏輯,只是根據程序的功能說明來設計測試用例。在使用黑盒測試法時,手頭只需要有程序功能說明就可以了。黑盒測
39、試法分等價類劃分法、邊界值分析法和錯誤推測法,答案為C。而A、B、D均為白盒測試方法。(10)下面屬于臼盒測試方法的是(B)A)等價類劃分法B)邏輯覆蓋C)邊界值分析法D)錯誤推測法【解析】白盒測試法主要有邏輯覆蓋、基本路徑測試等。邏輯覆蓋測試包括語句覆蓋、路徑覆蓋、判定覆蓋、條件覆蓋、判斷一-條件覆蓋,選擇B。其余為黑盒測試法。(11)下面不屬于軟件測試實施步驟的是(B)A)集成測試B)回歸測試C)確認測試D)單元測試【解析】軟件測試主要包括單元測試、集成測試、確認測試和系統測試。第4章數據庫設計基礎4.1 數據庫系統的基本概念(1)數據(DatA):描述事物的符號記錄。(2)數據庫(Dat
40、aBase):長期存儲在計算機內的、有組織的、可共享的數據集合。(3)數據庫管理系統的概念數據庫管理系統(DataBaseManagementSystem,DBMS)是數據庫的機構,它是一種系統軟件,負責數據庫中的數據組織、數據操作、數據維護、數據控制及保護和數據服務等。為完成以上6個功能,DBMS提供了相應的數據語言;數據定義語言(負責數據的模式定義與數據的物理存取構建);數據操縱語言(負責數據的操縱);數據控制語言(負責數據完整性、安全性的定義)。數據庫管理系統是數據庫系統的核心,它位于用戶和操作系統之間,從軟件分類的角度來說,屬于系統軟件。(4)數據庫技術發展經歷了3個階段。人工管理階段
41、一文件系統階段f數據庫系統階段(5)數據庫系統的特點:集成性、高共享性、低冗余性、數據獨立性、數據統一管理與控制等。(6)數據庫系統的內部機構體系:三級模式(概念模式、內模式、外模式)和二級映射(外模式/概念模式的映射、概念模式/內模式的映射)構成了數據庫系統內部的抽象結構體系。4.2 數據模型數據模型是數據特征的抽象,從抽象層次上描述了系統的靜態特征、動態行為和約束條件,描述的內容有數據結構、數據操作利數據約束。有3個層次:概念數據模型、邏輯數據模型和物理數據模型。(l)E-R模型:提供了表示實體、屬性和聯系的方法。實體間聯系有“一對一”、“一對多”和“多對多”。E-R模型用E-R圖來表示。
42、(2)層次模型:利用樹形結構表示實體及其之間聯系,其中節點是實體,樹枝是聯系,從上到下是一對多關系。(3)網狀模型:用網狀結構表示實體及其之間聯系,是層次模型的擴展。網絡模型以記錄型為節點,反映現實中較為復雜的事物聯系。(4)關系模型:采用二維表(由表框架和表的元組組成)來表示,可進行數據查詢、增加、刪除及修改操作。關系模型允許定義“實體完整性”、“參照完整性”和“用戶定義的完整性”三種約束。 鍵(碼):二維表中唯一能標識元組的最小屬性集。 候選鍵(候選碼):二維表中可能有的多個鍵。 主鍵:被選取的個使用的鍵。4.3 關系代數(1)關系代數的基本運算:投影、選擇、笛卡爾積。(2)關系代數的擴充
43、運算:交、連接與自然連接、除。4.4 數據庫設計與管理1 .數據庫設計概述 基本思想:過程迭代和逐步求精。 方法:面向數據的方法和面向過程的方法。 設計過程:需求分析一概念設計一邏輯設計物理設計f編碼f測試一運行f進一步修改。2 .數據庫設計的需求分析需求收集和分析是數據庫設計的第一階段,常用結構化分析方法(自頂向F、逐層分解)和面向對象的方法,主要工作有繪制數據流程圖、數據分析、功能分析、確定功能處理模塊和數據間關系。數據字典:包括數據項、數據結構、數據流、數據存儲和處理過程,是對系統中數據的詳盡描述。3 .數據庫的設計(1)數據庫的概念設計:分析數據間內在的語義關聯,以建立數據的抽象模型。
44、(2)數據庫的邏輯設計:從E-R圖向關系模型轉換,邏輯模式規范化,關系視圖設計可以根據用戶需求隨時創建。實體轉換為元組,屬性轉換為關系的屬性,聯系轉換為關系。(3)數據庫的物理設計:是數據在物理設備上的存儲結構與存取方法,目的是對數據庫內部物理結構作出調整并選擇合理的存取路徑,以提高速度和存儲空間。4 .數據庫管理數據庫管理包括數據庫的建立、數據庫的調整、數據庫的重組、數據庫的安全性與完整性控制、數據庫故障恢復和數據庫的監控。相關真考題庫試題(1)下血描述中不屬于數據庫系統特點的是(C)A)數據共享B)數據完整性C)數據冗余度高D)數據獨立性高【解析】數據庫系統的特點為高共享、低冗余、獨立性高
45、、具有完整性等,C錯誤。(2)若實體A和B是一對多的聯系,實體B和C是一對一的聯系,則實體A和C的聯系是(B)A)-對一B)一對多c)多對一D)多對多(B【解析】A和B為一對多的聯系,則對于A中的每一個實體,B中有多個實體與之聯系,而B與C為一對一聯系,則對于B中的每一個實體,C中之多有個實體與之聯系,則可推出對于A中的每個實體,C中有多個實體與聯系,所以為一對多聯系。(3)公司中有多個部門和多名職員,每個職員只能屬于一個部門,一個部門可以有多名職員。則實體部門和職員間的聯系是(C)A)1:1聯系B)m:l聯系C)l:m聯系D)m:n聯系【解析】兩個實體集間的聯系實際上是實體集間的函數關系,主
46、要有一對一聯系(1:1)、一對多聯系(1:m)、多對一聯系(m:1)、多對多聯系(m:n)»對于每一個實體部門,都有多名職員,則其對應的聯系為一對多聯系(1:m),答案選為C(4)有表示公司和職員及工作的三張表,職員可在多家公司兼職。其中公司C(公司號,公司名,地址,注冊資本,法人代表,員工數),職員S(職員號,姓名,性別,年齡,學歷),工作W(公司號,職員號,工資),則表W的鍵(碼)為(A)A)公司號,職員號B)職員號,工資C)職員號D)公司號,職員號,工資【解析】由于職員可以再多加公司兼職,及W的鍵(碼)應為公司關系和職員關系的主碼,即公司號和職員號。(5)在關系模型中,每一個二
47、維表稱為一個(A)A)關系B)屬性C)元組D)主碼(鍵)【解析】關系模型采用二維表來表示,即每個二維表稱為一個關系。(6)在關系數據庫中,用來表示實體間聯系的是(B)A)屬性B)二維表c)網狀結構D)樹狀結構【解析】關系模型實體間的聯系采用二維表來表不,簡稱表。選項C為網狀模型實體間的聯系,選項D為層次模型實體間的聯系,選項A屬性刻畫了實體則山關系R和S得到關系T的操作是(D)A)選擇B)投影C)交D)并【解析】關系T中的元素與關系R和關系S中不同元素的總和,因此為并操作。有三個關系R.S和T如下:則山關系R和S得到關系T的操作是(B)A)選擇B)差c)交D)并【解析】關系T是關系R的一部分,
48、并且是關系R去掉R和S相同的元素,符合差操作。(9)有兩個關系R和S如下:roEJEJEJoEJAcc_3則由關系R得到關系S的操作是(A)A)選擇B)投影C)自然連接D)并【解析】由關系R到美系S為一元運算,排除C和D。關系S是關系R的一部分,是通過選擇之后的結果,因此選A。(10)有三個關系R、S和T如下:RST回EJrtdrqEJtijABCDc314a125則由關系R和S得到關系T的操作是(A)A)自然連接B)交c)投影D)并【解析】關系R和關系S有公共域,關系T是通過公共域的等值進行連接的結果,符合向然連接,選A。(11)一般情況下,當對關系R和S進行自然連接時,要求R和S含有一個或
49、者多個共有的(C)A)記錄B)行C)屬性D)元組【解析】自然連接是一種特殊的等值連接,它滿足下面的條件:兩關系間有公共域;通過公共域的等值進行連接,選C。(12)數據庫設計過程不包括(D)A)概念設計B)邏輯設計C)物理設計D)算法設計【解析】數據庫設計過程主要包括需求分析、概念結構設計,邏輯結構分析、數據庫物理設計;數據庫實施、數據庫運行和維護階段。答案為D選項。第二部分計算機基礎知識第1章計算機概述1.1 計算機的發展簡史1946年,美國賓夕法尼亞大學研制成功了電子數字積分式計算機(ElectronicNumericalIntegratorAndCalculator,ENIAC)o在ENI
50、AC的研制過程中,美籍匈牙利數學家馮諾依曼總結并歸納了以下3點。 采用二進制:在計算機內部,程序和數據采用二進制代碼表示。 存儲程序控制:程序和數據存放在存儲器中,即程序存儲的概念。計算機執行程序時無需人工干預,能自動、連續地執行程序,并得到預期的結果。 計算機的5個基本部件:計算機具有運算器、控制器、存儲器、輸入設備和輸出設置5個基本功能部件。從第一臺電子計算機誕生到現在,計算機技術經歷了大型計算機時代和微型計算機時代。根據計算機采用電子元件的不同將計算機的發展過程劃分為四個階段,分別稱為第一代至第四代計算機。第一代計算機(19461958年)主要元件是電子管;第二代計算機(1958-196
51、4年)主要元件是晶體管:第三代計算機(19641971年)主要元件采用中、小規模集成電路:第四代計算機(1971年至今)主要元件采用大規模和超大規模集成電路。相關真考題庫試題(1)世界上公認的第一臺電子計算機誕生的年代是(B)A)20世紀30年代B)20世紀40年代C)20世紀80年代D)20世紀90年代【解析】本題考核的是對計算機發展的基礎知識的掌握情況。1946年2月,世界上第一臺電子計算機ENIAC在美國賓夕法尼亞大學誕生,所以B正確。(2)按電子計算機傳統的分代方法,第一代至第四代計算機依次是A)機械計算機,電子管計算機,晶體管計算機,集成電路計算機B)晶體管計算機,集成電路計算機,大
52、規模集成電路計算機,光器件計算機C)電子管計算機,晶體管計算機,小、中規模集成電路計算機,大規模和超大規模集成電路計算機D)手搖機械計算機,電動機械計算機,電子管計算機,晶體管計算機【解析】電子計算機的發展經歷了四代:電子管計算機、晶體管計算機、中小規模集成電路計算機、大規模集成電路計算機。1.2 計算機的特點計算機的特點有:處理速度快、計算精確度高、邏輯判斷能力、存儲容量大、全自動功能、適用范圍廣,通用性強。1.3 計算機的用途歸納起來,電腦的用途主要有以下兒個方面。(1)科學計算(2)信息處理(3)過程控制(4)輔助功能(5)網絡與通信(6)人工智能(7)數字娛樂(8)平面、動畫設計及排版
53、(9)現代教育(10)家庭生活相關真考題庫試題(1)卜列的英文縮寫和中文名字的對照中,正確的是(A)A)CAD-計算機輔助設計B)CAM-計算機輔助教育C)CIMS-計算機集成管理系統D)CAI-計算機輔助制造【解析】CAD-計算機輔助設計,CAM-計算機輔助制造,CIMS-計算機集成制造系統,CAL計算機輔助教學。(2)計算機技術應用廣泛,以卜.屬于科學計算方面的是(C)A)圖像信息處理B)視頻信息處理c)火箭軌道計算D)信息檢索【解析】早期的計算機主要用于科學計算。目前,科學計算仍然是計算機應用的一個電要領域。如高能物理、工程設計、地震預測、氣象預報、航天技術等?;鸺壍烙嬎銓儆诳茖W計算方
54、面。1.4 計算機的分類及未來發展趨勢1 .依照不同的標準,計算機有多種分類方法,常見的分類有以下幾種。(1)按處理數據的類型分類:按處理數據的類型不同,可將計算機分為數字計算機、模擬計算機和混合計算機。按使用范圍分類按使用范圍大小,計算機可以分為專用計算機和通用計算機。(3)按性能分類計算機依據其主要性能(如字氏、存儲容量、運算速度、外部設備),可分為超級計算機、大型計算機、小型計算機、微型計算機、工作站和服務器6類,這也是常用的分類方法。2 .計算機未來的發展趨勢(1)計算機的發展趨勢:巨型化微型化網絡化智能化(2)未來新一代的計算機模糊計算機生物計算機光子計算機超導計算機量子計算機激光計
55、算機分子計算機DNA計算機神經元計算機3 .5電子商務電子商務通常是指在不同地域進行的商業貿易活動中,在因特網開放的網絡環境卜,基于瀏覽器/服務器應用方式,買賣雙方無需面對面地進行各種商貿活動,而是實現消費者的網上購物、商戶之間的網上交易和在線電子支付以及各種商務活動、交易活動、金融活動和相關的綜合服務活動的一種新型的商業運營模式。也可以理解為就是通過電子手段進行的商業事務活動。從電子商務的含義及發展歷程可以看出,電子商務具有如下基本特征。(1)普遍性(2)方便性(3)集成性(4)整體性(5)安全性(6)協調性'4 .6信息技術的發展一般來說,信息技術包括了信息基礎技術、信息系統技術和信息應用技術。(1)信息基礎技術信息基礎技術是信息技術的基礎,包括新材料、新能源、新器件的開發和制造技術。(2)信息系統技術信息系統技術是指有關信息的獲取、傳輸、處理、控制的設備和系統的技術。感測技術、通信技術、計算機與智能技術和控制技術是它的核心和支撐技術。(3)信息應用技術信息應用技術是針對種種實用目的的技術,如信息管理、信息控制、信息決策等技術門類。信息技術在社會各個領域得到了廣泛的應用,顯示出強大的生命力。展望未來,現代信息技術將面向數字化、多媒
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025電腦買賣合同范本
- 個人房屋租賃合同協議書格式
- 2025商店轉讓合同模板
- 2025標準的技術授權合同
- 企業租房協議書與合同范本
- 俱樂部會員合同
- 2025年房屋租賃合同范本下載標準版立即獲取
- 《軟件測試技巧與策略》課件
- 《銷售數據分析報告》課件
- 2025裝修材料訂購協議(合同)
- 數據結構課件完整版
- 小米創業思考
- 2023屆匯文中學化學高一第二學期期末復習檢測模擬試題含解析
- GB/T 12939-2002工業車輛輪輞規格系列
- 送元二使安西公開課課件
- DB32T4220-2022消防設施物聯網系統技術規范-(高清版)
- 兒童抑郁量表CDI
- 生物化學-脂類課件
- Q∕SY 02098-2018 施工作業用野營房
- DB62∕T 3176-2019 建筑節能與結構一體化墻體保溫系統應用技術規程
- 八大特殊危險作業危險告知牌
評論
0/150
提交評論