欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年2022年简单行编辑程序 .pdf

    • 资源ID:27240218       资源大小:864.29KB        全文页数:17页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年2022年简单行编辑程序 .pdf

    数据结构程序设计实验报告简单行编辑程序院 系 : 计 算 机科 学 与 技术 学 院专 业: 软 件工 程 1班姓 名 :丁 珊 珊学号 : E01214269日期 : 2014/9/19名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 17 页 - - - - - - - - - 一 、 需 求 分 析1、问 题 描 述: 文本编辑程序是利用计算机进行文字加工的基本软件工具,实现对文本文件的插入、删除等修改操作。限制这些操作以行为单位进行的编辑程序称为行编辑程序。被编辑的文本文件可能很大,全部读入编辑程序的数据空间 (内存)的做法即不经济,又不总能实现。一种解决方法是逐段的编辑。任何时刻只把待编辑文件的一段放在内存,称为活区。试按这种方法实现一个简单的行编辑程序, 设文件每行不超过320个字符,很少超过 80 个字符。2、此程 序 具备 以 下 功能 :(1) 行插入。 格式:i. 将插入活区中第 行之后。(2) 行删除。 格式:d;删除活区中第 行(到第 行) 。(3) 活区切换。 格式: n 将活区写入输出文件, 并从输入文件中读入下一段,作为新的活区。(4) 活区显示。 格式: p 逐页地(每页20 行)显示活区内容,在每显示的一页之后请用户决定是否继续显示以后各页(如果存在)。印出的每一行要前置行号和一个空格符,行号固定占4 位,增量为 1。各条命令中的行号均须在活区中各行号范围之内,只有插入命令名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 17 页 - - - - - - - - - 的行号可以等于活区第一行行号减一,表示插入当前的屏幕中第一行之前,否则命令参数非法。二、概要设计1、主页面设计2、存储结构设计typedef struct text char stringSIZE;/存储每一行的元素struct text *next;/指向后一个节点的指针int length; text,*textp;3、系统功能设计1)行插入名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 17 页 - - - - - - - - - 2)行删除3)活区切换4)活区显示5)结束4、程序调用关系程序结构流程图:三 、详 细 设 计1 、 数据结构存储定义typedef struct text char stringSIZE;/存储每一行的元素struct text *next;/指向后一个节点的指针int length; text,*textp;2、 行插入int insert(textp &head,FILE *out) int hang,i; textp p,p1; scanf(%d,&hang); p=(textp)malloc(sizeof(text);/为插入行分配空间开始输入命令i 输入命令 d 输入命令n 输入命令p 输入命令e 插入一行文字删除一行内容切换活区显示活区结束程序名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 17 页 - - - - - - - - - fflush(stdin); fgets(p-string,80,stdin); /*输入插入行的内容 */ p1=head-next; if(head-length=ActiveMaxLen) fputs(p1-string,out); else if(hang=1) p-next=head-next; head-next=p; head-length+; else for(i=2;inext; p-next=p1-next; p1-next=p; head-length+; printf( 在第%d 行前插入完成 n,hang); return OK; 3、行删除int del(textp &head) /删除 d 命令对应的函数, 用来删 maxmin 中的行,用结构体中的 flat 表示是否被删除 text *p,*q; int min,max,i; scanf(%d %d,&min,&max); if(head=NULL) printf(nlist null!n); return OK; p=head; for(i=1;inext; for(i=i-1,q=p-next;inext=q-next; free(q); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 17 页 - - - - - - - - - q=p-next; head-length-; printf( 第%d 行到第 %d 行删除完成! n,min,max); return OK; 4、活区切换Status LoadFile(textp head,FILE *fp) /* 从文件读内容到活区 */ textp p; for(p=head;p&(!feof(fp);p=p-next) if(!fgets(p-string,80,fp) break; p-flat=1; return 0; Status SaveFile(textp head,FILE *out) /* 存储活区的函数 */ textp p; for(p=head;p;p=p-next) if(p-flat=1) fputs(p-string,out); /* 输出活区的内容到指定的文件*/ p-flat=0; return OK; 5、活区显示void display(textp head)/显示 P命令对应的函数,用来显示活区的内容 int i; int j=head-length/20; int k=0; textp p=head-next; for(j=0;jlength/20;j+) printf(*page%d*n,j+1); for(i=20*j+1;ilength;p=p-next,i+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 17 页 - - - - - - - - - printf(%2d,i); printf( %s,p-string); if(i%20=0) break; printf( 是否继续显示下一页,是输入1,否输入 0.n); scanf(%d,&k); if(k=0) break; if(j=head-length/20-1) printf( 没有后续页面了 n); break; 四 、测 试 分 析1.开始界面名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 17 页 - - - - - - - - - 2.用户输入一个已经存在的文本文件名称in.txt 并回车,程序将读出内容并存入一个新的文本文件out 中。并输入命令 p,显示。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 17 页 - - - - - - - - - 3.输入命令 i,在文本文件中插入文本。4.输入命令 d, 删除选中文本。并输入命令 p, 显示当前活区。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 17 页 - - - - - - - - - 5.输入命令 n,切换活区。并输入命令平,显示。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 17 页 - - - - - - - - - 6.输入命令 e,结束程序并清除活区。五 、源 程 序 设 计#include #include #include #include #include #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define INFEASIBLE -1 #define OVERFLOW -2 #define ActiveMaxLen 100 #define SIZE 80 #define x 20 typedef struct text char stringSIZE;/存储每一行的元素struct text *next;/指向后一个节点的指针int length; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 17 页 - - - - - - - - - text,*textp; void Createlist(textp &head)/建立一个 80个节点的链表,是整个活区的大小 head=(text *)malloc(sizeof(text); int n=0; head-length=0; textp p,q; while(nnext=p; p-next=NULL; q=p; head-length+; else p-next=q-next; q-next=p; q=p; head-length+; printf( 活区创建完成 n); int del(textp &head)/ 删除 d 命令对应的函数,用来删maxmin 中的行,用结构体中的 flat 表示是否被删除 text *p,*q; int min,max,i; scanf(%d %d,&min,&max); if(head=NULL) printf(nlist null!n); return OK; p=head; for(i=1;inext; for(i=i-1,q=p-next;inext=q-next; free(q); q=p-next; head-length-; printf( 第%d 行到第 %d 行删除完成! n,min,max); return OK; void display(textp head)/显示 P 命令对应的函数,用来显示活区的内容 int i; int j=head-length/20; int k=0; textp p=head-next; for(j=0;jlength/20;j+) printf(*page%d*n,j+1); for(i=20*j+1;ilength;p=p-next,i+) printf(%2d,i); printf( %s,p-string); if(i%20=0) break; printf( 是否继续显示下一页,是输入1,否输入 0.n); scanf(%d,&k); if(k=0) break; if(j=head-length/20-1) printf( 没有后续页面了 n); break; void freemem(textp &head)/释放链表所占的内存名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 17 页 - - - - - - - - - text *p=head-next; while(p) head-next=p-next; free(p); p=head-next; head-length-; printf( 活区清除 n); int insert(textp &head,FILE *out) int hang,i; textp p,p1; scanf(%d,&hang); p=(textp)malloc(sizeof(text);/为插入行分配空间fflush(stdin); fgets(p-string,80,stdin); /*输入插入行的内容 */ p1=head-next; if(head-length=ActiveMaxLen) fputs(p1-string,out); else if(hang=1) p-next=head-next; head-next=p; head-length+; else for(i=2;inext; p-next=p1-next; p1-next=p; head-length+; printf( 在第%d 行前插入完成 n,hang); return OK; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 17 页 - - - - - - - - - void LoadFile(textp &head,FILE *fp,int e) /* 从文件读内容到活区 */ textp p=head-next; for(int j=0;jstring,81,fp); for(int i=0;ilength&(!feof(fp);i+) fgets(p-string,81,fp); p=p-next; void SaveFile(textp head,FILE *out,FILE *in,int &e) /*存储活区的函数 */ textp p=head-next; e=e+80; for(int i=0;ilength;p=p-next,i+) fputs(p-string,out); void HELP()/ 帮助函数,显示一些命令的格式 printf(nt *n); printf(t * 行插入格式:i *n); printf(t * 行删除格式:d *n); printf(t * 活区切换格式:n *n); printf(t * 活区显示格式:p *n); printf(t * 退出格式:e *n); printf(t *n); void main()/主函数,用来接受命令/编辑函数,用来接受处理编辑命令 int e=0; textp head; FILE *in,*out; char c,inname30,outname30; printf(#欢 迎 使 用 行 编 辑 程 序#n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 17 页 - - - - - - - - - HELP(); /*打开输入、输出文件 */ printf(Enter the infile name:); scanf(%s,inname); printf(Enter the outfile name:); scanf(%s,outname); if(in=fopen(in.txt,r)=NULL) printf(cant open the file! n); if(out=fopen(outname,w)=NULL) printf(cant iiopen the file!n); exit(0); Createlist(head); LoadFile(head,in,e); do printf(input order:); fflush(stdin); c=getchar(); switch(c) case p: display(head); break; case n: SaveFile(head,out,in,e); LoadFile(head,in,e); printf( 活区切换 .n 完成n); break; case d: del(head); break; case i: /* 插入行 */ insert(head,in); break; casee:printf(结束! n);break; default:printf(nnn!input error!); break; /*命令格式非法提示 */ while(c!=e); freemem(head); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 17 页 - - - - - - - - - 六 、用 户 手 册(1)进入程序的界面,出现命令的帮助信息,按任意键开始程序编辑。(2) 输入 INPUT 文件与 OUTPUT 文件的名字打开相应的文件。(3)输入 P命令显示活区的内容。(4)其它的命令操作如下:行插入格式:i 行删除格式:d 活区切换格式:n (5)最后输入 e命令退出程序。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 17 页 - - - - - - - - -

    注意事项

    本文(2022年2022年简单行编辑程序 .pdf)为本站会员(Che****ry)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开