网站大量收购独家精品文档,联系QQ:2885784924

数据结构课程设计:中文文本编辑(文本删除、修改、查询、统计、添加).docxVIP

数据结构课程设计:中文文本编辑(文本删除、修改、查询、统计、添加).docx

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构课程设计:文本编辑(最后附完整代码) 一.问题描述---------------------------------------------1 二.设计思路---------------------------------------------1 三.系统实现功能 1.建立单链表-------------------------------------------2 2.显示文章内容---------------------------------------- 3 3.查找文章语句-----------------------------------------3 4.删除文章语句-----------------------------------------5 5.替换文章语句-----------------------------------------7 6.统计文章字数-----------------------------------------10 7.写入文本结束程序--------------------------------------10 四.系统不足及需改进分------------------------------------11 五.文件清单说明------------------------------------------11 六:附录-------------------------------------------------12 一:问题描述 本次我所做的课程设计为:文本编辑,主要内容是对中文文本的显示、查找、删除、替换、统计、写入文本。在程序选择功能后根据提示,输入任意长度中文语句即可对文章进行操作。 二:设计思路 文本编辑,顾名思义就是对一遍文章进行编辑,我所设计的是对中文的编辑。中文有两个字节(汉字、标点),通常情况下通过文件输入流仅仅可以取一个字节或者是以空格为分隔符取单词这仅仅对英文的文章适用,周六周日我从网上搜索相关方法,未找到一条切实可用的对中文字符操作的方法。后因看到一种对string的操作灵光一闪,想到了对中文的操作。 因中文是两个字节,由两部分ASCII码组成,所以可用单链表一个节点存放一个汉字或字符,单链表的数据域是一个长度为二的char数组分别存汉字的两个字节。若用户从键盘输入则将其存入string然后遍历将其每一个字节取到char数组中,这样只需两个字节对比一次使char数组中相邻的两个字节与单链表中每一个节点的两个char对比即可遍历。 我所用的数据结构为单链表,结构中由一个长度为2的char数组和一个指针组成具体结构如下: typedef struct LNode { ElemType data[2];//长度为2的char数组,char[0]存汉字前半部分,char[1]存后半部分 struct LNode *next; }LinkList; 三:系统实现的功能 1.建立单链表 void CLinkList(LinkList *L) { LinkList *s,*r; r=L; r-next=NULL; char temp; //存放判断变量,同时起到中间变量的作用 ifstream fin(a.txt);//打开文件输入流 while(!fin.eof()) { s=(LinkList *)malloc(sizeof(LinkList));//一个节点存一个汉字或字符 temp=fin.get(); //从文件取一个字符 if(temp!= ) //判断是否为空格、回车,若为空格回车则只存一个字符剩下一个用1代替 { s-data[0]=temp; s-data[1]=fin.get(); } else if(temp== ) { s-data[0]=temp; s-data[1]=1; } else { fin.get(); s-data[0]=\n; s-data[1]=1; } r-next=s; r=s; } r-next=NULL; fin.close(); } 显示文章内容 void DisList(LinkList *L) { LinkList *p=L-next; while(p!=NULL)//遍历单链表依次输出 { if(p-data[0]!= )//判断是否为空格决定输入方式 coutp-data[0]p

文档评论(0)

kfcel5889 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档