需求分析
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小时内删除。
发表评论