数据结构串应用及其基本操作课程方案实验报告_第1页
数据结构串应用及其基本操作课程方案实验报告_第2页
数据结构串应用及其基本操作课程方案实验报告_第3页
数据结构串应用及其基本操作课程方案实验报告_第4页
数据结构串应用及其基本操作课程方案实验报告_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、数据结构课程设计设计题目:吊地应用及其基本操作院 系学号年级专业姓名成绩1课题设计目地:(1) :掌握串地基本存储结构;(2) :掌握串地基本运算及其实现;2、课题设计噫义:通过此次对于串及其基本操作地课程设计,更深层次地 了解串地基本概念、特征,掌握串地基本存储结构、基本运算及其实 现.根课题设计据课程设计地目地和基本要求,注意一些容易发生错误地问题,从而进一目地与步地认真分析问题、总结结论和经验,理解设计地思想和构思.设计意义联系到生活上地实际问题,培养课程设计地能力及思想构思指导教师:冃录第一章:课程设计地H地、基本要求及其解析0b5E2RGbCAP1. 1课程设计地U地:OplEanq

2、FDPw1.2课程设计要求:0DXDiTa9E3d1. 3课程设计题LI解析:ORTCrpUDGiT第二章:课程设计内容O5PCzVD7HxA2. 1程序设计代码:OjLBHrnAILg2. 2 :程序设计地基本思想:1 lxHAQX74J0X2. 3程序运行结果:14LDAYtRyKfE第三章:课程设计地优点及遇到地问题18zZz6ZB2Ltk3. 1 :课程设计地优缺点:18dvzfvkwMIl3.2 :课程设计过程中遇到地问题:ISrqynl-lZNXI第四章:总结19Emxvx0t0co4. 1:个人小结:19sixE2yXPq5 4. 2:参考文献:206ewMyirQFL第一章:课

3、程设汁地忖地、基本要求及其解析1.1课程设计地目地:(1):掌握审地基本存储结构(2):掌握审地基本运算及其实现.1.2课程设计要求:(1):将上机程序全部调试通过.(2):结合程序分析运行结果.1.3课程设计题目解析:散也比较多,所以就要用到多个函数把这个整体地课程设计划分成多个模块来进行 每个 函数对应一个功能.在主函数中,用一个菜单,就可以将原来地已分模块地函数系统地进 行检验及操作.kavU42VRUs第二章:课程设计内容2. 1程序设计代码:#in clude目in cludene maxsize 61 /*假设串i可能地最大氏丿芟是typedef structJseqstri ng

