简易文本编辑说明书.doc
文本预览下载声明
PAGE
中 北 大 学
课程设计说明书
学 院、系:
专 业:
班 级:
学 生 姓 名:
学 号:
设 计 题 目:
简易文本编辑器
起 迄 日 期:
2016年12月16日~2016年12月29日
指 导 教 师:
日期: 2016年12月29日
1 设计目的
通过用户调查分析及实际需求,开发出一个文本编辑器,可以方便用户对文本进行编辑。系统需要实现如下基本功能:
(1)具有图形菜单界面;
(2)查找,替换(等长,不等长),插入(插串,文本块的插入)、块移动(行块,列块移动),删除;
(3)可正确存盘、取盘;
(4)正确显示总行数。
2 任务概述
要设计一简易的文本编辑器,要求有图形菜单界面,也就是菜单选择的界面,要实现的功能有对文本进行存盘,取盘,在某一个盘中新建一个TXT的文件,在里面输入内容,对这个文件进行取盘,显示出文本内容,并在显示的时候显示行数,具有对文本进行查找、替换、插入、移动、删除等功能。
为实现数据的有序存储,该编辑器应该用顺序表来存储输入的信息。顺序表是数据结构中线性表的一种,它是用一块地址连续的存储空间依次存储线性表的元素。其特点为:在顺序表上逻辑关系相邻的两个元素在物理位置上也相邻;在顺序表上可以随即存取表中的元素。在编辑器的主界面中应有如下提示信息:
= 1 \* GB2 ⑴显示当前文本信息:从文件中读出文本,在某一个盘中创建一个文本文件,所以要读出来,显示到显示器上,并统计出行数。
= 2 \* GB2 ⑵查找文本信息:因为在下面做插入,删除,移动之类的都需用到查找,在查找的时候,也要调用一个字符匹配模式的程序,来判断查找的内容是否符合所要查找的内容。
= 3 \* GB2 ⑶删除文本信息:首先在数组中查找要删除的信息,查找的时候调用匹配模式的子函数,如果找到该信息,提示是否确认删除该信息,通过确认来删除信息,如果未找到要删除的信息,提示未找到该信息;
= 4 \* GB2 ⑷插入文本信息:首先调用字符匹配模式的子函数找到插入点,如果找到该插入点,提示输入插入信息,确认插入信息后,选择是否在这个位置插入,如果是的话执行插入,不是的话再往下查找下一个插入点。
= 5 \* GB2 ⑸ 替换文本信息:首先在数组中查找要被替换的信息,如果找到该信息,提示输入要替换的信息内容,否则提示未找到要被替换的信息;
= 6 \* GB2 ⑹ 保存文本信息:在这里使用文件写入读出的功能,把你修改完的内容保存到你所建立的文本中。
= 7 \* GB2 ⑺ 显示文本内容:读出文件中的所有字符,显示到显示器上。
= 8 \* GB2 ⑻ 退出
3 模块划分
(1)系统主要包含主程序模块和其他操作模块。其调用关系如图(一)所示。
主函数 各操作模块
主函数
各操作模块
图(一)
(2)文本编辑器的运行流程图如图(二)所示。
图(二)
(3)系统子模块及其功能设计:
1.文件的打开:void open(char text[]);
2.文件的保存:void save(char text[]);
3.查找文本:void search(char text[],int l);
4.字符的匹配:int strindex(char text[],char t[],int i2,int l);
5.文本的输出:void output(char text[]);
6.删除文本:void Delete(char p[],int l);
7.插入文本:void insert(char text[],int l);
8.替换文本:void Replace(int status);
4 主要函数说明及其N-S图
(1)对于文本内容的处理,查找部分仍是使用循环对已存储的文章进行匹配,判断需要查找的字符或者字符串是否与文章中某部分内容相同,在程序的执行中,先是进入的主函数,在主函数中调用了菜单函数,进行功能的选择,各个模块分为多个函数来实现。
在程序中,设置了几个全局变量,来记录文本的内容等信息:
char text[MAX]=; //文本编辑域
char name[20]=; //文件保存的位置
int status=0; //显示是否保存过的状态
int ntext; //文本编辑的位置
(2)字符匹配
在这个程序中要特别注意的是字符的匹配,因为查找、插入、替换都需要用到这一步设计。在这里我设计了一个子模块来实现匹配:
int strindex(char text[],char t[],i
显示全部