当前位置:范文大全 > 公文范文 > C++课程设计实验报告---字符串操作

C++课程设计实验报告---字符串操作

发布时间:2021-10-30 11:16:42

C++课程设计实验报告---字符串操作 本文关键词:字符串,课程设计,实验,操作,报告

C++课程设计实验报告---字符串操作 本文简介:南京理工大学C++课程设计实验报告姓名方圆学号0511590127班级05115901任课教师肖亮时间2006-9-21教师指定题目3—7:字符串操作评定难易级别A实验报告成绩.实验内容:字符串操作1.1程序功能介绍通过多种成员函数的定义和运算符的重载,实现字符串的各种直接操作,如:去掉串首串尾与子

C++课程设计实验报告---字符串操作 本文内容:

南京理工大学

C++课程设计实验报告

姓名

方圆

学号

0511590127

班级

05115901

任课教师

肖亮

时间

2006-9-21

教师指定题目

3—7:字符串操作

评定难易级别

A

实验报告成绩

.实验内容:

字符串操作

1.1

程序功能介绍

通过多种成员函数的定义和运算符的重载,实现字符串的各种直接操作,如:去掉串首

串尾与子串相同的子符,子串在主串的定位,用新子串更换主串中的指定子串,比较字符串的大小,字符串连接等,所有功能已经经过验证.

1.2

程序设计要求

(1)

将主函数main()中的输出语句printf()改为VC++中的输出语句。

(2)

程序中对字符串的处理函数均使用了字符数组sAns,它占用了大量存储空间,试使用动态分配存储空间的方法改写所有的函数,使之避免使用预先定义的长度很大的数组;并增加类的析构函数,删除动态分配的存储空间.

(3)

新增运算符重载函数,重载-,-=运算符,实现字符串的删除操作,并根据返回值判断操作是否成功.

(4)

新增成员函数void

DelRepeat(),实现在原字符串中删除相邻的重复字符的功能。

(5)

新增成员函数int

AddStart(FString

str,int

start),实现将字串str插入到原字符串中从第start字符开始位置上,操作正确返回1.

(6)

改写main函数的结构,界面为菜单的形式,根据菜单选项来验证类中所定义的各种成员函数及操作符重载函数的正确性。

2.

源程序结构流程框图与说明(含新增子函数的结构框图)

字符串操作流程图

菜单显示项目选择

循环

字符串加法

字符串减法

字符串比较

字符串具体操作

删除字符串首部相同字符

删除字符串尾部相同字符

删除字符串所有重复字符

字符串的插入操作

字符串的替换操作

字符串的倒置替换操作

开始

选择判断

退出

退出

1

3

2

2

5

4

5

1

3

4

6

7

选择

错误输入重选

3.

基本数据结构

class

FString

{

//

字符串类定义

private:

char*sString;

int

nLength;

//新增成员数据,是字符串对象的长度//String

data

must

be

first

(to

look

like

string)

public:

//Constructor

FString();

//缺省构造

FString(charstr){nLength=strlen(str);str=new

char[nLength+1];strcpy(sString,str);};

//新增构造函数,用字符串常量初始话字符串对象

FString(FString

//新增拷贝的构造函数,用类的对象初始化

~FString(){if(sString)delete[]sString;};

//新增析构函数,释放字符串对象所占用的空间

void

DelRepeat();

//新增成员函数,删除原字符串中相邻的重复字符

int

AddStart(FString

str,int

start);

//*新增成员函数,将字符串str插入到原字符串中从第start字符串开始位置上,操作正确返回1*/

inline

FString

operator-(const

charsAppend);

//新增函数,重载减法运算符

inline

FString

operator-(const

FString

sAppend);

//新增函数,重载减法运算符

inline

FString

operator-=(char*

val);

//新增函数,重载减法运算符

inline

FString

operator-=(FString

val);

//新增函数,重载减法运算符

FString

Mid(const

int

nStart,const

int

nLength);

//从字串sString中第nStart个字符开始取出nLength个字符

FString

Left(const

int

nLength);

//从字串sString左边取出nLength个字符

FString

Right(const

int

nLength);

//从字串

sString

右边取出

nLength

个字符

int

InStr(const

int

nStart,const

charsSearch,const

bool

bCaseSensitive=true);

int

InStrRev(const

int

nStart,const

charsSearch,const

bool

bCaseSensitive=true);

FString

RTrim(const

char

sChar=

);

FString

LTrim(const

char

sChar=

);

FString

Trim(const

char

sChar=

);

FString

Replace(const

charsSearch,const

charsReplace);

FString

Format(const

charsFormat,.);

//参数可变的函数

int

Length();

//Various

Operators

inline

operator

char*();

//转换函数

inline

FString

operator+(const

charsAppend);

//新增函数,重载加法运算符

inline

FString

operator+(const

FString

sAppend);

//新增函数,重载加法运算符

inline

char

operator[](const

int

nIndex);

//数组下标运算符重载

inline

FString

operator+=(char*

val);

//新增函数,重载加法运算符

inline

FString

operator+=(FString

val);

//新增函数,重载加法运算符

//Comparison

Operators

inline

int

operator(const

charval);

inline

int

operator>=(const

charval);

inline

int

operator!=(const

charval);

inline

int

operator==(const

charval);

inline

int

operator(const

FString

val);

inline

int

operator>=(const

FString

val);

inline

int

operator!=(const

FString

val);

inline

int

operator==(const

FString

val);

//Assignment

Operators

FString

operator=(const

charval);

FString

operator=(const

FString

val);

};

4.

程序运行结果界面

图1、初始界面

图2、字符串加法

图3

、字符串减法

图4

、字符串比较大小

图5、对字符串的具体操作

图6、删除字符串首部相同的字符

图7、字符串的插入操作

图8、字符串的替换操作

图9、字符串的倒置替换操作

5.

课程设计遇到的技术问题与解决思路

问题1:

在菜单选择时,若输入字符则会出现死循环。

解决办法:

将定义为整型输入变量改为定义成字符型变量。例:int

Option1

=’0’,Option2

=’0’;改为char

Option1

=’0’,Option2

=’0’。

问题2:主函数main()的输出语句如何修改为c++中的输出语句?

解决办法:C语言中的输出语句:printf(),头文件,改为c++中的输出语句时,要将头文件改成,应用时注意符号的正确修改。

版权所有:蓬勃范文网 2010-2024 未经授权禁止复制或建立镜像[蓬勃范文网]所有资源完全免费共享

Powered by 蓬勃范文网 © All Rights Reserved.。蜀ICP备20021444号