朱银满 《用字符串实现一个简单的文本编辑器》
第- 1 -页 共 16 页
用字符串实现一个简单的文本编辑器
学生姓名:朱银满
指导老师:肖增良
摘 要 本课程设计主要解决在文本编辑中,对行编辑的问题,通过字符串完善对文本
的编辑,实现对文本的输入、输出、打开、保存、查找、替换、和修改、删除数据。在
本课程设计中,程序设计语言为 C++语言,程序运行平台为 Windows 2007。在程序设计
中采用了字符串的方法实现对简单的编辑器。程序通过调试运行,初步实现了设计目标,
并且经过适当完善后,将可以应用在实际中解决问题。
关键词 C++ ; 文本编辑器;
- 1 -
朱银满 《用字符串实现一个简单的文本编辑器》
第- 2 -页 共 16 页
目录
1 引 言........................................................................................................... - 3 -
2 系统需求分析................................................................................................ - 4 -
2.1 问题定义......................................................................................- 4 -
2、2 可行性研究.................................................................................- 4 -
2、3 需求分析.....................................................................................- 5 -
3 总体设计..................................................................................................... - 5 -
4 详细设计...........................................................................................................-7
4.1 功能的设计.......................................................................................... -7
4.2 数据结构的设计............................................................................…- 7 -
4.3 关键功能的实现................................................................................- 8 -
5 软件测试与调试............................................................................................ -15
6 结束语.............................................................................................................-17
7 致谢..................................................................................................................-18
参考文献...................................................................................................... ...- 18 -
附录:............................................................................................................ ...- 18 -
- 2 -
朱银满 《用字符串实现一个简单的文本编辑器》
第- 3 -页 共 25 页
1 引 言
数据结构是在整个计算机科学与技术领域上广泛被使用的术语。它用来
反映一个数据的内部构成,即一个数据由那些成分数据构成,以什么方式构
成,呈什么结构。数据结构有逻辑上的数据结构和物理上的数据结构之分。
逻辑上的数据结构反映成分数据之间的逻辑关系,而物理上的数据结构反映
成分数据在计算机内部的存储安排。数据结构是数据存在的形式。 数据结
构是信息的一种组织方式,其目的是为了提高算法的效率,它通常与一组算
法的集合相对应,通过这组算法集合可以对数据结构中的数据进行某种操
作。
数据结构课程的主要目的是介绍一些常用的数据结构,阐明数据结构内在的
逻辑关系,讨论它们在计算机中的存储表示,并结合各种数据结构,讨论对
它们实行的各种运算的实现算法。
生活中的例子,比如现在要做一个考试系统,要描述每个考生的信息,
有姓名、性别、考号等,全部这些信息就构成一个小数据结构,每个考生有
他自己的数据结构,这些结构要如何存放在计算机中,各个结构之间是什么
关系,对整体需要哪些操作,比如查询、删除,怎样存储会使这样的操作效
率更高,这些就是数据结构要解决的问题。
- 3 -
朱银满 《用字符串实现一个简单的文本编辑器》
第- 4 -页 共 25 页
2 系统需求分析
2.1 问题定义
问题定义主要是用来初步的确定设计的规模和目标,通过这一阶段应该提出
关于问题性质、工程的目标和规模的书面报告。问题定义阶段是软件生命周期中
最简短的阶段,此次设计花了一周的时间,问题定义报告如下:
项目:文本编辑器。
目的:实现简单的文本编辑,掌握相关数据结构知识。
2、2 可行性研究
可行性研究的最终目的就是利用最小的代价在尽可能短的时间内确定问题是
否能够解决。这一阶段只是确定问题是否值得去解,而不是去解决问题。要考虑
能否解决主要从下面两个方面考虑:
(1)技术可行性 使用现有技术是否能够实现这个系统。
(2)经济可行性 就是该系统的经济效益能超过它的开发成本吗?
(3)操作可行性
从技术方面,是通过 C++来做系统的前台,来实现整系统的功能;从操作方
面,基本的录入、查看等都能满足用户的需求;此次设计没有考虑经济可行性。
经过这一阶段确定了该系统的粗略系统流程图(图 3-1)。
可行研究阶段的目标是:使工作人员从繁琐的填表,查表工作中解放出来;
提高工作质量,使供需双方都获得满意的结果;促进报表,提高工作效率。
- 4 -
朱银满 《用字符串实现一个简单的文本编辑器》
第- 5 -页 共 25 页
2、3 需求分析
应该确定系统必须在 Microsoft Visual C++ 6.0 的环境下实现具有输入、
输出、修改、查找、删除、读取、保存等功能。
通过以上可以知道该软件主要有以下功能模块:
数据读取、保存
数据输入、输出
数据修改
数据查找
数据删除
其中本次课程设计实现的应用模块又分为如下子模块:
登陆界面:主要是增加系统的人性化,可操作性,使用户舒心
信息录入:主要是将文本相关信息录入
信息处理
显示项目:对文本信息进行显示。
3 总体设计
总体设计的目标:简单的说是回答“概括的说,系统应该如何实现?”这个
问题,所以总体设计又称概要设计或初步设计。而总体设计的过程是系统设计,
首先定义一个数据空间,对数据进行操作的平台,其次定义一系列功能选项,使
尽量达到用户要求,还要对操作方式及流程进行优化与整合,使用户能够舒适的
使用本编辑器。对于本编辑器的各种功能主要采用分块模式,提高程序的可读性,
和高优化型,软件的系统结构图如下图 3-1 所示:
- 5 -
朱银满 《用字符串实现一个简单的文本编辑器》
第- 6 -页 共 25 页
系统
用户进入
功能界面
文件功能
文本功能
打开 储存 输入
输出
修改
查找
清空
图 3-1 系统结构图
- 6 -
朱银满 《用字符串实现一个简单的文本编辑器》
第- 7 -页 共 25 页
4 详细设计
4.1 各种功能的定义
为了实现文本编辑系统的使用首先定义用户所需的各种功能,列如输入、输
出等。本程序将各功能分开为一个个模块,以函数声明在程序的顶部。还有程序
所需要的各种数据变量定义。
#include
#include
using namespace std;
//头文件定义
void shuru();
void shuchu();
void xiugai();
void chucun();
void dakai();
void chazhao();
void qingkong();
void zhiling();
char sw[23][23];
int i,j,x,q,m,n;
int y=0;
int p=0;
//各模块功能
//程序主要变量
4.2 数据结构的设计
数据字典:
数据字典包括以下几种类型的条目:
数据流条目--数据流条目给出某个数据流和定义,它通常是列出该数据
流的各组成数据元素。
- 7 -
朱银满 《用字符串实现一个简单的文本编辑器》
第- 8 -页 共 25 页
该系统中的数据流条目有:
文本信息(=字符内容+字符位置)+文件信息
逻辑结构的设计如表 4-1 所示:
表 4-1 课程基本信息结构设计
列名
文件
sw[][]
i,j,q,m,n,y,p
数据类型
Dat
char
int
可否为空
NOT NULL
NULL
NOT NULL
说明
文本文件
文件内容
控制变量
4.3 关键功能的实现
(1)用户指令界面
zhiling()函数用来用户选取各种指令,进行相关操作
此函数代码如下:
1. 基本代码
void zhiling()
{
cout<>q;
switch(q)
{
case 1: dakai();break;
case 2: shuru(); break;
case 3: xiugai();break;
- 8 -