欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年2022年简易文本编辑器 .pdf

    • 资源ID:33379760       资源大小:458.92KB        全文页数:17页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年2022年简易文本编辑器 .pdf

    简易文本编辑器摘要 :简易文本编辑是最常用的文档提取和编辑工具,通过对简易文本的研究,利用 C 语言实现对文本的查找,替换(等长,不等长),插入(插串,文本块的插入) 、块移动(行块,列块移动),删除;可正确存盘、取盘;正确显示总行数等功能。关键字 :文件提取 ,替换 ,查找 ,插入 ,删除 ,块移动 . 前言数据结构这门课程是打开程序设计知识宝库的金钥匙,其主要目的是培养将现实世界偶像为数据和数据模型的能力以及利用计算机进行数据存储和数据加工的能力。 学好数据结构, 可以使我们掌握更多的程序设计技巧,为以后学习计算机专业课程打下良好的基础。然而,要学习好数据结构这门课, 就必须加强自己动手写程序的能力, 在这方面除了上课期间的课后实验,一个完整的课程设计也是一项提高自己抽象思维能力和编程能力的重要方法。这次学习中,我选择了简易文本编辑器这个课题,根据对这个题目的研究,做了以下分析:在操作系统中,外存中数据,文档或程序 ,都是以文件的形式保存。因此对文件的操作就要首先从文件中读取数据,然后对读取的文件进行其他操作。最后,当操作完成后 ,再将文件从新写入文件中,在此过程中需要掌握以下信息。1. 文件当前的读写位置。2. 与该文件对应的内存缓冲区的位置。3. 缓冲区中未被处理的字符串。4. 文件操作方式。最后完成对文件数据的操作,重新调用文件指针将文件写入文件操作。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 17 页 - - - - - - - - - 数据结构课程设计任务书一、设计目的通过数据结构课程设计,使学生能够将课堂上学到数据结构理论知识与实际问题相联系, 在提高学生学习兴趣的同时逐渐培养实际操作技能, 强化对课程内容的了解。 本课程设计不仅有助于学生提高学生的编程能力,而且也有助于培养学生抽象思维能力和动手能力。二、设计教学内容完成简单的文本编辑功能, 最好具有图形菜单界面。 包括:查找,替换(等长,不等长),插入(插串,文本块的插入)、块移动(行块,列块移动),删除;可正确存盘、取盘;正确显示总行数。三、设计时间20112012学年第 1 学期: 第 16 周共计 1 周教师签名 : 2010 年 12 月 19 日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 17 页 - - - - - - - - - 第一章需求分析一个简易文本编辑器应该具有图形菜单界面,包括查找,替换(等长,不等长) ,插入(插串,文本块的插入) 、块移动(行块,列块移动) ,删除文本信息等功能并可正确存盘、取盘,正确显示总行数。第二章概要设计2.1 结构与算法分析为实现数据的有序存储, 该编辑器应该用顺序表来存储输入的信息。顺序表是数据结构中线性表的一种, 它是用一块地址连续的存储空间依次存储线性表的元素。其特点为: 在顺序表上逻辑关系相邻的俩个元素在物理位置上也相邻;在顺序表上可以随即存取表中的元素。在编辑器的主界面中应有如下提示信息:2.11清空以前的文本信将用数组存的数据内容全部置为0, 显示当前文本信息:遍历顺序表中存入的信息,并输出到显示器上。2.12 编辑信息:定义一个结构体,并在结构体中定义一个字符型的一维数组和两个整型变量,整型变量用于记录一维数组中存入数据的的行数与列数。typedef struct char srMAXSIZE; int hang; int lie; shuru ; 2.13替换文本信息:首先在数组中查找要被替换的信息,如果找到该信息, 提示输入要替换的信息内容,否则提示未找到要被替换的信息。2.14插入文本信息:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 17 页 - - - - - - - - - 首先在数组中查找要插入点, 如果找到该插入点, 提示输入插入信息, 确认插入信息后, 提示选择向前插入信息还是向后插入信息,如果未找到插入点, 显示未找到要插入的位置。2.15移动文本信息:首先在数组中查找要移动的信息,如果找到该信息, 提示是进行列移动还是进行行移动,否则提示未找到要移动的信息。2.16删除文本信息:首先在数组中查找要删除的信息,如果找到该信息, 提示是否确认删除该信息,通过确认来删除信息,如果未找到要删除的信息,提示未找到该信息。2.2 流程图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 17 页 - - - - - - - - - 图 21 文本编辑器流程第三章详细设计#include stdafx.h #includestdio.h #includemalloc.h #includestring.h #includeiostream.h #includestdlib.h #includeconio.h #include #define Link_Size 100 int NUM,C,N; typedef struct list /1 、定义链表结点char data50; /记录一行字符int length; /记录一行字符长度struct list *next; struct list *prior; int row; LinkList; LinkList *head; / LinkList *CreatWord() / 编辑文本内容LinkList *temp; char ch; int i,j; head-next=(LinkList *)malloc(sizeof(LinkList); head-prior=NULL; temp=head-next; temp-prior=NULL; temp-length=0; for(i=0;idatai=0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 17 页 - - - - - - - - - printf( 开始创建文本,请输入文章(输入#号结束) :n); for(j=0;jLink_Size;j+) / 控制一页 for(i=0;idatai=ch; temp-length+; if(ch=#) NUM=j; break; /文章结束时, Num 来记录整个文章的行数 if(ch=#) temp-length=i; temp-next=NULL; break; temp-next=(LinkList *)malloc(sizeof(LinkList) ; temp-next-prior=temp; temp=temp-next; for(i=0;idatai=0; temp-row=NUM+1; system(cls); return temp; / void PrintWord() / 显示当前文章内容int i,j; /定义文本行数变量j,每行字符数i LinkList *p; p=head-next; system(cls); printf(n 当前文章的内容是:); for(j=0;j=NUM&p!=NULL;j+) for(i=0;(idatai)!=#;i+) printf(%c,p-datai); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 17 页 - - - - - - - - - p=p-next; / void SearchWord(char *str1,LinkList* temp) / 查找文章中的字符或者字符串char Data20 ; /记录需要查找的字符内容int i,j,k=0,sum=0; int l=1; temp=head-next; strcpy(Data,str1); for(i=0;i=NUM;i+) for(j=0;jdataj)=Datak) k+;/ 将输入的查找字符与链表中信息比较,找到第一个相同的字符else if(Datak!=0) j=j-k; k=0; if(Datak=0) sum+; j=j-k+1; /从主串第j-k 个位置重新查找printf(tt第%d 次出现在第 %d 行第 %d 列n,l,i+1,j+1); l+; k=0; continue; temp=temp-next; printf(ttt字符串总共出现次数为:%dnn,sum); C=sum; N=i*50+j; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 17 页 - - - - - - - - - / void DeleteWord(char *str2) / 从主串第j-k 个位置重新查找char Data20; /存储需要删除的字符或者字符串LinkList *temp,*term; int i,j,k,m,y,num; strcpy(Data,str2); for(y=0;yC;y+) num=50; k=0,m=0; temp=head; for(i=0;inext; for(j=0;jdataj)=Datak) k+; else if(Datak!=0) j=j-k;k=0; if(Datak=0) num=j; break; if(num50) break; for(;i=NUM;i+) for(;j50;j+) if(j+1data50-k+num=temp-dataj+1; /删除的字符串不在最后一行,将下一行的字符(由temp 指向)前移到前行 else temp-dataj-k+1=temp-dataj+1; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 17 页 - - - - - - - - - term=temp; temp=temp-next; j=0; / LinkList * InsertWord(LinkList *temp) / 向文章中插入字符或者字符串char Data20; int h,l; printf(ntt请输入要插入的字符或字符串:); getchar(); gets(Data); printf(ntt当前文章内容为:); PrintWord(); printf(ntt请输入要插入的行:); scanf(%d,&h); printf(ntt请输入要插入的列:); scanf(%d,&l); int i=(h-1)*50+l; LinkList *a; int n=strlen(Data); int m ; int insertRow=i/50+1;/ 确定插入位置的行数int row=temp-row; /将全局变量记录的行数赋值给row int j; if(insertRow=row) for(m=temp-length-1;m=(i%50)&n0;m-) temp-datam+n=temp-datam; for(m=(i%50),j=0;mdatam=Dataj; else 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 17 页 - - - - - - - - - int r=0; for(int p=insertRow; plength-1-r;m=0&n0;m-) temp-datam+n=temp-datam; a=temp; temp = temp-prior; temp-length = 50; for(m = temp-length-n,j=0;mlength;m+,j+) a-dataj=temp-datam; for(m=temp-length-n-1;m=(i%50);m-) temp-datam+n=temp-datam; for(m=(i%50),j=0;mdatam =Dataj; return temp; / int CountWord(LinkList *temp) / 文章中所有字数char ch; int i,j; int sum=0; temp=head-next; for(j=0;jdatai)!=#;i+) ch=temp-datai; sum+; return (sum-1) ; / 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 17 页 - - - - - - - - - void StorageWord() /存盘LinkList *t; char ch; t=head-next; int i,j; ofstream outFile(b.txt,ios:out); if(!outFile) cerrOpen file or create file error.endl; else for(j=0;j=NUM;j+) for(i=0;(idatai)!=#;i+) ch=t-datai; outFilech; coutendl; / void ReadWord() /取盘ifstream inFile; inFile.open(b.txt); if(!inFile) couterror!endl; abort(); char ch; while(inFile.get(ch) coutch; inFile.close(); cout9)&(t1) printf( 对不起,无此功能,请输入正确的功能序号!n); else switch(t) case 1: system(cls); temp=CreatWord(); printf(n); printf( 按回车键继续 ); getchar(); getchar(); system(cls); break; case 2: system(cls); PrintWord(); printf(n); printf( 按回车键继续 ); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 17 页 - - - - - - - - - getchar(); getchar(); system(cls); break; case 3: system(cls); printf(ttt请输入您需要查找的字符或字符串:); getchar(); gets(str1); SearchWord(str1,temp); printf( 按回车键继续 ); getchar(); getchar(); system(cls); break; case 4: system(cls); printf(ttt请输入您需要删除的字符或字符串:); getchar(); gets(str2); SearchWord(str2,temp); DeleteWord(str2); printf(ttt删除%s 后的文章为 :,str2); PrintWord(); printf( 按回车键继续 ); getchar(); getchar(); system(cls); break; case 5: system(cls); InsertWord(temp); printf(ttt插入字符或字符串后文章为:); PrintWord(); printf(n); printf( 按回车键继续 ); getchar(); getchar(); system(cls); break; case 6: system(cls); printf(ntt文章中所有字数:%dn,CountWord(temp); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 17 页 - - - - - - - - - printf( 按回车键继续 ); getchar(); getchar(); system(cls); break; break; case 7: system(cls); printf(ttt文档存盘成功:); StorageWord(); printf( 按回车键继续 ); getchar(); getchar(); system(cls); break; case 8: system(cls); printf(ttt文档取盘成功:); ReadWord(); printf( 按回车键继续 ); getchar(); getchar(); system(cls); break; if(t=9) break; while(1); / void main() head=(LinkList *)malloc(sizeof(LinkList); LinkList *temp; menu(temp); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 17 页 - - - - - - - - - 测试结果测试文章 :For todays Christian, the origin of Christmas is, and should be, the birth of Jesus Christ as recorded in the Bible. Nothing more and nothing less. However, most of what we witness on December 25th each year has absolutely nothing to do with that blessed day, which probably occurred in late summer or early fall about 2,000 years ago. In fact, most of the customs and traditions of Christmas actually pre-date the birth of Jesus, and many of them are downright deceptive in their meaning and origin. Anyway, who cares when Christ was born? 运行程序后:2、显示当前文章内容名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 17 页 - - - - - - - - - 3、查找文章中的字符或者字符串6、文章中所有字数名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 17 页 - - - - - - - - - 7、文章存盘8、文章取盘名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 17 页 - - - - - - - - -

    注意事项

    本文(2022年2022年简易文本编辑器 .pdf)为本站会员(C****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开