串的基本演示操作系统课程设计-毕业(学术)论文设计.docVIP

  • 6
  • 0
  • 约1.77万字
  • 约 40页
  • 2018-12-03 发布于广西
  • 举报

串的基本演示操作系统课程设计-毕业(学术)论文设计.doc

PAGE PAGE 39 课程设计说明书 程序设计的主要思路:首先构思所写程序的框架,我在主函数中输入字符串,并调用函数传给定义的顺序串,主函数中运用了do-while语句和switch语句,以此来供使用者选择他所需做的操作。选择所需操作时,调用相应的函数实现功能的应用,输出所需结果。同时为了操作系统的好看,我运用了system()等改变了运行界面的颜色。 需求分析 实现串的基本操作,如: 输入两个串,并赋值给顺序串s,t 实现将串t复制给串s 判断两串的大小 求两串的长度 实现两串的连接 求子串 插入 删除 替换 输出串 实现串的匹配,如:非模式匹配、简单模式匹配、KMP匹配 实现串的逆置 查找 转换(将大写字母转换为小写字母,小写字母转换为大写字母) 概要设计 2.1 主界面设计 先设置了一个检测运行环境系统 。如图: 为了实现串的各项基本操作,设计了一个含有多个菜单项的主控菜单模式以连接各种基本操作,以方便使用系统。如图: 在选项9中我又设计了一个含三个菜单项的小主菜单以连接三个不同的匹配算法。如图: 2.2 数据结构设计 系统采用线性表的顺序存储结构表示,其中存放串字符和串长。此外定义了一个常量max,表示字符串的最大长度。 2.3 系统功能设计 此系统中设置了14个子功能模块,并在第9个功能中又设置了3个子功能模块。 (1)将串t复制给串s模块,由strcopy()函数实现。 (2)比较两串的大小模块。由strcmp()函数实现。 (3)求串的长度模块。由strlength()函数实现。 (4)串的查找模块。由chaz()函数实现。 (5)求子串模块。由substr()函数实现。 (6)串的连接模块。由concat()函数实现。 (7)输出串模块。由dis()函数实现。 (8)将串s2插入到s1的第i个字符中模块。 (9)串的模式匹配模块。可以有三个函数实现:index1()函数、index()函数、kmpindex()函数。 (10)从串s中删除第i个字符开始的长度为j的子串模块。由delstr()函数实现。 (11)在s串中将第i个字符开始的j个字符构成的子串用串t替换模块。由repstr()函数实现。 (12)串的逆序模块。由ReverseSq()函数实现。 (13)串的转换模块。由zhuanh()函数实现。 (14)串的修改模块。由change()函数实现。 3.模块设计 整个程序的流程图。如图: 开始 开始 输入串cstr,Str并赋值给串s,t 1串t复制给s 2判断串的大小 3求串长 4串的连接 5求子串 6插入 7删除 8替换 9匹配 10输出串 11串的逆序 12串的查找 13串的转换 14串的修改 根据选择输出相应的运行结果 结束 stra()函数 strcmp()函数 strlegth()函数 Concat()函数 substr()函数 insstr()函数 delstr()函数 repstrt()函数 pipei()函数 dis()函数 ReverseSq()函数 chaz()函数 zhuanh()函数 change()函数 选择(n!=0) 而选择9中还有一个流程,如图: 选择9 选择9 选择(n!=0) 1非模式匹配 2 BF模式匹配 3 KMP模式匹配 index1()函数 index()函数 kmpindex()函数 getnext()函数 输出相应的结果 4.详细设计 4.1数据结构设计 系统采用串的顺序存储结构(——顺序串)存储串的基本内容。类型定义如下: typedef struct{ char data[max]; int length; }sqstring; 4.2系统主要模块设计 (1)将字符常量cstr,Str赋值给串s,t模块,由stra()函数实现。该模块的算法思想是:用for循环将cstr[i]赋值给s[i];并s.length=i。 该模块的算法描述如下: void stra(sqstring s,char cstr[])//将字符串常量赋给串s,s为引用型参数 { int i; for(i=0;cstr[i]!=\0;i++) s.data[i]=cstr[i]; s.length=i; } (2)将串t复制给串s模块,由strcopy()

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档