C++课程设计实验报告---字符串操作.doc_第1页
C++课程设计实验报告---字符串操作.doc_第2页
C++课程设计实验报告---字符串操作.doc_第3页
C++课程设计实验报告---字符串操作.doc_第4页
C++课程设计实验报告---字符串操作.doc_第5页
全文预览已结束

下载本文档

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

文档简介

南京理工大学C+课程设计实验报告姓名 方圆 学号 0511590127 班级 05115901 任课教师 肖亮 时间 2006-9-21 教师指定题目 37:字符串操作 评定难易级别 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. 源程序结构流程框图与说明(含新增子函数的结构框图)字符串操作流程图菜单显示项目选择循环字符串加法字符串减法字符串比较字符串具体操作删除字符串首部相同字符删除字符串尾部相同字符删除字符串所有重复字符字符串的插入操作字符串的替换操作字符串的倒置替换操作开始选择判断退出退出132254513467选择 错误输入重选3. 基本数据结构 class FString / 字符串类定义private:char*sString;int nLength; /新增成员数据,是字符串对象的长度/String data must be first (to look like string)public:/ConstructorFString(); /缺省构造 FString(char *str)nLength=strlen(str);str=new charnLength+1;strcpy(sString,str); /新增构造函数,用字符串常量初始话字符串对象FString(FString &); /新增拷贝的构造函数,用类的对象初始化FString()if(sString)deletesString; /新增析构函数,释放字符串对象所占用的空间void DelRepeat(); /新增成员函数,删除原字符串中相邻的重复字符 int AddStart(FString str,int start); /*新增成员函数,将字符串str插入到原字符串中从第start字符串开始位置上,操作正确返回1*/inline FString operator-(const char *sAppend); /新增函数,重载减法运算符 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 char *sSearch,const bool bCaseSensitive=true);int InStrRev(const int nStart, const char *sSearch,const bool bCaseSensitive=true);FString RTrim(const char sChar= );FString LTrim(const char sChar= );FString Trim(const char sChar= );FString Replace(const char *sSearch, const char *sReplace);FString Format(const char *sFormat, .); /参数可变的函数int Length();/Various Operatorsinline operator char*(); /转换函数inline FString operator+(const char *sAppend); /新增函数,重载加法运算符inline FString operator+(const FString sAppend); /新增函数,重载加法运算符inline char operator(const int nIndex); /数组下标运算符重载inline FString operator+=(char* val); /新增函数,重载加法运算符inline FString operator+=(FString val); /新增函数,重载加法运算符/Comparison Operatorsinline int operator(const char *val);inline int operator(const char *val);inline int operator=(const char *val);inline int operator!=(const char *val);inline int operator=(const char *val);inline int operator(const FString val);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 OperatorsFString operator=(const char *val);FString operator=(const FString val);4. 程序运行结果界面 图1、初始界面 图2、字符串加法 图3 、字符串减法 图4 、字符串比较大小 图5、对字符串的具体操作 图6、删除字符串首部相同的字符 图7、字符串的插入操作 图8、字符串的替换操作 图9、字符串的倒置替换操作5. 课程设计遇到的技术问题与解决思路 问题1: 在菜单选择时,若输入字符则会出现死循环。解决办法: 将定义为整型输入变

温馨提示

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

评论

0/150

提交评论