数据结构-课程设计-简易文本编辑器讲课教案_第1页
数据结构-课程设计-简易文本编辑器讲课教案_第2页
数据结构-课程设计-简易文本编辑器讲课教案_第3页
数据结构-课程设计-简易文本编辑器讲课教案_第4页
数据结构-课程设计-简易文本编辑器讲课教案_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程名称: 数据结构 简易文本编辑器项 目 评 价设计方案的合理性与创造性设计与调试结果设计说明书的质量功能完善度综合成绩学 号

综合成绩计本班

邓寅森教师评语 目 录一、需求分析.............................................

3二、概要设计.............................................

3三、模块设计.............................................

5四、详细设计.............................................

7五、调试分析.............................................

8六、用户使用说明........................................

12七、

参考文献...........................................

12八、

对所设计的软件进行自我评价,如创新点、未解决的问题等情况说明..................................................

12九、程序源代码:........................................

131.1

问题描述方便等缺点。计算机信息管理为人们的生活、工作提供了方便,提高使用文本编辑的人员进行管理和分析的一种计算机应用程序。1.2

基本任务通过用户调查分析及实际需求,系统需要实现如下基本任务:(1)输入数据信息建立文本;(2)查询文本中满足要求的信息;(3)插入新的信息到文本中;(4)删除不再需要的文本信息;(5)

查看所有的文本信息。为了完成需求分析的基本任务,主要从以下3

个方面进行设计:2.1

主界面设计项的主控菜单模块以操作系统的各项功能,以方便用户使用系统。系统进入菜单运行界面如图所示:简易文本编辑器主菜单2.2

数据结构设计系统采用线性表的顺序存储结构表示和存储“简易文本编辑器”中的信息。实现文本的输入,删除,插入,查找,显示功能。2.3

系统功能设计运行程序,提示进入菜单,按“回车键”进入主菜单,再可以在

键”新建文本,然后才可以进行其他操作,或者按“0

键”选择退出。3.1

模块设计 模块调用示意图3.2

系统子模块及其功能设计本系统共设计了

16

1、/*由模式串

nextval

值*/void

GetNextval(SqVString

T,int

nextval[])2、/*模式匹配

KMP

算法*/int

KMPIndex(SqVString

S,int

pos,int

next[],SqVString

T)3、/*初始化串*/void

InitString(SqVString

*S,char

*str)4、/*串插入*/int

StrInsert(SqVString

*S,int

pos,SqVString

T)5、/*串删除*/int

StrDelete(SqVString

*S,int

pos,int

len)6、/*求子串*/int

SubStr(SqVString

S,int

pos,int

len,SqVString

*T)7、/*串连接*/int

Concat(SqVString

*S,SqVString

T)8、/*串赋值*/int

StrAssign(SqVString

*S,char

*value)9、void

InputString()

10、void

DeleteString()//删除11、void

DeleteSubstring()//删除12、void

InsertSubstring()//查找13、void

14、void

cd()//进入界面15、void

16、void

3.3

系统模块之间的调用关系系统的

16

个子模块之间的主要调用关系所示:系统函数调用关系图4.1

数据结构设计系统采用线性表的顺序存储结构存储通讯录信息。4.2

系统主要模块设计(1)建立文本模块,由

void

InitString(SqVString

*S,char*str)函数实现。该模块的算法思想是:

eq

\o\ac(○,1)

按照给定的线性表存储空间的初始化分配量分配存储空间,若分配成功,则往下进行;eq

\o\ac(○,2)

令线性表长为

eq

\o\ac(○,3)

令线性表当前存储容量为给定的线性表存储空间的初始化分配量。该模块的算法描述如下:见源程序(2)查看文本中得所有记录,需要一个模式匹配intKMPIndex(SqVString

S,int

pos,int

next[],SqVString

T)函数实现。该模块的算法思想是:在此略该模块的算法描述如下:见源程序(其它模块设计 略)5.1、调试方法:首先打开

Microsoft

Visual

C++

6.0

,运行程序,出现错误修改再运行,直至运行结果0

error

,0

warning

结束。接着进入程序界面,看程序能否实现所要求的各项功能,再作下一步的修改。5.2、调试结果主菜单新建显示删除查找插入退出5.3、程序出现的问题:还有几个程序模块未能成功调用。(

其他问题 见“第八项中未能解决的问题”

)当用户打开程序,就会提示按【回车键】进入,按【回车键】则

键】,新建文本信息,编辑好后,按照程序中的文字提示,返回到主菜单,此时在主菜单选择其他操作,当进入各项操作,均有提示。每一操作完成,按【回车键】返回主菜单,选择【0

键】,安全退出程序!《数据结构理论与实践》——杨永斌了数据结构的特点。继续沿用了清屏函数,是屏幕看起来很舒服,不至于那么杂乱。未解决的问题:

eq

\o\ac(○,1)

在完成插入,查找功能的时候,出现了问题,当程序执行到此处时,程序未能进入下一步,而是直接退出了。eq

\o\ac(○,2)

当进入主菜单后,只能选择【1

键】或者退出,这是未能得到优化的。eq

\o\ac(○,3)

块移动(行块,列块移动),正确存盘、取盘;正确显示总行数等功能未能完成。

/*存储结构*/

值*/

算法*/

/*初始化串*/

}/*求

*sizeof(char));/*申请动态数组空间*/S->length=len;/*置串的当前长度*/S->ch[i]=str[i];/*赋值串值*//*串插入*/

插入位置不合法,其取值范围应该是[0,length]";

分配空间出错,无法完成串插入操作";

/*串删除*/

不合法,无法完成删除操作";

length=pos;/*若

删到串尾*/

分配空间出错,无法完成串的删除操作";

/*求子串*/

空串,无法完成求子串操作";

不合法,无法完成求子串操作";

len=S.length-pos+1;/*当子串长度超过主串长度,则只取到串尾即可*/free(T->ch);/*释放

的原有空间*/

分配空间出错,无法完成求子串操作";

/*串连接*/

分配空间出错,无法完成串连接操作";

/*串赋值*/

free(S->ch);/*释放

的原有空间*/}/*求

为空串*/

分配空间出错,无法完成串赋值操作";

cout<<"\t\t[请输入文本,每以回车结束,一段以#结束行]"<<endl;

请输入要删除行的行号:";

请输入子串所在的行号:";

请输入插入位置:";

请输入子串值:";

请输入子串所在的行号:";

请输入删除的起始位置:";

请输入删除的字符数:";

请输入要查找的子串:";

\t\t[子串"<<buffer<<"

行的"<<pos<<"位置上出现]"<<endl;

cd()//进入界面cout<<"\t\t"<<"♀ cout<<"\t\t"<<"♂————————————————————♂"<<endl;cout<<"\t\t"<<"→ cout<<"\t\t"<<"······················"<<endl;cout<<"\t\t"<<"↓ cout<<"\t\t"<<"↑ cout<<"\t\t"<<"♀

邓寅森♀"<<endl;cout<<"\t\t"<<"∶

cout<<"\t\t"<<"♂————————

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论