数据结构课程设计报告—文本编辑器(共27页)

上传人:n85ho7****4h85bh 文档编号:46403735 上传时间:2021-12-13 格式:DOC 页数:27 大小:937.50KB
收藏 版权申诉 举报 下载
数据结构课程设计报告—文本编辑器(共27页)_第1页
第1页 / 共27页
数据结构课程设计报告—文本编辑器(共27页)_第2页
第2页 / 共27页
数据结构课程设计报告—文本编辑器(共27页)_第3页
第3页 / 共27页
资源描述:

《数据结构课程设计报告—文本编辑器(共27页)》由会员分享,可在线阅读,更多相关《数据结构课程设计报告—文本编辑器(共27页)(27页珍藏版)》请在装配图网上搜索。

1、精选优质文档-倾情为你奉上学号2014-2015学年 第一学期数据结构课程设计报告题目:基于顺序结构的文本编辑器的设计专业:计算机科学与技术班级:姓名:学号:指导教师:成绩:目录1课程设计内容.11.1 设计内容.11.2 设计任务.11.3 具体要求.12 概要设计.12.1 系统的功能简介.12.2 各个模块之间的主要关系.23 设计过程及代码分析.24 设计结果与分析.155 源程序.166 总结.247 致谢.248 参考文献.25专心-专注-专业1 课程设计内容 1.1 设计内容 文本编辑器主要根据课程设计要求进行设计的,本次课程设计的内容及要求是设计一个文本编辑器,能实现文本内容输

2、入、显示、统计、处理、保存和退出文本编辑器等基本功能,主界面具有图形菜单界面、输入文本、打开文件、显示当前文本内容、进入文本内容统计菜单、进入文本内容处理菜单、保存、退出文本编辑器。 其中文本内容统计菜单包含大小写字母、数字、标点符号、空格、所有字符的统计;文本内容处理菜单包含查找、删除文章中的字符或者字符串,向文章中插入字符或者字符串,从文章中复制字符或者字符串,修改行内容,替换字符或者字符串。 1.2 设计任务 主要利用C语言的文件操作能力设计一个简单的文本编辑器,对于文本编辑器来说,数据结构相对简单,使用一个有较大长度的顺序表即可,在程序中可采用一维数组来实现。使用数组表示的顺序表来存储

3、文本具有简洁、访问方便、输出方便等特点。 1.3 具体要求 明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识; 提高学生用数据结构进行程序设计的能力,重点提高用C语言进行文件操作和绘图应用的编程技术水平;初步了解软件开发的一般方法和步骤; 提高撰写技术文档的能力。2 概要设计 2.1 系统的功能简介 该系统的主要功能是实现文本内容输入、显示、统计、处理、保存。首先,输入文本内容并保存;选择打开文件,打开刚才保存的文件;选择显示当前文章内容,可以预览文件内容;进入文章内容统计菜单,可以对文章中大写字母、小写字母、数字、标点符号、空格、所有字数的统计;进入文章内容处

4、理菜单,查找、删除文章中的字符或者字符串,向文章中插入字符或者字符串,从文章中复制字符或者字符串,修改行内容,替换字符或者字符串。 2.2各个模块之间的主要关系 该程序的功能主要是文本编辑,定义的操作方法是整个程序的核心,各个模块之间的关系是相互联系的。首先,需操作者输入文本内容,打开刚才编辑的文本文件,可以先预览文件内容,然后进入文章内容统计菜单,可以对文章中大写字母、小写字母、数字、标点符号、空格、所有字数的统计;进入文章内容处理菜单,查找、删除文章中的字符或者字符串,向文章中插入字符或者字符串,从文章中复制字符或者字符串,修改行内容,替换字符或者字符串。 只有在上步做出选择后,后面的程序

