版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
串的基本操作的编程实现数据结构双语班DATASTRUCTUREBILINGUAL-TEACHINGCLASS实验报告003批改单ExperimentReportCommendatoryBill指导老师评语COMMENDATORYOFTHETEACHER签字:串基本操作的编程实现2006-2007(2)学期T523-1班学号:33姓名:王娟指导老师:马春江时间:2007.04.19【实验目的】内容:串基本操作的编程实现要求:串基本操作的编程实现(2学时,验证型),掌握串的建立、遍历、插入、删除等基本操作的编程实现,也可以进一步编程实现查找、合并、剪裁等操作,存储结构可以在顺序结构或链接结构、索引结构中任选,也可以全部实现,用菜单进行管理。也鼓励学生利用基本操作进行一些应用的程序设计。【实验性质】验证性实验(学时数:2H)【实验内容】可以只完成基本的功能演示程序。也可以通过一个较为实用的系统下体现各种操作的作用,如可以开发一个文本统计程序,要求如下:编写程序,进行字符串统计系统的设计 cout<<"空串"<<endl; else {for(inti=0;i<s->len;i++) { cout<<s->ch[i]; }cout<<endl;}}voidcreate(strtype*s)//将普通字符串赋给串{ charb,string[Maxlen]=""; intk=0; cout<<"请输入一个字符串(以#结束)"<<endl;for(;;) { cin>>b; if(b=='#')break; string[k]=b; k++; } char*str=string; strcpy(s->ch,str); s->len=strlen(str);}intlength(strtype*s)//求串的长度{ returns->len;}voidcopy(strtype*s1,strtype*s2)//串的复制{ inti; for(i=0;i<s1->len;i++) s2->ch[i]=s1->ch[i]; s2->len=s1->len; s2->ch[s2->len]='\0';//添加字符串结束符}voidsubs(strtype*s,intpos,intn)//求子串{ inti; strtypess; strtype*sub=&ss; if(pos+n-1>length(s))//参数不正确 cout<<"子串过长!"; else { for(i=pos-1;i<pos+n-1;i++) sub->ch[i-pos+1]=s->ch[i]; sub->len=n; sub->ch[sub->len]='\0'; disp(sub); }}intconcat(strtype*s,strtype*t)//连接两个串{ inti; if((s->len+t->len)>Maxlen) { cout<<"连接失败!"<<endl; return0; } for(i=0;i<t->len;i++) s->ch[i+s->len]=t->ch[i]; s->len=s->len+t->len; s->ch[s->len]='\0'; disp(s); cout<<"连接成功!"<<endl; return1;}intins(strtype*s,strtype*t,inti)//插入一个子串{ intj; if(s->len+t->len>Maxlen) return0; for(j=s->len-1;j>=i-1;j--)//i之后的所有元素后移t->len个位置 s->ch[j+t->len]=s->ch[j]; for(j=0;j<t->len;j++) s->ch[j+i-1]=t->ch[j]; s->len=s->len+t->len; s->ch[s->len]='\0'; return1;}strtypereplace(strtype*s1,strtype*s2,inti,intj)//串的等长替换{ strtypes; intn,k; if(i+j-1<s1->len) { for(n=0;n<i-1;n++) s.ch[n]=s1->ch[n]; for(n=0;n<s2->len;n++) s.ch[i+n-1]=s2->ch[n]; s.len=i+s2->len-1; for(n=s.len,k=i+j-1;k<s1->len;n++,k++) s.ch[n]=s1->ch[k]; s.len=n; s.ch[s.len]='\0'; s1=&s; disp(s1); } else { s.ch[0]='\0'; s.len=0; } returns;}intdel(strtype*s,intpos,intn)//删除一个子串{ inti; if(pos+n>s->len) {cout<<"长度过长,删除失败!"<<endl;return0;} for(i=pos+n-1;i<s->len;i++) s->ch[i-n]=s->ch[i]; s->len=s->len-n; s->ch[s->len]='\0'; return1;}///////////////////////////////////////////////////////////////////////////////////////////////////////////////菜单///////////////////////////////////////////voidmenu(){ char*p[]={"", "", "", "", "", "┏━━┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳━━┓", "┃^_^┠数┨┠据┨┠结┨┠构┨┠程┨┠序┨┠设┨┠计┨^_^┃", "┃┗┷┛┗┷┛┗┷┛┗┷┛┗┷┛┗┷┛┗┷┛┗┷┛┃", "┣━━━━━━━━任意进制数据的相互转换━━━━━━━━━┫", "┃程序功能:┃", "┃┃", "┃本程序实现字符串的基本操作。┃", "┃┃", "┃0.退出程序。(按其他键继续)┃", "┃┃", "┃┃", "┃┃", "┃OO════∩════OO指导老师:马春江┃", "┃湖北汽车工业学院作者:王娟┃", "┃▁╭▅▆▇□□█▇▆▅▄▃▂▁(╳)█╮QQ:550361098┃", "┃╰═▃_电气工程系∠════▔▔▔┃", "┃*:-.,,.-:*``*:-.,,.-:*``*:-.,,.-:*``*:-.,,.-:*,,┃", "┃╭╧╮╭╧╮╭╧╮╭╧╮╭╧╮*:-.,,.-:*,、☆*:-.,┃", "┃║双║║语║║班║║天║║地║★*:-.,┃", "┃└﹏┘└﹏┘└﹏┘└﹏┘└﹏┘┃", "┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛" }; inti,j; for(i=20;i>=0;i--) { system("cls"); for(j=i;j<=25;j++) { cout<<"\t"<<p[j]<<endl; } Sleep(150); }}voidmenu2(){ char*p[]={"┏━━┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳━━┓", "┃^_^┠数┨┠据┨┠结┨┠构┨┠程┨┠序┨┠设┨┠计┨^_^┃", "┃┗┷┛┗┷┛┗┷┛┗┷┛┗┷┛┗┷┛┗┷┛┗┷┛┃", "┣━━━━━━━━字符串的基本操作实现━━━━━━━━━┫", "┃程序功能:┃", "┃┃", "┃本程序实现字符串的基本操作┃", "┃┃", "┃0.退出程序。(按其他键继续)┃", "┃1.清屏┃", "┃2.求串的长度┃", "┃3.串的复制┃", "┃4.求子串┃", "┃5.连接两个串┃", "┃6.串的插入操作┃", "┃7.串的等长替换┃", "┃8.串的删除操作┃", "┃9.输出一个串┃","┃┃", "┃┃", "┃OO════∩════OO指导老师:马春江┃", "┃湖北汽车工业学院作者:王娟┃", "┃▁╭▅▆▇□□█▇▆▅▄▃▂▁(╳)█╮QQ:550361098┃", "┃╰═▃_电气工程系∠════▔▔▔┃", "┃*:-.,,.-:*``*:-.,,.-:*``*:-.,,.-:*``*:-.,,.-:*,,┃", "┃╭╧╮╭╧╮╭╧╮╭╧╮╭╧╮*:-.,,.-:*,、☆*:-.,┃", "┃║双║║语║║班║║天║║地║★*:-.,┃", "┃└﹏┘└﹏┘└﹏┘└﹏┘└﹏┘┃", "┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛" }; inti; system("cls"); for(i=0;i<=28;i++) { cout<<"\t"<<p[i]<<endl; }}////////////////////////////////////////////////////////////////////////////////////////////////////////////main//////////////////////////////////////////////////voidmain(){ menu(); strtypet1,t2; strtype*s1=&t1,*s2=&t2; charch,str1[Maxlen]="",str2[Maxlen]=""; inti,j=0,k=0,n,pos; cin>>ch; if(ch=='0')exit(0); menu2(); char*str01=str1,*str02=str2; cout<<"字符串的赋初值"<<endl;create(s1); disp(s1); cout<<endl<<"赋初值成功"<<endl; for(;;) { cout<<endl<<"请选择:"; cin>>ch; switch(ch) { case'0': exit(0); case'1': system("cls");menu2();break; case'2': cout<<"求串的长度"<<endl;cout<<"长度是:"<<length(s1); break; case'3': cout<<"串的复制"<<endl;copy(s1,s2); disp(s2); cout<<"复制成功!"<<endl; break;case'4': cout<<"求子串"<<endl; cout<<"输入位置"<<endl; cin>>pos; cout<<"输入长度"<<endl; cin>>n;subs(s1,pos,n);break; case'5': cout<<"两个串的连接"<<endl; create(s2); disp(s1); disp(s2); concat(s1,s2);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中语文古诗词诵读《燕歌行并序》(同步教学课件)
- 2024届上海市宝山区建峰附属高中高考压轴数学试题
- DB11-T 2105-2023 特定地域单元生态产品价值核算及应用指南
- 5年中考3年模拟试卷初中道德与法治九年级下册07中考道德与法治真题分项精练(七)
- 2024-2025学年高考联考语文试题及参考答案
- 安全知识课件教学课件
- 阀门配件生产线技改项目可行性研究报告写作模板-备案审批
- 《凝铸时光》课件 2024-2025学年湘美版(2024)初中美术七年级上册
- (统考版)2023版高考化学一轮复习课时作业35分子结构与性质
- DB11-T 1901-2021 政务服务事项编码及要素规范
- 紧固件国家标准目录
- 绿色(环保)施工方案(DOC)
- 《腹部CT》PPT课件(完整版)
- 中小学智慧课堂教学评价方案
- 宝钢热镀锌板质保书(共1页)
- 十二水口吉凶断法
- 第二章回归模型PPT课件
- 玻尿酸培训资料PPT幻灯片课件
- 服装厂作业指导书
- 退伍军人登记表.doc
- 工电联整管理手册
评论
0/150
提交评论