4、: seqstri nz *s:void strcats 0/* 串地联接 */(seqstring strl32, str232:printf(请输入俩串字符串:”):scan fstrl, str2):strcat(strl,str2):puts(strl):void strlens 0/ * 串地长度/(seqstri ng str32:int i:printf(请输入一串字符串:”);scan f (W, str):i=strle n( str):Mi W此字符串地串长为i);void strcmps ()/*比较串地大小/seastri ng strl32, str232;print

5、f (请输入两串字符串:sea nf(*%s%s*i strl, str2):if(strcmpCstrl, str2)0)prin tf fl*):if (strcmpCstrl, str2)=0)prin tf (*0*):if (strcmpCstrl, str2) curle n):printf(,Z请输入要插入地字符串地长度宀scan ft & t-curle n):for(j=scurle n_l:j=i:j_)s_chj+t_curle n=s-chj:for(k=0, j=i;t-chk!= 0* :k-*, j-+)s-chj=t-chk:s-chscurle n*tcurl

6、e nJ =*0!:s-curle n=scurle n*tcurle n: print彳插入后地字符串为:”):puts(sch):int k:Drintf (请输入原字符串和其长度Q :scan 宜 & s-curle n):for(k=i+j-l:s-chDc != 0 :k-*)s_ch k j =s_ch k:s-chk-j= 0;s-curle n=kj:prmtf(J除后地字符串为Q:/*串地定位拿/puts(sch): int inde:(seQstring *s, seQstring *t)int i=0,j=0:printf(”请输入主串和子串地串长:”):sea & s-

7、curle n. & t-curle n): printfC请输入主串和子吊:sea nf (七sW, s, t):while(icurle n)&4(jcurle n)ifelsej=0:if (j=tcurle n)printf(n 匹配成功!):elseprintf(n匹配失败! 5int k=0,1, n, m, p;Mintf (请输入主字符串地长度:);sea&s-curle n):prmtf(n#输入要置换地字符串地长度Q;sea nf & tcurle n):Drintf (请输入上字符串和要置换地字符串:”):scan f (七sW, s, t):if (j=t-curle

8、n)for(k=0;t-chk != 0 :k-+)s-chi-l=t-chk:s-curle n=scurle n*tcurle nj:s-chscurle “= 0:printfC置换后地字符串为:):puts(s-ch):elseif(jtcurle n)while(s-chll!= 0)z=j-t-curle n:s-chl-nrl=s-chl-l:Iffor(k=0:t-chk != 0* :k*+)s-curle n=scurle n*tcurle nj:s-chs-curle n= 0 :printf (”置换后地字符串 为:”):puTs(s_ch):elseif(jcurle

9、 n)p=n=scurie n:m=-curle nj;s-ch nm_l=s_ch n-l:s-chi-l=t-chk:s-curle n=pt-curle nj:s-chs-curle n=? 0:printfCfi换后地字符串为2;puts(s_ch):void mai n()seqstring s, t:whiled)printfCo :联接nl:求串长n2:串比较n3:串复制54:插入n5:删除n6:子串定位n7:置换子串 )OYujCfmUCwscan f (W, &i): switch (i)case 0:strcats():break: case l:strle ns():br

10、eak: case 2:sTrcznps() :break: case 3:strcpys() :break;case 4:printf (请输入插入地位置:):scan f &i):in sert (&s,i, &t):break;case 5:printf请输入删除地位置和个数:sea nf (*%d%d* &i, &j):deletes(&s, i, j):break:case 6:i ndex (&s. k t):break:case 7:printf(*请输入置换地位置和个数:”):sea nf (*%d%d* &i, &j):replace(&s, i, j, &t):break;

11、printf (*nO :停止nl:继续 nw ):scan f (Hd, &i):2.2 :程序设计地基本思想:(对于串及其基本操作中,程序被分割为很多地模块所以以下地程序设计业分成好儿个方面来一一阐述)1) .求字符串地联接:在该函数中,strcat (strl , str2 )就是将串str2紧接着放在$ strl地串值地末尾,组成一个新地串strl.最后所得地新地strl即为所求地原来地 两个字符strl和Strl地联接后地结果,输出即是.eUtsSZQVRd2) .求字符串地串长:在该函数中,要先定义一个整形变量 i, strlen (str )表示字 符串str地长度,它是一个整形

12、函数.通过函数strlen (str )来算出字符串地长度,然 后赋值给整形变量i输出,从而i地值即为所求地字符吊地长度.sQsAEJkW5T3) .比较两个字符串地大小:在该函数中,strcmp (strl , str2 )是一个函数,它地 功能是比较两个串strl和str2地大小,通过辻语句地判断函数strcmp (strl , str2) 地函数值大小,其中函数值小于、等于和大于0时,分别表示strlStr2 ,其对应地输出结果分别为-1、0、1. GMslasNXkA4) .串地复制:在该函数中,首先分别输入两串字符$ strl和str2,通过函数strcpy 输出即为复制后地结果.T

13、lrRGchYzg5) .求字符串地插入:该函数中有三个形参,两个是字符串S和t, 一个是整形形参i.即把字符串t插入到s地第i个元素之后.在函数中,定义两个个整形变量j、k,其中 &scurlen和&t-curlen分别指原字符串和要插入字符吊地长度.用一个for循 环,for (j=s-curlen l;j=i ;j),满足循环条件地要进行地操作时把s-chj赋值给schj+tcurlen,就是让sch中空出等于&t. curlen 地长度地空间, 好让 t 可以插入.下面再用一个 for 循环” for(k=0, j=i;t-chk!= 0J ;k+, j+), 再把t-chk赋值给s-

14、chj;这样地把t插入到了 s中.最后,给 s-ch s-curlen+tcurlen赋值一个0,这时地 sch scurlen+tcurlen 就是一个新地字符串,然后把schscurlen+t-curlen再赋值给s-curlen即可 得到所求地新地字符串.TEqScWLZNX6) .求审地删除:该函数有三个形参,一个是字符串S,两个是整形形参i和j,在函 数中定义一个整形变量k,输入原字符串和其长度&s-curlen,函数中用for循环, ,for(k=i+j-l;s-chk !=,0J ;k+),把 s-chk赋值给 s-chk-j,既用覆盖地方 式删除从第i个元素开始连续j个元素,最

15、后把0赋值给s-chk-j,再把k-j赋 值给s-curlen. s-ch 就是所求地删除从第i个元素开始连续j个元素后地新地字符串.lzq7IGfO2E7) .子串地定位:这个函数有两个形参,s和t,在函数内部,还要定义两个整形变量i=0 和 j二0.用 while 语句while(icurlen)& (jcurlen) ” ,满足条件 后进行地操作是检验对应地s和t地元素是否相等,相等时就i+, j+,用i减去t地 串长即为t作为子串在s中地定位位置.不相等时,就用i减去j加上1赋值给i, j二0, 往下扫描时,就从t地笫一个兀素再接着扫描.zvpgeqjlhk8) .求字符串地置换:这个

16、函数中有四个形参,两个字符串s和t,两个整形形参i和j,在函数内部还要定义五个整形变量 20、I、n、m p.首先把i+j赋值给1 ;通 过输入输入主字符串和要置换地字符串地长度、主字符串和要置换地字符串s和t.先要判断j和将要被置换地字符串地串长关系,如果刚好相等,就让t从第一个元素开始,s从第第i个元素开始,一一赋值.如果t地串长比较大,则用一个for循环, for” (k=s-curlen;k=i+j-l;k+) w , sk赋值给 sk-j+t-scurlen,这样剩余地 空间刚好可以用来存放t地,同样地,如果t地串长比较小,同样用以for循环,” for (k=i+j-1, m=i;

17、 s k !=,0? ;k+, m+) , sk赋值给 s m+t-curlen-l, s剩余地空间也刚好用来存放t地.然后,把t中地元素对应地赋值给s.最后,在s地最后一个 元素后赋值一个0,这时地S,就是t置换后地新地字符串.NrpoJac3vl9) .主函数:在主函数中,因为要最多输入两个字符串,所以要先定义两个字符串S和t有地主函数需要用到整形地变量,最多是两个,所以也要定义两个整形变量k和m函数中,有很多地功能不同地函数,这样就要求验证很多次,所以在这里我们考个人收集整“一仅供参考学习.虑用菜单来实现用一个while循环,循环地条件为永真,这样当做完一个函数地验 证 时,系统就会自动

18、让你接着选择.在while循环下,输入一个数字.每个数字代表不同地 功能.然后用一个switch语句,不同地case对应不同地函数,如:case (0)就 可以代 表求字符串地串长.lnowfTG4KI23程序运行结果:(1)$地联接运行结果如下图1:g *C: Docueiits and Sett ingsYAdnini str at or桌 ililDebxient s and Sett ingsAdMinist rat or桌面Debug王玉玲.exehk帝复制地运行结果如下:SBBW两的入后立 4?1-Prats any key to contixxue(5) 串插入地运行结果如下:e

19、ze插建汶tu氏 v庆 rd 存X受? ZX 皐:5 粽;室用 匸勾立* 皐勺曼守 入-T蒂 二 AJ2Al jPress any key to continueLd(6) 串地删除地运行结果如下:LdS和为的笫删簡入入(7) 子串疋位地运行结果如下:g *C: Docueiits and Sett ingsYAdninistrat or桌il Debug王玉玲.eze的串长汚3 study etii请请请注奂 FdA人叫1I 勺 FfJ笫三章:课程设讣地优点及遇到地问题3.1:课程设计地优缺点:(1).优点:对于串中地简单地基本操作儿乎都可以实现对于串地操作包括了联接、 求串长、比较串地大小

20、、插入、删除、子串地定位、和串地置换.而且在最后地主函数 中,应用了菜单,使得对于程序地检验变得简单,容易执行.fjnFLDaK。(2)缺点:对于关于串地某些具体应用,如比较串地大小,仅仅只能比较两个,女口 果是多个串地比较地话,则不能应用即只能较简单地应用,应付不了较复杂地要求.tfnNhnE6e53.2 :课程设计过程中遇到地问题:(1)在进行串地联接时应注意,联接是把后面地一个串联接到前面地串后,所以联 接是 不满足交换地.(2 )在比较两个串地大小时,当比较开始时,两个串元素不为空,比较继续进行,S大于t, S小于t,但除此之外,并不能说S就等于t 了,这个时候还要考虑此时地S和 t中

21、元素是不是已经为0了,如果是,则说明两个串自此之前是相等地,这时只要比 串长就可以了 .哪一个地串长大,哪一个就比较大.如果仍然相等,这时才能说明S和t是相等地.HbmVN777sL(3)对于有些串地形参,有地不需要规定空间,但有地必须给定空间 如审地联接,把 一个串插入到另一个串地操作等因为如果不给定空间大小,这时系统就会根据实参地大 小自动分配空间,这时若想在这个串中增加字符,空间就会不够.V71URB8HS(4)在子串地定位时,扫描地串中地某一个元素与子串中地第一个元素相同,接着往下 扫描,若都相同时,才可以说明串中出现地子串中地笫一个元素地位置是子串位置但如果 后面地元素有不同地,则子

22、串中地扫描必须回到第一个元素地位置开始重新扫扌苗.83ICPA59W9(5)在进行置换时,重点要考虑是用来置换地串和它所要置换地一串地字符地长度地 关系,如果刚刚相等,则置换可以简单顺利地进行但如果不相等时,就要根据后面用来 置换地串地长度来具体解决.mZkklkzaaP(6)在串地联接时,在串地最后注意不能忘记赋值0,因为每个字符串地结果标志 都是0.(7)最后就是在主函数中,应用菜单,使检验变得简单.第四章:总结修改补充,才能使程序更加健壮和完整,才能做出一个更加实用地软件2MiJTy0dn本次地课程设计经过自己地努力和老师地帮助,顺利地完成了程序设计要求地基本 内容和要求,对自己地编程水

23、平有了很大程度地提高,让我们继续努力,努力做一个优秀 地软件设计者.gliSpiueTA4. 2:参考文献:11唐策善、李龙潮、黃刘生等编著数据结构-用C语言描述.高等教育出社2孙家启、万家华、刘运等编著.C语言程序设计教程.合肥工业大学出版社版权申明版权本文部分内容,包括文字、图片、以及设计等在网上搜集整理为个人所有This article in eludes someparts, in cludi ng text, pictures, anddesig n. Copyright is pers onal own ershipuEhouiYfmh用户可将本文地内容或服务用于个人学习、研究或欣

24、赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律地规定,不得侵 犯本网站及相关权利人地合法权利除此以外,将本文任何内容或服务用于其他or non -profit purposes, but at the same time, they shall abide by the provisi ons of copyright law and other releva nt laws, and shall not infringe upon the legitimate rights of this website and its releva nt obligees In a

25、dditi on, whe nany content or service of this article is used for other purposes, written permission and remun erati on shall be obta ined from the pers on concerned and the releva nt obligee wwghwvvhPE转载或引用本文内容必须是以新闻性或资料性公共免费信息为使用目地地 合理、善意引用,不得对本文内容原意进行曲解、修改,并自负版权等法律责 任.asfpsfpi lkbe reas on able and good-faith citati on for the use of n e

温馨提示

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

评论

0/150

提交评论