vf基礎知識要點_第1頁
vf基礎知識要點_第2頁
vf基礎知識要點_第3頁
vf基礎知識要點_第4頁
vf基礎知識要點_第5頁
已閱讀5頁,還剩17頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、#數值類型【科學記數法】格式:實數E整數。如3.5E3,表示3.5*10八3。 E大小寫均可,指數可以為負數。【算術運算符】加法(+)、減法(-)、乘法(*)、除法(/)、乘法(*,A)【優先級】 括號最高,然后乘方,然后乘除,然后加減【余數計算規則】1. 被除數=除數*商+余數2. 余數的絕對值必須小于除數的絕對值3. VFP 規定余數和除數同號【精度】 總原則:除非是整數,否則至少保留 2 位小數。不存在計算結果只有 1 位小數的情況。+,- :取兩個操作數的小數位數多的一個作為計算結果的小數位數。只有兩個整數相加減結果才是 整數。*,/ :將兩個操作數的小數位數相加,作為計算結果的小數位

2、數。只有兩個整數相乘除結果才是整 數。%:余數的計算結果,小數位數和被除數一致。被除數為整數時,結果為整數。*,A :計算結果至少保留 2 位小數。無論任何情況,計算結果都不為整數。貨幣類型1. 只要在數值類型前加上 $符號即代表貨幣類型2. 小數位數永遠保留 4 位#數值函數【絕對值和符號】ABS數值表達式):求數值表達式的絕對值。SIGN(數值表達式):求數值表達式的符號。特別的,若用X表示某表達式,則ABS(X)*SIGN(X)=X【取整和四舍五入】INT(數值表達式):直接對數值表達式取整,直接舍去小數部分。CEILING(數值表達式):天花板函數,返回大于該表達式的最小整數。FLOO

3、R數值表達式):地板函數,返回小于該表達式的最大整數。ROUND數值表達式,精度):精度為正,表示保留幾位小數;精度為 0,表示保留整數;精度為負, 表示將整數后幾位置為 0。【其他】SQRT數值表達式):求數值表達式的平方根。其中,數值表達式必須是非負數,可以不是整數。 MOD被除數,除數):求余數,規則和!算符相同。PI() :求圓周率,返回值為 3.14。MAX一組表達式):求這組表達式中的最大值。MIN(一組表達式):求這組表達式中的最小值。【適用范圍】1. 以上函數對于貨幣類型基本上都適用。2. 和比較大小相關的函數如 MAX MIN BETWEE等對其他類型(如字符型、日期型、日期

4、時間型) 等也適用。#表示方法【三種定界符】雙引號"abc"、單引號'abc'、中括號abc可混合使用,如 "hello" 表示的就是 "hello" 這個字符串(雙引號也是字符串的一部分) 。 【連接!算】加法:字符串a+字符串b,結果為二者直接相連。如:"abc "+"xyz"="abc xyz"減法:字符串 a-字符串b,結果將a尾部的空格轉接到 b的尾部,然后再相連。如:"abc"-"xyz"="abc

5、xyz "【字符長度】一般的,普通英文半角字符,一個字符占 1 字節,長度為 1。 特別的,一個漢字或一個漢字符號占 2 字節,長度為 2。字符函數【獲取長度】LEN(字符串):計算字符串的長度。如果字符串是由+或-組成的表達式,那么+和-計算后的結果長 度相等。【大小寫轉換】UPPERS符串):全部字符轉成大寫。LOWERS符串):全部字符轉成小寫。【生成空格】SPACE整數數值):返回一個由 整數數值個空格組成的字符串。【去掉空格】TRIM(字符串):去掉字符串尾部(右邊)的空格。LTRIM(字符串):去掉字符串頭部(左邊)的空格。ALLTRIM字符串):去掉字符串兩邊的空格。#

6、字符函數【字符串截取】LEFT(字符串,截取長度):從字符串左邊開始,截取指定長度的字符作為函數返回值。RIGHT字符串,截取長度):從字符串右邊開始,截取指定長度的字符作為函數返回值。SUBSTF字符串,起始位置,截取長度):從字符串起始位置開始,截取指定長度的字符作為函數返 回值。起始位置從 1 開始,截取長度如果省略則一直截取到最右邊。【子串出現】OCCOU子串,父串):返回子串在父串中出現的次數,如果沒有出現過則返回0。AT(子串,父串,出現次數):返回子串在父串中第 出現次數次出現時,子串首字符在父串中的位 置。省略出現次數則代表第一次出現。ATC(子串,父串,出現次數):同上。AT

7、函數對大小寫敏感,ATC函數對大小寫不敏感,即'A'和'a' 可視作同一個字符。【字符替換】STUFF原始字符串,起始位置,長度,新字符串):將 原始字符串 中,從 起始位置開始,截取 長 度字符串,將其替換為 新字符串 ,將替換后的新字符串作為結果返回。CHRTRA原字符串,待替換字符,新字符):將原字符串 中的所有 待替換字符 全部替換為 新字 符,將替換后的新字符串作為結果返回。本函數是以單個字符作為替換單位。#表示方法【嚴格的日期格式】fYYYY/MM/DD1. 兩邊使用大括號,年份前面使用脫字符A2. 年份必須 4位,月和日可以 1 位也可以 2 位3

