欢迎来到天天文库
浏览记录
ID:38494384
大小:541.00 KB
页数:18页
时间:2019-06-13
《数据结构与算法实验报告 2》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据结构与程序设计专题实验报告17实验报告一、实验任务实验题目:数据结构与程序设计专题实验二、实验内容实验二:基于串的程序分析(一)实验目的:熟练掌握串的运用,以及线性表、栈、队列等基本操作。(二)基本要求:1)把C程序文件按字符顺序读入源程序;2)边读入程序,边识别统计代码行、注释行和空行,同时还要识别函数的开始和结束,以便统计其个数和平均行数;3)程序的风格主人评价分为代码、注释和空行三个方面。每个方面为A,B,C,D四个等级。(三)内容提要:读入一个C程序,统计程序中代码、注释和空行的行数以及函数的个数和平均行数,并利用统计信息分析评价该程序风
2、格。注:等级的划分标准是: 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%三、要点分析题目中涉及的主要知识点有:1、文件。打开源文件,读入程序做统计,同时还要将识别到的函数记录到
3、文件“log.txt”中。2、串(字符串)。整个程序的各种功能都是基于对串的操作实现的。如判断是否为空串、在串中查找子串、返回截断的串等等。3、结构体。设置结构体变量,记录统计数据。4、函数。编写各种功能的函数,主函数通过调用函数实现程序的功能。四、解题步骤编程平台:MicrosoftVisualC++6.0编程平台应用:第一步:打开MicrosoftVisualC++6.0运行软件;17第二步:在主菜单中选文件→新建。17第三步:在出现的如下界面中选取“工程”项,选择“Win32ConsoleApplication”,填写工程名称,选择存储路径,点
4、击“确定”。第四步:勾选“一个简单的程序”复选框。17第五步:在出现的编译环境中编写程序。五、程序的算法描述1、头文件引用与宏定义:#include#include#include#defineTRUE1#defineFALSE0#defineBOOLint#defineMAXSIZE5000#defineCOUNT20//可以统计的最大的文件个数#defineLEN20//文件名的最大长度2、所用存储结构://函数属性结构typedefstruct{charfilename[20];//每一
5、个函数的名字intlength;//每一个函数的长度intpos;//每一个函数的位置}Fun;//统计结构的声明17typedefstruct{intcomments;//纯注释的个数intcomment;//混合注释个数intblank;//空行的个数Funfun[MAXSIZE];//函数的属性intothers;//除去函数中代码外其余的代码个数intfuncount;//函数的个数}Analy;其中纯注释是指一行中只有注释和无其他,而混合注释是指一行中除注释外还有其他语句等。3、程序中各函数的简要说明:1)、BOOLStrEmpty(cha
6、r*s)判断字符串是否为空串,如果字符串的第一个字符为“ ”,则为空串。2)、intFind(char*s1,char*s2)查看S1中是否有值为S2的子串,若有则返回第一个子串的位置,若无则返回-1。首先比较两个字符串的长度,若s1长度小于s2长度,则返回false;当s1长度大于s2长度时,设置i和j俩个变量分别指向俩个字符串,比较s1[i]和s2[j]的当前的值,相同则i,j同时加1,直至s2比较完;否则i加1,j置零,从下一个字符开始重新比较。3)、voidHaveLine(FILE*fp,char*s)读取文件中的一行字符。借助文件指针f
7、p和函数fgetc,从源文件中提取字符,并存入字符串s中,当遇到“”时表示一行读取完成。并在字符串后加“ ”,表示字符串结束。4)、char*IgnoreB(char*s)忽略一行字符开头的空格和tab,返回截断后的串指针。利用字符串指针将字符串传到函数中,函数检测字符串开头是否为空格,若是指针加1,直到指针当前指示字符不是空格,并返回指针(即字符串中第一个不是空格的字符的地址)。5)、intIsCom(char*s)判断一行字符是不是注释。首先在字符串s中查找子串“\”,若无则此行无注释;若有,但当“\”出现在“”中时,不是注释,只是输出
8、项,须予以排除;当有子串“\”并且子串位置在最开始,则此行只有注释,用1表示此类型。其他类型注释用2表示。
此文档下载收益归作者所有