题目:串基本操作的演示。
学院计算机学院
专业网络工程
年级班别 11级1班
学号 3111006293
学生姓名汤瑞华。
指导教师李小妹。
成绩。2024年6月。
题目:串基本操作的演示。
一. 需求分析。
1. 定义自定义的串类型,并使用此类型实现串的基本操作演示。
2. 利用堆分配存储表示实现hstring串类型的最小操作子集的基础,实现串抽象数据类型的其余基本操作。
3. 严格检查参数的合法性。
4. 构造命令解释程序,循环往复处理用户输入的每一条命令,有程序终止命令。
5. 需要实现的基本操作:(1)赋值 (2)判相等 (3)联接 (4)求长度 (5)求子串。
6)子串定位 (7)串替换 (8)显示 (9)删除 (10)退出。
测试数据:必要数据。
1)e “ 回车》,应显示”equal”.
(2)e ‘abc’‘abcd’《回车》,应显示’unequal’.
(3)c “ 回车》,应显示”.
(4) i ‘a’”《回车》,应报告:参数非法。
(5)r ‘aaa’’aa’’b’《回车》,应显示’ba’.
(6)r ‘aaabc’ ‘a’’aab’《回车》,应显示’aabaabaabbc’.
(7)r ‘aaaaaaaa’’aaaa’’ab’《回车》,应显示’abab’.
自定义数据:
(8)a‘string《回车》,应显示:“语法格式错误!请重新输入!”
(9)a ‘string’《回车》,应显示:‘内部名’’string’.
(10)a ‘‘回车》,应显示:‘内部名’ ’
(10)l‘string《回车》,应显示:”命令语法格式错误!请重新输入!”
(11)l ‘string’《回车》,应显示: 6.
(12)l ‘’回车》,应显示: 0.
(13)d‘123’《回车》,应显示:“命令语法错误!内部名不能小于0和大于100和只能为数字!”
(14)d‘s‘《回车》,应显示:“内部名只能输入数字!请重新输入!”
(15)d‘99’《回车》,应显示:“此内部名为空!请重新输入!”
(16)d‘2《回车》,应显示:“命令语法格式错误!请重新输入!”
(17)d ‘2’《回车》,应显示:’删除成功’.
(18)s‘string《回车》,应显示:“命令语法格式错误!请重新输入!”
(19)s ‘string’2 3《回车》,应显示:’tr’.
(20)s ‘string’5 7《回车》应显示:start不能小于0或大于字符串的长度。end不能小于start且不能大于字符串的长度。
(21)c‘string《回车》,应显示:“命令语法格式错误!请重新输入!”
(22)c ‘str’’ing’《回车》,应显示:‘string’.
(23)c ‘str’’’回车》应显示:‘str‘。
(24)i‘string《回车》,应显示:“命令语法格式错误!请重新输入!”
(25)i ‘string’’ing’《回车》,应显示: 4.
二. 概要设计。
1. 定义hstring串抽象数据类型。
adt strheadlist
数据关系:r1=
基本操作:void getcommand(char c,strheadlist &headlist,resulttype &resultype)
初始条件:c不为空,headlist存在,resultype存在。
操作结果: 得到命令的对应整数值。
void assignment(strheadlist headlist,resulttype resultype,int &pointcheck)
初始条件:headlist存在,resultype存在。
操作结果:存储输入的字符串,并显示其内部名和串值。
void equal(strheadlist headlist,resulttype resultype,int &pointcheck)
初始条件 : headlist存在,resultype存在。
操作结果:报告输入的两字符串是否相等。
void connect(strheadlist headlist,resulttype resultype,int &pointcheck)
初始条件 : headlist存在,resultype存在。
操作结果 :联接输入的两字符串,并显示联接后的字符串。
void length(strheadlist headlist,resulttype resultype,int &pointcheck)
初始条件 : headlist存在,resultype存在。
操作结果:显示输入的字符串的长度。
void substring(strheadlist headlist,resulttype resultype,int start,int end)
初始条件 : headlist存在,resultype存在。
操作结果:显示主串中长度为end-start的子串。
void sbslocation(strheadlist headlist,resulttype resultype,int &pointcheck)
初始条件 : headlist存在,resultype存在。
操作结果:显示子串在主串第一次出现的位置。
void replace(strheadlist headlist,resulttype resultype,int &pointcheck)
初始条件 : headlist存在,resultype存在。
操作结果:用第二子串替换主串**现的第一子串,并显示替换后的主串
void show(strheadlist headlist,resulttype resultype,int &pointcheck,int k)
初始条件 : headlist存在,resultype存在。
操作结果:显示表内所有的字符串的内部名和串值。
void delete(strheadlist headlist,resulttype resultype,int &pointcheck)
初始条件 : headlist存在,resultype存在。
操作结果:删除指定内部名的字符串。
void end(strheadlist headlist,resulttype resultype,int &pointcheck,int k)
初始条件 : headlist存在,resultype存在。
操作结果:结束程序。
2. 命令分析抽象数据类型。
adt resulttype
数据关系:r1=
变量:int cmdno
操作结果:存储命令对应的整数值。
int s[3]
操作结果:存储输入的子串的内部名。
3.基本类型抽象数据类型。
adt hstring
数据关系:r1=
变量:char *ch
操作结果:字符串基址。
int length
操作结果 :存储字符串的长度。
4.主程序。
void main()
5.本程序模块的调用关系。
本程序只有两个模块。
主程序模块。
包涵各函数的模块。
三. 详细设计。
1. 主程序需要的全程量。
#define size 30 //字符串的分配空间。
#define true 1 //常量。
typedef struct{ /串表头定义。
hstring strhead[100]; 字符串指针数组。
strheadlist; /串表头类型。
2.字符串类型。
typedef struct{ /字符串类型定义。
char *ch; /字符串存储基址。
int length; /字符串的长度。
hstring;
typedef struct{//命令存储类型定义。
int cmdno; /存储命令的变量。
int s[3存储输入的字符串的下标的数组。
resulttype;
void getcommand(char c,strheadlist &headlist,resulttype &resultype)
/判断由c存储的字符,把与之对应的命令的值赋予resultype的cmdno中。
void assignment(strheadlist headlist,resulttype resultype,int &pointcheck)
/从headlist中strhead[100]查找还没开辟空间的串头指针,然后开辟空间存储。
数据结构课程设计报告
东莞理工学院城市学院。题目 二叉排序树 专业 计算机科学与技术 本 年级 2010级计算机科学与技术专业 1 班。个人姓名 何振江。指导教师 张娟老师 时间 2010至2011第二学期第18周 地点 实验楼615机房 东莞理工学院城市学院计算机与信息科学系制。2011年 6月。实习报告的内容。一 问...
数据结构课程设计报告
设计一个校园导游程序,为来访的客人提供信息查询服务。1 设计学校的校园平面图。选取若干个有代表性的景点抽象成一个无向带权图 无向网 以图中顶点表示校内各景点,边上的权值表示两景点之间的距离。2 存放景点代号 名称 简介等信息供用户查询。3 为来访客人提供图中任意景点相关信息的查询。4 为来访客人提供...
数据结构课程设计报告
河北科技大学。课程设计报告。学生姓名学号。专业班级。课程名称数据结构。学年学期 2 012 2 013学年第 2 学期指导教师 黄春茹。2 0 13年 6 月。课程设计成绩评定表。一 数据结构课程设计目标。二 问题描述。三 需求分析。四 概要设计。五 详细设计。六 软件说明书 给出软件如何使用,使用...