数据结构课程设计实验报告.docx
- 文档编号:2135923
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:62
- 大小:819.60KB
数据结构课程设计实验报告.docx
《数据结构课程设计实验报告.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计实验报告.docx(62页珍藏版)》请在冰豆网上搜索。
数据结构课程设计实验报告
《数据结构与算法》
课程设计实验报告
组员姓名:
张林王莉
邱波马俊兰
组员学号:
2010063320100608
2010059620100585
学院:
信息与计算科学学院
专业班级:
10级应数二,三班
指导老师:
虎旭林
设计日期:
2012—06—18
一前言………………………………………………………………3
二本小组成员………………………………………………………3
三文章编辑…………………………………………………………4
1)需求分析………………………………………………………4
2)概要设计………………………………………………………4
3)详细设计………………………………………………………6
4)调试分析………………………………………………………11
5)课程设计总结…………………………………………………13
四运动会分数统计…………………………………………………13
1)需求分析………………………………………………………13
2)概要设计………………………………………………………13
3)详细设计………………………………………………………15
4)调试分析………………………………………………………22
5)课程设计总结…………………………………………………24
五一元多项式的计算………………………………………………25
1)需求分析………………………………………………………25
2)概要设计………………………………………………………25
3)详细设计………………………………………………………26
4)调试分析………………………………………………………31
5)课程设计总结…………………………………………………31
六赫夫曼树的建立…………………………………………………32
1)需求分析………………………………………………………32
2)概要设计………………………………………………………32
3)详细设计………………………………………………………34
4)调试分析………………………………………………………38
5)课程设计总结…………………………………………………39
七课程设计总结……………………………………………………40
八设计参考资料……………………………………………………40
一前言
在计算机及其应用的各个领域中,都会用到各种各样的数据结构,学会分析研究计算机加工对象的特性,选择合适的数据结构和存储表示,以及编制相应的实现算法,是计算机工作者当前的计算机专业教学计划中,它是核心课程之一。
《数据结构与算法》课程设计是实践性教学中的一个重要环节,它以《数据结构与算法》课程为基础,可以涉及和课程相关的各个方面,是一门独立于课程之外的特殊课程。
课程设计是让同学们对所学的课程更全面的学习和应用,理解和掌握课程的相关知识。
《数据结构与算法》是一门重要的专业基础课,是计算机理论和应用的核心基础课程。
数据结构课程设计,要求学生在数据结构的逻辑特性和物理表示、数据结构的选择和应用、算法的设计及其实现等方面,加深对课程基本内容的理解。
同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。
而这次《数据结构与算法》课程设计中,根据老师的设计要求,我们小组理性化的选择了五个程序,即运动会的分数统计,文章编辑,一元多项式的计算,赫夫曼数的建立。
我们小组由我,10级应数三班王莉同学,10级应数二班邱波同学,马俊兰同学组成,在编制程序设计中,我们完美的实现了分工合作,由最初的各自负责一个程序的源程序的编写,即我负责文章编辑的程序编程,邱波同学完成运动会的分数统计程序编程,王莉同学完成一元多项式的计算程序,以及马俊兰同学完成赫夫曼数的建立的源程序的编程。
最后又由我们四人共同完成所有源程序的改进、改错与运行。
我们这样的先分工后合作的方式,更加全面的让各自的编程能力做到了独立与共同的目的,几乎让各自都体会到了编程的个性化,以及锻炼了自己的编程能力。
而在后期主要由,邱波同学,王莉同学,马俊兰同学负责程序的改进,改错以及完善,由我负责实验设计报告的完成。
通过这次的《数据结构与算法》课程设计实验,让我们更加的学到了不少的东西,我们通过在图书馆的相关资料查找,网上有关资料的搜索,以及重先看了又看《数据结构与算法》的教材知识,在我们共同的努力下终于完成了这次程序设计。
此次课程设计使我们对数据结构方面的知识有了更加深入的了解,也使我们认识到自己在学习编程方面还有很多的不足。
今后我们要多读一些编程方面的书籍,不能只拘泥于课本上的知识,并注重理论与实践的结合,多上机练习编写程序,提高自己的实际动手能力和独立思考的能力,不断充实自己,更好的掌握编程思想。
最后,非常感谢虎旭林老师在课堂上以及上机实验中对我们有关知识的细心讲解,程序编程的耐心指导下,让我们在大学没有白费光阴,学到有用的知识。
也感谢帮助我们的同学及朋友,他们让我们在这门课程学习与设计中改进了不少的不足点。
这份程序设计中或许还有许多地方的不足与错误,还望在老师您的发现与提醒下,让我们得到更多的改进与学习,编程能力的完美与提高。
谢谢!
张林
2012年6月
二本组成员
张林20100633王莉20100608
邱波20100596马俊兰20100585
三文章编辑
(一)、需求分析
⏹功能:
输入一页文字,程序可以统计出文字、数字、空格的个数。
⏹静态存储一页文章,每行最多不超过80个字符,共N行;
◆要求
(1)分别统计出其中英文字母数和空格数及整篇文章总字数;
(2)统计某一字符串在文章中出现的次数,并输出该次数;
(3)删除某一子串,并将后面的字符前移。
⏹存储结构使用线性表,分别用几个子函数实现相应的功能;
⏹输入数据的形式和范围:
可以输入大写、小写的英文字母、任何数字及标点符号。
⏹输出形式:
(1)分行输出用户输入的各行字符;
(2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"
(3)输出删除某一字符串后的文章;
(二)、概要设计
1、定义结构体:
structline,文本行采用顺序存储,行与行之间采用链式存储。
开始
主函数
输入文章
统计空格个数
统计英文字母数
统计文章总字数
删除指定字符串
统计指定字符串个数
统计文章数字个数
输出文章
结束
2、主要函数:
intFindString(LINE*&head,char*str)/*统计str在文章中出现的次数*/
求在一行中Str出现的次数的流程图:
①.查找第一个字符,如果有第一个字符即p->data[i]==str[0],设计数器k=0
②.查找这个字符后面的字符与要查找的字符串是否匹配即p->data[i+j]==str[j],如果匹配k++
③.重复第二步,如果k=len2,则查找到,count++;如果没查找到,重新进行第一步
voiddelstringword(char*s,char*str)/*删除字符串*s中的字符串*str*/
(三)、详细设计:
源程序
#include
#include
typedefstructline
{
char*data;
structline*next;
}LINE;
voidOutPut(LINE*&head)
{
LINE*p=head;
printf("输入的文章为:
\n");
do
{
printf("%s\n",p->data);
}
while((p=p->next)!
=NULL);
printf("\n");
}
voidmenu()
{
printf("*********************文章编辑**********************\n");
printf("***************************************************\n");
printf("1.统计文章中全部英文字母数\n");
printf("2.统计文章中空格个数\n");
printf("3.统计文章总字数\n");
printf("4.统计文章中数字个数\n");
printf("5.统计指定字符串在文中出现的次数\n");
printf("6.删除指定字符串\n");
printf("***************************************************\n");
}
voidCreate(LINE*&head)
{
printf("请输入一页文章,以Ctrl+E(^E)为结尾(每行最多输入80个字符):
\n");
LINE*p=newLINE;//首先为链表建立一个附加表头结点
head=p;//将付给表头指针
chartmp[100];
while
(1)
{
gets(tmp);
if(strlen(tmp)>80)
{
printf("每行最多输入80个字符!
");
break;
}
if(tmp[0]==5)break;//如果发现输入^E,则退出输入
p=p->next=newLINE;
p->data=newchar[strlen(tmp)+1];
strcpy(p->data,tmp);
if(tmp[strlen(tmp)-1]==5)//除去最后一个控制符^E
{
p->data[strlen(tmp)-1]='\0';
break;
}
}
p->next=NULL;
head=head->next;
OutPut(head);
printf("\n");
menu();
}
voidCountLetter(LINE*&head)
{
LINE*p=head;
intcount=0;
do
{
intLen=strlen(p->data);//计算当前data里的数据元素个数
for(inti=0;i if((p->data[i]>='a'&&p->data[i]<='z')||(p->data[i]>='A'&&p->data[i]<='Z'))//计算字母数 count++; } while((p=p->next)! =NULL); printf("全部英文字母数%d\n",count); printf("\n"); menu(); } //统计文章中数字的个数 voidCountNumber(LINE*&head) { LINE*p=head; intcount=0; do { intLen=strlen(p->data); for(inti=0;i if(p->data[i]>=48&&p->data[i]<=57)count++; } while((p=p->next)! =NULL); printf("文章中数字个数: %d\n",count);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 实验 报告