数据结构课程设计----行编辑程序

数据结构课程设计----行编辑程序

ID:9665186

大小:172.00 KB

页数:11页

时间:2018-05-05

数据结构课程设计----行编辑程序_第1页
数据结构课程设计----行编辑程序_第2页
数据结构课程设计----行编辑程序_第3页
数据结构课程设计----行编辑程序_第4页
数据结构课程设计----行编辑程序_第5页
资源描述:

《数据结构课程设计----行编辑程序》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、一、需求分析由于被编辑的文本文件可能很大,全部读入编辑程序的数据空间(内存)的作法既不经济,也不总能实现。而用行编辑把待编辑文件的一段放进内存,称为活区。本行编辑程序是以每行不超过320个字符为前提的。每次编辑会读入80行,活区每次只显示20行。1.该程序要实现以下基本编辑命令和一些相关的命令:(1)行插入。格式:i<回车><行号><回车><文本><回车>。将<文本>插入活区第<行号>行之后。(2)行删除。格式:d<回车><行号1>,<行号2><回车>。删除活区中第<行号1>行到第<行号2>行。(

2、3)活区切换。格式:n<回车><页数><回车>。由于每次从输入文件读入80行,而活区每页显示20行,而活区切换就是要切换到需编辑的页面上去。(4)活区显示。格式p<回车>。显示当前要编辑的活区内容。印出的每一行都有一个前置行号和一个空格符,行号固定为2位,增量为1。(5)清屏。格式:c<回车>。(6)获得帮助。格式:h<回车>。(7)退出。格式:e<回车>。二、概要设计程序结构流程图:初始化输入命令i输入命令d输入命令n输入命令p输入命令c输入命令h输入命令e插入一行内容删除一行内容切换活区显示活

3、区清屏显示帮助信息退出存储结构的定义如下:typedefstructtext{charstring[80];//存储每一行的元素structtext*next;//指向后一个节点的指针intflat;//确定此行是否被删除的标志}text,*textp;功能函数:StatusCreatelist(textp&head);功能:建立一个80个节点的链表,是整个活区的大小intdel(textphead);功能:删除显示的活区的任意一行。intdisplay(textp&head);功能:按照每页20

4、行的规格显示活区的内容。voidfreemem(textp&head);功能:销毁链表,释放内存。intinsert(textp&head);功能:在显示的活区插入一行内容。StatusSaveFile(textphead,FILE*out);功能:将活区的内容保存到输出文件。StatusLoadFile(textphead,FILE*fp);功能:从输入文件读取内容到活区。voidHELP();功能:提供命令的格式。主函数:voidmain(){初始化;输入命令;Switch(c){case‘e

5、’:退出并保存编辑的内容case‘p’:显示活区case‘n’:活区切换case‘d’:删除一行case‘i’:插入一行case‘c’:清屏case‘h’:获得帮助}}三、详细设计#include#include#include#include#include#defineTRUE1#defineFALSE0#defineOK1#defineERROR0#defineINFEASIBLE-1#defineO

6、VERFLOW-2typedefintStatus;typedefstructtext{charstring[80];//存储每一行的元素structtext*next;//指向后一个节点的指针intflat;//确定此行是否被删除的标志}text,*textp;//函数声明StatusCreatelist(textp&head);intdel(textphead);intdisplay(textp&head);voidfreemem(textp&head);intinsert(textp&hea

7、d);StatusSaveFile(textphead,FILE*out);StatusLoadFile(textphead,FILE*fp);voidHELP();voidmain()//主函数,用来接受命令//编辑函数,用来接受处理编辑命令{textphead,q,p,p1;intpage=0;FILE*fp,*out;charc,inname[30],outname[30];printf("################################欢迎使用行编辑程序##########

8、###################");HELP();printf("按任意键开始。。。。。");c=getchar();/*打开输入、输出文件*/printf("Entertheinfilename:");scanf("%s",inname);printf("Entertheoutfilename:");scanf("%s",outname);if((fp=fopen(inname,"r"))==NULL){printf("can'topenthefile!");ex

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。