简单行编辑程序实验报告

简单行编辑程序实验报告

ID:39505380

大小:142.14 KB

页数:17页

时间:2019-07-04

简单行编辑程序实验报告_第1页
简单行编辑程序实验报告_第2页
简单行编辑程序实验报告_第3页
简单行编辑程序实验报告_第4页
简单行编辑程序实验报告_第5页
资源描述:

《简单行编辑程序实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、简单行编辑程序课程设计一.设计要求1.问题描述文本编辑程序是利用计算机进行文字加工的基本软件工具,实现对文本文件的插入、删除等修改操作。限制这些操作以行为单位进行的编辑程序称为行编辑程序。被编辑的文本文件可能很大,全部读入编辑程序的数据空间(内存)的做法即不经济,又不总能实现。一种解决方法是逐段的编辑。任何时刻只把待编辑文件的一段放在内存,称为活区。试按这种方法实现一个简单的行编辑程序,设文件每行不超过320个字符,很少超过80个字符。2.需求分析该程序要实现以下4条基本的编辑命令:(1)行插入。格式:i<行号><回车><文本>.

2、<回车>将<文本>插入活区中第<行号>行之后。(2)行删除。格式:d<行号1>[<空格><行号2>.]<回车>例如删除活区中第<行号1>行(到第<行号2>行)。(3)活区切换。格式:n<回车>将活区写入输出文件,并从输入文件中读入下一段,作为新的活区。(4)活区显示。格式:p<回车>;逐页地(每页20行)显示活区内容,在每显示的一页之后请用户决定是否继续显示以后各页(如果存在)。印出的每一行要前置行号和一个空格符,行号固定占4位,增量为1。各条命令中的行号均须在活区中各行号范围之内,只有插入命令的行号可以等于活区第一行行号减一,表

3、示插入当前的屏幕中第一行之前,否则命令参数非法。二.概要设计1.主界面设计为了实现简单行编辑程序,设计一个含有多个菜单项的主控菜单子程序以链接系统的各项子功能。主控菜单运行如下:1.存储结构设计该系统采用串的顺序存储结构。2.系统功能设计(1)行插入(2)行删除(3)文本显示(4)保存文件(5)读取文件(6)退出系统二.模块设计1.模块设计本程序包含主程序模块、菜单选择模块和串操作模块。调用关系如下菜单选择模块串操作模块主程序模块2.系统子程序及功能设计(1)enter(intlinenum)//行插入(2)voiddelete_

4、text()//行删除(3)voidlist()//文本显示(4)voidsave(char*fname)//保存文件(5)voidload(char*fname)//读取文件三.详细设计1.数据结构设计ADTline{基本操作:enter(linenum)初始条件:有内存。操作结果:linenum+1.delete_text()初始条件:line存在。操作结果:若删除的最后一行,则直接删除。若删除中间一行,则后面的linenum-1。Load()初始条件:存在文件file操作结果:打开文件。}ADTline2.系统主要子程序详细

5、设计(1)主程序模块设计voidmain(intargc,char*argv[]){chars[80],choice,fname[80];intlinenum=1;start=NULL;last=NULL;if(argc==2)load(argv[1]);do{choice=menu_select();switch(choice){case1:printf("行号:");gets(s);linenum=atoi(s);enter(linenum);break;case2:delete_text();break;case3:list

6、();break;case4:printf("t文件名:");gets(fname);save(fname);break;case5:printf("t文件名:");gets(fname);load(fname);break;case6:exit(0);}}while(1);}menu_select(){chars[80];intc;printf("t********************欢迎使用简单行编辑程序********************");printf("tttt1.行插入");printf

7、("tttt2.行删除");printf("tttt3.文本显示");printf("tttt4.保存文件");printf("tttt5.读取文件");printf("tttt6.退出");printf("t**************************************************************");do{printf("tt请选择:");gets(s);c=atoi(s);}while(c<0

8、

9、c>6);retu

10、rn(c);}(1)主要工作函数/*将文本插在指定行端部*/enter(intlinenum){structline*info;for(;;){info=(structline*)malloc(sizeof(structline));if(!inf

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

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

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