您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 广告经营 > 数据结构课程设计报告—文本编辑器
计算机与信息工程系《数据结构》课程设计报告学号1308010139《数据结构》课程设计报告题目:基于顺序结构的文本编辑器的设计专业:计算机科学与技术班级:姓名:学号:指导教师:成绩:2014-2015学年第一学期计算机与信息工程系《数据结构》课程设计报告目录1课程设计内容.............................................11.1设计内容...........................................11.2设计任务...........................................11.3具体要求............................................12概要设计................................................12.1系统的功能简介......................................12.2各个模块之间的主要关系..............................23设计过程及代码分析......................................24设计结果与分析.........................................155源程序.................................................166总结...................................................247致谢...................................................248参考文献...............................................25计算机与信息工程系《数据结构》课程设计报告11课程设计内容1.1设计内容《文本编辑器》主要根据课程设计要求进行设计的,本次课程设计的内容及要求是设计一个文本编辑器,能实现文本内容输入、显示、统计、处理、保存和退出文本编辑器等基本功能,主界面具有图形菜单界面、输入文本、打开文件、显示当前文本内容、进入文本内容统计菜单、进入文本内容处理菜单、保存、退出文本编辑器。其中文本内容统计菜单包含大小写字母、数字、标点符号、空格、所有字符的统计;文本内容处理菜单包含查找、删除文章中的字符或者字符串,向文章中插入字符或者字符串,从文章中复制字符或者字符串,修改行内容,替换字符或者字符串。1.2设计任务主要利用C语言的文件操作能力设计一个简单的文本编辑器,对于文本编辑器来说,数据结构相对简单,使用一个有较大长度的顺序表即可,在程序中可采用一维数组来实现。使用数组表示的顺序表来存储文本具有简洁、访问方便、输出方便等特点。1.3具体要求明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识;提高学生用数据结构进行程序设计的能力,重点提高用C语言进行文件操作和绘图应用的编程技术水平;初步了解软件开发的一般方法和步骤;提高撰写技术文档的能力。2概要设计2.1系统的功能简介该系统的主要功能是实现文本内容输入、显示、统计、处理、保存。首先,输入文本内容并保存;选择打开文件,打开刚才保存的文件;选择显示当前文章内容,可以预览文件内容;进入文章内容统计菜单,可以对文章中大写字母、小写字母、数字、标点符号、空格、所有字数的统计;进入文章内容处理菜单,查找、计算机与信息工程系《数据结构》课程设计报告2删除文章中的字符或者字符串,向文章中插入字符或者字符串,从文章中复制字符或者字符串,修改行内容,替换字符或者字符串。2.2各个模块之间的主要关系该程序的功能主要是文本编辑,定义的操作方法是整个程序的核心,各个模块之间的关系是相互联系的。首先,需操作者输入文本内容,打开刚才编辑的文本文件,可以先预览文件内容,然后进入文章内容统计菜单,可以对文章中大写字母、小写字母、数字、标点符号、空格、所有字数的统计;进入文章内容处理菜单,查找、删除文章中的字符或者字符串,向文章中插入字符或者字符串,从文章中复制字符或者字符串,修改行内容,替换字符或者字符串。只有在上步做出选择后,后面的程序才会接着执行,这便表明它们之间存在着紧密的联系,缺少任何一个模块都将导致程序无法继续执行。要求各个模块之间上下相连,具有紧密相扣的关系。3设计过程及代码分析(1)主函数流程图及运行界面①主函数流程图(见图3(1)-A)图3(1)-A②主函数运行界面(见图3(1)-B)main()定义变量:Statuss=1;inti;for(i=0;iMAX_LEN;i++)//初始化串InitString(T[i]);while(s){Hello();}计算机与信息工程系《数据结构》课程设计报告3图3(1)-B(2)输入文本流程图及运行界面①输入文本流程图(见图3(2)-A)图3(2)-A②运行界面(见图3(2)-B)voidEdit()定义变量:charc;获得字符串:c=getchar();{while(c!=EOF){fputc(c,sfp);c=getchar();}fclose(sfp);}计算机与信息工程系《数据结构》课程设计报告4图3(2)-B(3)打开文件与显示当前文章内容流程图及运行界面①打开文件与显示当前文章内容流程图(见图3(3)-A、B)voidOpen()定义变量:intk;while(1){fgets(str,LINE_LEN,fp);if(feof(fp)){break;}k=strlen(str);str[k-1]=0;//将10强制改为0if(k0){StrAssign(T[n],str);n++;if(nMAX_LEN){printf(文件太大\n);return;}}}计算机与信息工程系《数据结构》课程设计报告5图3(3)-A图3(3)-B②运行界面(见图3(3)-C、D)图3(3)-CvoidList()定义变量:inti;{for(i=0;in-1;i++){printf(%d:,i+1);StrPrint(T[i+1]);}getchar();}计算机与信息工程系《数据结构》课程设计报告6图3(3)-D(4)进入文章内容统计菜单流程图及运行界面①进入文章内容统计菜单流程图(见图3(4)-A)voidCountWord()定义变量:intWORD=0,word=0,space=0,num=0,punct=0,sum=0;inti,j;charch;for(i=0;in;i++){for(j=0;jT[i].length;j++){ch=T[i].ch[j];if((ch='A')&&(ch='Z'))WORD++;elseif((ch='a')&&(ch='z'))word++;elseif((ch='0')&&(ch='9'))num++;elseif(ch=='')space++;计算机与信息工程系《数据结构》课程设计报告7图3(4)-A②运行界面(见图3(4)-B~H)主界面:图3(4)-B统计文章中大写字母的个数:图3(4)-C计算机与信息工程系《数据结构》课程设计报告8统计文章中小写字母的个数:图3(4)-D统计文章中数字的个数:图3(4)-E统计文章中标点符号的个数:计算机与信息工程系《数据结构》课程设计报告9图3(4)-F统计文章中空格的个数:图3(4)-G统计文章中所有字数:计算机与信息工程系《数据结构》课程设计报告10图3(4)-H(5)进入文章内容处理菜单流程图及运行界面①进入文章内容处理菜单流程图(见图3(5)-A)图3(5)-AvoidDispose()定义变量:intt=0;switch(t){case1:Search();break;case2:Delete();break;case3:Insert();break;case4:Copy();break;case5:Modify();break;case6:Replace();break;case7:Hello();break;计算机与信息工程系《数据结构》课程设计报告11②运行界面(见图3(5)-B~J)主界面:图3(5)-B查找文本中的字符或字符串:图3(5)-C计算机与信息工程系《数据结构》课程设计报告12删除文本中的字符或字符串:图3(5)-D向文本中插入字符或字符串:图3(5)-E从文本中复制字符或字符串:计算机与信息工程系《数据结构》课程设计报告13图3(5)-F修改行内容:图3(5)-G替换字符或字符串:计算机与信息工程系《数据结构》课程设计报告14图3(5)-H图3(5)-I替换后的文本内容:计算机与信息工程系《数据结构》课程设计报告15图3(5)-J4设计结果与分析通过本次课程设计,实现了简单的文本编辑器,可以对文本内容输入、显示、统计、处理、保存等基本操作。当把程序写好并进行调试时,并不是一帆风顺的,总会遇到很多在调试时遇到的错误。1.在程序中,变量的类型有多种,如int型、char型、指针和指针数组,前后定义变量要统一。2.对背景色和前景色设置的时候,当你输入的颜色在内存中不存在时,运行程序过后,系统会告诉你相应的颜色符号常数及数值。在程序中我选择“system(color0F);”,背景色为黑色,前景色亮白色。3.如果程序在运行的过程中,对于一个循环语句,如果你返回的值始终是真的,那么程序将进如死循环。4.对应该有花括弧的复合语句,忘记加花括弧,将会导致程序报错。5.所调用的函数在调用语句之后才定义,而又在调用前未加说明。计算机与信息工程系《数据结构》课程设计报告165源程序textediting.cpp#includeedit.h#includetext.hvoidmain(){Statuss=1;system(color0F);inti;for(i=0;iMAX_LEN;i++)//初始化串InitString(T[i]);while(s){Hello();}}text.h主要代码voidEdit()//输入文本内容{FILE*sfp;if((sfp=fopen(e://wmc.txt,a+))==NULL){printf(打开文件失败);exit(0);}printf(请输入文本(默认存储地址为E:\\wmc.txt,文本输入完成后,按Enter,以Ctrl+Z结束):);charc;c=getchar();while(c!=EOF){fputc(c,sfp);c=getchar();}fclose(sfp);计算机与信息工程系《数据结构》课程设计报告17}voidOpen()//打开文件(新或旧){system(cls);intk;if(filename[0])//文件已打开printf(已存在打开的文件\n);else{printf(请输入文件名(可包括盘符、路径,不超过%d个字符,如E:\\wmc.txt):,NAME_LEN-1);scanf(%s,filename);fp=fopen(filename,r);if(fp)//已存在此文件{while(1){fgets(str,LINE_LEN,fp);if(feof(fp)){break;}k=strlen(str);str[k-1]=0;//将10强制改为0if(k0){StrAssign(T[n],str);n++;if(nMAX_LEN){printf(文件太大\n);return;}}}fclose(fp);}else计算机与信息工程系《数据结构》课程设计报告18printf(新文件\n);}}voidList()//显示文件内容{system(cls);inti;for(i=0;in-1;i++){printf(%d:,i+1);StrPrint(T[i+1]);}getchar();}voidCountWord()//文章内容统计{syste
本文标题:数据结构课程设计报告—文本编辑器
链接地址:https://www.777doc.com/doc-4271665 .html