《数据结构课程设计-文章编辑演示.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计-文章编辑演示.docx(34页珍藏版)》请在第一文库网上搜索。
1、课程设计任务书专业名称:计算机科学与技术(软件工程)课程名称:数据构造课程设计设计题目:文章编辑问题起止时间:2023年6月24日至2023年7月12日问题描述静态存储一页文章,每行最多不超过80个字符,共N行,程序可以记录出文字、数字、空格的个数,并且可以对文章中特定内容进行查找和替代,同步也可以删除指定内容。基本规定(1)分别记录出其中英文字母数和空格数和整篇文章总字数;(2)记录某一字符串在文章中出现0次数,并输出该次数;(3)查找出文章中某一段文字,并用其他文字进行替代;(4)删除某一子串,并将背面日勺字符前移。输出形式:(1)分行输出顾客输入的各行字符;(2)分4行输出所有字母数、数
2、字个数、空格个数、文章总字数;(3)查找出指定字符串在文章中出现的所有地方并替代,输出替代后成果;(4)输出删除某一字符串后的文章;实现提醒存储构造使用线性表,分别用几种子函数实现对应H功能,并且使用菜单0形式,可以选择所要进行0操作(查找、替代、删除、记录等)。文章编辑系统1概要设计本次课程设计的题目是文章编辑系统,本系统H勺功能描述如下:顾客新建文本、浏览新建文本、文本字符记录、指定字符串记录、指定字符串删除、指定字符串替代等操作。1 .新建文本2 .浏览输入文本3 .文本字符记录4 .指定字符串记录5 .指定字符串删除6 .指定字符串替代7 .退出系统本系统包括七个功能模块,分别为:新建
3、文本模块,浏览输入文本模块,指定字符串记录模块,指定字符串删除模块,指定字符串删除模块,指定字符串替代模块以退出系统模块。新建文本模块实现顾客录入文本信息,并且系统自动保留录入信息。浏览输入文本模块实现了显示顾客录入信息的功能。指定字符串统模块实现了对英文字母数和空格数和整篇文章总字数的记录。指定字符串记录实现了记录顾客自定义字符串个数)勺功能。指定字符串删除模块实现了对顾客自定义字符串的删除。指定字符串替代模块实现了替代顾客自定义字符串为顾客定义勺新字符功能。退出系统模块实现了退出系统功能。图1.1系统功能模块图2详细设计这部分详细简介了系统中重要部分的功能实现,以和代码功能阐明。voidC
4、reate(1INE*&head)printf(请输入一页文章,以Ctr1+E为结尾(每行最多输入80字以Ctr1+E结束文本录入,防止发生混淆1INE*p=new1INE;*首先为链表建立一种附加表头结点*/head=p;/*将P付给表头指针*/charch100;whi1e(1)(gets(ch);/*输入字符串!*/if(str1en(ch)80)(Printf(每行最多输入80字符”);break;if(ch0=5)break;*假如发现输入-E,则退出输入*/p=p-next=new1INE;p-data=newcharstr1en(ch)+1;/*为结点分派空间*/strcpy(p
5、-data,ch);if(chstr1en(ch)-15)*除去最终一种控制符E*/p-datastr1en(ch)-1,0,;break;p-next=NU11;/*最终的一种指针为空*/head=head-next;/*文本字数记录*/intCountSpace(1INE*&head)记录空格数(1INE*p=head;intasc_space=32;intcount=0;inti;int1en;do1en=Str1en(p-data);for(i=0;idatai=asc_space)count+;whi1e(p=p-next)!=NU11);returncount;intCount_N
6、um(1INE*&hcad)记录数字个数1INE*p=head;intcount=0;int1en;inti;do1en=Str1en(p-data);for(i=0:idatai=48&p-datainext)!=NU11);returncount;)intCountA11Word(1INE*&head)记录文章的总字数(1INE*p=head;intcount=0;do(count+=str1en(p-data);whi1e(p-p-next)!=NU11);returncount;intCount1etter(1INE*&head)记录字母数(1INE*p=head;intcount=0
7、;int1en;inti;do1en=Str1en(p-data);for(i=0;idatai=,a,&p-dataip-datai,A,&p-datainext)!=NU11);returncount;intEindWord(1INE*&head,char*sch)记录sch在文章中出现的次数1INE*p=head;intcount=0;intIen1=O;int1en2=str1en(sch);inti,j,k;doIen1=Str1en(p-data);目前行的字符数for(i=0;idatai=sch0)(k=0;for(j=0;jdatai+j=schj)k=k+1;if(k=1c
8、n2)(count+;i=i+k-1;)whiIe(p=p-next)!=NU11);returncount;)*特定字符串的!删除*/voiddeistringword(char*s,char*sch)char*p=strstr(s,sch);chartmp80;intIen=Str1en(s);intk,kk;inti=1en-str1en(p);intj=i+str1en(sch);intcount=0;for(k=0;ki;k+)tmpcount+=sk;for(kk=j;kkdata,sch)!=NU11)de1_string_word(p-data,sch);whiIe(p=p-n
9、ext)!=NU11);*特定字符串的替代*/voidrep1ace_string_word(char*s,char*sch,char*reh)(intString1en;charCaNewStringf1OO;char*FindPos=strstr(s,sch);/if(!FindPos)(!sch)/return-1;whiIe(FindPos)(memset(caNewString,0,sizeof(caNewString);String1en=FindPos-s;strncpy(caNewString,s,String1en);strcat(caNewString,reh);strca
10、t(caNewString,FindPos+str1en(sch);strcpy(sfcaNewString);FindPos=strstr(s,sch);*returnO;*/voidRep1aceString(1INE*&head,char*sch,char*reh)替代指定0字符串(1INE*p=head;dowhi1e(strstr(p-data,sch)!=NU11)rep1ace_string_word(p-data,sch,reh);whi1e(p-p-next)!=NU11);)*打印输入口勺文本*/voidOutPutTxt(1INE*&head)向屏幕输出文章(1INE*p
11、=head;Printf(文本文献输出如下:);doPrintf(%sn”,p-data);whiIe(p=p-next)!=NU11);voidCount(1INE*head)(PrinIf(文章记录信息成果:n);Printf(“所有字母数:%dnz,Count_1etter(head);Printf(数字个数:%dnz*,CountNum(head);Printf(空格个数:%dnz,CountSpacc(head);printf文章总字数:%dn7z,(Count11Word(head)+Count_Num(head)+CountSpace(head)+Count_1etter(hea
12、d)/2);printf(*nz,);)voidmain()(1INE*head;charsch20;charreh20;charID10;charch;chartmpsch20;chartmp_rch20;3调试汇报在木次程序设计中,在编译过程中,出现了几次问题(1)错误提醒:errorC2660:,search:functiondoesnottake1parameters错误类型:Search函数参数错误改正措施:将case语句后加break语句进行返回。(2)错误提醒:errorC2228:1eftof.searchmusthavec1ass/struct/uniontype错误类型:指
13、针符号使用错误改正措施:将s.Search(stu,s)更改为s-search(stu,s)(3)错误提醒:errorC2676:binary:c1assstd:basic_ofstreamchar,structstd:char_traits,doesnotdefinethisoperatororaconversiontoatypeacceptab1etothepredefinedoperator错误类型:文献流输入输出符号使用错误,错误使用作为文献写入操作符。改正措施:将改为4测试成果I测试项目I测试数据I测试成果一登陆界面1 .新建文本2 .浏览输入文本3 .文本字符记录4 .指定字符串记录5 .指定字符串删除6 .指定字符串替代7 .退出显示:1 .新建文本2 .浏览输入文本3 .文本字符记录4 .指定字符串记录5 .指定字符串删除6 .指定字符串替代7 .退出新建功能输入1:新建文本Abcdef