程序设计_文本编辑器的设计与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

程序设计报告

(2014/2015学年第一学期)

题目:文档编辑器的设计与实现

专业

组长学号姓名

组员学号姓名

指导教师

指导单位

日期

文档编辑器的设计与实现

一课题内容与要求

文档编辑器系统是对一个文本内容进行各种常规操作,例如:插入、删除、查找、替换等功能。通过此课题,熟练掌握文本文件的操作及用字符数组来实现字符串操作的功能。

基本要求:

(1)首先文件标准化处理:如果句子有前导空格和后导空格,则删除这些空格,单词与单词之间只保留一个空格。

(2)统计功能:可方便地统计出文档中所有出现次数最多和最少的字符串。

(3)查找与替换功能:能够查找任意一个字符串在文档中出现的次数,并可以选择全部或有选择地将其替换为另一个字符串。

(4)显示功能:编辑完成后可以显示编辑后的文档。

(5)抽取功能:根据要求将文件中的某一类字符抽取,并存入另外的文件,如抽取所有的数字、抽取所有的字母等。

(1)提供可操作的主菜单:输出个菜单,用于显示若干个可选的功能选项。根据输入的选项来运行不同的功能,运行不同的函数。

(2)进行文本信息的载入:选择输入方式,输入文本内容,提供可操作文本。

(3)统计数据功能:输出第二子菜单,用于显示若干个可选的功能选项。

根据输入的选项来运行不同的功能,运行不同的函数。

(4)编辑数据功能:输出个菜单,用于显示若干个可选的功能选项。根据

输入的选项来运行查找、删除、插入、显示当前文本等不同的功能,运行不

同的函数。

(5)退出程序:退出当前程序。

三概要设计

本程序共有11个函数

1、HeadWord() 标题函数,即一个输出标题,永远出现在程序的最顶端。

2、CreatWord() 文本输入函数,实现对文本的内容进行输入;

3、PrintWord() 当前文本内容输出函数,实现文本内容输出;

4、CountWord() 文章内容统计函数,文本内容进行统计,包括对文

本内容中的大写字母、小写字母、数字、标点符号、空格以及文章所有

字数的个数的统计;

5、SearchWord() 文章内容查找函数,实现查找部分;

6、DeleteWord() 文章内容删除函数,实现删除部分;

7、InsertWord() 文章内容插入函数,实现插入部分;

8、Bmenu() 第二子菜单函数,实现子菜单功能;

9、AboutWord() 显示作者信息的函数;

10、menu() 主菜单函数,实现可操作菜单;

11、main()主函数。

(1)查找功能:

图二:查找功能图

图三:插入功能图

图四:删除功能图

图五:统计功能图四源程序代码

#include

#include

#include

#include

#include

#include

#include

using namespace std;

#define Link_Size 100

int NUM,C,N;

typedef struct list

{

char data[80];

int length;

struct list *next;

struct list *pre;

int row;

} LinkList;

LinkList *head;

void HeadWord()

{

// system("cls");

cout<<"\t\t****************************************************\n"; cout<<"\t\t**** 欢迎使用简单的文本编辑器****\n"; cout<<"\t\t****************************************************\n"; }

LinkList *LoadWord()

{

LinkList *temp;

char ch;

int i,j;

head->next=(LinkList *)malloc(sizeof(LinkList));

head->pre=NULL;

temp=head->next;

temp->pre=NULL;

temp->length=0;

for(i=0;i<80;i++)

temp->data[i]='\0';

cout<<"继续上次输入(输入#号结束):\n";

for(j=0;j

{

for(i=0;i<80;i++)

{

ch=getchar();

temp->data[i]=ch;

temp->length++;

if(ch=='#')

{

NUM=j;

break;

}

}

if(ch=='#')

{

temp->length=i;

temp->next=NULL;

break;

}

temp->next=(LinkList *)malloc(sizeof(LinkList)) ;

temp->next->pre=temp;

temp=temp->next;

for(i=0;i<80;i++)

temp->data[i]='\0';

}

ofstream ocout;

ocout.open("f://text.txt",ios::app);

ocout<data;

ocout.close();

LinkList *temp;

char ch; temp->row=NUM+1;

system("cls");

return temp;

}

LinkList *CreatWord()

{

int i,j;

head->next=(LinkList *)malloc(sizeof(LinkList));

head->pre=NULL;

temp=head->next;

temp->pre=NULL;

temp->length=0;

for(i=0;i<80;i++)

temp->data[i]='\0';

cout<<"开始创建文本,请输入文章(输入#号结束):\n"; for(j=0;j

{

相关文档
最新文档