C++课程设计字符串类的设计_第1页
C++课程设计字符串类的设计_第2页
C++课程设计字符串类的设计_第3页
C++课程设计字符串类的设计_第4页
C++课程设计字符串类的设计_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、目 录1 题目内容及设计要求12 总体设计12.1 总体功能框图12.2 类的设计说明22.3 主要算法流程图33程序清单及注释54运行结果与分析55总结56参考文献51 题目内容及设计要求 字符串类的设计定义字符串类(string),包含存放字符串的字符数组和字符串中字符的个数。(1)字符串的输入与赋值;(2)字符串的运算:连接、复制、查找、交换、求子串、比较;(3)字符串的输出:对字符串的输入和输出都用文件实现。2 总体设计2.1 总体功能框图输入几组字符串,字符串的输入和输出都用文件实现,对于输入的字符串,进行相应的连接、复制、查找、交换、求子串、比较等字符串的运算;以直接人性话的操作界

2、面展现出来,当执行字符串的相应运算时,调用程序中相应的对应部分的函数模块进行操作。总体框图:字符串类的设计 输入字符串.对字符串连接对字符串求子串求子串比较对字符串交换对字符串查找输出运算后的结果. 图2-1总体框图2.2 类的设计说明 string-length:int-str:char+string(in s:char,in l:int)+string()+strcpy(in z:char):void+strcat(in z:char):void+compare(in b:char):void+substring(in start:int,in end:int):char+exchange

3、(in e:char):void图2-2类string的说明图2.3 主要算法流程图输入n选择文件中第几个字符串中第几个字符串开始str1.exchange(read2(m)write(str1.str)write(str1.str)str1.substring(m,n)复制后的字符串:write(str1.str)compare(read2(m)write(str1.str)strcat(read2(m)write(str1.str)strcpy(read2(m)write2(max)string:menun()switch(k)交换后的字符串:求子串后的字符串:比较后的字符串:连接后的字符

4、串:breakbreakbreakbreakbreakj!=0&cink yreturn 0 n结束图2-3主要算法流程图模块功能流程图:开始输出:strbreak开始strcat(a,z)strcpy(a,str)strcpy(temp1,str)strcpy(temp2,e)输出:strbreak结束结束开始图2-4连接模块流程图 图2-5交换模块流程图 in.open结束!in返回null yk n tin.getline()k-return 图2-6 read功能模块图3 程序清单及注释#include#includeusing namespace std;char s12;char

5、s120;const int max=5;class stringpublic:char *str;int length;static void menun() cout * endl; coutt* 欢迎进入字符串设计 *tendl;cout * endl;cout 1 enter ,执行字符串复制!endl;cout 2 enter ,执行字符串链接!endl;cout 3 enter ,执行字符创比较!endl;cout 4 enter ,执行字符串求字串!endl;cout 5 enter ,执行字符串交换!endl;cout 0 enter ,退出.endl;string(char

6、*s,int l)/构造函数str=new charstrlen(s)+1;strcpy(str,s);length=l;coutconstruct string!n;string()/析构函数delete str;void strcpy(char *s)/复制 char *x; x=new charstrlen(s)+1;strcpy(x,s);deletestr;str=x;length=strlen(x);coutstrendl;void strcat(char *z)/连接char *a;a=new charstrlen(z)+length;strcpy(a,str);strcat(a

7、,z);str=a;coutstrendl;void compare(char *b)/比较coutstr compare b is:strcmp(str,b)endl;char * substring(int start,int end)/求子串char *newstr=new charend-start+1;int i,j=0;for(i=start;iend;i+,j+)newstrj=stri;newstrj=0;return newstr;void exchange(char *e)/交换char *temp1,*temp2;temp1=new charlength;temp2=ne

8、w charstrlen(e)+1;strcpy(temp1,str);strcpy(temp2,e);str=temp2;e=temp1;couteendl;coutstrendl; void write(char s110)ofstream out;out.open(f:filej.text,ios:out|ios:ate|ios:app); if(!out)coutcan not open file !endl; outs1n; out.close(); char * read() ifstream in; in.open(f:filej.text,ios:in); if(!in)cou

9、tcan not open file !endl;return null; int k=1; while(k) in.getline(s,12);k=0; in.close(); return s; char * read2(int k) ifstream in; in.open(f:filej.text,ios:in); if(!in)coutcan not open file !endl;return null; while(k) in.getline(s,12);k-; in.close(); return s; void write2(int n)ofstream out;out.op

10、en(f:filej.text,ios:out|ios:ate|ios:app); if(!out)coutcan not open file !s1; outs1n; n-; coutt* 文件创建成功! *tendl; out.close(); int main() coutnc+课程设计:字符串类的设计n; cout 设计人:钟以军n;cout 学号:0903050434n;cout*n;cout*n;coutn开始创建文件请输入字符串:n;write2(max);string:menun();coutm;cout建立类的对象str1:n;string str1( read2(m),12

11、);coutstr1.strendl;int k;int j=1;cout请选择执行什么操作n;while(j!=0&cink)switch(k)case 1:coutm; str1.strcpy(read2(m);write(str1.str); cout复制后的字符串:; coutstr1.str endl;break; case 2:coutm; str1.strcat(read2(m); write(str1.str); cout连接后的字符串:str1.strendl;break; case 3:coutm; str1.compare(read2(m);break; case 4:c

12、out下面开始求子串n; int m,n; coutmn; cout所求子串为: ; coutstr1.substring(m,n)endl;break; case 5: coutm;str1.exchange(read2(m) ;break; case 0: j=0; cout谢谢使用,退出字符串设计.n; break;return 0; 4 运行结果与分析图4-1基本操作界面图4-2字符串创建成功图4-3实现字符串的复制图4-4实现字符串的链接图4-5实现字符串的比较图4-6实现字符串的求子串 图4-6实现字符串的交换运行结果符合题目的要求,实现了对字符串的连接、复制、查找、求子串、比较、交换等操作。5 总结 通过对这一课题的设计和实现,我对micosoft visual c+环境进行了深一步的了解,并逐渐开始熟练micosoft visual c+环境的工作界面,以及对每一个快捷键的熟悉。并认识到,熟悉这些快捷键,极为便捷编写程序,但是还要更加熟悉。编程时要养成良好的风格,注意相同内容的缩进和对齐。这样做,可以使程序代码出错的情况下,可以快速并且便捷的查找到错误的行,利于很好的修改。通过这次编程我们深深的感受到对代码的变量命名,代码内注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有

温馨提示

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

评论

0/150

提交评论