




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机与信息工程系数据结构课程设计报告学号2014-2015学年 第一学期1308010139数据结构课程设计报告题目:基于顺序结构的文本编辑器的设计专业:计算机科学与技术班级:姓名:学号:指导教师:成绩:目录1课程设计内容.11.1 设计内容.11.2 设计任务.11.3 具体要求.12 概要设计.12.1 系统的功能简介.12.2 各个模块之间的主要关系.23 设计过程及代码分析.24 设计结果与分析.155 源程序.166 总结.247 致谢.248 参考文献.251 课程设计内容 1.1 设计内容 文本编辑器主要根据课程设计要求进行设计的,本次课程设计的内容及要求是设计一个文本编辑器,能实现文本内容输入、显示、统计、处理、保存和退出文本编辑器等基本功能,主界面具有图形菜单界面、输入文本、打开文件、显示当前文本内容、进入文本内容统计菜单、进入文本内容处理菜单、保存、退出文本编辑器。 其中文本内容统计菜单包含大小写字母、数字、标点符号、空格、所有字符的统计;文本内容处理菜单包含查找、删除文章中的字符或者字符串,向文章中插入字符或者字符串,从文章中复制字符或者字符串,修改行内容,替换字符或者字符串。 1.2 设计任务 主要利用C语言的文件操作能力设计一个简单的文本编辑器,对于文本编辑器来说,数据结构相对简单,使用一个有较大长度的顺序表即可,在程序中可采用一维数组来实现。使用数组表示的顺序表来存储文本具有简洁、访问方便、输出方便等特点。 1.3 具体要求 明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识; 提高学生用数据结构进行程序设计的能力,重点提高用C语言进行文件操作和绘图应用的编程技术水平;初步了解软件开发的一般方法和步骤; 提高撰写技术文档的能力。2 概要设计 2.1 系统的功能简介 该系统的主要功能是实现文本内容输入、显示、统计、处理、保存。首先,输入文本内容并保存;选择打开文件,打开刚才保存的文件;选择显示当前文章内容,可以预览文件内容;进入文章内容统计菜单,可以对文章中大写字母、小写字母、数字、标点符号、空格、所有字数的统计;进入文章内容处理菜单,查找、删除文章中的字符或者字符串,向文章中插入字符或者字符串,从文章中复制字符或者字符串,修改行内容,替换字符或者字符串。 2.2各个模块之间的主要关系 该程序的功能主要是文本编辑,定义的操作方法是整个程序的核心,各个模块之间的关系是相互联系的。首先,需操作者输入文本内容,打开刚才编辑的文本文件,可以先预览文件内容,然后进入文章内容统计菜单,可以对文章中大写字母、小写字母、数字、标点符号、空格、所有字数的统计;进入文章内容处理菜单,查找、删除文章中的字符或者字符串,向文章中插入字符或者字符串,从文章中复制字符或者字符串,修改行内容,替换字符或者字符串。 只有在上步做出选择后,后面的程序才会接着执行,这便表明它们之间存在着紧密的联系,缺少任何一个模块都将导致程序无法继续执行。要求各个模块之间上下相连,具有紧密相扣的关系。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(); 图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统计文章中小写字母的个数:图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();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.在程序中,变量的类型有多种,如int型、char型、指针和指针数组,前后定义变量要统一。 2.对背景色和前景色设置的时候,当你输入的颜色在内存中不存在时,运行程序过后,系统会告诉你相应的颜色符号常数及数值。在程序中我选择“system(color 0F);”,背景色为黑色,前景色亮白色。 3.如果程序在运行的过程中,对于一个循环语句,如果你返回的值始终是真的,那么程序将进如死循环。 4.对应该有花括弧的复合语句,忘记加花括弧,将会导致程序报错。 5.所调用的函数在调用语句之后才定义,而又在调用前未加说明。5 源程序 text editing.cpp#include edit.h #include text.hvoid 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,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)&(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|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(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为继续替换标志 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(第%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 总结 在当今应用市场下,应用开发这个行业前景非常可观。随着科技发展,用户对应用的界面要求更加精致和细腻。这就要求应用要有足够的吸引,界面美观,操作简单。 在本课程设计的设计过程中,我刚开始感觉到有点困难。要通过上学期数据结构的学习,将所学知识运用起来,起初对知识有点遗忘,但后来去看看数据结构书后,对相关知识点,概念和算法有了更深入的理解。 在调试程序的过程中,我体会到了作为一名编程者的艰辛。编程者需要谨慎、认真的态度和作风,对每个细微的细节都必须十分注意,不能马虎大意。 在开始编写程序的时候,我看到别人的程序功能非常的详细,而且界面非常美观,总是希望自己的程序也非常的完善,但是,发现编一个好的程序不是一蹴而就的事情,需要经过长期的编程经验积累。 在反反复复的调试过程中,我终于作出一个简单的文本编辑器,虽然这个程序的功能非常简单,而且在实际运用中还有些不足。由于我现在知识浅薄,经验不足和阅历尚浅,对这个文本编辑器设计得还有很多不足之处,比如界面没有那么美观,功能较单一等。我相信在以后的学习中,随着知识的增长和经验的积累,我可以做出更好的成果。7
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 调度培训考试题及答案
- (正式版)DB15∕T 3358-2024 《绵羊腹腔镜活体采卵技术规程》
- 电厂脱销考试题及答案
- 团队成员任务分配与跟踪管理模板
- 企业法律事务处理与合规管理模板
- 工业用材料进销存管理软件开发协议
- 高科技设备采购与技术支持协议
- 我的老师让我感动记叙文题写作(8篇)
- 音乐鉴赏之古典音乐之美:高中艺术教育教案
- 《五年级数学图形变换与代数方程解法》
- GB/T 212-2008煤的工业分析方法
- 冀教版8年级上英语各单元语法课件
- 国内外新能源现状及发展趋势课件
- 大班科学《玩转扑克牌》课件
- 高速公路改扩建桥梁拼宽施工技术及质量控制
- 双台110kV主变短路电流计算书
- DB1750-2019水电站(厂)防雷与接地性能测试技术规范
- 牛常见病防治课件
- 危险物品储存安全隐患排查整治表
- 装饰工程保修单
- IInterlib区域图书馆集群管理系统-用户手册
评论
0/150
提交评论