c语言课设写什么软件,c语言软件课设.doc

c语言软件课设

电子设计应用软件训练总结报告(二)

一、题目分析

1、问题描述

读入一个C程序,统计程序中代码、注释和空行的行数以及函数的个数和平均行数,并利用统计信息分析评价该程序的风格。为方便,作以下约定:第一个字符是'{'的行称为注释行(该行不含语句)。除了空行和注释行外,其余均为代码行,每个函数都是全局的,没有嵌套函数。

2、基本要求

把 C程序文件作为TEXT文件读人源程序; 边读入程序,边识别统计代码行、注释行和空行,还要识别过程和函数的开始和结束,以便统计其个数和平均行数。评价分为代码、注释和空行3方面。分为A、B、C和D4个等级,等级的划分标准是:

A级B级C级D级代码(过程平均长度)10~15行8~9行或16~20行5~7行或21~24行<5或>24行注释(占总行数比率)10~25%10~14%或26~30%5~9%或31~35%<5%或>35%空行(占总行数比率)15~25%10~14%或26~30%5~9%或31~35%<5%或>35%

以下是对程序文件ProgAnal.C分析的输出结果示例:

The results of analysing program file“ProgAnal。C”:

Lines of code:180 Iines of comments:63 Blanklines:52 Code Comments Space 61% 21% 18%

The program includes 9 procedures and 4 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.

3、需求分析

(1)文本串非空且以C程序文件形式存放,文件由用户建好并设立路径。

(2)把C程序文件按字符顺序读入源程序;

(3)边读入程序,边识别统计代码行、注释行和空行,同时还要识别函数的开始和结束,以便统计其个数和平均行数。

(4)在计算机终端输出的结果是:函数的个数,函数的总行数,函数的平均行数,总函数,空行的行数,注释的行数,函数的平均长度的等级,注释等级,空行等级。

(5)测试数据:C文本文件为本次练习中的1.cpp

二、设计过程

此次课程设计频繁的用到了文件的读写操作,牵扯到了关于缓存的一些细节问题,利用函数定义特性的格式与关键字排除方法相结合,实现所要求的功能。

1、头文件引用与宏定义:

#include

#include

#include

#define TRUE 1

#define FALSE 0

#define BOOL int

#define MAXSIZE 5000

#define COUNT20//可以统计的最大的文件个数

#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;

3、函数功能说明

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)//判断一行是不是空格

BOOL IsFunB(char *s)//判断一行是否是函数的开头

4、详细设计说明

(1)主函数的设计

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值