下载此文档

简单文本编辑器.doc


文档分类:文学/艺术/军事/历史 | 页数:约16页 举报非法文档有奖
1/16
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/16 下载此文档
文档列表 文档介绍
简单文本编辑器.doc简单文本编辑器(C++)一、 功能要求1、 具有图形菜单界面;2、 查找,替换(等长,不等长),插入(插串,文本块的插入)、块移动(行块,列块移动),删除3、 可正确存盘、取盘;4、 正确显示总行数。二、 主程序流程图主菜单三、数据结构程序中用链表来保存文本,每一行为一个单向链表,每一行的表头保存在一个行链表中,形成了一个2维链表,结构如下图所示:行链表表头Node*lineRow*next行11►列链表表头列1列2列3Node*lineRow*nextcharchNode*nextcharch►Node*nextcharch厂》 LNode*nextcharchNode*next1行2Node*line►charchcharchRowknextNode*nextNode*next行3 Node*linecharchRow*next_JNode*next7 y Node*line仃4 _charch charchRow*nextNode*next―丿 Node*next四、功能实现打开文件(1) 提示用户输入文件路径(2) 判断文件路径是否有效,若无效,则提示错误信息并返冋,否则继续执行。(3) 若文件成功打开并且文件指针没有到文件尾,则从文件中一次读取一个字符,并将该字符添加到一列单链表节点中,直至遇到换行符(ASCII码10)。当列单链表形成后,它的首地址将被保存至行单链表的相应节点的数据域中,如此动作,直至文件指针指向文件尾部而结束。新建文件(1) 若行链表中有数据存在,则提示用户保存文件。(2) 提示用户输入新建文件的保存路径。(3) 测试新文件路径是否有效。保存文件(1) 打开文件。(2) 遍历行单链表,遍历行单链表节点指向的列单链表,并将数据输出到文件,每个列单链表遍历完后,输出换行符到文件。(3) 关闭文件插入字符串(1) 提示用户输入要插入字符串的位置(行号row,列号col)以及要插入的字符串。(2) 先在行单链表中找到该行(第row行),若超出现有行数,则添加空行补齐;(3) 将字符串插入该行(第row行)节点指向的列链表中的col-1位置,若超出现有节点数,则添加保存字符为空格的节点补齐。删除字符串(1) 提示用户输入要删除字符串的开始位置(行号row,列号col)以及要插入的字符串的长度leno(2) 在链表中定位到该行节点,若不存在,则提示无法删除并返冋;否则继续执行。(3) 在该行中定位到该col字符节点node,若不存在,则提示无法删除并返回;否则继续执行。(4) 删除从node字符节点开始的len个节点。若不满len个,则全部删除。查找替换(1) 提示用户输入要查找的字符串。(2) 遍历链表,找到每一个出现此字符串的位置并输出。(3) 询问用户是否要进行替换。若选是,则提示用户输入要替换后的字符串,然后先在链表中删除原字符串,再在该位置插入要替换为的字符串。行移动(1) 提示用户输入耍移动的行row和移动后的位置poso(2) 将行链表屮的row-1节点移动到pos-1位置。列移动(1) 提示用户输入要移动的列col和移动后的位置pos0(2) 遍历每一行(列链表),将每一行的col-l节点移动到pos位置处;若col-l节点不存在则不处理。显示文本(1)遍历行、列链表,并将数据输出到控制台;五、代码实现#include<iostream>#include<fstream>#include<string>usingnamespacestd;//author:yyc〃1、具有图形菜单界而;〃2、查找,替换(等长,不等长),插入(插串,文本块的插入)、块移动(行块,列块移动),删除〃3、可正确存盘、取盘;〃4、正确显示总行数。〃字符节点structNode{charch;Node*next;};〃行节点structRowNode*line;Row*next;};〃创建一个Node对象Node*createNode(charch){Node*p=newNode;p->ch=ch;p・>next=NULL;returnp;}〃创建一个Row刈像Row*createRow(Node*line)Row*p=newRow;p->line=line;p・>next=NULL;returnp;}〃定位到index处Node*locate(Node*linejntindex){Node*p=line;inti=-l;while(p!=NULL&&ivindex){p=p->next;i++;}returnp;Row*locate(Row*listjntindex)Row*p=list;inti=-l;while(p!=NULL&&i<index)p=p->next;i++;}returnp;}〃插入节点boolin

简单文本编辑器 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数16
  • 收藏数0 收藏
  • 顶次数0
  • 上传人小雄
  • 文件大小176 KB
  • 时间2020-09-12