zoukankan      html  css  js  c++  java
  • 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.由于时间关系和随笔大小有限,剩下的五步骤见后期随笔

    需要程序源码的可以加我微信x241602私聊。
  • 相关阅读:
    火狐显示不安全链接
    signal信号
    I/O缓冲
    [pe530]GCD of Divisors
    学校寒假集训作业
    纳克萨玛斯「GDOI2007」(网络流)
    [清华集训2016] 汽水
    有上下界网络流
    [AHOI2014]支线剧情(有上下界的网络流)
    [SCOI2016]妖怪
  • 原文地址:https://www.cnblogs.com/huipengbo/p/6892198.html
Copyright © 2011-2022 走看看