程序设计-文本编辑器的设计与实现.doc
《程序设计-文本编辑器的设计与实现.doc》由会员分享,可在线阅读,更多相关《程序设计-文本编辑器的设计与实现.doc(116页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date程序设计-文本编辑器的设计与实现南京邮电大学 程序设计报告(2014/2015学年 第一学期)题 目:文档编辑器的设计与实现 专 业 组长 学号姓名 组员 学号姓名 指 导 教 师 指 导 单 位 日 期 成 员 分 工 组 长()对文件操作功能(查找,删除,插入)的代码编写,报告中概要设计与代码调试问题部分的撰写 组 员()统计功能代码的编写,翻阅书籍查找资料,报告
2、中课程设计总结及需求分析部分的撰写 组 员()可操作的主菜单及主函数部分代码的编写,报告整体的撰写及测试数据及其结果分析,制图等 评 分 细 则 评分项优秀优优秀 优秀 优秀 优秀 良好 及格 差 遵守机房规章制度 上机时的表现 学习态度 程序准备情况 程序设计能力 团队合作精神 课题功能实现情况 算法设计合理性 用户界面设计 报告书写认真程度 内容详实程度 文字表达熟练程度 回答问题准确度 简 单 评 语 教师签名 年 月 日 评 分 等 级 备注评分等级分为五种:优秀,良好,中等,及格,不及格文档编辑器的设计与实现一 课题内容与要求 文档编辑器系统是对一个文本内容进行各种常规操作,例如:插
3、入、删除、查找、替换等功能。通过此课题,熟练掌握文本文件的操作及用字符数组来实现字符串操作的功能。 基本要求: (1)首先文件标准化处理:如果句子有前导空格和后导空格,则删除这些空格,单词与单词之间只保留一个空格。 (2)统计功能:可方便地统计出文档中所有出现次数最多和最少的字符串。 (3)查找与替换功能:能够查找任意一个字符串在文档中出现的次数,并可以选择全部或有选择地将其替换为另一个字符串。 (4)显示功能:编辑完成后可以显示编辑后的文档。(5)抽取功能:根据要求将文件中的某一类字符抽取,并存入另外的文件,如抽取所有的数字、抽取所有的字母等。 编辑 退出 统计 主菜单 输入继续上次输入重新
4、输入大写字母个数小写字母个数数字的个数标点符号个数空格的个数所有字数查找字符串删除字符串插入字符串显示当前内容二 需求分析图一:文档编辑器系统的功能框架图(1)提供可操作的主菜单:输出个菜单,用于显示若干个可选的功能选项。根据输入的选项来运行不同的功能,运行不同的函数。(2)进行文本信息的载入:选择输入方式,输入文本内容,提供可操作文本。(3)统计数据功能:输出第二子菜单,用于显示若干个可选的功能选项。根据输入的选项来运行不同的功能,运行不同的函数。(4)编辑数据功能:输出个菜单,用于显示若干个可选的功能选项。根据输入的选项来运行查找、删除、插入、显示当前文本等不同的功能,运行不同的函数。(5
5、)退出程序:退出当前程序。三 概要设计本程序共有11个函数1、HeadWord() 标题函数,即一个输出标题,永远出现在程序的最顶端。 2、CreatWord() 文本输入函数,实现对文本的内容进行输入;3、PrintWord() 当前文本内容输出函数,实现文本内容输出; 4、CountWord() 文章内容统计函数,文本内容进 行统计,包括对文本内容中的大写字母、小写字母、数字、标点符号、空格以及文章所有字 数的个数的统计;5、SearchWord() 文章内容查找函数,实现查找部分;6、DeleteWord() 文章内容删除函数,实现删除部分;7、InsertWord() 文章内容插入函数
6、,实现插入部分; 8、Bmenu() 第二子菜单函数,实现子菜单功能; 9、AboutWord() 显示作者信息的函数;10、menu() 主菜单函数,实现可操作菜单;11、main()主函数。(1)查找功能: 开始 申请访问输入要查找的字符判断是否存在记录位置 输出 结束 否是图二:查找功能图(2)插入功能 开始 创建空间输入要插入的字符或字符串输入要插入的位置计算出插入字符串的长度n将要插入位置之后的字符串向后移n位插入要插入的字符或者字符串 结束图三:插入功能图 开始输入字符串查找所输入字符串所在的位置能否找到将其后字符串向前移动覆盖之 结束否是(3)删除功能图四:删除功能图开始申请访问
7、输入要统计的内容查找符合条件的字符字符统计个数输出统计个数 结束(4)统计功能图五:统计功能图四 源程序代码#include#include#include#include#include#include#includeusing namespace std;#define Link_Size 100int NUM,C,N;typedef struct list char data80; int length; struct list *next; struct list *pre; int row; LinkList;LinkList *head;void HeadWord()/system
8、(cls); couttt*n;couttt* 欢迎使用简单的文本编辑器 *n;coutnext=(LinkList *)malloc(sizeof(LinkList); head-pre=NULL; temp=head-next; temp-pre=NULL; temp-length=0; for(i=0;idatai=0;cout继续上次输入(输入#号结束):n;for(j=0;jLink_Size;j+) for(i=0;idatai=ch; temp-length+; if(ch=#) NUM=j; break; if(ch=#) temp-length=i; temp-next=NU
9、LL; break; temp-next=(LinkList *)malloc(sizeof(LinkList) ; temp-next-pre=temp; temp=temp-next; for(i=0;idatai=0;ofstream ocout;ocout.open(f:/text.txt,ios:app);ocoutdata;ocout.close(); LinkList *temp; char ch; temp-row=NUM+1;system(cls);return temp;LinkList *CreatWord() int i,j; head-next=(LinkList *
10、)malloc(sizeof(LinkList); head-pre=NULL; temp=head-next; temp-pre=NULL; temp-length=0; for(i=0;idatai=0;cout开始创建文本,请输入文章(输入#号结束):n;for(j=0;jLink_Size;j+) for(i=0;idatai=ch; temp-length+; if(ch=#) NUM=j; break; if(ch=#) temp-length=i; temp-next=NULL; break; temp-next=(LinkList *)malloc(sizeof(LinkLis
11、t) ; temp-next-pre=temp; temp=temp-next; for(i=0;idatai=0;ofstream ocout;ocout.open(f:/text.txt);ocoutdata;ocout.close();temp-row=NUM+1;system(cls);return temp;void PrintWord()ifstream icin;icin.open(f:/text.txt);char tt100=0;icin.getline(tt,100,0);coutttnext; for(j=0;j=NUM;j+) for(i=0;(idatai)!=#;i
12、+) ch=temp-datai; if(ch=A)&(ch=a)&(ch=0)&(ch=9) num+; else if(ch= ) space+; else if(ch=33|ch=34|ch=39|ch=44|ch=46|ch=58|ch=59|ch=63) punct+; sum=WORD+word+num; while(1) coutn; HeadWord(); couttt*n; couttt* 文章内容统计菜单 *n; couttt*n; couttt* 1、文章中大写字母的个数 *n; couttt* 2、文章中小写字母的个数 *n; couttt* 3、文章中数字的个数 *n
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 文本 编辑器 设计 实现
限制150内