8、. 中間的分隔符可以是斜杠 / 、減號 - 、句點 . 和空格四類字符【設置命令】 以下命令均用于設置顯示結果。1. SET MARK TO 分隔符設置顯示出來的分隔符,默認是斜杠 /。如果分隔符省略,則表示恢復為默認。2. SET DATE TO 格式設置年月日顯示順序,丫皿葉月曰,DMY3月年,MDY月日年,也可以設置國家名。TO省略與否, 效果相同。3. SET CENTURY ON|OFF如寫ON則顯示4位年份;如寫OFF則顯示2位年份。 【傳統的日期格式】 SET STRICTDATE TO 0 輸入此命令后,方可使用傳統的日期格式。與嚴格格式的區別:1. 不使用脫字符A2. 年份可

9、以寫 2位,也可以寫 4位3. 年月日使用順序受SET DATE命令影響【日期時間類型】格式: 日期部分 , 時間部分 日期部分也分為嚴格和傳統兩種格式,用法與日期格式相同。 時間部分: HH:MM:SS AM|A|PM|P相關計算【加減運算】日期 +正整數、正整數 +日期:表示幾天后的日期,返回值為日期類型。 日期 -正整數:表示幾天前的日期,返回值為日期類型。日期 -日期:表示兩個日期相差幾天,返回值為數值類型。日期時間 +正整數、正整數 +日期時間:表示幾秒后的日期時間,返回值為日期時間類型。 日期時間 - 正整數:表示幾秒前的日期時間,返回值為日期時間類型。日期時間 - 日期時間:表示

10、兩個日期時間相差幾秒,返回值為數值類型。 【有關函數】DATE():返回當前日期,返回值為日期類型。DATETIME()返回當前日期時間,返回值為日期時間類型。TIME():返回當前事件,返回值為時間類型。YEAR日期/日期時間表達式):提取表達式中的年,返回數值類型。 MONTH日期/日期時間表達式):提取表達式中的月,返回數值類型。 DAY(日期/日期時間表達式):提取表達式中的日,返回數值類型。 HOUR日期時間表達式):提取表達式中的時,返回數值類型。 MINUTE日期時間表達式):提取表達式中的分,返回數值類型。 SEC(日期時間表達式):提取表達式中的秒,返回數值類型。#獲取類型V

11、ARTYPE表達式),其結果用一個字母來表示表達式的類型。N(Number):數值類型 Y(Currency) :貨幣類型C(Character) :字符類型D(Date) :日期類型T(Time) :日期時間類型數值型和字符型STR(數值表達式,長度,精度):將數值型轉換為字符型 如何確定計算結果的精度:1. 按照精度確定要保留的小數位數2. 按照長度再次調整保留的小數位數3. 如果長度小于數值的整數部分長度,則顯示 整數個星號*VAL(字符表達式) 從左往右讀取字符表達式,遇到第一個非數字字符即停止 日期時間型和字符型CTOD字符表達式):將字符轉換成日期類型CTOT字符表達式):將字符轉

12、換成日期時間類型1 ,則轉換結果和主窗口輸出的結果一DTOC表達式,1):將日期轉換成字符類型。如果不寫參數 致;如果寫參數1,則轉換為YYYYMMDD式的8位字符串TTOC表達式,1):將日期時間轉換成字符類型。如果不寫參數 1,則轉換結果和主窗口輸出的結 果一致;如果寫參數1,則轉換為YYYYMMDDhhmr格式的14位字符串 邏輯類型 邏輯類型只有兩個值:真和假。真:.T.或.t. 或.Y.或.y.假:.F.或.f.或.N.或.n. 邏輯型的常量兩邊各有一個點,是不能省略的 獲取類型VARTYPE表達式),其結果用一個字母來表示表達式的類型N(Number):數值類型Y(Currency

13、) :貨幣類型C(Character) :字符類型D(Date) :日期類型T(Time) :日期時間類型L(Logic): 邏輯類型 關系運算符 關系運算符:比較兩個數的大小。>: 大于<: 小于=: 等于>=: 大于等于<=: 小于等于 <>、!= 、#: 不等于常見的類型比較:數值類型和貨幣類型 日期類型和日期時間類型:越晚越大,越早越小 邏輯類型: .T.>.F.ASCII 字符在計算機中都是用數字表示的 特殊字符的 ASCII: "0" 的 ASCII: 48 "A" 的 ASCII: 65"

14、a" 的 ASCII:97 字符類型比較大小:VFP中,比較兩個字符大小的規則是從左往右,一個字符一個字符的比較。字符類型兩個字符相等的情況:不完全相等和完全相等。完全相等 (=) :必須長度相等,且所有字符都相等 不完全相等 (=) 有以下兩種情況:SET EXACT OFF默認):判斷標準以右邊字符串結束為準 SET EXACT ON分別去掉右側空格后,完全相等。子串 $父串:檢測父串中是否出現子串。 邏輯運算符 三種邏輯運算符:非、與、或 非運算(.NOT.或NOT)顛倒真假 與運算(.AND或AND)必須同時為真或運算(.OR.或OR):只要一個為真即可【真值表】函數BETW

