《文章编辑数据结构设计报告.docx》由会员分享,可在线阅读,更多相关《文章编辑数据结构设计报告.docx(28页珍藏版)》请在优知文库上搜索。
1、文章编辑设计报告一、实训目的及要求数据结构是计算机课程的一门重要的根底课,它的教学要求大致有三个重要方面:其一就是让学生学会分析研究计算机加工的数据对象的特性,以便为数据选择适当的物理结构和逻辑结构;其二,根据结构,选择适当的算法,并初步掌握算法的时间分析和空间分析;其三,学习复杂的程序设计。本综合实训利用VisualStudio2008集成编程环境为实践工具,通过上机实践培养学生分析具体问题、解决实际问题的能力,训练和培养学生的数据抽象能力和程序设计的能力。数据结构是一门实践性较强的课程,以养学生的数据抽象能力和程序设计的能力为目的。在实训时应注重培养学生的实际操作能力。本综合实训安排了20
2、学时的实验课时,完成4次上机作业。具体要求如下:1 .学习和理解每个实训题目的根本理论和方法;2 .掌握每个实验的实现步骤和关键技术;3 .准备好实验所需要的资源和文档;4 .上机实现程序,得到通过调试的正确程序。5 .根据每个实验的不同要求,完成实验报告的WOrd文档。二、实训环境WindowsXPVisualStudio2010三、实训内容文章编辑1)问题描述输入一页文字,程序可以统计出文字、数字、空格的个数。2)根本要求静态存储一页文章,每行最多不超过80个字符,共N行;要求(1)分别统计出其中英文字母数和空格数及整篇文章总字数;(2)统计某一字符串在文章中出现的次数,并输出该次数;13
3、)删除某一子串,并将后面的字符前移。(4)替换字符串15)可以保存到文件中,也可以在文件中翻开四、算法描述及实训步骤定义一个串,可使用顺序串或者链表串。实现串的插入、删除、修改、保存在文件中选择界面输入字串统计字串删除子串替换子串保存一串F换、遍历等功能。并能够把串显示字串/*文本每行以字符串形式存储,行与行之间以链表存储*/usingnamespacestd;typedefstructlinechar*data;structline*next;LINE;/*创立一链表,同时向里面输入文本数据*intstrlength(str*s)/*统计字母数*/intCountLetterCLlNE*&h
4、ead)(1.INE*p=head;intcount=0;dointLen=Strlen(P-data);/*计算当前data里的数据元素的个数*/for(inti=O;idatai=a&pdataiv=z)|(p-datai=A&pdataiK=Z)/*计算字母数可count+;while(p=p-next)!=NULL);/*遍历链表*/returncount;/*返回文章的字母总数*/)/*统计数字数刃intCountNumber(LINE*&head)(1.INE*p=head;intcount=0;do(intLen=StrIen(P.data);/*计算当前data里的数据元素的个
5、数*/for(inti=O;idatai=48&p-datalJnext)!=NULL);/*遍历链表*/returncount;)/*统计空格数刃intCountSpaceCLINE*&head)(1.INE*p=head;intcount=0;do(intLen=StrIen(P.data);/*计算当前data里的数据元素的个数*/for(inti=O;idataij=32)Coimt+;/*计算空格数,空格ASCII码为32*/WhiIe(P=P-next)!=NULL);/*遍历链表*/returncount;/*统计文章的总字数*/intCountAlKLINE*&head)1.I
6、NE*p=head;外保存链表的首地址木/intcount=0;d。/*计算总字符数列(count+=strlen(p-data);)While(P=P-next)!=NULL);/木遍历链表率/returncount;)/*统计str在文章中出现的次数*/intFindStringCLINE&head,char*str)(1.INE*p=head;intcount=0;inth=0;intIelII=O;/*保存当前行的总字符数率/intlen2=strlen(str);/待统计字符串的长度*/intij,k;doIenI=Strlel(p-data);/*当前行的字符数*/for(i=0;
7、ivlenl;i+)/*字符匹配*/(if(p-datai=strOJ)(k=0;for(j=0;jdatai+j=strj)k+;if(k=len2)count+;i=i+k-l;)*遍历链表*/while(p=p-next)!=NULL);returncount;)*删除指定的字符串*/voiddelstringword(char*s,char*str)*s为输入的字符串,*str为将要删除的字符*/char*p=strstr(s,str);/*从字符串s中寻找str第一次出现的位置木/chartmpl80J;intlen=strlen(s);intI=Ien-Strlen(P);intj
8、=i+strlen(str);intcount=0;for(intm=0;mi;m+)tmpcount+=sm;for(intn=j;nlen;n+)tmpcount+=sn;tmpcountj=,0;strcpy(s,tmp);/*返回新的字符串*/)/*替换指定的字符串*/voidrepstringword(char*s,char*str,char*strb)*s为输入的字符串,*str为将要被替换的字符,Strb为替换字符阳(char*p=strstr(s,str);/*从字符串S中寻找str第一次出现的位置本/chartmp80J;intq=0;intk=strlen(strb);in
9、tlen=strlen(s);inti=len-strlen(p);intj=i+strlen(str);intcount=0;for(intm=0;mi;m+)tmpcount+=sm;for(into=0;ok;o+)tmplcount+J=strbq+J;for(intn=j;n文程除一 K4统普删显盒请选择操作序号:(。-T):,的字符串:na为:3清按任意键继续一.bdsandasndkasnkbncncSajajkjnsaknc ansJkajajskjcn JasnckasnkcSakcnkascajajk请按任意键继续. . 一 K C 软件vc+6.0MSDev98MyPrQ
10、jects7Debug7,exe请选择操作序号:(04请撤递黄搀电麦符:强请输入替换的子符:ajaj*12 3 4 5 6 0r r rUUUU UU iswi 婺XX支文程 统誉删显盒4,请选择操作序号:(。一Y):请降人寥蒯陡的某一字符串:於蒯那M后的文章为三bdsadasndkasnkbncncSaJkjnsakncansJkajskJcnSnCkaSnkCSakcnkascajk请按任意键继续.请选择操作序号:(加一4):现在的文早内谷为:bdsandasndkasnkbncncSajkJnsakncansjkajskjcnSnCkaSnkCSakcnkascaJk请按任意键继续.文件(F)漏塞(E)悟式(。)查看(V)帮助(三)insist墓工主支文程删