串基本操作的演示.doc

上传人:文****钱 文档编号:40624 上传时间:2018-05-07 格式:DOC 页数:20 大小:364.72KB
下载 相关 举报
串基本操作的演示.doc_第1页
第1页 / 共20页
串基本操作的演示.doc_第2页
第2页 / 共20页
串基本操作的演示.doc_第3页
第3页 / 共20页
串基本操作的演示.doc_第4页
第4页 / 共20页
串基本操作的演示.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

1、数据结构课程设计题目串基本操作的演示学院计算机学院专业网络工程序号11一、课程设计任务要求在教科书422节用堆分配存储表示实现HSTRING串的最小操作子集的基础上,实现串抽象数据类型的其余基本操作(不使用C语言本身提供的串函数)。参数合法性检查必须严格。说明(在格式中,表示0个、1个或多个空格所组成的串。串标识表示一个内部名或一个串文字。前者是一个串的唯一标识,是一种内部形式的(而不是字符形式的)标识符。后者是两端由单引号括起来的仅可打印字符组成的序列。串内每两个连续的单引号表示一个单引号符。)利用上述基本操作函数构造以下系统它是一个命令解释程序,循环往复地处理用户键入的每一条命令,直至终止

2、程序的命令为止。命令定义如下(1)赋值。格式A串标识回车用串标识所表示的值建立新串,并显示新串的内部名和串值。如AHI(2)判相等。格式E串标识1串标识2回车若两串相等,则显示“EQUAL”,否则显示“UNEQUAL”。(3)联接。格式C串标识1串标识2回车将两串联接产生结果串,它的内部名和串值都显示出来。(4)求长度格式L串标识回车显示串的长度。(5)求子串格式S串标识数1数2回车如果参数合法,则显示子串的内部名和串值。数不带正负号。(6)子串定位。格式I串标识1串标识2回车显示第二个串在第一个串中首次出现时的位置。(7)串替换格式R串标识1串标识2串标识2回车将第一个串中出现所有出现的第二

3、个串用第三个串替换,显示结果串的内部名和串值,原串不变。(8)显示。格式P回车显示所有在系统中被保持的串的内部名和串值的对照表(9)删除。格式D内部名回车删除该内部名对应的串,即赋值的逆操作。(0)退出格式Q回车结束程序的运行。二、已完成的项目及完成程度(1)赋值。STRASSIGN(SQSTRING/若是非空串,则按串长分配存储区,否则CH为NULLINTLENGTH/串长度HSTRING四、主要算法流程图ECLSRDQ主函数菜单函数的选择SRTASSIGN()赋值函数ASTREQUAL()判断相等函数CONCATENATE()串的连接函数STRLENGTH()串的长度函数SUBSRT()提

4、取子串函数REPSTR()串的替代函数DELSTR()串的删除函数QUIT()退出五、主要代码引用的头文件INCLUDEINCLUDEINCLUDE使用的结构体TYPEDEFSTRUCTCHARDATAMAXSIZE/存放串字符INTLEN/串长SQSTRING关键函数功能实现VOIDSCANFCHARCSTRR/输入字符串CSTRR100PRINTF“ENTERASTRINGN“/提示用户输入字符串INTJ0WHILECSTRRJGETCHARNJCSTRRJ0/串赋值VOIDSTRASSIGNSQSTRINGINTIFORI0CSTRI0ISDATAICSTRISLENI/判断串是否相等I

5、NTSTREQUALSQSTRINGS,SQSTRINGTINTSAME1,IIFSLENTLEN/长度不相等时返回SAME0ELSEFORI0ISLEN|JSLENRETURNSTR/参数不正确时返回空串FORKI1KSLEN|IJ1SLEN/参数不正确时返回空串RETURNSTRFORK0KSLEN|IJSLEN1/参数不正确时返回空串PRINTF“参数不正确N“RETURNSTRFORK0KTDATAIRETURN1IFSLENTLENRETURN0/STELSEIFSLENT/输出串VOIDDISPSTRSQSTRINGSTRINTIIFSTRLEN0FORI0I,应显示SDENG;2

6、E“,应显示“EQUAL”;3EABCABCD,应显示“UNEQUAL”;4IA“,应报告参数非法;5RDENGBOLUN24HUIZHI,应显示BA6DDENGBOLUN24,应显示DOLUN;(7)DFDHAGKJH36,应显示FDJH;(8)CDENGBOLUN,应显示DENGBOLUN;(9)LABCDEFG,应显示7;2程序截图3实验结果分析经检验,测试数据预期结果和测试得出结果一致。七、小结本实验是在MICROSOFTVISUALC上实现的本次实验学到了很多知识1)熟悉串的定义和串的基本操作。2)掌握顺序串的基本运算。3)加深对串数据结构的理解,逐步培养解决实际问题的编程能力。4)