15、EE表達式,低值,高值):表達式 = 低值AND表達式 =高值EMPTY表達式):"空值"測試函數不同類型的空值表示:LIKE(通配符表達式,表達式):字符串匹配函數* :和任意個任意字符匹配?: 和單個任意字符匹配空值類型空值(.NULL.或NULL):用于表示"不確定"、"沒意義"狀態。使用注意:1. 空值類型不屬于任何一種類型,但又都兼容。2. 用VARTYPE(檢測空值,輸出的結果是 X。3. 一般來說,通常我們不用 NULL來參與運算,因為結果一般都是 NULL 函數ISNULL(表達式):檢測表達式的值是否為 NULLEM

16、PTY表達式):檢測表達式的值是否為"空值"。EMPTY(NUL的值為假。#變量變量(內存變量):內存中的一小塊存儲空間。在 VFP中,變量無需定義,即可使用(只需賦值,變 量即自動完成定義 )。變量兩種賦值命令:1. 變量名=表達式,其中=稱作賦值運算符,該賦值語句一次只能賦值一個變量。 2.STORE 表達式 TO 變量名表,該賦值命令一次可以賦值多個變量。變量的顯示LIST MEMORYLIKE 通配符表達式 DISPLAY MEMORYLIKE通配符表達式 其中通配符: *表示任意個任意字符, ?表示單個任意字符。 注意:變量的顯示并不是簡單的顯示變量的值,而是顯示

17、跟變量有關的一系列詳細信息。 變量的釋放CLEAR MEMORY空所有的變量。RELEASE 變 量名表 :清除指定變量。RELEASE ALLLIKE 通配符表/RELESE ALLEXCEPT通配符表 :清除符合/不符合通配符的變 量。數組 數組:用于存儲用途相似的一組數據 數組的定義:1. 一維數組的定義:DIMENSION數組名 (下標上限)|DECLEAR 數組名 (下標上限)2. 二維數組的定義:DIMENSION數組名 (下標上限1,下標上限2)|DECLEAF數組名 (下標上限1, 下標上限 2)3. 數組的批量賦值:STORE數值TO數組名變量名變量名的命名規則:規則 1:只

18、能包含 4 類字符,字母,數字,漢字,下劃線規則 2:數字不能作為首字符規則 3:變量名之間不能重復 變量的輸入 變量輸入命令:INPUT命令:可以接受所有類型的數據。格式:INPUT提示語TO 變量名,其中 提示語 可以省略不寫。ACCEPTS令:只能接受字符類型的數據。格式:ACCEPT提示語TO 變量名,其中 提示語 可以省略不寫。WAIT命令:只能接受最多1個字符。格式:WAIT提示語TO 變量名WINDOW AT 行, 列TIMEOUT 數值表達式 ,其中 參數可以任選。宏替換函數宏替換函數格式: &字符型變量 . ,其中 . 可以省略不寫。功能:將里面存儲的變量轉成實際 V

19、FP的命令。程序 程序:更強大的命令執行方式。程序的特點:1. 可以保存。所以程序均可保存成文件。2. 編譯執行。支持選擇、循環等程序流程。 命令窗口中的命令和程序的兩大區別:1. 關閉VFP后,命令窗口中所有命令都會自動消失,而程序是可以保存下來的。2. 命令窗口中的命令是寫一行執行一行,是立即執行的。而程序中的程序是寫完之后一起執行的。 程序相關的命令:1. 新建/打開程序MODIFY COMMAND路徑2. 執行程序 DO 程序路徑 3. 刪除指定文件 ERASE 文件路徑 程序編譯: .PRG-.FXP項目項目:一個項目對應一個軟件。項目包括:數據 ( 數據庫、表、查詢 ) 、文檔 (

20、 表單、報表、標簽 ) 、 代碼(程序、 API 庫、應用程序 ) 和其他( 菜單、文本文件、其他文件 ) 。 項目相關的命令:1. 新建項目 CREATE PROJECT2. 打開項目MODIFY PROJECT程序路徑IF 語句IF 語句的一般格式:IF 邏輯條件 *條件為真時執行這里ELSE*條件為假時執行這里ENDIFIF 語句的嵌套:IF 邏輯條件 1* 條件 1 為真時執行這里IF 邏輯條件 2*條件 2為真時執行這里ELSE*條件 2為假時執行這里ENDIFELSE* 條件 1 為假時執行這里ENDIF輕量級選擇函數IIF 格式:IIF(< 邏輯表達式 >,<

21、返回值 1>,< 返回值 2> 其中,邏輯表達式為真則返回 " 返回值 1",為假則返回 " 返回值 2" IIF 語句的嵌套 :IIF(< 邏輯表達式 1>,< 返回值 1>,<IIF(< 邏輯表達式 2>,<返回值 1>,<返回值 2>)>)DO CAS語句DO CAS語句的一般格式:DO CASECASE <條件 1> <第1組語句>CASE <條件 2><第2組語句> OTHERWISE<其他語句 >

22、;ENDCASE注釋 注釋:程序中的標記 兩種主要形式:1. * < 注釋內容 >|NOTE <注釋內容 >2.&& <注釋內容 >FOR循環FOF循環的語法:FOR匸初始值TO終止值STEP步長循環體ENDFOR|NEXTFOR循環使用注意點:1. 循環變量:循環體中并非必須出現2. 循環次數:終止數 - 起始數+13.STEP:循環變量的步長4. 省略形式:等同于 STEP 1FOF循環原理圖:遍歷查找 遍歷查找語法:FOR匸初始值TO終止值STEP步長IF I 符合某判定條件* 對符合條件的 I 進行處理ENDIF ENDFOR|NEX

23、T 水仙花數 水仙花數特點:1. 是一個三位數 (100-999)2. 設百位a,十位b,個位c,則aA3+bA3+cA3=abc DO WHILE循環語法格式:DO WHILE <判定條件 ><循環體>ENDDO 兩種控制語句:EXIT:直接退出整個循環LOOP吉束本次循環,進入下次循環數據庫基礎基本概念:1. 關系型數據庫:有一個個表格 ( 關系)組成。2. 關系:一個表格就是一個關系3. 數據管理的三個階段: 人工管理階段:所有工作都依賴人工,效率低下 文件管理階段:使用文件進行管理,冗余度高,獨立性差 數據庫系統階段:徹底解決數據共享問題 獲取字段類型VARTY

24、PE表達式),其結果用一個字母來表示表達式的類型。I(Integer):整型F(Float): 浮點型B(Double): 雙精度型M(Memory):備注型G(General): 通用型 表的常用命令表相關的命令:1. 新建表CREATE <表路徑 >CREATE TABLE表路徑 >(字段表)2. 打開表USE <表路徑 >3. 修改表的結構MODIFY STRUCTUREMODI STRU4. 瀏覽/ 編輯BROWSE/CHAN、GEEDIT5. 刪除記錄DELETE vFO表達式 >6. 恢復記錄RECALL vFO表達式 >7. 物理刪除PA

25、CK8. 物理清空ZAP9. 批量修改REPLACE ALL字段名> WITH <新字段值><FOR表達式>10. 表的顯示LISTFIELSv 字段名表><FOR表達式>TO FILE v 文件名 >表的遍歷和表相關的函數:1. 記錄總數 RECCOUNT()2. 記錄號 RECNO()3. 文件開頭 BOF()4. 文件結尾 EOF()命令(改變表指針的指向 ) :1. 直接定位GO 記錄號 |TOP|BOTTOMGOTO 記錄號 |TOP|BOTTOM2. 移動定位:SKIP 移動行數 3. 查找定位LOCATE vFO表達式 和CO

26、NTINU配合使用VFP中的兩種變量:字段變量和內存變量 修改字段變量的值:1. BROWSECHANGEEDIT2. REPLACE.WITH.SCATTE命令:將當前記錄存入指定數組一般格式: SCATTERFIELDS 字段名表 TO 數組名 SCAN循環SCAN循環:對表進行遍歷循環一般格式:SCANFO表達式 循環體ENDSCAN數據庫的使用 數據庫使用要點:1. 新建完數據會產生三個文件.dbc: 數據庫主文件.dct: 數據庫備注文件.dcx: 數據庫索引文件2. 新建數據庫的命令CREATE DATABASE3. 根據新建表是否放進數據庫中,有以下兩種情況 數據庫表:從屬于某數

27、據庫 自由表:不屬于任何數據庫數據庫表的一些特性:a. 使用長表名、長字段名b. 指定字段默認值c. 指定表之間的關系d. 設計數據完整性索引使用索引的要點:1. 物理順序:表中數據的實際存儲順序2. 邏輯順序:在索引中排列并指定其和物理順序的關系3. 索引的目標:提高查詢效率4. 索引文件的擴展名: 非結構索引: .idx 或和表不同名 .cdx結構復合索引:和表同名 .cdx5. 結構復合索引的特點:a. 可以隨表打開b. 可設置多個索引方案c. 記錄修改時,自動更新索引類型索引類型分為以下 4 種:1. 主索引a. 字段值不能為空b. 字段值不能重復c. 一個表只能有一個主索引2. 候選

28、索引a. 字段值不能為空b. 字段值不能重復3. 唯一索引 記錄值重復時,以首次出現記錄為基礎排序4. 普通索引 對指定字段或表達式進行排序 數據完整性 數據完整性:用于保證數據的正確性。包括實體完整性、域完整性和參照完整性。 實體完整性:確保表中的記錄唯一 1.候選索引:記錄值不能為空、不能重復2. 主索引:記錄值不能為空、不能重復、一個表只能有一個 域完整性:指定指定的取值范圍 1.基本設定:數據類型、寬度 2.有效性規則:規則、信息、默認值 參照完整性:保證父表和子表的數據一致 1.更新規則:級聯、限制、忽略 2.刪除規則:級聯、限制、忽略3. 插入規則:限制、忽略 級聯:子表跟著父表,

29、隨之修改 限制:如果子表存在相關數據,禁止父表修改 忽略:子表不受父表的影響工作區的使用 工作區:每一個表都是在一個工作區中打開的。 工作區使用一些要點:1.在VFP中有32767個工作區,編號為1327672.SELECT命令:打開指定的工作區格式:SELECT工作區號|表別名其中,如果沒有指定 表別名,則等同于表名USE命令:在當前工作區打開指定的表為打開的表指定別名:USE 表名IN 工作區ALIAS 別名3. 當前工作區:無論打開多少表,當前工作區只有一個4.SELECT 0:打開最小的空白工作區5. 永久聯系:記錄值更改時受影響6. 臨時聯系:記錄指針移動時受影響格式:SET REL

30、ATION TC關聯字段INTO 表名 取消臨時性聯系: SET RELATION TO第一章 算法和數據結構第一課算法的概念算法的定義算法是指解決方案的準確而完整的描述,是一系列解決冋題的清晰指令。算法工程序。 算法的 5 大特征 1. 至少 1 個輸出:任何算法,必須有輸出結果。 2. 至少 0 個輸入,足夠的情報: 對于復雜算法,情報越充足,效果越好。 3. 有窮性:算法能在有限的執行步驟內、有限的時間內執 行結束。 4. 可行性:算法的每一個步驟都必須能夠翻譯成計算機可執行的基本操作。5.確定性: 算法的每一個步驟都必須描述準確,沒有歧義。算法的復雜度 【時間復雜度】以基本操作次數的數

31、量級計數,不以秒計數。常見復雜度(越小越快):O(1)O(log n)0( n)0( nlogn )0(門八2)0(2八n)0( n!) 【空間復雜度】算法執行過程中的空間開銷。 【二者關系】雖然算法中常常會以犧牲空間的方式來換取時間效率, 但一般認為二者沒有必然關系。 第二課數據結構的概念數據結構的定義 數據結構是指計算機組織、存儲數據的方式。數據結構可分為邏輯結構和存儲結構。其中: 1.邏輯 結構又分為線性結構和非線性結構。 2. 存儲結構又分為順序存儲結構和鏈式存儲結構 邏輯結構 邏輯結構不關心數據如何存儲,只關心數據的組織方式。邏輯結構可分為線性結構和非線性結構。、網狀圖存儲結構又分為

32、順序存儲結構和鏈式存儲2. 查找、修改比較方便 3. 插入、刪除比較2. 插入、刪除比較不方便 3. 查找、修改比典型線性結構:棧、隊列典型非線性結構:樹(二叉樹) 存儲結構存儲結構不關心數據如何組織, 只關心數據的存儲方式。 結構。【順序存儲結構】 1 .所有元素在內存中按順序排列 不方便【鏈式存儲結構】 1 .所有元素在內存中隨機分布 較方便 4. 由于要存儲下一元素的地址,所以需要更多的存儲空間【二者關系】二者沒有必然關系 第三課棧 基本概念1 .棧屬于邏輯結構的概念, 屬于線性結構。 2. 棧既可以用順序存儲結構實現, 也可以用鏈式存儲結 構實現。 3.棧的特點是先進后出( FIL0)

33、。 4. 進出過程中,棧底指針不變,棧頂指針移動。 計算規則視棧頂和棧底指針的指向規則而定。一般的,棧底指向首元素的前一位置(比如0),棧頂指針指向尾元素(比如 5),即棧中 1、2、3、4、5各存儲了一個數據。此時:棧中元素個數 =棧頂指針- 棧底指針(比如 5-0=5)第四課隊列 基本概念 1 .隊列屬于邏輯結構的概念, 屬于線性結構。 2. 隊列既可以用順序存儲結構實現, 也可以用鏈式存 儲結構實現。 3. 棧的特點是先進先出( FIF0)。 4. 隊頭負責出隊,隊尾負責入隊。循環隊列循環隊列是專門針對順序存儲結構空間固定的特點而設計的, 所以一般認為循環隊列是順序存儲結 構。其核心原理

34、是: 當隊尾到達隊列最大位置、 而隊頭不在最小位置時如果繼續入隊,則隊尾移至 隊列最小位置,從頭開始移動,形成循環。出隊時同理。計算規則 視棧頂和棧底指針的指向規則而定。一般的,隊頭指向首元素的前一位置,隊尾指針指向尾元素。 假設隊列容量為 20: 1 .若隊尾隊頭(比如隊尾為 7,隊頭為 2):隊列元素個數 =隊尾指針-隊頭 指針( 7-2=5) 2.若隊頭隊尾(比如隊尾為 2,隊頭為 7):隊列元素個數 =隊尾指針 -隊頭指針+ 隊列容量( 2-7+20=15)其中,第二種情況只有循環隊列中才會出現。第五課二叉樹的計算基本概念1. 一個二叉樹只有一個根節點。 2. 在二叉樹中, 任何一個節

35、點最多只能有 2 個子節點。 3.一個節點 有幾個子節點,則度為幾。度為 0 的節點稱為葉子節點。常用公式1. 第n層的節點數最多為2A(n-1)個。2.層數為n的二叉樹,總節點數最多為25-1個。3.葉子節 點數=度為2的節點數+14.二叉樹節點總數 =度為2的節點數+度為1的節點數+葉子節點數 第六課二叉樹的遍歷遍歷規則 先序遍歷:父節點、左子樹、右子樹中序遍歷:左子樹、父節點、右子樹后序遍歷:左子樹、右子 樹、父節點其中左右子樹按此規則繼續拆分, 拆分過程中也按其對應規則遍歷, 直到不能再拆分為 止。第七課查找算法順序查找其算法復雜度為0(n),長度為n的線性表,最多需要n次才能找到指定

36、元素。順序查找最大 / 最小值長度為 n 的線性表,所有元素隨機排列,最多需要 n-1 次才能找到最大 / 最小值.二分查找其算法復雜度為 0(logn) ,長度為 n 的線性表,最多需要 logn 次就能找到指定元素。二分查找使用條件1 .使用順序存儲結構(如數組)。 2.所有元素按序排列。第八課排序算法按原理分類 交換類:冒泡排序、快速排序選擇類:簡單選擇排序、堆排序插入類:簡單插入排序、希爾排序 按穩定性分類穩定:冒泡排序、簡單插入排序不穩定(快選希堆):快速排序、簡單選擇排序、希爾排序、 堆排序按算法復雜度0(nA2) :冒泡排序、簡單選擇排序、簡單插入排序 0(nlogn) :快速排

37、序、堆排序、希爾排序在一 般情況下,快速排序是已知常用算法中效率最高的。在最壞情況下,快速排序的算法復雜度是0(nA)2。第二章軟件工程第一課軟件工程的算法基本概念軟件主要包括: 程序、數據、文檔。軟件按用途可分為系統軟件、 支撐軟件、 應用軟件。 系統軟件: 電腦操作系統、手機操作系統、數據庫管理系統( DBM)S 應用軟件:大眾應用軟件、數據庫應用軟 件軟件危機 錢不夠:成本不斷增高、成本無法控制、成本無法滿足需求增長、預算管理失控時間不夠:生產效 率越來越低、進度無法控制、 生產率的提高趕不上硬件和需求的發展質量不夠: 質量難以保證、 軟 件不可維護、軟件可維護程度極低軟件工程三要素 方

38、法:為軟件開發提供了“如何做”的技術。工具:為軟件工程方法提供了自動的或半自動的軟件 支撐環境。 過程:將軟件工程的方法和工具綜合起來以達到合理、 及時地進行計算機軟件開發的目 的。它支持軟件開發的各個環節的控制和管理。第二課需求分析基本概念可行性研究主要考慮: 經濟、技術、 法律。需求分析階段最重要的文檔: 軟件需求規格說明書 。 軟件需求規格說明書的任務是統一認識,所以必須追求準確,消滅歧義。數據流圖( DFD)箭頭:數據流圓形、橢圓形:數據的加工方框:系統和環境的接口半開口的方框、雙杠:數據的存 儲文件數據字典1. 是數據流圖的重要補充 2. 應該包含數據流圖中提到的所有數據第三課軟件設

39、計概要設計耦合性: 模塊之間的關聯程度內聚性: 模塊內部的關聯程度設計原則: 高內聚低耦合軟件系統結構 圖:深度、寬度、扇入、扇出。詳細設計【程序流程圖】箭頭:控制流矩形:執行步驟菱形:邏輯條件【N-S圖】【PAD圖】第四課結構化程序設計基本原則 自頂向下、逐步求精、模塊化使用 3種基本控制結構,限制 goto 語句的使用3 種控制結構順序結構、選擇結構、循環結構 第五課面向對象程序設計基本概念 對象是類的實例。類由兩個部分組成:屬性、方法。由同一個類定義的對象,擁有相同的屬性和方 法類的特征封裝型、繼承性、多態性 第六課測試與調試 基本概念 測試:發現錯誤調試:診斷并改正錯誤注意:沒有一種方

40、法可以保證軟件沒有錯誤 黑盒和白盒【黑盒】根據軟件的外部功能設計測試用例例如:等價類劃分、邊界值分析、錯誤推測法【白盒】 根據軟件的內部邏輯設計測試用例例如:基本路徑覆蓋測試、邏輯條件覆蓋測試測試流程單元測試:對單一模塊進行測試集成測試:對模塊間的協作進行測試確認測試:對 軟件需求規格 說明書的需求進行逐一確認系統測試: 對安全、 性能等系統指標進行測試回歸測試: 對調試后的 代碼重新進行測試 第三章數據庫系統第一課數據庫系統的概念基本概念數據(Data):信息的載體。包括類型和值兩個屬性。數據庫(DB :依照某種數據模型將數據組 織并存放起來的集合。數據庫管理系統(DBMS :系統軟件,是數

41、據庫系統的核心,為數據庫提供 底層服務。數據庫管理系統(DBAS :基于數據庫管理系統設計的應用軟件,面向普通用戶使用。 數據庫管理員(DBA :負責數據庫設計、維護、性能、安全等工作的高科技人才。數據庫系統(DBS : 包括以上所有概念,再加上其他相關軟硬件環境的總和。數據語言 數據定義語言:表的建立、修改和刪除數據操縱語言:表中數據的增加、刪除、修改和查詢數據控 制語言:負責表中的安全性和完整性的設置發展階段人工管理階段 -文件管理階段 -數據庫管理階段數據庫管理階段主要解決的問題:數據共享。獨立性 邏輯獨立性:邏輯結構修改時,應用程序不需要修改。物理獨立性:物理結構修改時,應用程序不需要

42、修改 三級模式 概念模式(邏輯模式):數據庫邏輯結構的全局描述外模式(子模式):用戶能看到的數據庫邏輯 結構和描述內模式(物理模式):數據庫的物理存儲結構和存取方法 第二課 E-R 模型基本概念E(Entity) :實體 R(RelationShip) :聯系一對一:學生和學號、中國公民和身份證、考生和準考 證號一對多:班長和班級、宿舍和學生多對多:學生和課程、老師和課程 圖示 實體 :矩形聯系:菱形屬性:橢圓形 第三課關系模型基本概念 層次模型:用“樹”的方式組織數據網狀模型:用“圖”的方式組織數據關系模型:用“二維表” 的方式組織數據【關系模型】屬性、元組【關系數據庫】字段、記錄元組的分量

43、是關系模型中的最 小不可再分單位數據完整性 候選鍵(候選關鍵字):可以標識記錄唯一性的幾個字段。主鍵(主關鍵字):可以標識記錄唯一 性的一個字段。一個表只能有一個主關鍵字。外鍵(外部關鍵字):如果當前表中某字段是其他表 的主鍵,則稱此字段為外鍵。實體完整性:主鍵和候選鍵不能為空。參照完整性:對一對多關系中 父表和子表之間關系的制約。自定義完整性:其他設置。 如域完整性, 就是對字段取值范圍進行設 置。第四課關系代數(上) 基本概念 【交】計算前提:兩個關系的屬性完全相同屬性規則:屬性保持不變。元組規則:對兩個關系中的 元組求交集。 【并】計算前提:兩個關系的屬性完全相同屬性規則:屬性保持不變。

44、元組規則:對 兩個關系中的元組求并集。【差】R-S=T計算前提:兩個關系的屬性完全相同屬性規則:屬性保持 不變。元組規則:表示取R中存在且S中不存在的元組形成結果To【笛卡兒積】RxS=T#算前提: 對屬性無要求屬性規則: 對兩個關系的屬性求并集。 元組規則: 對兩個關系的元組做全排列。 【除】 R/S=T計算前提:S的屬性應是R的子集屬性規則:取R中存在的屬性而S中不存在的屬性作為結 果T的屬性,即對屬性做差運算。元組規則:在 R中選擇與各屬性值完全相等的元組,將其對 T 中的屬性做投影。第五課關系代數(下)基本概念【選擇】規則:按照指定規則,對元組進行篩選,屬性不變。【投影】規則:按照指定

45、規則,對屬 性進行篩選,元組不變。【連接】前提:兩個關系中有一個公共屬性規則:先做笛卡兒積,然后根據連接條件對結果做選擇。連接條件根據公共屬性設計。【自然連接】 一個公共屬性規則: 1. 做笛卡兒積, 2. 將公共屬性值相等的記錄留下,RxS=M提:兩個關系中有3. 將兩個公共屬性合并為一個第六課數據庫的設計生命周期【需求分析】數據流圖、數據字典、需求規格說明書【概念設計】設計E-R模型【邏輯設計】將E-R模型轉換為數據模型(主要是關系模型)【物理設計】將關系模型轉換為關系數據庫SELECT語句上使用SELECTS句的一些要點:1.SELECT語句的一般格式:SELECT 字段名表 FROM

46、表名 WHEREv查詢條件SELECTS句的本質是:先選擇,再投影其中,WHEREv查詢條件是根據條件,對表中的記錄進行選擇SELECT 字段名表是對篩選后的結果進行投影2. 兩種基本的關系運算選擇:屬性 (字段)不變,篩選元組 (記錄)。改變行數 投影:元組不變,篩選屬性。改變列數3. 返回表中的全部記錄:SELECT * FROM 表名 BROWSE4. 設計WHER條件:AND是并集,OR是交集,UNION是求并集5.SQL兩個字符相等的情況:a. =:兩字符串長度相等,字符一致b. =:判斷標準以右邊字符串結束為準6. LIKE: 字符串模糊查詢, %做通配符7. WHER短 語:a.

47、 判斷查詢條件是否為真WHERE查詢條件=.WHERE查詢條件WHERENOT 查詢條件b. 空值WHERE 字段名 IS NULLNULL應該和IS搭配使用SELECTS 句下SELECTS句使用要點:1. 為字段指定別名SELECT 字段名表 別名 FROM 表名 WHEREv查詢條件 注意:別名不能用于查詢條件2. 對查詢結果消除重復: DISTINCT3. 按指定字段排序:ORDER BY 排序字段名表 ASC升序,默認值)|DESC(降序)4. 對記錄進行截取:TOP和ORDER BY配合使用a. 對前N條排序記錄進行截取格式:SELECT TOP N 字段名表 FROM 表名WHE

48、REv查詢條件 ORDER BY 排序字段名表b. 對前N8條排序記錄進行截取格式: SELECT TOP N PERCENTv字段名表 FROM 表名WHEREv查詢條件 ORDER BY 排序字段名表5. 去向a. INTO TABLE|DBF存入永久表,VFP將新建一個表文件b. INTO CURSOR存入臨時表,關閉VFP即刪除c. TO FILE:存入文本文件連接 連接運算包含以下四種:1. 自然連接:主要針對字表擴展格式1: SELECT v字段名表 FROM v表名 WHEREv查詢條件其中,v表名 多張表,指定v連接條件格式2: SELECT v字段名表 FROM v表1 IN

49、NER JOIN v表2 ON v連接條件2. 左連接格式: SELECT 字段名表 FROM 表13. 右連接格式: SELECT 字段名表 FROM 表14. 全連接格式: SELECT 字段名表 FROM 表1LEFT JOIN <表 2> ON <連接條件 >RIGHT JOIN <表 2> ON <連接條件 >FULL JOIN <表 2> ON <連接條件 >計算與分組1. 五種計算函數COUNT(:) 計數SUM():求和AVG():求平均數MAX():求最大值MIN() :求最小值2. 分組格式:SELEC

50、T 字段名表 FROM 表名 WHEREv查詢條件 GROUP BY 分組字段名表 HAVING 分組條件 3. 分組查詢執行順序a. WHER:E 通過查詢條件進行篩選b. GROUP BY將選擇后的結果進行分組c. HAVING將分組后的結果再進行篩選(條件中一般包含計算函數)嵌套 使用嵌套的一些要點:1. 嵌套使用的關鍵字a. IN :至少一個b. NOT I N :雙重否定c. EXISTS:驗證內存子查詢是否存在2. 直接比較:子查詢結果只有一個值3. 量詞:子查詢結果不止一個值a. ANY|SOME 子查詢任意一個記錄滿足條件即可b. ALL :子查詢所有記錄都滿足條件才行查詢和視

51、圖【查詢】1. qpr文件:是一種專門存儲 SQL SELECT勺文件2. 命令:對于查詢的操作命令a. CREATE QUERY打開"新建查詢"對話框b. DO 查詢文件路徑 :查詢文件路徑中必須包含擴展名.qpr3. 選項卡:一個選項卡對于一個 SQL短語a. 字段: SELECTb. 連接: JOIN ONc. 篩選: WHEREd. 排序依據: ORDER BYe. 分組依據: GROUP BY.HAVING.【視圖】1. 視圖:不存儲數據,但可以和基本表一樣操作2. 命令:所以命令必須都先打開數據庫a. 新建視圖CREATE VIEWCREATE VIEW 視圖名

52、 AS vSELEC語句 b. 使用視圖USE 視圖名BROWSESELECT.FROM 視圖名 .UPDATE 視圖名 SET .c. 刪除視圖DROP VIEW 視圖名 【查詢VS視圖】相同點:1. 都可以使用設計器生成2. 本身都不存儲數據不同點:1. 查詢存儲在 .qpr 文件中,視圖無文件2. 查詢可獨立存在,視圖依附于數據庫3. 查詢只能顯示數據,視圖可以修改4. 視圖可像基本表一樣使用SELECTS 句上使用SELECTS句的一些要點:1.SELECT語句的一般格式:SELECT 字段名表 FROM 表名 WHEREv查詢條件SELECTS句的本質是:先選擇,再投影其中,WHER

53、Ev查詢條件是根據條件,對表中的記錄進行選擇 SELECT 字段名表是對篩選后的結果進行投影2. 兩種基本的關系運算選擇:屬性 (字段)不變,篩選元組 (記錄)。改變行數 投影:元組不變,篩選屬性。改變列數3. 返回表中的全部記錄:SELECT * FROM 表名 BROWSE4. 設計WHER條件:AND是并集,OR是交集,UNION是求并集 5.SQL兩個字符相等的情況:a. =:兩字符串長度相等,字符一致b. =:判斷標準以右邊字符串結束為準6. LIKE: 字符串模糊查詢, %做通配符7. WHER短 語:a. 判斷查詢條件是否為真WHERE查詢條件=.T.WHERE查詢條件WHERE

54、NOT 查詢條件b. 空值WHERE 字段名 IS NULLNULL應該和IS搭配使用SELECTS 句下SELECT語句使用要點:1. 為字段指定別名SELECT 字段名表 別名 FROM 表名 WHEREv查詢條件注意:別名不能用于查詢條件2. 對查詢結果消除重復: DISTINCT3. 按指定字段排序:ORDER BY 排序字段名表 ASC升序,默認值)|DESC(降序)4. 對記錄進行截取:TOP和ORDER BY配合使用a. 對前N條排序記錄進行截取格式:SELECT TOP N 字段名表 FROM 表名WHERE查詢條件 ORDER BY 排序字段名表b. 對前N8條排序記錄進行截

55、取格式: SELECT TOP N PERCENT字段名表 FROM 表名 WHERE查詢條件 ORDER BY 排序字段名表5. 去向a. INTO TABLE|DBF存入永久表,VFP將新建一個表文件b. INTO CURSOR存入臨時表,關閉VFP即刪除c. TO FILE:存入文本文件 連接 連接運算包含以下四種:1. 自然連接:主要針對字表擴展格式1: SELECT 字段名表 FROM 表名 WHERE查詢條件 其中,表名 多張表,指定 連接條件格式2: SELECT 字段名表 FROM 表1 INNER JOIN 表2 ON 連接條件2. 左連接格式:SELECT 字段名表 FROM 表1 LEFT JOIN 表2 ON 連接條件3. 右連接格式:SELECT 字段名表 FROM 表1 RIGHT JOIN 表2 ON 連接條件4. 全連接格式:SELECT 字段名表 FROM 表1 FULL JOIN 表2 ON 連接條件 計算與分組1 .五種計算函數COUNT()計數SUM()求和AVG():求平均數MAX():求最大值 MIN():求最小值2. 分

溫馨提示

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

評論

0/150

提交評論