2022年数据结构课程设计——简单行编辑程序 .pdf
《2022年数据结构课程设计——简单行编辑程序 .pdf》由会员分享,可在线阅读,更多相关《2022年数据结构课程设计——简单行编辑程序 .pdf(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、电子信息工程学院课程设计报告设计名称:数据结构课程设计简单行编辑程序姓名:学号:专业班级:电子信息工程学院系 (院) :设计时间:设计地点:EDA 实验室指导教师评语:签名:年月日成绩:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 15 页 - - - - - - - - - 数据结构课程设计报告第1 页,共15 页1课程设计目的1、训练学生灵活应用所学数据结构知识,独立完成问题分析,结合数据结构理论知识,编写程序求解指定问题。2. 初步掌握软件开发过程的问题分析、系统
2、设计、程序编码、测试等基本方法和技能;3. 提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4. 训练用系统的观点和软件开发一般规范进行软件开发,巩固、深化学生的理论知识,提高编程水平,并在此过程中培养他们严谨的科学态度和良好的工作作风。2课程设计任务与要求:任务问题描述:文本编辑程序是利用计算机进行文字加工的基本软件工具,实现对文本文件的插入、删除等修改操作。限制这些操作以行为单位进行的编辑程序称为行编辑程序。被编辑的文本文件可能很大,全部读入编辑程序的数据空间(内存) 的做法即不经济,又不总能实现。 一种解决方法是逐段的编辑。任何时刻只把待编辑文件的一段放在内存,称为活区。 试按
3、这种方法实现一个简单的行编辑程序,设文件每行不超过320 个字符,很少超过80 个字符。要求:实现以下 4 条基本的编辑命令:(1) 行插入。格式:i. 将插入活区中第行之后。(2) 行删除。格式:d.例如删除活区中第 行(到第 行) 。例如:例如: “d10”和 d1014” 。(3) 活区切换。格式:n 将活区写入输出文件,并从输入文件中读入下一段,作为新的活区。(4) 活区显示。格式:p 逐页地(每页 20 行)显示活区内容, 在每显示的一页之后请用户决定是否继续显示以后各页(如果存在)。印出的每一行要前置行号和一个空格符,行号固定占4 位,增量为1。各条命令中的行号均须在活区中各行号范
4、围之内,只有插入命令的行号可以等于活区第一行行号减一,表示插入当前的屏幕中第一行之前,否则命令参数非法。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 15 页 - - - - - - - - - 数据结构课程设计报告第2 页,共15 页3课程设计说明书一 需求分析(1) 、被编译的文本文件可能很大,全部读入编辑程序的数据空间(内存)的做法既不经济,也不总能实现。任何时刻只把待编辑文件的一段放在内存,称为活区。(2) 、活区的大小用行数ActiveMaxLen (可设为1
5、00)来描述。 可以以标准行块为单位为各行分配存储,每个标准行块可含81 个行块。(3) 、将输入文件中的内容的ActiveMaxLen x (x 由用户自己定义)行的内容读入活区中。然后分别对活区中的内容进行编辑。(4) 、分别实现各命令的函数,然后对客户的需求实行相应的操作。对命令格式不正确的进行处理。二 概要设计ADT line 基本操作:enter(linenum) 初始条件:有内存。操作结果: linenum +1. delete_text( ) 初始条件: line存在。操作结果:若删除的最后一行,则直接删除。若删除中间一行,则后面的linenum -1。 Load( )初始条件:
6、存在文件file 操作结果:打开文件。 ADT line 三 详细设计1)将文本插在指定行端部enter(int linenum) struct line *info; for(;) info=(struct line *)malloc(sizeof(struct line); if(!info) printf(t! 内存不够! n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 15 页 - - - - - - - - - 数据结构课程设计报告第3 页,共15 页
7、return(NULL); printf(%d:,linenum); gets(info-text); info-num=linenum; if(*info-text) if(find(linenum) patchup(linenum,1); if(*info-text) start=dls_store(info); else break; linenum+; return(linenum); 2)删除一行 void delete_text() struct line *info; char s80; int linenum; printf(tlinenum :); gets(s); line
8、num=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-next-prior=info-prior; else last=info-prior; free(info); patchup(linenum+1,-1); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - -
9、 - - - 名师精心整理 - - - - - - - 第 4 页,共 15 页 - - - - - - - - - 数据结构课程设计报告第4 页,共15 页3)存文件 void save(char *fname) struct line *info; char *p; FILE *fp; if(fp=fopen(fname,w)=NULL) printf(t Cant open the file !n); exit(0); printf(t Saving :n); info=start; while(info) p=info-text; while(*p) putc(*p+,fp); put
10、c(n,fp); info=info-next; fclose(fp); 4)读取文件 void load(char *fname) struct line *info,*temp; char *p; FILE *fp; int size,inct; if(fp=fopen(fname,r+)=NULL) printf(t Cant open the file !n); exit(0); while(start) temp=start; start=start-next; free(temp); printf(nt Reading.n); size=sizeof(struct line); s
11、tart=(struct line*)malloc(size); if(!start) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 15 页 - - - - - - - - - 数据结构课程设计报告第5 页,共15 页 printf(nt内存已经用完 !); return; info=start; p=info-text; inct=1; while(*p=getc(fp)!=EOF) p+; while(*p=getc(fp)!=n) p+; *p=0; info-
12、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); 四 设计与调试分析这个程序的源程序是我在图书馆资料上找的,当时不能运行,main 的界面也不是现在这样。源程序里面也没有存文件和读取文件的功能,我先对源程序进行调试
13、分析,把里面的错误一一改正,编写出mian 程序。然后在里面添加了存文件和打开文件的功能,使的程序更加完善。本程序在运行时,必须选择“3.Display a line”才能将输入,删除或者打开后的文件显示出来,这就有点浪费时间,使得操作有点复杂。五 用户手册 1 本程序在win-tc下运行。 2在进行输入,删除或者打开文件的操作后,再选择“3.Display a line ”将输入,删除或者想名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 15 页 - - - - - -
14、 - - - 数据结构课程设计报告第6 页,共15 页要打开的文件内容显示出来。3在执行“ 5.Open the file”时,输入想要打开文件的正确路径,回车。如果想要打开的文件不存在,则跳出运行。 4在进行保存文件的操作时,在提示后输入想要保存的正确路径名,再按回车, 文件即被保存。六 测试成果图( 1) :图( 2) :名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 15 页 - - - - - - - - - 数据结构课程设计报告第7 页,共15 页图( 3) :
15、图( 4) :七 附录(源程序清单) #include stdio.h #include stdlib.h #include string.h struct line 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 15 页 - - - - - - - - - 数据结构课程设计报告第8 页,共15 页 char text81; int num; /*行号 */ struct line *next; /*指向下一个输入项目的指针 */ struct line *prior;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年数据结构课程设计简单行编辑程序 2022 数据结构 课程设计 简单 编辑 程序
限制150内