- 7
- 1
- 约1.12万字
- 约 38页
- 2018-02-23 发布于贵州
- 举报
数据结构课程设计:中文文本编辑(文本删除、修改、查询、统计、添加)
数据结构课程设计:文本编辑(最后附完整代码) 一.问题描述---------------------------------------------1 二.设计思路---------------------------------------------1 三.系统实现功能1.建立单链表-------------------------------------------22.显示文章内容---------------------------------------- 33.查找文章语句-----------------------------------------34.删除文章语句-----------------------------------------55.替换文章语句-----------------------------------------76.统计文章字数-----------------------------------------107.写入文本结束程序--------------------------------------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-data[1]; else cout ; p=p-next;}}查找文章语句seek(LinkList *p,char a[],int m)函数,遍历查找单链表找到参数给定指针最近位置的对应语句并返回逻辑位置(不包括空格和回车)。seekCall(LinkList *L)函数,调用seek()传入一个位置可变的指针依次遍历查找出所有输入的语句的逻辑位置int seek(LinkList *p,char a[
您可能关注的文档
- 我国中小银行风险的成因及防范--学年论文.doc
- 我国乳制品行业现状及发展分析.docx
- 我国信用卡市场现状和发展对策毕业论文.doc
- 我国现行环境税收制度的问题及对策--毕业论文.docx
- 房地产估价理论与方法练习题单选200-多选100含答案解析.docx
- 户表工程施工现场工程质量安全管理制度.docx
- 房地产估价相关知识(巩固练习200单选-100多选)含答案解析.docx
- 房地产集团消防安全工作管理制度.docx
- 房屋建筑高层住宅商业楼别墅监理大纲.docx
- 手机外壳模具设计大作业说明书.docx
- 第2章 主题公园的产业格局与趋势.pptx
- 02 第六单元 第一章 第二节 有性生殖.docx
- 25年春【大象版】小学3年级科学上册【5.docx
- 25年春【大象版】小学3年级科学上册【三上1单元第1课《测量气温》教学设计】.docx
- 25年春【大象版】小学3年级科学上册【4.docx
- 25年春【大象版】小学3年级科学上册【6.docx
- 25年春【大象版】小学3年级科学上册【三上1单元第4课《云量与降水量》教学设计】.docx
- 25年春【大象版】小学3年级科学上册【4.docx
- 25年春【大象版】小学3年级科学上册【5.docx
- 基于RobotStudio的ABB机器人运动轨迹控制仿真研究.docx
最近下载
- 【西师大版】2025-2026学年一年级数学下册教学工作计划(含进度表).docx VIP
- 2025年春新人教版七年级下册数学全册课件.pptx
- 科级领导干部理论水平任职.doc VIP
- 《连锁零售企业采购实务》项目6 采购绩效评价.pptx VIP
- 1.1我国发展新的历史方位(教案) 初中读本2023版.pdf VIP
- 2025 贵州 中考真题“写作三任务:铭记他人的帮助、帮助别人学会一项技能、独立不是拒绝帮助”审题立意指导与拓展训练-2025年中考语文作文真题解析与导写.docx VIP
- 消毒供应中心提高包装合格率PDCA.pptx VIP
- 《连锁零售企业采购实务》项目5 供应商管理.pptx VIP
- 2025年新版国家基本药物目录公布药品扩至520种.pdf VIP
- 人教版小学一年级(全册)口算练习题大全.pdf VIP
原创力文档

文档评论(0)