7、运用到了串的链式存储结构,对链表也有了进一步提高。附录源代码INCLUDEINCLUDEINCLUDE/定义顺序串DEFINEMAXSIZE100TYPEDEFSTRUCTCHARDATAMAXSIZE/存放串字符INTLEN/串长SQSTRINGVOIDMENUSVOIDSCANFCHARCSTRRCSTRR100PRINTF“ENTERASTRINGN“/提示用户输入字符串INTJ0WHILECSTRRJGETCHARNJCSTRRJ0/串赋值VOIDSTRASSIGNSQSTRINGINTIFORI0CSTRI0ISDATAICSTRISLENI/判断串是否相等INTSTREQUALSQ

8、STRINGS,SQSTRINGTINTSAME1,IIFSLENTLEN/长度不相等时返回SAME0ELSEFORI0ISLEN|JSLENRETURNSTR/参数不正确时返回空串FORKI1KSLEN|IJ1SLEN/参数不正确时返回空串RETURNSTRFORK0KSLEN|IJSLEN1/参数不正确时返回空串PRINTF“参数不正确N“RETURNSTRFORK0KTDATAIRETURN1IFSLENTLENRETURN0/STELSEIFSLENT/输出串VOIDDISPSTRSQSTRINGSTRINTIIFSTRLEN0FORI0ISTRLENIPRINTF“C“,STRDAT

9、AIPRINTF“N“VOIDMAINMENUSCHARCSTR180,CSTR280SQSTRINGSTR1,STR2,S1,S2,S3VOIDMENUSINTI,J,M,X,YCHARNPRINTF“N“PRINTF“A赋值E判断相等C联接N“PRINTF“L求长度S求子串I子串定位N“PRINTF“R串替换P显示D删除N“PRINTF“Q退出N“SCANF“C“,GETCHARSWITCHNCASEACASEAPRINTF“A请输入需要赋值的串N“STRASSIGNSTR1,CSTR1PRINTF“输出STR1“DISPSTRSTR1MENUSBREAKCASEECASEEPRINTF“

10、E判断串STR1和STR2是否相等N“STRASSIGNSTR1,CSTR1STRASSIGNSTR2,CSTR2MSTREQUALSTR1,STR2IFM1PRINTF“EQUALN“ELSEPRINTF“NUEQUALN“MENUSBREAKCASECCASECPRINTF“输入要连接的两个串N“PRINTF“将串STR1和串STR2连接起来形成串S1N“STRASSIGNSTR1,CSTR1STRASSIGNSTR2,CSTR2S1CONCATSTR1,STR2DISPSTRS1MENUSBREAKCASELCASELPRINTF“输入要求长度的串N“STRASSIGNSTR1,CSTR

11、1PRINTF“STR1的长度为DN“,STRLENGTHSTR1MENUSBREAKCASESCASESPRINTF“提取串STR1的第A个字符开始的B个字符而产生串S2N“STRASSIGNSTR1,CSTR1INTA,BSCANF“DD“,S2SUBSTRSTR1,A,BDISPSTRS2MENUSBREAKCASERCASERPRINTF“在串STR1中,将第P个字符开始的Q个字符构成的子串用STR2替换,形成S3N“STRASSIGNSTR1,CSTR1INTP,QSCANF“DD“,STRASSIGNSTR2,CSTR2S3REPSTRSTR1,P,Q,STR2DISPSTRS3MENUSBREAKCASEDCASEDPRINTF“从串STR1中删去第I个字符开始的长度为J的子串,形成串S3N“STRASSIGNSTR1,CSTR1INTX,YSCANF“DD“,S3DELSTRSTR1,X,YDISPSTRS3MENUSBREAKCASEQCASEQBREAK

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。