一.c項目開發整體分以下圖所示數組
二.對每一步的解析數據結構
1.需求文檔分析,本例以電子詞典做爲例子ide
列出每個需求以及每個需求的每個特色,將其概括 爲一張表。spa
2.設計數據結構設計
設計數據結構,也就是肯定抽象數據類型,數據存放的方式,先想出多個方案,而後比較各個方案的優劣指針
1 /* 2 方案1 3 使用三維數組,110000爲單詞個數,2位每一個單詞對應2行,100表示每一行可存儲的字符數, 4 因爲棧空間最大1M,因此這種方式不行,並且很消耗cpu資源 5 word[i][2][100]表明一個單詞和解釋 6 */ 7 char word[110000][2][100];// 8 /* 9 方案210 使用一個結構表明一個單詞,key存儲單詞,trans存儲11 全部單詞存儲在malloc分配的動態數組中,因爲每一個單詞長度不同,每一個單詞的解釋也不同,12 因此key的長度過小不能知足需求,太大又形成存儲空間的浪費13 */14 struct WORD{15 char key[100];//單詞16 char trans[100];//單詞對應的解釋17 };18 /*19 方案三20 使用結構體,可是成員爲指針,根據單詞和解釋的實際大小分配內存,內存佔用小21 缺點:解釋不夠詳細,由於一個單詞對應多個解釋22 */23 struct WORD{24 char *key;//單詞指針,指向一個malloc分配的內存25 char *trans;//解釋指針26 };27 /*28 方案四29 使用結構體30 */31 struct WORD{32 char *key;//單詞指針,指向一個malloc分配的內存33 int count_trans;//每一個單詞對應的解釋數量34 char **trans;//存放解釋的字符指針數組35 };
3.根據需求繪製程序總體運行流程圖code
4.分析數據類型的存儲結構,以下圖orm
5.定義經常使用變量blog
1 /*********定義經常使用全局變量*****************/ 2 /* 3 給結構體類型起一個新名字:WORD 4 */ 5 typedef struct WORD SWORD; 6 /*********結構體指針,指向詞庫結構體數組******/ 7 SWORD * DICT; 8 /***********文本詞庫文件名*********************/ 9 char *dicttxtname = "dict.txt";10 /***********二進制詞庫文件名*********************/11 char *dictbitname = "dict.dat";12 /************詞庫數量,結構體數組長度***************/13 int length;