欢迎来到天天文库
浏览记录
ID:58429431
大小:431.00 KB
页数:24页
时间:2020-05-19
《简易文本编辑器任务书课程设计报告.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、中北大学数据结构课程设计说明书 学生姓名:张兴凯学号: 学院:软件学院专业:软件工程 题目:简易文本编辑器成绩指导教师何志英 2011年12月20日1.设计目的简易文本编辑器2.设计内容和要求1) 具有图形菜单界面;2) 查找,替换(等长,不等长),插入(插串,文本块的插入)、块移动(行块,列块移动),删除3) 可正确存盘、取盘;4) 正确显示总行数。3.本设计所采用的数据结构本程序是对输入的文字进行操作,故使用的数据结构为单链表操作线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素。它包括两个域:其中存储数据元素信息的域称为数据域;存储
2、直接后继存储位置的域称为指针域。另有全局变量*head,作为文章的头指针。在文章内容创建部分中使用线性表的链式存储,并使用全局变量对文本的各种信息进行存储;文章的内容统计、删除、查找、插入都采用链表操作完成。4.功能模块详细设计4.1详细设计思想本程序所定义函数的设计思想:CreatWord()文本内容输入函数定义LinkList指针变量*temp:LinkList*temp;定义文本输入变量ch,记录文本行数变量j,记录每行字符数变量i;申请动态存储空间:head->next=(LinkList*)malloc(sizeof(LinkList));首行头指针的前
3、驱指针为空:head->pre=NULL;利用循环进行文本输入PrintWord()当前文本输出函数定义文本行数变量j,每行字符数i:inti,j;定义指针变量:LinkList*p;将指针p指向链表表头:p=head->next;利用循环输出链表中信息:for(j=0;j<=NUM&&p!=NULL;j++){=for(i=0;(i<80)&&(p->data[i])!='#';i++){=printf("%c",p->data[i]);}p=p->next;SearchWord()文本内容查找函数定义一个数组,用来记录需要查找的字符内容:charData[20
4、];定义定义文本行数变量j,每行字符数i,记录字符出现的次数变量:利用循环进行查找操作,核心算法为:if((temp->data[i])==Data[k])k++;//将输入的查找字符与链表中信息比较,找到第一个相同的字符elseif(Data[k]!=' '){i=i-k;k=0;}////从主串第i-k个位置重新查找if(Data[k]==' '){sum++;//此字符出现的次数加1i=i-k+1;//i记录下该字符串出现的位置printf("tt第%d次出现在第%d行第%d列",l,j+1,i);l++;k=0;continue;}temp=t
5、emp->next;//指向下一行DeleteWord()文本内容删除函数定义一个数组用来存储需要删除的字符或者字符串:charData[20];定义指针变量:LinkList*temp,*term;使用VC++中拷贝函数讲形参中需要删除的字符或字符串赋值给已定义的数组:strcpy(Data,str2);使用循环进行删除操作:其核心算法为:for(j=0;j<=NUM;j++){for(i=0;i<80;i++){if((temp->data[i])==Data[k])k++;elseif(Data[k]!=' '){i=i-k;k=0;}if(Data[k]
6、==' '){num=i;break;}}if(num<80)break;}首先是使用循环查找到需要删除字符或者字符串的字符数以及字符或者字符串的位置,以便于删除;for(;j<=NUM;j++){for(;i<80;i++){if(i+1data[80-k+num]=temp->data[i+1];}//删除的字符串不在最后一行,将下一行的字符(由temp指向)前移到前行elsetemp->data[i-k+1]=temp->data[i+1];}//当要删除的字符串在最后一行只要将最后一行的字符前移term=temp;temp=temp-
7、>next;j=0;}//在使用循环,从查找到的字符或者字符串开始进行删除,在一行删除完毕之后,转至下一行进行删除。本程序所定义的函数:1、HeadWord()标题函数,即一个输出标题,永远出现在程序的最顶端。2、save()文件存储函数3、load()文件读取函数4、CreatWord()文本输入函数5、PrintWord()当前文本内容输出函数6、SearchWord()文章内容查找函数7、DelWord()文章内容删除函数8、InsertWord()文章内容插入函数9、Replace()文章内容替换函数10、Bmenu()第二子菜单函数11、menu()主菜
8、单函数12
此文档下载收益归作者所有