5、才会接着执行,这便表明它们之间存在着紧密的联系,缺少任何一个模块都将导致程序无法继续执行。要求各个模块之间上下相连,具有紧密相扣的关系。3 设计过程及代码分析 (1)主函数流程图及运行界面 主函数流程图(见图3(1)-A)main( )定义变量:Status s=1; int i;for(i=0;i0) StrAssign(Tn,str); n+; if(nMAX_LEN) printf(文件太大n); return; 图3(3)-Avoid List()定义变量:int i; for(i=0;in-1;i+) printf(%d: ,i+1); StrPrint(Ti+1); getchar

6、(); 图3(3)-B 运行界面(见图3(3)-C、D)图3(3)-C图3(3)-D(4) 进入文章内容统计菜单流程图及运行界面 进入文章内容统计菜单流程图(见图3(4)-A)void CountWord()定义变量:int WORD=0,word=0,space=0,num=0,punct=0,sum=0; int i,j; char ch; for(i=0;in;i+) for(j=0;j=A)&(ch=a)&(ch=0)&(ch=9)num+;else if(ch= )space+;图3(4)-A运行界面(见图3(4)-BH)主界面:图3(4)-B统计文章中大写字母的个数:图3(4)-C

7、统计文章中小写字母的个数:图3(4)-D统计文章中数字的个数:图3(4)-E统计文章中标点符号的个数:图3(4)-F统计文章中空格的个数:图3(4)-G统计文章中所有字数:图3(4)-H(5)进入文章内容处理菜单流程图及运行界面 进入文章内容处理菜单流程图(见图3(5)-A)void Dispose()定义变量:int t=0;switch(t) case 1:Search();break;case 2:Delete();break;case 3:Insert();break;case 4:Copy();break;case 5:Modify();break;case 6:Replace();

8、break;case 7:Hello();break;图3(5)-A 运行界面(见图3(5)-BJ)主界面:图3(5)-B查找文本中的字符或字符串:图3(5)-C删除文本中的字符或字符串:图3(5)-D向文本中插入字符或字符串:图3(5)-E从文本中复制字符或字符串:图3(5)-F修改行内容:图3(5)-G替换字符或字符串:图3(5)-H图3(5)-I替换后的文本内容:图3(5)-J4 设计结果与分析 通过本次课程设计,实现了简单的文本编辑器,可以对文本内容输入、显示、统计、处理、保存等基本操作。当把程序写好并进行调试时,并不是一帆风顺的,总会遇到很多在调试时遇到的错误。 1.在程序中,变量的

9、类型有多种,如int型、char型、指针和指针数组,前后定义变量要统一。 2.对背景色和前景色设置的时候,当你输入的颜色在内存中不存在时,运行程序过后,系统会告诉你相应的颜色符号常数及数值。在程序中我选择“system(color 0F);”,背景色为黑色,前景色亮白色。 3.如果程序在运行的过程中,对于一个循环语句,如果你返回的值始终是真的,那么程序将进如死循环。 4.对应该有花括弧的复合语句,忘记加花括弧,将会导致程序报错。 5.所调用的函数在调用语句之后才定义,而又在调用前未加说明。5 源程序 text editing.cpp#include edit.h #include text.h

10、void main() Status s=1;system(color 0F);int i;for(i=0;i0) StrAssign(Tn,str);n+;if(nMAX_LEN) printf(文件太大n);return;fclose(fp);elseprintf(新文件n);void List() / 显示文件内容 system(cls); int i; for(i=0;in-1;i+) printf(%d: ,i+1);StrPrint(Ti+1);getchar();void CountWord() /文章内容统计 system(cls); int WORD=0,word=0,spa

