標籤:項目開發 c語言
一.c項目開發總體分如所示
650) this.width=650;" src="http://images2015.cnblogs.com/blog/1069003/201705/1069003-20170522200442007-1924401322.png" style="border:0px;" />
二.對每一步的解析
1.需求文件剖析,本例以電子詞典作為例子
列出每一個需求以及每一個需求的每一個特點,將其歸納 為一張表。
650) this.width=650;" src="http://images2015.cnblogs.com/blog/1069003/201705/1069003-20170522202749210-2009142773.png" style="border:0px;" />
2.設計資料結構
設計資料結構,也就是確定抽象資料類型,資料存放的方式,先想出多個方案,然後比較各個方案的優劣
650) this.width=650;" src="/img/fz.gif" alt="複製代碼" style="border:none;" />
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 };
650) this.width=650;" src="/img/fz.gif" alt="複製代碼" style="border:none;" />
3.根據需求繪製程式整體運行流程圖
650) this.width=650;" src="http://images2015.cnblogs.com/blog/1069003/201705/1069003-20170522233926351-1230580987.png" style="border:0px;" />
4.分析資料類型的儲存結構,如
650) this.width=650;" src="http://images2015.cnblogs.com/blog/1069003/201705/1069003-20170523002932570-520695053.png" style="border:0px;" />
5.定義常用變數
650) this.width=650;" src="/img/fz.gif" alt="複製代碼" style="border:none;" />
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;
650) this.width=650;" src="/img/fz.gif" alt="複製代碼" style="border:none;" />
c語言項目開發流程一部曲