欢迎来到天天文库
浏览记录
ID:57895500
大小:347.00 KB
页数:8页
时间:2020-04-02
《简易文本编辑器.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、数据结构课程设计题目简易文本编辑的探究系(部)电子与信息工程系班级姓名学号指导教师王静2011年01月03日电子与信息工程系《数据结构》课程设计任务书设计题目简易文本编辑器已知技术参数和设计要求要求:1、具有图形菜单界面;2、查找,替换(等长,不等长),插入(插串,文本块的插入)、块移动(行块),删除3、可正确存盘、取盘;正确显示总行数。设计内容与步骤1、结点结构的设计2、算法设计与分析3、程序设计、实现、调试4、课程设计说明书设计工作计划与进度安排1、设计工作4学时2、实现与调试16学时3、课程设计说明书8学时设计考核要求1、考勤30%2、课程设计说明书70%计算机
2、教研室制第5页简易文本编辑的探究张权安康学院计算机科学与技术09级陕西省安康市摘要:简易文本编辑是最常用的文档提取和编辑工具。通过对简易文本的研究,利用C语言实现了从文件中读取数据,并进行的提取和简易编辑的功能。没有脱离C语言下数组长度的有限性。关键字:文件提取、存储;字符串替换、查找;插入;删除;行移动;1引言在操作系统中,外存中的数据、文档或程序,都是以文件的形式保存,甚至对目录和各种设备的操作也都等同于文件的操作。因此对文件的操作就要求首先从文件中读取数据,然后对读取的数据进行操作,最后,当操作完成后再将数据重新写入文件中。在此过程中必须熟练掌握文件的基本操作。
3、首先要调用一个文件,需要有以下的信息:1、文件当前的读写位置,文件存放在哪个磁介质中,含盘符及路径。2、与该文件对应的内存缓冲区的地址。3、缓冲区中未被处理的字符串。4、文件操作方式,是读数据还是写数据。从文件中读取数据,然后以链表的形式放入内存中,对文件数据进行查找替换删除操作。找到要进行操作的字符串的位置,然后再进行一系列的操作。最后,完成对文件数据的操作,重新调用文件指针将数据写入文件操作,完成实验。将数据从文件中读取出来以后,在进行操作。2问题分析一个简易文本编辑器应该具有图形菜单界面,包括查找,替换(等长,不等长),插入(插串,文本块的插入)、块移动(行块)
4、,删除文本信息等功能并可正确存盘、取盘,正确显示总行数。第5页1数据结构与算法分析1.1结构与算法分析为实现数据结构的有序存储,该编辑器应该用顺序表来存储输入的信息。顺序表是数据结构中线性表的一种,它是用一块地址连续的存储空间依次存储线性表的元素。其特点为:在顺序表上逻辑关系相邻的俩个元素在物理位置上也相邻;在顺序表上可以随即存储表中的元素。在编辑器的主界面中如下提示信息:1.11清空以前的文本信息:将用数据内容全部置为0;显示当前文本信息:遍历用数组存入的信息,并输出到显示器上:1.12编辑信息:定义一个结构体,并在结构体中定义一个字符型的一维数组和一个整型变量,这
5、个整型变量用于记录一维数组中存入数据的个数;1.13替换文本信息:首先在数组中查找要被替换的信息,如果找到该信息,提示输入要替换的信息内容,否则提示未找到要被替换的信息:1.14插入文本信息:首先在数组中查找要插入的点,如果找到该插入点,提示输入插入信息,确认插入信息后,提示选择向前插入信息还是向后插入信息,如果未找到插入点,显示未找到要插入的位置;1.15移动文本信息:首先在数组中查找要移动的信息,如果找到该信息,提示是进行列移动还是行移动,否则提示未找到要移动的信息;1.16删除文本信息:首先在数组中查找要删除的信息,如果找到该信息,提示是否确认删除该信息,通过确
6、认来删除信息,如果未找到要删除的信息,提示未找到该信息;2结语本实验通过对文件数据的操作,主要考查了一下几个方面的知识:1、对文件的基本操作,包括数据的读取和重新写入;2、要求掌握对数组的熟练运用,包括数组的,查找,替换,删除,插入等;3、重点要求掌握在函数调用。通过对本实验的学习,熟练掌握了以上的知识,我们才能继续进行以后的程序学习。第5页附件:第5页#include"stdio.h"#include"stdlib.h"#include"string.h"intindex(chars1[],chars2[])//查找{inti=0,j,m,f=0;while(s1[
7、i]!=' '){m=i;j=0;while(s2[j]!=' ')if(s1[m]!=s2[j])break;else{m++;j++;}if(s2[j]==' ')return(i);elsei++;}return(-1);}voidth(chars[],chart[],charr[])//替换{intj,p,m,n,i=1,a=1;while(index(s,t)!=-1){i=index(s,t);p=strlen(s);m=strlen(t);n=strlen(r);if(i<0)break;elseif(m>n){for(j=i+m
此文档下载收益归作者所有