需求分析
1)问题描述
读入一个C程序,统计程序中代码、注释和空行数和函数个数和平均行数,并利用统计信息分析评价该程序风格。
2)基础要求以下:
1)、把C程序文件按字符次序读入源程序
(2)、边读入程序,边识别统计代码行、注释行和空行,同时还要识别函数开始和结束,方便统计其个数及平均行数。
(3)、程序风格分为代码注释和空行三方面。每方面分A、B、C、D四个等级。
                        A            B                    C                D
代码(函数平均长度)  10~15行        8~9或16~20          5~7或21~24      <5或>24
注释(占总行数百分比)    15~25%        10~14或26~30%      5~9或31~35%      <5%或>35%
空行(占总行数比率)    15~25%        10~14或26~30%      5~9或31~35%      <5%或>35%
3)输入输出范例
以下是对程序文件ProgAnal.C分析输出结果示例:
The results of analysing program file "ProgAnal.C":
  Lines of code  :180
  Lines of comments:  63
  Blank lines:    52
                  Code                            Comments                            Space
                  61%                              21%                                  18%
The program includes 9 functions.
The average length of a section of code is 12.9 lines.
Grade A: Excellent routine size style.
Grade A: Excellent commenting style.
Grade A: Excellent white space style.
1.概要设计
1).头文件引用和宏定义
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define  TRUE      1
#define  FALSE      0
#define  BOOL      int
#define  MAXSIZE  5000
#define  COUNT        20    //    能够统计最大文件个数
#define      LEN        20  // 文件名最大长度
2).所用存放结构
//函数属性结构
typedef struct  {
    char filename[20]; //每一个函数名字
    int length;          //每一个函数长度
    int pos;            //每一个函数位置
}Fun;
//统计结构申明
typedef struct  {
    int comments;  //纯注释个数
    int comment;  //混合注释个数
    int blank;        //空行个数
    Fun fun[MAXSIZE];    //函数属性
    int others;            //除去函数中代码外其它代码个数
    int funcount;  //函数个数
}Analy;
2.具体设计
安卓课程设计源代码1).函数功效及申明
BOOL StrEmpty(char *s)//S是不是空
int Find(char *s1,char *s2)//查S1中是否有值为S2子串
void HaveLine(FILE *fp,char *s)//重文件中获取一行
char* IgnoreB(char *s)//截断一行空字符
int IsCom(char *s)//判定一行是不是注释
BOOL IsBlank(char *s)//判定一行是不是空格

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。