本项目为《数据结构》课程设计作品,开发一款功能完备的行编辑器程序。该程序运用链表、堆栈等数据结构实现文本编辑核心功能,如插入、删除和查找操作,并支持命令行界面交互方式。此项目旨在提升编程技巧与算法应用能力。
由于被编辑的文本段落件可能很大,全部读入内存的做法既不经济也不总是可行的。因此采用行编辑的方式,每次将待编辑文件的一部分放入内存中处理,这部分内容称为活区。本行编辑程序假设每行不超过320个字符,并且每次从输入文件中读取80行数据到内存里,而活区内显示的内容仅限于其中的20行。
1. 该程序需要实现以下基本命令及相关功能:
- 行插入:格式为 `i<回车><行号><回车> <文本内容><回车>`。此操作会在编号为 `<行号>` 的那条记录后添加新的文本。
- 行删除:格式为 `d<回车><起始行号>,<结束行号><回车>`,表示从活区中移除指定范围内的所有记录(即第 `<起始行号>` 到 第 `<结束行号>` 之间的内容)。
- 活区切换:通过输入命令 `n<回车> <页数><回车>` 来实现页面间的跳转。由于每次读取80行,而活区内只显示20行的内容,因此可以根据需要调整查看的段落位置。
- 显示当前编辑区域内容:使用 `p<回车>` 命令可以打印出目前所处理的数据块信息,并且每一行前会加上固定的两位数编号和一个空格符作为标识。
- 清屏操作:通过执行命令 `c<回车>` 可以清除屏幕上的显示,方便用户重新进行编辑工作。
- 获取帮助文档:输入 `h<回车>` 将展示程序支持的各项功能说明及使用方法。
- 退出程序:当完成所有必要的修改后,可以通过发送信号或直接执行命令 `e<回车>` 来结束当前的编辑会话并保存更改。