课程设计报告.docx

上传人:b****6 文档编号:7707673 上传时间:2023-01-25 格式:DOCX 页数:11 大小:22.44KB
下载 相关 举报
课程设计报告.docx_第1页
第1页 / 共11页
课程设计报告.docx_第2页
第2页 / 共11页
课程设计报告.docx_第3页
第3页 / 共11页
课程设计报告.docx_第4页
第4页 / 共11页
课程设计报告.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

课程设计报告.docx

《课程设计报告.docx》由会员分享,可在线阅读,更多相关《课程设计报告.docx(11页珍藏版)》请在冰豆网上搜索。

课程设计报告.docx

课程设计报告

 

《字符串类》

程序设计基础课程设计报告

 

专业:

电子信息工程

班级:

2007级1班

学号:

2006081936

姓名:

指导教师:

二OO八年七月二日

目录

 

1课程设计目的2

2课程设计题目描述和要求2

2.1课程题目2

2.2课程要求2

2.3流程图2

3.课程设计报告内容3

3.1字符串类的定义3

3.2字符串的处理3

3.3控制面板的设置3

3.4主函数4

4.源文件4

5.课程设计总结8

6.参考书目:

8

 

1课程设计目的

通过课程设计了解自己通过一学年的学习C++这门课到底学的怎么样,验证自己的学习成果,并进一步发现自己的不足并且改正.

2课程设计题目描述和要求

2.1课程题目

字符串类(数组型)

2.2课程要求

计算字符串的长度,初始化字符串,字符串比较,查找子串(从头开始或者从尾开始),字符串连接等基本功能。

2.3流程图

3.课程设计报告内容

3.1字符串类的定义

为设计的字符串(数组型)定义类:

classCstring

{

public:

Cstring();

Cstring(char*s);

voidsetValue(char*s);

voidsetValue(strings);

voidsetValue(Cstrings);

intgetLength();

intstrComp(Cstrings);

intsubSearch(Cstringsubstr);

intstrCon(Cstrings);

stringgetValue(){returnstr;}

private:

stringstr;

intlength;

};

为字符串类功能的实现定义的构造函数、成员函数和变量。

3.2字符串的处理

Cstring:

:

Cstring(){

str="";

length=0;

}

Cstring:

:

Cstring(char*s){

str=newchar[strlen(s)+1];

strcpy(str,s);

length=strlen(s);

str[length]='\0';

}对字符串的初始化为空并初始化为指定的字符数组。

3.3控制面板的设置

voidstate(){//提示说明

cout<<"**********字符串功能测试**********"<

<<"0.提示"<

<<"1.初始化"<

<<"2.计算长度"<

<<"3.字符串比较"<

<<"4.查找子串"<

<<"5.字符串连接"<

<<"6.退出"<

<<"**********************************"<

<

}

在控制面板中对各个功能简单的数字输入实现各功能的连接。

voidCstring:

:

setValue(char*s){//设置字符串

str=s;

length=0;

while(*(s++)!

='\0'){

length++;

}

}

voidCstring:

:

setValue(strings){

str=s;

length=0;

while(s[length++]!

='\0');

length--;

}

voidCstring:

:

