C++课程设计
姓名:某某某
班级:计112
学号:
指导教师:
一:定义一个string类,实现其相关功能。
1.实验要求及目的:
a.设计一个字符串类,要求满足常见字符串处理功能。
b.可参考VC++安装目录include下的string.h头文件中关于字符串类的定义。 c.成员函数的实现不允许使用系统提供的字符串处理功能。 d.写个测试程序测试每个成员函数。
2.实验环境:
PC机,VC++6.0。
3.实现过程:
a:首先读懂题目要求,知道自己所要实现的是什么。
b:参考VC++安装目录include下的string.h头文件中关于字符串类的定义,选择几个字符串处理的基本功能,并且指导实现的原理及要求。 c:设计一个关于字符串的string类,并且定义各所属的成员函数。 d:设计实现各个成员函数,并写一个测试主函数测试每一个成员函数是否能够实现其功能。
4.心得体会:
通过本次的实验巩固了我对字符串的一些基本功能的理解和运用,同时对于一些原本比较模糊的概念定义有了更深的认识:如字符串的连接以及在一串字符中查找特定的字符等等。
当然,通过本次试验然我对一些小的概念如:flag(判断)等有了较深的了解。 对于本次的实验还有许多的不足之处如:没有按照要求的去用指针去实现,以及没有用友元函数等等都有很多不足。
5.实验代码:
#include
private: char str[N]; int len; public: string(char *p) {
copy(str,p); }
string (){};
void copy(char *s1,char *s2);
void copy(char *s); void str_set() {
cin>>str; }
void str_out() {
cout< void connect(char *s); void swap(char *s1,char *s2); int length (); int find (char s); int compare(char *s); }; int strlen(char *s) { int i=0; while(s[i++]!='\\0'); return i-1; } void pointout() { char yorn; cout<<\是否退出系统?:\ cout<<\退出,n=不退出,继续。 \ cin>>yorn; cout< if(yorn=='y'||yorn=='Y') flag=1; else if(yorn=='n'||yorn=='N') { flag=0; cout<<\请再次输入你所选择的功能序号\\n\} else { flag=0; cout<<\输入有误,请重新输入\ } } int string::length() { int i=0; while(str[i++]!='\\0'); return i-1; } int string::find (char s) { int k=length(); for(int i=0;i void string::copy(char *s1,char *s2) { int i=0; while(s2[i]!='\\0') { s1[i]=s2[i]; i++; } s1[i]='\\0'; } void string::copy(char *s) { int i=0; while(str[i]!='\\0') { s[i]=str[i]; i++; } s[i]='\\0'; } void string::swap(char *s1,char *s2) { copy(str,s1); copy(s1,s2); copy(s2,str); } int string::compare(char *s) { int i=0; int k1,k2,t; k1=strlen(s); k2=length(); if(k1 t=k1;k1=k2;k2=t; } for(i=0;i if(s[i] else if(s[i]>str[i]) return -1; } return 0; } void string::connect(char *s) { int i=0,k=length(); while(s[i]!='\\0') { str[k]=s[i]; k++; i++; } str[k]='\\0'; } void menu() { cout<<\本系统的五个功能\ cout<<\进行两个字符串的连接\\n\cout<<\复制原有的一串字符\\n\ cout<<\查找一串字符里的一个特定字符\\n\cout<<\交换两串字符\\n\ cout<<\比较两串字符的大小\\n\ cout<<\请输入你想要执行的功能:!\}
相关推荐: