网站大量收购独家精品文档,联系QQ:2885784924

c语言软件课设[精品].doc

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
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 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; 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)主函数的设计 调用各个

文档评论(0)

bodkd + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档