setValue(Cstrings){

str=s.getValue();

length=s.getLength();

对Cstring类员函数进行定义实现对字符串的设置功能.

3.4主函数

整个主函数是对操作面板进行的操作,在主函数中定义两个string型字符串变量,用case语句中用cin语句输入两个字符串对字符串初始化,并用case语句中通过对类的成员函数和构造函数的调用实现计算字符串的长度,字符串比较,查找子串(从头开始或者从尾开始),字符串连接等基本功能。

4.源文件

#include

#include

usingnamespacestd;

classCstring

{

public:

Cstring();

Cstring(char*s);

voidsetValue(char*s);

voidsetValue(strings);

voidsetValue(Cstrings);

intgetLength();

intstrComp(Cstrings);

intsubSearch(Cstringsubstr);

intstrCon(Cstrings);

char*getValue(){returnstr;}

private:

char*str;

intlength;

};

Cstring:

:

Cstring(){//字符串初始化为空

str="";

length=0;

}

Cstring:

:

Cstring(char*s){//字符串初始化为指定的字符数组

str=newchar[strlen(s)+1];

strcpy(str,s);

length=strlen(s);

str[length]='\0';

}

voidCstring:

:

setValue(char*s){//设置字符串

str=newchar[strlen(s)+1];

strcpy(str,s);

length=0;

while(*(s++)!

='\0'){

length++;

}

str[length]='\0';

}

voidCstring:

:

setValue(strings){//设置字符串

length=0;

while(s[length++]!

='\0');

length--;

str=newchar[length+1];

for(inti=0;s[i]!

='\0';i++)

str[i]=s[i];

str[i]='\0';

}

voidCstring:

:

setValue(Cstrings){//设置字符串

length=s.getLength();

str=newchar[length+1];

strcpy(str,s.getValue());

str[length]='\0';

}

intCstring:

:

getLength(){//获取字符串的长度

returnlength;

}

intCstring:

:

strComp(Cstrings){//字符串比较

inti=0;

while(str[i]==(s.getValue())[i]&&i

i++;

if(str[i]>s.getValue()[i])return1;

elseif(str[i]

elsereturn0;

}

intCstring:

:

subSearch(Cstringsubstr){//查找字串

inti=0;

for(;i

intj=0;

for(;j

if(str[i+j]!

=(substr.getValue())[j])break;

if(j>=substr.getLength())returni+1;

}

if(i>=length)return-1;//返回-1代表查找失败

}

intCstring:

:

strCon(Cstrings){//字符串连接,将s连接到该字符串上

length=length+s.getLength();

char*pstr=str;

str=newchar[length+1];

cout<

strcpy(str,pstr);//复制第一个串

strcat(str,s.getValue());//连接第二个串

deletepstr;

str[length]='\0';

returnlength;

}

voidstate(){//提示说明

cout<<"**********字符串功能测试**********"<

<<"0.提示"<

<<"1.初始化"<

<<"2.计算长度"<

<<"3.字符串比较"<

<<"4.查找子串"<

<<"5.字符串连接"<

<<"6.退出"<

<<"**********************************"<

<

}

intmain(){

Cstringstr1,str2;

strings;

state();

//char*c="dfgsag";

//str1.setValue(c);

charch;

do{

cout<

cout<<"请作出选择:

";

cin>>ch;

switch(ch){

case'0':

state();break;

case'1':

cout<<"串1:

";

cin>>s;

str1.setValue(s);

cout<<"串2:

";

cin>>s;

str2.setValue(s);

break;

case'2':

cout<<"串1:

"<

<<"长度:

"<

cout<<"串2:

"<

<<"长度:

"<

break;

case'3':

if(str1.strComp(str2)>0)

cout<<"串1:

"<

<<"比"<<"串2:

"<

<<"大"<

elseif(str1.strComp(str2)<0)

cout<<"串1:

"<

<<"比"<<"串2:

"<

<<"小"<

elsecout<<"串1:

"<

<<"与"<<"串2:

"<

<<"一样大"<

break;

case'4':

if(str1.subSearch(str2)!

=-1)

cout<<"串2:

"<

<<"在"<<"串1:

"<

<<"中,位置在第"<

<<"个上"<

elseif(str2.subSearch(str1)!

=-1)

cout<<"串1:

"<

<<"在"<<"串2:

"<

<<"中,位置在第"<

<<"个上"<

elsecout<<"二者互不包含"<

break;

case'5':

Cstringst;

st.setValue(str1);

st.strCon(str2);

cout<<"串2连接到串1上是:

"<

st.setValue(str2);

st.strCon(str1);

cout<<"串1连接到串2上是:

"<

break;

}

}while(ch!

='6');

return0;

}

5.课程设计总结

在这个课程设计中,我知道了自己的很多不足之处,想把这门课学好不是一朝一夕的事情,而是要长期的坚持学习。

通过一年的学习,我已经掌握了部分编程知识,并且自己可以编出一些小程序,但是这样却是不够的,通过这次课程设计,我了解到自己在C++编程方面到底存在哪些不足,在比较大的程序方面,自己根本不知道从何入手,在做这个课程设计期间,我请教了我们班学编程比较好的同学,通过他们的帮助我把程序编完,程序的调试过程中出现了很多错误,有许多低级错误,我想这是因为我平时编程很少的原因,有一些我实在找不出来的错误就让同学指导一下,很快我自己编的程序就能运行了,我的程序满足了课程设计的要求。

通过这次课程设计我懂得了很多很多,对于学习编程,一定要经常的练习,否则任你书本上的理论知识再好在编程的时候都是不行的,掌握不够熟练,程序一大就不知道怎么办了,所以我在以后的日子里一定要多多进行一些C++方面的比较大的程序的设计,锻炼自己。

6.参考书目:

[1]谭浩强,《C++程序设计》,北京,清华大学出版社,2006年

[2]钱能,《C++程序设计实验指导》,北京,清华大学出版社,2003年

[3]孙一平王庆宝,《C++程序设计学习辅导》,北京,清华大学出版社,2006年

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1