- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
精品Word文档,知识共享!
PAGE
紫金学院Visual C++课程设计
南京理工大学紫金学院VC++课程设计报告
课 程:
VC++课程设计
系 别:
计算机系
班 级:
计算机科学与技术
学 号:
110601102
姓 名:
顾佳燕
选题名称:
字符串操作
选题难易别:
A级
起止时间:
2012.11.20~2012.12.22
指导教师:
朱 俊
2012年 12 月
程序功能介绍:
通过多种成员函数的定义和运算符的重载,实现字符串的各种直接操作,如:去掉串首、串尾与子串相同的字符,子串在主串中的定位,用新子串更换主串中的指定子串,比较字符串的大小,字符串连接等,所有功能已经通过验证。
课程设计要求
将主程序main()中的输出语句printf()改为VC++里的输出语句。
程序中对字符串的处理函数均使用了字符数组sAns,它占用了大量存储空间,试使用动态分配存储空间的方法改写所有的函数,是之避免使用预先定义的长度很大的数组;并增加类的析构函数,删除动态分配存储空间。
新增运算符重载函数,重载—,—=运算符,实现字符串的删除操作,并根据返回值判断操作是否成功。
新增成员函数void DelRepeat(),实现在原字符串中删除相邻的重复字符的功能。
新增成员函数 int AddStart(FString str ,int start),实现将字串str插入到原字符串中从第start字符开始位置上,操作正返回1。
改写main函数的结构,界面为菜单形式,根据菜单选项来验证类中所定义的各种成员函数及操作符重载函数的正确性。
对课程题目的分析与注释
字符串或串(String)是由零个或多个字符组成的有限序列。一般记为 s='a1a2···an'(n>=0)。它是HYPERLINK "/view/552871.htm"编程语言中表示文本的HYPERLINK "/view/675645.htm"数据类型。
一个简单的字符串操作是“连接”:也就是说先写一个字符串S,随后在后面再写一个T得到ST这样一个过程。 其它的常见操作包括在一个长字符串中搜索一个子串,排列一组字符串以及分析一个字符串。因为存在如此多的字符串应用方式,所以相应地有许多权衡了不同应用的相关算法。 高级的字符串算法通常使用包括后向树和有限状态机在内的复杂机制和HYPERLINK "/view/9900.htm"数据结构。
程序设计和说明(说明算法思想、设计思路,给出重要的、关键的代码)
类的数据结构
原程序定义了大量的成员函数和运算符重载函数,但这些函数都是在固定空间的字符数组上网前提下实现的,课程设计要求所有的函数要利用动态分配存储空间的方法存储字符串对象,所以基本上类中所有函数都要重新写,类中的数据成员增加一项字符串的长度int nLength,这样,动态分配存储空间的操作就可以简单一些char *p=char[nLength+1]。
#include <iostream.h>
#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <stdarg.h> //定义参数个数可变的函数时用到
#define MAX_FSTRING_LENGTH 250000 //用作数组长度
class FString { // 字符 串类定义
private:
char *sString;
int nlength;
public:
FString(); //缺省构造函数
FString(char *str);//新增构造函数,用字符串常量初始化字符串对象
FString(FString &);//新增拷贝构造函数,用类的对象初始化
~FString(){} //新增析构函数,释放字符串对象所占用的空间
void DelRepeat();
FString AddStart(FString str,int start);
inline FString operator-(const char *sAppend);//新增函数,重载减法运算符
inline FString operator-(const FString sAppend); //新增函数,重载减法运算符
inline FString operator-=(char *val); //新增函数,重载减法运算符
inline FString operator-=(FString val); //新增函数,重载减法运算符
main函数结构
main函数采用菜单选项的形式来实现类中的各
您可能关注的文档
- (全部章节)内科学配套同步试题.doc
- [小学]榆林能化甲醇厂管网改造工程方案.doc
- [训练]大连开发区净水厂工程施工试验检验计划.doc
- 《科技论文写作》教案.doc
- 《西方文论》课程教学大纲.doc
- 《植物生理学》考研复习资料.doc
- 【2018年电大】2017年电大政治学原理复习资料小抄版(拼音排版顺序).doc
- 【大二英语】【中国文化概况】中国文化概况期末资料.doc
- 【机械课件】滚动轴承.doc
- 【人教版】小学数学四年级上册期末(试卷四).doc
- 幼儿教师资格证(考试资料)《幼儿保健知识与能力》新版初级练习卷有答案与.docx
- (附答案)川农12月《中药化学》作业考核-.docx
- (附答案)川农12月《园林植物保护学(本科)》作业考核-.docx
- (附答案)川农12月《有机化学(专科)》作业考核-.docx
- (附答案)川农12月《植物保护学(本科)》作业考核-.docx
- (附答案)东师《教育心理学》在线作业2-1(1).docx
- (附答案)川农12月《药剂学》作业考核-.docx
- (附答案)川农12月《配方饲料制造工艺与技术(专科)》作业考核-.docx
- 幼儿教师资格证(考试资料)《幼儿保健知识与能力》新版基础知识题库带解析.docx
- 幼儿教师资格证(考试资料)《幼儿保健知识与能力》基础知识模拟押题卷.docx
文档评论(0)