论文百事通 设为主页 会员登录 |  免费注册
代写论文 代发表论文 定制论文 毕业设计定制 期刊目录 黄金会员  
加入收藏 设为首页 |  收藏本站
首页 | 计算机 | 建筑工程 | 医药学 | 经济类 | 文学 | 英语 | 其它类别论文 | 计算机毕业设计 | 课程设计 | 毕业系统演示 | 投稿中心 | 下载中心 | 留言板
  查找论文

数据结构课程设计报告-程序分析

作者:刘大兵  来源:lwbst.com    【2006-09-19】    编辑:Admin

一、需求分析:


读入一个C程序,统计程序中代码、注释和空行数以及函数的个数和平均行数,并利用统计信息分析评价该程序风格。
基本要求如下:
(1)、把C程序文件按字符顺序读入源程序;
(2)、边读入程序,边识别统计代码行、注释行和空行,同时还要识别函数的开始和结束,以便统计其个数及平均行数。
(3)、程序风格分为代码注释和空行三方面。每方面分A、B、C、D四个等级。

如下是对本程序代码进行分析的结果:

二、概要设计:
(1)、定义一个函数结构,用于存放>函数信息
struct FunctionData{
char funname[80];
int fun_startline;
//函数的起始行号
int fun_endline;
//函数的结束行号
int fun_length;
};
typedef struct FunctionData FunData;
(2)、用于动态存放所有函数信息

//以下为带头结点链表操作的定义及相关函数
typedef FunData LLElemType;
//定义链表元素类型为FunData类型
typedef struct LinkListNode{
LLElemType data;
struct LinkListNode *next;
}*LinkList;
//end typedef struct LinkList

int InitLinkList(LinkList &LL)
{
//初始化链表
……
}

int LinkListLength(LinkList LL)
{
//获取链表长度
……
}
//end LinkListLength(LinkList LL)

int GetLinkListElem(LinkList LL,LLElemType &elem,int pos)
{
//获取链表元素
……
}
//end GetLinkListElem(LinkList LL,LLElemType *elem,int pos)

int LinkListInsert(LinkList &LL,LLElemType data)
{
//插入到链尾
……
}
//end LinkListInsert(LinkList *LL,LLElemType data,int pos)
//单链表定义至此结束
(3)、定义Data 存储程序分析的基本信息

typedef struct Data{
int CodeLines;
//代码行数
int CommentsLines;
//注释行数
int BlankLines;
//空白行数
int line_len;
unsigned long int length;
float average_len;
//函数平均长度
int fun_number;
//函数总数
int max_len;
//函数最大的长度
int max_startline;
int max_endline;
//最大函数起止行
}Data;

void InitData(Data &data)
{
//初始化data
……
}
//end InitData()

int SelectFunName(char data[1024],char pname[80])
{
//从字符串data中筛选出靠后且非空的连续字符pname
……
}
//end SelectFunName()

int IsFunName(char name[])
{
//判断字符串 name 是否函数名
……
}
//end IsFunName()

 

void DispAbout()
{
//输出本程序设计相关信息
……
}
//end DispAbout()

 

int AverageLen(LinkList &funlist,Data &data)
{
//计算函数平均长度
……
}
//end AverageLen()

int MyOpenFile(FILE *&fp)
{
//打开文件
……
}
//end MyOpenFile()

int Analysis(LinkList &funlist,Data &data)
{
//程序分析主函数
……
}
//end Analysis()

int DispFunData(LinkList funlist)
{
//输出函数的详细信息
……
}
//end DispFunData()

int GetGrade(char score[3][30],Data data,int &level,float coderate,float commentrate,float blankrate,int totallines)
{
//评定相应等级
……
}

int DispResult(Data data)
{
//输出基本分析结果
……
}
//end DispResult()

/////////////////////////////////////////
//main
void main()
{
//程序主函数
……
}
//end main

 

  本课程设计包含完整源程序、可执行程序、设计文档。

 上一篇:扩展PL0编译程序-编译原理课程设计
 下一篇:简单的LISP算术表达式计算器-数据结构课程设计
本文版权归本站所有,欢迎转载。转载该文章时,请注明“来源:论文百事通 Http://www.lwbst.com”。
 
Copyright (C) 2008 Lwbst.com, All Rights Reserved 版权所有 论文百事通