简单文本编辑器设计与实现

本文档介绍了一个简单的文本编辑器设计与实现,旨在通过C语言实现双向链表存储结构,包括字符串模式匹配、行插入删除、单词统计等功能。实验要求涉及输入、删除、显示、统计、查找、插入、保存和加载文本等操作,还提供了相应的数据结构和操作函数说明。
摘要由CSDN通过智能技术生成

简单文本编辑器设计与实现

实验目的:

(1)熟悉并掌握双向链表存储结构实现及其基本操作

(2)熟悉并掌握字符串模式匹配操作

(3)掌握简单文本编辑器的实现

1、实验内容及要求

1)实验内容:

问题描述:输入一页文字,采用动态存储结构存储一页文章,每行最多不超过80个字符,共N行;要求如下:

① 分别统计其中英文字母数和空格数及整篇文章总字数

② 统计某一字符串在文章中出现的次数,并输出该次数

③ 在指定行前插入文本,删除指定行文本

④ 查找定位某单词在文本中的位置

⑤ 装入和保存文本

2)实验要求:

① 用C语言编程实现上述实验内容中的结构定义和算法

② 要有main()函数,并且main()在函数中使用监测数据调用上述算法

③ 试验完成后撰写实验报告

④ 设计如下选择菜单。

1、输入

2、删除一行

3、显示全部

4、单词统计

5、查找定位单词

6、定行位置插入

7、文件存盘

8、装入文件

9、退出

请按数字选择:

2、数据结构设计

Struct line //定为文本数据类型

{

Char text[81];

Int num;//行号

Struct line *next;//指向表中下一个行的指针

Struct line *prior;//指向表中前一个行的指针

};

Struct line *start;//指向表中第一行的指针

Struct line *last;//指向表中最后一行的指针

3、基本操作函数说明

txtLine*find(int linenum)//查找一行文本

//当文本内容插在文件中间时其下面的内容行号必须增加1

//而当删除时,被删除的文本后面的行号必须减1

void patchup(int n,int incr)

txtLine *insert_Line(txtLine *i)//按行号排序后插入

int enter(int linenum)//将文本插在指定行前面

void delete_text()

void list()

void wordnum()//单词统计

void wordfind()//查找定位单词

void save(char *fname)//存文件

void load(char *fname)//装入文件

int menu_select()//显示菜单,供用户选择

4、源代码:

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

#include<ctype.h>

#include<iostream>

using namespace std;

typedef struct line

{//定义文本行数据

char text[81];

int num;//行号

struct line *next;//指向下一个输入项目的指针

struct line *prior;//指向前一个项目的指针

}txtLine;

txtLine *start;//指向表中第一行的指针

txtLine *last;//指向表中最后一行的指针

txtLine*find(int linenum)//查找一行文本

{

txtLine *info;

info = start;

while(info)

{

if(linenum == info->num)//

  • 3
    点赞
  • 71
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值