一、需求分析 由于被编辑的文本文件可能很大,全部读入编辑程序的数据空间(内存)的作法既不经济,也不总能实现
而用行编辑把待编辑文件的一段放进内存,称为活区
本行编辑程序是以每行不超过 320 个字符为前提的
每次编辑会读入 80 行,活区每次只显示 20 行
该程序要实现以下基本编辑命令和一些相关的命令: (1) 行插入
将插入活区第行之后
(2) 行删除
删除活区中第行到第行
(3) 活区切换
由于每次从输入文件读入 80 行,而活区每页显示 20 行,而活区切换就是要切换到需编辑的页面上去
(4) 活区显示
显示当前要编辑的活区内容
印出的每一行都有一个前置行号和一个空格符,行号固定为 2 位,增量为 1
(6)获得帮助
二、概要设计 程序结构流程图: 存储结构的定义如下: typedef struct text { char string[80];//存储每一行的元素 struct text *next;//指向后一个节点的指针 int flat;//确定此行是否被删除的标志 初始化 输入命令 i 输入命令 d 输入命令 n 输入命令 p 输入命令 c 输入命令 h 输入命令 e 插入一行内容 删除一行内容 切换活区 显示活区 清屏 显示帮助 信息 退出 }text,*textp; 功能函数: Status Createlist(textp &head); 功能:建立一个80 个节点的链表,是整个活区的大小 int del(textp head); 功能:删除显示的活区的任意一行
int display(textp &head); 功能:按照每页20 行的规格显示活区的内容
void freemem(textp &head); 功能:销