- 10
- 0
- 约5.42千字
- 约 13页
- 2018-06-15 发布于福建
- 举报
数据结构程设计简单行编辑程序
学 号
数据结构课程设计
设计说明书
简单行编辑程序
起止日期: 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 正
您可能关注的文档
- 房地产估之我见.doc
- 房地产业“营改”新规分析.docx
- 房地产估价实习报告理工帝湖房地产价值评估.doc
- 房务部备手册.doc
- 房地产公总工办工作手册.doc
- 房地产发类贷款.docx
- 户内外电气设备通信及配网自动化配电房土建工程作指导书.doc
- 房地产公司工程变更及证管理制度.doc
- 房地产公司财务管理制度流程图.doc
- 房地产售案场规范.doc
- (统编版2026新教材)三年级语文下册 第一单元复习课件.pptx
- 2026六年级综合实践《我是小小消防员》课件.pptx
- (新交际版2026新教材)英语一下Unit 1课件(共2课时).pptx
- (新交际版2026新教材)英语二下Unit 1课件(共2课时).pptx
- 美术一下1.3大地的肌理 课件(人教版2026新教材).pptx
- (统编版2026新教材)道法二年级下册新教材解读课件.pptx
- 2026届中考道法时政热词《第六个中国人民警察节》素材+热点解读+押题预测(含解析).docx
- 2026中考数学 三角形常考模型(含解析).docx
- 美术一下1.4自然的馈赠 课件(人教版2026新教材).pptx
- 2026六年级综合实践《我们的传统节日》课件.pptx
最近下载
- 新改版教科版四年级上册科学全册精编知识点(背诵用).pdf
- 武汉大学 2013 – 2014 学年第一学期《线性代数 B》(工科 54 学时) 期末试题.docx VIP
- 2024年邮政营业员高级技师资格证考试题库及答案2.docx VIP
- 温泉度假酒店员工培训手册.pdf VIP
- 铀矿石浓缩物分析方法第1部分硫酸亚铁还原重铬酸钾滴定法测定铀.pdf VIP
- 2024年邮政营业员高级技师资格证考试题库及答案6.docx VIP
- 自体输血管理制度与技术规范.docx
- 武汉大学 2012 – 2013 学年第二学期《线性代数 B》(工科 54 学时) 期末试题.docx VIP
- 皖2014J301民用建筑常用饰面.pdf VIP
- 2025年全国甲卷英语高考试题及答案.docx VIP
原创力文档

文档评论(0)