11、ce=0,num=0,punct=0,sum=0; int i,j; char ch; for(i=0;in;i+) for(j=0;j=A)&(ch=a)&(ch=0)&(chMAX_LEN) printf(插入行太多n);return;if(n=l-1&l0) for(i=n-1;i=l-1;i-)Ti+m=Ti;n+=m;printf(请顺序输入待插入内容:n);for(i=l-1;i=l+m-1&l0) for(i=l-1+m;in;i+)Ti-m=Ti;for(i=n-m;iMAX_LEN) printf(拷贝行太多n);return;if(n=k-1&n=l-1+m&(k=l+m|

12、k=k-1;i-)Ti+m=Ti;n+=m;if(k=l)l+=m;for(i=l-1;i0&i=n) / 行号合法 printf(%d: ,i);StrPrint(Ti-1);printf(请输入新内容: );gets(str);StrAssign(Ti-1,str);elseprintf(行号超出范围n); void Search() / 查找字符串 system(cls); int i,k,f=1; / f为继续查找标志 char b; HString s; printf(请输入待查找的字符串: ); scanf(%s%*c,str); InitString(s); StrAssign(

13、s,str); for(i=0;in&f;i+) / 逐行查找 k=1; / 由每行第1个字符起查找while(k)k=Index(Ti,s,k); / 由本行的第k个字符开始查找if(k) / 找到printf(第%d行: ,i+1);StrPrint(Ti);printf(第%d个字符处找到。继续查找吗(Y/N)? ,k);b=getchar();getchar();if(b!=Y&b!=y) / 中断查找 f=0;break;elsek+;if(f)printf(没找到n); void Replace() / 替换字符串 system(cls); int i,k,f=1; / f为继续替

14、换标志 char b; HString s,t; printf(请输入待替换的字符串: ); scanf(%s%*c,str); InitString(s); StrAssign(s,str); printf(替换为: ); scanf(%s%*c,str); InitString(t); StrAssign(t,str); for(i=0;in&f;i+) / 逐行查找、替换 k=1; / 由每行第1个字符起查找while(k) k=Index(Ti,s,k); / 由本行的第k个字符开始查找if(k) / 找到 printf(第%d行: ,i+1);StrPrint(Ti);printf(

15、第%d个字符处找到。是否替换(Y/N)? ,k);b=getchar();getchar();if(b=Y|b=y)StrDelete(Ti,k,StrLength(s);StrInsert(Ti,k,t);printf(继续替换吗(Y/N)?);b=getchar();getchar();if(b!=Y&b!=y) / 中断查找、替换 f=0;break;elsek+=StrLength(t);if(f)printf(没找到n);6 总结 在当今应用市场下,应用开发这个行业前景非常可观。随着科技发展,用户对应用的界面要求更加精致和细腻。这就要求应用要有足够的吸引,界面美观,操作简单。 在本课

16、程设计的设计过程中,我刚开始感觉到有点困难。要通过上学期数据结构的学习,将所学知识运用起来,起初对知识有点遗忘,但后来去看看数据结构书后,对相关知识点,概念和算法有了更深入的理解。 在调试程序的过程中,我体会到了作为一名编程者的艰辛。编程者需要谨慎、认真的态度和作风,对每个细微的细节都必须十分注意,不能马虎大意。 在开始编写程序的时候,我看到别人的程序功能非常的详细,而且界面非常美观,总是希望自己的程序也非常的完善,但是,发现编一个好的程序不是一蹴而就的事情,需要经过长期的编程经验积累。 在反反复复的调试过程中,我终于作出一个简单的文本编辑器,虽然这个程序的功能非常简单,而且在实际运用中还有些

17、不足。由于我现在知识浅薄,经验不足和阅历尚浅,对这个文本编辑器设计得还有很多不足之处,比如界面没有那么美观,功能较单一等。我相信在以后的学习中,随着知识的增长和经验的积累,我可以做出更好的成果。7 致谢 在这次数据结构课程设计中,我的老师和同学给了我及大的帮助。特别是数据结构的王源老师,还有负责审核课程设计的陈茅老师。在此,我对他们表示感谢!感谢他们在我面对困难时给了我帮助和支持。也感谢那些给我帮助的所有同学!8 参考文献 1严蔚敏,吴伟民编著 .数据结构(C语言版) .北京清华大学出版社.1997 2徐孝凯编.数据结构实用教程(C/C+描述).北京清华大学出版社.1999 3严蔚敏,吴伟民,米宁著.数据结构题集.北京清华大学出版社.1999 4编.数据结构课程设计.北京清华大学出版社.2010

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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