ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:35.43KB ,
资源ID:11572207      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11572207.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(简单的行编辑器课程设计.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

简单的行编辑器课程设计.docx

1、简单的行编辑器课程设计程序设计课程设计报告 二00八 年 七 月 一 号 1设计目的 2设计题目和要求 3总体设计 4详细设计 5源程序清单和执行结果6总结 1 设计目的设计一个简单的行编辑器,了解行编辑器的应用2 设计题目和要求 题目:简单的行编辑器要求:1)设计一个简单的行编辑器,每行以回车结束 2)数据以文件形式储存 3)编辑器具有查找 修改 删除数据的功能3总体设计简单的行编辑器删除一行 删除一行 显示一行 显示一行文件存盘 文件存盘装入文件 装入文件 退出4 详细设计1)结构体的应用struct line char text81; int num; /*行号*/struct line

2、 *next; /*指向下一个输入项目的指针 */ struct line *prior; /*指向前一个项目的指针 */ ; struct line *start; /*指向表中第一个项目的指针 */ struct line *last; /*指向表中作后一个项目的指针 */ struct line *find(int),*dls_store(struct line *); 注:在结构体中分别声明项目指针及项目中的指针变量2)函数声明 void patchup(int,int),delete_text(),list(),save(char *),load(char *); menu_sele

3、ct(); enter(int linenum);注:在结构体外分别对输入、删除、显示等函数进行声明 3)主函数和switch语句void main(int argc,char *argv) char s80,choice,fname80; / struct line *info; int linenum=1; start=NULL; last=NULL; if(argc=2) load(argv1);/*装入命令行上的文件 */ do choice=menu_select( ); switch(choice) case 1:printf(t行号:); gets(s); linenum=ato

4、i(s); enter(linenum); break; case 2:delete_text(); break; case 3:list(); break; case 4:printf(t文件名:); gets(fname); save(fname); break; case 5:printf(t文件名:); gets(fname); load(fname); break; case 6:exit(0); while(1); 注:通过主函数分别对相应函数进行调用,利用switch选择语句来执行语句4)菜单函数menu_select() char s80; int c; printf(tt1.

5、输入n); printf(tt2.删除一行n); printf(tt3.显示一行n); printf(tt4.文件存盘n); printf(tt5.装入文件n); printf(tt6.退出n); do printf(nntt请按数字选择:); gets(s); c=atoi(s); while(c6); return(c); 注:定义菜单显示内容,根据菜单要求运用程序 5源程序和执行结果源程序:#include#include stdio.h #include stdlib.h struct line char text81; int num; /*行号*/struct line *next

6、; /*指向下一个输入项目的指针 */ struct line *prior; /*指向前一个项目的指针 */ ; struct line *start; /*指向表中第一个项目的指针 */ struct line *last; /*指向表中作后一个项目的指针 */ struct line *find(int),*dls_store(struct line *); void patchup(int,int),delete_text(),list(),save(char *),load(char *); menu_select(); enter(int linenum); void main(i

7、nt argc,char *argv) char s80,choice,fname80; / struct line *info; int linenum=1; start=NULL; last=NULL; if(argc=2) load(argv1);/*装入命令行上的文件 */ do choice=menu_select( ); switch(choice) case 1:printf(t行号:); gets(s); linenum=atoi(s); enter(linenum); break; case 2:delete_text(); break; case 3:list(); bre

8、ak; case 4:printf(t文件名:); gets(fname); save(fname); break; case 5:printf(t文件名:); gets(fname); load(fname); break; case 6:exit(0); while(1); /* 显示菜单,供用户选择 */ menu_select() char s80; int c; printf(tt1.输入n); printf(tt2.删除一行n); printf(tt3.显示一行n); printf(tt4.文件存盘n); printf(tt5.装入文件n); printf(tt6.退出n); do

9、 printf(nntt请按数字选择:); gets(s); c=atoi(s); while(c6); return(c); /*将文本插在指定行端部 */ enter(int linenum) struct line *info; /char t81; for(;) /* */ info=(struct line *)malloc(sizeof(struct line); if(!info) printf(t! 内存不够!n); return(NULL); printf(%d:,linenum); gets(info-text); info-num=linenum; if(*info-te

10、xt) if(find(linenum) patchup(linenum,1); if(*info-text) start=dls_store(info); else break; linenum+; return(linenum); /*当文本内容插在文件中间时其下面的内容的行号必须增加1,而 */ /*删除时,被删除的文本后面的行号必须减1 */ void patchup(int n,int incr) struct line *i; i=find(n); while(i) i-num=i-num+incr; i=i-next; /*按行号排序后插入 */ struct line *dls

11、_store(struct line *i) struct line *old,*p; if(last=NULL) i-next=NULL; i-prior=NULL; last=i; return(i); p=start; old=NULL; while(p) if(p-num) old=p; p=p-next; else if(p-prior) p-prior-next=i; i-next=p; p-prior=i; return start; i-next=p; i-prior=NULL; p-prior=i; return(i); old-next=i; i-next=NULL; i-

12、prior=old; last=i; return start; /*删除一行 */ void delete_text() struct line *info; char s80; int linenum; printf(t行号:); gets(s); linenum=atoi(s); info=find(linenum); if(info) if(start=info) start=info-next; if(start) start-prior=NULL; else last=NULL; else info-prior-next=info-next; if(info!=last) info

13、-next-prior=info-prior; else last=info-prior; free(info); patchup(linenum+1,-1); /*查找一行文本 */ struct line *find(int linenum) struct line *info; info=start; while(info) if(linenum=info-num) return(info); info=info-next; return(NULL); /*显示文本 */ void list() struct line *info; info=start; while(info) pri

14、ntf(%d:%sn,info-num,info-text); info=info-next; printf(nn); /*存文件 */ void save(char *fname) struct line *info; char *p; FILE *fp; if(fp=fopen(text.txt,w)=NULL) printf(t文件打不开!n); exit(0); printf(t正在存入文件:n); info=start; while(info) p=info-text; while(*p) putc(*p+,fp); /putc(r,fp); putc(n,fp); info=inf

15、o-next; fclose(fp); /*装入文件 */ void load(char *fname) struct line *info,*temp; char *p; FILE *fp; /int t,size,inct; int size,inct; if(fp=fopen(text.txt,r)=NULL) printf(t文件打不开!n); exit(0); while(start) temp=start; start=start-next; free(temp); printf(nt正装入文件 !n); size=sizeof(struct line); start=(struc

16、t line*)malloc(size); if(!start) printf(nt内存已经用完!); return; info=start; p=info-text; inct=1; while(*p=getc(fp)!=EOF) p+; while(*p=getc(fp)!=n) p+; /getc(fp); /*丢掉n */ *p=0; info-num=inct+; info-next=(struct line*)malloc(size); if(!info-next) printf(nt内存已经用完!); return; info-prior=temp; temp=info; info=info-next; p=info-text; temp-next=NULL; last=temp; free(info); start-prior=NULL; fclose(fp); 执行结果:6 总结 我们所做的每一道程序设计题基本涵盖了我们一学年的课程知识,而我侧有些力不从心,很多地方生疏不知,大部分程序借鉴他人,这一点我还需改进,不过通过此次课程设计,我对程序设计这门课程又有了新的理解。从这次设计中,我更深刻的感受到了基础知识的重要性,我们应该更重视一下各知识间的连贯应用,和整合运用,单一知识点是无法编程一道好的程序的。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1