欢迎来到天天文库
浏览记录
ID:61424923
大小:168.50 KB
页数:11页
时间:2021-01-28
《C++课程设计实验报告模板.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、南京理工大学紫金学院VC++课程设计报告课程:VC++课程设计系别:计算机系班级:计算机科学与技术学号:姓名:顾佳燕选题名称:字符串操作选题难易别:A级起止时间:2012.11.20~2012.12.22指导教师:朱俊2012年12月1.程序功能介绍:通过多种成员函数的定义和运算符的重载,实现字符串的各种直接操作,如:去掉串首、串尾与子串相同的字符,子串在主串中的定位,用新子串更换主串中的指定子串,比较字符串的大小,字符串连接等,所有功能已经通过验证。2.课程设计要求(1)将主程序main()中的输出语句printf()改
2、为VC++里的输出语句。(2)程序中对字符串的处理函数均使用了字符数组sAns,它占用了大量存储空间,试使用动态分配存储空间的方法改写所有的函数,是之避免使用预先定义的长度很大的数组;并增加类的析构函数,删除动态分配存储空间。(3)新增运算符重载函数,重载—,—=运算符,实现字符串的删除操作,并根据返回值判断操作是否成功。(4)新增成员函数voidDelRepeat(),实现在原字符串中删除相邻的重复字符的功能。(5)新增成员函数intAddStart(FStringstr,intstart),实现将字串str插入到原字符
3、串中从第start字符开始位置上,操作正返回1。(6)改写main函数的结构,界面为菜单形式,根据菜单选项来验证类中所定义的各种成员函数及操作符重载函数的正确性。3.对课程题目的分析与注释字符串或串(String)是由零个或多个字符组成的有限序列。一般记为s='a1a2···an'(n>=0)。它是编程语言中表示文本的数据类型。一个简单的字符串操作是“连接”:也就是说先写一个字符串S,随后在后面再写一个T得到ST这样一个过程。其它的常见操作包括在一个长字符串中搜索一个子串,排列一组字符串以及分析一个字符串。因为存在如此多的
4、字符串应用方式,所以相应地有许多权衡了不同应用的相关算法。高级的字符串算法通常使用包括后向树和有限状态机在内的复杂机制和数据结构。4.程序设计和说明(说明算法思想、设计思路,给出重要的、关键的代码)(1)类的数据结构原程序定义了大量的成员函数和运算符重载函数,但这些函数都是在固定空间的字符数组上网前提下实现的,课程设计要求所有的函数要利用动态分配存储空间的方法存储字符串对象,所以基本上类中所有函数都要重新写,类中的数据成员增加一项字符串的长度intnLength,这样,动态分配存储空间的操作就可以简单一些char*p=ch
5、ar[nLength+1]。#include#include#include#include#include//定义参数个数可变的函数时用到#defineMAX_FSTRING_LENGTH//用作数组长度classFString{//字符串类定义private:char*sString;intnlength;public:FString();//缺省构造函数FString(char*str);//新增构造函数,用字符串
6、常量初始化字符串对象FString(FString&);//新增拷贝构造函数,用类的对象初始化~FString(){}//新增析构函数,释放字符串对象所占用的空间voidDelRepeat();FStringAddStart(FStringstr,intstart);inlineFStringoperator-(constchar*sAppend);//新增函数,重载减法运算符inlineFStringoperator-(constFStringsAppend);//新增函数,重载减法运算符inlineFStringope
7、rator-=(char*val);//新增函数,重载减法运算符inlineFStringoperator-=(FStringval);//新增函数,重载减法运算符(2)main函数结构main函数采用菜单选项的形式来实现类中的各个功能,显示菜单如下:1、字符串加法voidF1(FStrings){//字符串加法FStrings2,s3("good!");cout<<"请输入要操作的字符串"<8、wchar[100];cin.getline(p1,100);s+=p1;//1s2=s+p1;//2cout<<"结果为:"<<"'"<
8、wchar[100];cin.getline(p1,100);s+=p1;//1s2=s+p1;//2cout<<"结果为:"<<"'"<
此文档下载收益归作者所有