




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
届课程设计简易文本编辑器课程设计论文学生姓名 学 号 所属学院 信息工程学院 专 业 计算机科学与技术 班 级 计算机 指导教师 教师职称 讲师 塔里木大学教务处制目录前言2正文21.1课程设计的教学目的和任务21.2 课程设计的主要内容31.3结构与算法分析31.3.1 清空以前的文本信息,将用数据内容全部置为0:31.3.2 编辑信息:31.3.3 替换文本信息:31.3.4 插入文本信息:31.3.5 移动文本信息:31.3.6 删除文本信息:42.1模块设计42.1.1模块调用流程图42.1.2文本编辑器的运行流程图(图二)42.1.3系统子模块及其功能设计53.1算法设计63.1.1输入函数63.1.2查找函数73.1.3删除函数84.1程序实现94.1.1输入文本信息,如(图三)所示94.1.2查找文本信息,如图(四)所示104.1.3移动文本信息,如图(五),图(六)所示11总 结12参考文献:12附 录13前言在操作系统中,外存中的数据、文档或程序,都是以文件的形式保存,甚至对目录和各种设备的操作也都等同于文件的操作。因此对文件的操作就要求首先从文件中读取数据,然后对读取的数据进行操作,最后,当操作完成后再将数据重新写入文件中。在此过程中必须熟练掌握文件的基本操作。首先要调用一个文件,需要有以下的信息: 1、文件当前的读写位置,文件存放在哪个磁介质中,含盘符及路径。 2、与该文件对应的内存缓冲区的地址。 3、缓冲区中未被处理的字符串。 4、文件操作方式,是读数据还是写数据。从文件中读取数据,然后以链表的形式放入内存中,对文件数据进行查找替换删除操作。找到要进行操作的字符串的位置,然后再进行一系列的操作。 最后,完成对文件数据的操作,重新调用文件指针将数据写入文件操作,完成实验。 将数据从文件中读取出来以后,在进行操作。正文1.1 课程设计的教学目的和任务通过用户调查分析及实际需求,系统需要实现如下基本任务: (1)输入数据信息建立文本; (2)查询文本中满足要求的信息; (3)插入新的信息到文本中; (4)删除不再需要的文本信息; (5) 查看所有的文本信息1.2 课程设计的主要内容1) 问题分析一个简易文本编辑器应该具有图形菜单界面,包括查找,替换(等长,不等长),插入(插串,文本块的插入)、块移动(行块),删除文本信息等功能并可正确存盘、取盘,正确显示总行数1.3结构与算法分析为实现数据结构的有序存储,该编辑器应该用顺序表来存储输入的信息。顺序表是数据结构中线性表的一种,它是用一块地址连续的存储空间依次存储线性表的元素。其特点为:在顺序表上逻辑关系相邻的两个元素在物理位置上也相邻;在顺序表上可以随即存储表中的元素。在编辑器的主界面中如下提示信息:1.3.1 清空以前的文本信息,将用数据内容全部置为0:显示当前文本信息:遍历用数组存入的信息,并输出到显示器上: 1.3.2 编辑信息:定义一个结构体,并在结构体中定义一个字符型的一维数组和一个整型变量,这个整型变量用于记录一维数组中存入数据的个数; 1.3.3 替换文本信息:首先在数组中查找要被替换的信息,如果找到该信息,提示输入要替换的信息内容,否则提示未找到要被替换的信息: 1.3.4 插入文本信息:首先在数组中查找要插入的点,如果找到该插入点,提示输入插入信息,确认插入信息后,提示选择向前插入信息还是向后插入信息,如果未找到插入点,显示未找到要插入的位置; 1.3.5 移动文本信息:首先在数组中查找要移动的信息,如果找到该信息,提示是进行列移动还是行移动,否则提示未找到要移动的信息; 1.3.6 删除文本信息:首先在数组中查找要删除的信息,如果找到该信息,提示是否确认删除该信息,通过确认来删除信息,如果未找到要删除的信息,提示未找到该信息2.1模块设计2.1.1模块调用流程图系统主要包含主程序模块和其它操作模块。其调用关系如图(一)所示。 各操作模块主函数图(一)2.1.2文本编辑器的运行流程图(图二)(图二)2.1.3系统子模块及其功能设计 本系统共设计了16个子模块,各程序的函数名及功能说明如下: 1、/*由模式串nextval值*/ void GetNextval(SqVString T,int nextval) 2、/*模式匹配KMP算法*/ int KMPIndex(SqVString S,int pos,int next,SqVString T) 3、/*初始化串*/ void InitString(SqVString *S,char *str) 4、/*串插入*/ int StrInsert(SqVString *S,int pos,SqVString T) 5、/*串删除*/int StrDelete(SqVString *S,int pos,int len) 6、/*求子串*/ int SubStr(SqVString S,int pos,int len,SqVString *T) 7、/*串连接*/ int Concat(SqVString *S,SqVString T) 8、/*串赋值*/ int StrAssign(SqVString *S,char *value) 9、void InputString() /新建 10、void DeleteString()/删除 11、void DeleteSubstring()/删除 12、void InsertSubstring()/查找 13、void DisplayString()/显示 14、void cd()/进入界面 15、void ts()/主菜单 16、void tc()/退出 3.1算法设计3.1.1输入函数考虑到文章长度的不确定性,为了防止空间浪费和溢出错误为其分配动态内存。该算法主要实现,对文章进行录入,并判断所录入的字符类型同时存储到文件中,并统计出各种字符的数目。算法采用字符单个录入并一次存储到动态数组中。 void Input() int z=0; artArt; FILE *p; char c; inti=0,n=0; Art=(art)malloc(sizeof(Article);/分配内存空间 Art-number_num=Art-space_num=Art-word_num=Art-lenth=0;/初始化 Art-s=(char *)malloc(Max_Num);/分配内存空间 Art-s0=0;/初始化 printf(请输入文章以连续两次回车结束注标点统一为英文标点n); c=getchar();/录入文章 while(1) if(c=n)/判断首次回车标识符 n=1; else n=0; Art-si+1=Art-si;/文章终止符后移 Art-si+=c;/录入信息 Art-lenth+;/长度+1 if(c=a)|(cA)/判断C类型字、数字、空格 Art-word_num+; else if(c=0)Art-number_num+; else if(c= ) Art-space_num+; else if(csi-1=Art-si; Art-lenth-; break; if(strlen(Art-s)%Max_Num=Max_Num-1)/空间不足时分配内存空间Art-s=(char *)realloc(Art-s,Art-lenth+Max_Num); z=z/2;/汉字数 Art-word_num+=z;/总字数 printf(文字数%dn数字数%dn空格数%dn,Art-word_num,Art-number_num,Art-space_num); p=fopen(a.txt,w);/建立文件 fprintf(p,%d %d %d %d %s,Art-lenth,Art-number_num,Art-space_num,Art-word_num,Art-s);/将信息写入文件 printf(文章储存在当前文件下的a.txtn); fclose(p);/关闭文件 free(Art-s);/释放内存空间 free(Art);/释放内存空间3.1.2查找函数该算法通过串的匹配实现对指定的字符串的查找工作,每当匹配成功出现次数+1,最终将查找到的字符串在文章中出现的次数进行输出。 void search() artArt; FILE *p; char cMax_Num; inti=0,j=0,count=0,k; Art=(art)malloc(sizeof(Article); p=fopen(a.txt,r); fscanf(p,%d %d %d %d ,&Art-lenth,&Art-number_num,&Art-space_num,&Art-word_num);/从文件中读取数据 Art-s=(char*)malloc(Art-lenth+1)*sizeof(char);/根据Art-lenth分配内存空间 Art-sArt-lenth=0;/输入文章终止符 fread(Art-s,sizeof(char),Art-lenth,p);/读取文章 printf(请输入要查询的字符串n); scanf(%s,c); k=j; while(js)/进行串的匹配 if(ci=Art-sj) j+; i+; else i=0; j=+k; if(i=strlen(c)/当匹配成功时count +1 count+; k=j; i=0; printf(该字符串出现过%d次n,count); fclose(p); free(Art-s); free(Art)3.1.3删除函数该算法实现将用户指定的字符串删除。首先将删除后的文章重新存储,然后将原文件动态内存释放实现删除操作。 void del() artArt; FILE *p; char cMax_Num; int k=0,j=0,i=0,z=0; Art=(art)malloc(sizeof(Article); p=fopen(a.txt,r); fscanf(p,%d %d %d %d ,&Art-lenth,&Art-number_num,&Art-space_num,&Art-word_num); Art-s=(char*)malloc(Art-lenth+1)*sizeof(char); Art-sArt-lenth=0; fread(Art-s,sizeof(char),Art-lenth,p); printf(请输入要删除的字符串n); scanf(%s,c); for(i=0;istrlen(c);i+)/删除后文章的字、数字、空格数目 if(ci=a)|(ciA) Art-word_num-; else if(ci=0) Art-number_num-; else if(ci= ) Art-space_num-; else if(ciword_num-=i=0; while(js)/字符串匹配 if(ci=Art-sj) j+; i+; else i=0;j=+k; if(i=strlen(c)/匹配成功,删除 for(int n=k;js);j+,n+) Art-sn=Art-sj; i=0; j=k; fclose(p); Art-lenth=strlen(Art-s);/删除后的Art-s的长度 p=fopen(a.txt,w); fprintf(p,%d %d %d %d %s,Art-lenth,Art-number_num,Art-space_num,Art-word_num,Art-s); printf(修改后的文章储存在当前文件下的a.txtn); fclose(p); free(Art-s); free(Art);4.1程序实现4.1.1输入文本信息,如(图三)所示(图三)4.1.2查找文本信息,如图(四)所示(图四)4.1.3移动文本信息,如图(五),图(六)所示(图五)(图六)总 结通过这次课程设计,我学到了很多东西。体验到了细心对一个编程者的重要性,和程序的规范对于程序的重要性。课程设计综合考察了我们的学习成果,使我们可以综合运用所学知识,发现、提出、分析和解决问题,锻炼了我们的实践能力,是对我们的实际编程能力的一次训练和考察。通过课程设计,也使我们发现了自身编程知识的欠缺,例如在此次课程设计中,我用到了很多以前几乎从未使用的关于文件的操作,在这个过程中,我将关于文件的操作又重温了一遍,加深了印象。而在遇到问题后不能快速的找到行之有效的办法将其解决,暴露了我们的自身编程能力的不足。总之,这次课程设计让我知道了,我们的编程能力还存在很大的不足,也明白了,课堂知识是远远不够的,我们要在不断的实践中去弥补去创新去挖掘。通过这一周的课程设计,我对数据结构这门课程所学内容的的理解与掌握得以加深。同时,通过对算法的设计,使得我将课程所学理论与实际操作很好地相联接在了一起。在这次课程设计中,培养了我开发一个小型程序的能力。在这次对程序的设计中,我能够立足于课本而不依赖于课本,以发散思维做出设计。作为一名计算机的学生,这样的思维方式尤为重要。感谢老师一直以来细致的授课。是您在日常教学中让我了解到了算法的重要性,让我的编程基础得到了进一步的提升。正是因此,在此次课程设计上遇到的种种问题才得以解决,我才能顺利的完成此次课程设计。在此,我仅以文字的形式表示衷心感谢,感谢您对我的帮助。参考文献:1严蔚敏,吴伟民编著.数据结构(C语言版).北京:清华大学出版社,20072谭浩强 著.C程序设计(第三版).北京:清华大学出版社.2005(2007重印)3李春葆等.数据结构教程 清华大学出版社 2009年3月4徐士良,马尔妮.实用数据结构 清华大学出版社 2011年7月5徐士良.计算机软件技术基础.北京:清华大学出版社,20026徐士良.计算机常用算法(第二版).北京.:清华大学出版社,19957谭浩强,张基温,唐永炎编著.C语言程序设计教程.北京:高等教育出版社,19928C编写组编.常用C语言用法速查手册.北京:龙门书局,19959Herbert Schildt著.戴健鹏译.C语言大全(第二版).北京:高等教育出版社,199810H M Peitel,P J Deitel.C How to program,second Edition.蒋才鹏等译.C程序设计教程.北京:机械工业出版社,2000附 录源代码:#include#include#include#include#define Max_Num 100typedef struct articlechar *s;int space_num;int word_num;int number_num;int lenth; Article,*art;void Input()int z=0;art Art;FILE *p;char c;int i=0,n=0;Art=(art)malloc(sizeof(Article);Art-number_num=Art-space_num=Art-word_num=Art-lenth=0;Art-s=(char *)malloc(Max_Num);Art-s0=0;printf(请输入文章,以连续两次回车结束(注:标点统一为英文标点)n);c=getchar();while(1)if(c=n)n=1;else n=0;Art-si+1=Art-si;Art-si+=c;Art-lenth+;if(c=a)|(cA)Art-word_num+;else if(c=0)Art-number_num+;else if(c= )Art-space_num+;else if(csi-1=Art-si;Art-lenth-;break;if(strlen(Art-s)%Max_Num=Max_Num-1)Art-s=(char *)realloc(Art-s,Art-lenth+Max_Num);z=z/2;Art-word_num+=z;printf(文字数:%dn数字数:%dn空格数:%dn,Art-word_num,Art-number_num,Art-space_num);p=fopen(a.txt,w);fprintf(p,%d %d %d %d %s,Art-lenth,Art-number_num,Art-space_num,Art-word_num,Art-s);printf(文章储存在当前文件下的a.txtn);fclose(p);free(Art-s);free(Art);void search()art Art;FILE *p;char cMax_Num;int i=0,j=0,count=0,k;Art=(art)malloc(sizeof(Article);p=fopen(a.txt,r);fscanf(p,%d %d %d %d ,&Art-lenth,&Art-number_num,&Art-space_num,&Art-word_num);Art-s=(char*)malloc(Art-lenth+1)*sizeof(char);Art-sArt-lenth=0;fread(Art-s,sizeof(char),Art-lenth,p);printf(请输入要查询的字符串n);scanf(%s,c);k=j;while(js)if(ci=Art-sj)j+;i+;else i=0;j=+k;if(i=strlen(c)count+;k=j;i=0;printf(该字符串出现过%d次n,count);fclose(p);free(Art-s);free(Art);void del()art Art;FILE *p;char cMax_Num;int k=0,j=0,i=0,z=0;Art=(art)malloc(sizeof(Article);p=fopen(a.txt,r);fscanf(p,%d %d %d %d ,&Art-lenth,&Art-number_num,&Art-space_nu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年机械设计制造企业人事代理招聘考试模拟题
- 2025年房地产行业招聘面试技巧大解密预测问题与答案参考
- 2025年物流经理高级面试必-备知识点与预测题详解
- 2025年注册验船师资格考试(B级船舶检验法律法规)综合练习题及答案一
- 2025年监理工程师之交通工程目标控制题库含答案(能力提升)
- 特种设备事故应急救援预案和演练方案(模板及记录表)
- 2025年初中地理模拟试卷(地理环境与可持续发展)及答案详解
- 桃花源记全文朗诵课件
- 2025年能源企业环保主管岗位培训与实操考核试题
- 2025年民政领域公务员面试高频考点公共突发事件应对
- 初中物理2022版新课程标准测试卷及答案
- 3dsMax基础与应用案例教程(第2版)( 3dsMax2020)中职PPT完整全套教学课件
- DB6101T 3132-2022 企业安全风险分级管控和隐患排查治理工作规范
- 施工组织设计高标准农田建设项目
- 04K502采暖系统图集
- 《疯狂动物城》中英文对照(全本台词)
- GB/T 5832.1-2016气体分析微量水分的测定第1部分:电解法
- GB/T 35156-2017结构用纤维增强复合材料拉索
- GB/T 30790.6-2014色漆和清漆防护涂料体系对钢结构的防腐蚀保护第6部分:实验室性能测试方法
- 信息互联互通标准化成熟度测评-医科总医院
- FABE销售法则销售培训课件
评论
0/150
提交评论