数据结构课程设计:行编辑程序.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程设计:行编辑程序

一、需求分析 由于被编辑的文本文件可能很大,全部读入编辑程序的数据空间(内存)的作法既不经济,也不总能实现。而用行编辑把待编辑文件的一段放进内存,称为活区。本行编辑程序是以每行不超过320个字符为前提的。每次编辑会读入80行,活区每次只显示20行。 该程序要实现以下基本编辑命令和一些相关的命令: 行插入。格式:i回车行号回车文本回车。 将文本插入活区第行号行之后。 行删除。格式:d回车行号1,行号2回车。 删除活区中第行号1行到第行号2行。 活区切换。格式:n回车页数回车。 由于每次从输入文件读入80行,而活区每页显示20行,而活区切换就是要切换到需编辑的页面上去。 活区显示。格式p回车。 显示当前要编辑的活区内容。印出的每一行都有一个前置行号和一个空格符,行号固定为2位,增量为1。 (5)清屏。 格式:c回车。 (6)获得帮助。格式:h回车。 (7)退出。 格式:e回车。 二、概要设计 程序结构流程图: 初始化 初始化 输入命令i 输入命令d 输入命令n 输入命令p 输入命令c 输入命令h 输入命令e 插入一行内容 删除一行内容 切换活区 显示活区 清屏 显示帮助 信息 退出 存储结构的定义如下: typedef struct text { char string[80];//存储每一行的元素 struct text *next;//指向后一个节点的指针 int flat;//确定此行是否被删除的标志 }text,*textp; 功能函数: Status Createlist(textp head); 功能:建立一个80个节点的链表,是整个活区的大小 int del(textp head); 功能:删除显示的活区的任意一行。 int display(textp head); 功能:按照每页20行的规格显示活区的内容。 void freemem(textp head); 功能:销毁链表,释放内存。 int insert(textp head); 功能:在显示的活区插入一行内容。 Status SaveFile(textp head,FILE *out); 功能:将活区的内容保存到输出文件。 Status LoadFile(textp head,FILE *fp); 功能:从输入文件读取内容到活区。 void HELP(); 功能:提供命令的格式。 主函数: void main() { 初始化; 输入命令; Switch(c) { case ‘e’: 退出并保存编辑的内容 case ‘p’: 显示活区 case ‘n’: 活区切换 case ‘d’: 删除一行 case ‘i’: 插入一行 case ‘c’: 清屏 case ‘h’: 获得帮助 } } 三、详细设计 #includestring.h #includestdio.h #includestdlib.h #includeio.h #includeprocess.h #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define INFEASIBLE -1 #define OVERFLOW -2 typedef int Status; typedef struct text { char string[80];//存储每一行的元素 struct text *next;//指向后一个节点的指针 int flat;//确定此行是否被删除的标志 }text,*textp; //函数声明 Status Createlist(textp head); int del(textp head); int display(textp head); void freemem(textp head); int insert(textp head); Status SaveFile(textp head,FILE *out); Status LoadFile(textp head,FILE *fp); void HELP(); void main()//主函数,用来接受命令 //编辑函数,用来接受处理编辑命令 {textp head,q,p,p1; int page=0; FILE *fp,*out; char c,inname[30],outname[30]; printf(################################欢迎使用行编辑程序#############################\n); HELP(); printf(按任意键开始。。。。。);

您可能关注的文档

文档评论(0)

weizhent2017 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档