c語言項目開發流程一部曲


一.c項目開發總體分如下圖所示

二.對每一步的解析

1.需求文檔分析,本例以電子詞典作為例子

列出每一個需求以及每一個需求的每一個特點,將其歸納 為一張表。

 

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 方案2
10 使用一個結構代表一個單詞,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.根據需求繪制程序整體運行流程圖

4.分析數據類型的存儲結構,如下圖

5.定義常用變量

 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;

6.由於時間關系和隨筆大小有限,剩下的五步驟見后期隨筆


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM