数据结构程设计简单行编辑程序.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构程设计简单行编辑程序

学 号 数据结构课程设计 设计说明书 简单行编辑程序 起止日期: 20年 月 日 至 年 月日 学生姓名 班级 成绩 指导教师(签字) 系 年 月日 课程设计任务书 20—2012学年第学期 系 专业 班级 课程设计名称: 设计题目: 完成期限:自 年 月 日至 年 月 日共 周 设计依据、要求及主要内容(可另加附页): 问题描述 文本编辑程序是利用计算机进行文字加工的基本软件工具,实现对文本文件的插入、删除等修改操作。限制这些操作以行为单位进行的编辑程序称为行编辑程序。 被编辑的文本文件可能很大,全部读入编辑程序的数据空间(内存)的做法既不经济,也不总能实现。一种解决方法是逐段地编辑。任何时刻只把待编辑文件的一段放在内存,称为活区。试按照这种方法实现一个简单的行编辑程序。设文件每行不超过320个字符,很少超过80字符。 基本要求 实现以下4条基本编辑命令:  (1) 行插入。格式:i行号回车文本回车   将文本插入活区中第行号行之后  (2)行删除。格式:d行号1[□行号2]回车   删除活区中第行号1行(到第行号2行)。两种格式的例子是:“d10↙”和“d10□14↙”  (3)活区切换。格式:n回车   将活区写入输出文件,并从输入文件中读入下一段,作为新的活区。  (4)活区显示。格式:p回车 逐页地(每页20行)显示活区内容,每显示一页之后请用户决定是否继续显示以后各页(如果存在)。印出的每一行要前置以行号和一个空格符,行号固定占4位,增量为1。 各条命令中的行号均须在活区中各行行号范围之内,只有插入命令的行号可以等于活区第一行行号减1,表示插入当前屏幕中第一行之前,否则命令参数非法。 测试数据 由学生依据软件工程的测试技术自己确定。注意测试边界数据,如首行、尾行。 实现提示 (1) 设活区的大小用行数activemaxlen(可设为100)来描述。考虑到文本文件行长通常为正态分布,且峰值在60到70之间,用320×activemaxlen大小的字符数组实现存储将造成大量浪费。可以以标准行块为单位为各行分配存储,每个标准行块含81个字符。这些行块可以组成一个数组,也可以利用动态链表连接起来。一行文字可能占多个行块。行尾可用一个特殊的ASCII字符(如(012)8)标识。此外,还应记住活区起始行号。行插入将引起随后各行行号的顺序下推。 (2) 初始化过程包括:请用户提供输入文件名(空串表示无输入文件)和输出文件名,两者不能相同。然后尽可能多地从输入文件中读入各行,但不超过activemaxlen-x。x的值可以自定 (3) 在执行行插入命令的过程中,每接收到一行时到要检查活区大小是否已达activemaxlen。如果是,则为了在插入这一行之后仍保持活区大小不超过activemaxlen,应将插入点之前的活区部分中第一行输出到输出文件中;若插入点为第一行之前,则只得将新插入的这一行输出。 (4) 若输入文件尚未读完,活区切换命令可将原活区中最后几行留在活区顶部,以保持阅读连续性;否则,它意味着结束编辑或开始编辑另一个文件。 (5) 可令前三条命令执行后自动调用活区显示。 选作内容 (1) 对于命令格式非法等一切错误作严格检查和适当处理。 (2) 加入更复杂的编辑操作,如对某行进行串替换;在活区内进行模式匹配等,格式可以为S行号@串1@串2回车和m串回车。 程序流程图 否 是 四、详细设计 struct Row 行的结构体,包含行的内容,行的编号; class Active 活区的类,包含活区内行的总数量、行的结构体; void putIn ()将文件从文件读入内存; putOut() 将数据输出到显示器 del() 对行的删除操作 insert() 插入操作 chang() 行与行交换 五、调试与测试 测试删除 测试第一行:输入:d1 正确 测试中间的:输入:d10 正确 测试最后一行 输入: d40 正确 测试插入 测试第一行:输入:i1 正确 测试中间的:输入:i10 正确 测试最后一行 输入: i40 正确 测试交换: 输入:c2 7 正确 测试进入下一页: 输入:p 正确 测试进入下一个活区; 输入:n 正

文档评论(0)

3471161553 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档