文档库 最新最全的文档下载
当前位置:文档库 › 字符串类的设计与实现

字符串类的设计与实现

字符串类的设计与实现
字符串类的设计与实现

C++ 上机实验报告

上机实验名称:类与对象

实验题目:字符串类的设计与实现

班级:

学号:

姓名:

指导教师:张荣博

一.实验目的:

1.掌握C++类的概念和基本组成,学会设计类,掌握类的使用方法。

2.了解类的各成员在类中的封装特性。

3.熟悉各种成员函数包括构造、析构及内联等函数的定义与使用。

二.字符串UML图

String

-*m_data : char

+String (*str : const char = NULL) :String

+~ String() : String

+String(&other :const String ) :String

+length(*str : char) :int

+& operator =( &other : const String) : String

+ print() : void

+comparestr(*str1 :const char ,*str2 : const char) : int

+stringlianjie(*str1 : char,*str2 : char) : void

三.调试过程

1.实验前先查阅相关书籍,了解学习关于字符串的内容。理解本次实验目的,与同组的成员交流。

2.实验时,增加了一些对两个字符串的处理,处理字符串的比较时,对比较的方法有不会的,向老师及同组的同学请教,使用比较ASCII码比较。

3.实验后,进一步学习UML图。

四.测试结果

1.输入一个字符串

2..输出对这个字符串的操作

3..输入两个字符串

4..输出对这两个字符串的处理

五.程序代码:

#include

#include

#include

#include

using namespace std;

class String

{

public:

String(const char *str = NULL);

String(const String &other);

~ String();

int length(char *str);

String & operator =(const String &other);

void print();

int comparestr(const char *str1 ,const char *str2);

void stringlianjie(char *str1,char *str2);

private:

char *m_data;

};

int main()

{

int n,a,c;

char str[100],str1[100];

char da[4][10]={"",">","==","<"};

while(1)

{

cout<<"On a single string operations please press 1, the string comparison between please press 2, end please press 3"<

cin>>n;

if(n==1)

{

cout<<"Please enter a string"<

cin>>str;

String obj(str);

obj.print();

String obj1(obj);

obj1.print();

a=obj1.length(str);

cout<<"The length of the string is:"<

cout<

String obj2;

obj2.print();

obj2=obj1;

obj2.print();

getchar();

}

else if(n==2)

{

cout<<"Please enter the two strings"<

cin>>str>>str1;

String obj;

a=obj.length(str);

cout<<"The first is the length of the string:"<

a=obj.length(str1);

cout<<"The second is the length of the string:"<

cout<<"Compare two strings"<

c=https://www.wendangku.net/doc/5813128970.html,parestr(str,str1);

cout<

cout<<"Two strings connection"<

obj.stringlianjie(str,str1);

cout<

getchar();

}

else if(n==3) exit(0);

else cout<<"nput error, please input again option"<

}

cout<

return 0;

}

String::~String(void)

{

cout<<"String的析构函数调用"<

delete [] m_data;

}

void String::stringlianjie(char *str1,char *str2)

{

int i=0,j=0;

while(str1[i]!='\0')

i++;

while(str2[j]!='\0')

{

str1[i]=str2[j];

i++;

j++;

}

str1[i]='\0';

}

int String::comparestr(const char *str1, const char *str2)

{

if(stricmp(str1,str2)>0)

return 1;

else if (stricmp(str1,str2)==0)

return 2;

else

return 3;

}

String::String(const char *str)

{

if(str==NULL)

{

m_data = new char[1];

*m_data = '\0';

}

else

{

int length = strlen(str);

m_data = new char[length+1];

strcpy(m_data, str);

}

}

String::String(const String &other)

{

cout<<"拷贝构造函数"<

int length = strlen(other.m_data);

m_data = new char[length+1];

strcpy(m_data, other.m_data);

}

String & String::operator =(const String &other) {

cout<<"赋值函数"<

if(this == &other)

return *this;

delete [] m_data;

int length = strlen(other.m_data);

m_data = new char[length+1];

strcpy(m_data, other.m_data);

return *this;

}

int String::length(char *str) {

int L=0;

while(str[L]!='\0')

L++;

return L;

}

void String::print()

{

cout<

C++课程设计:字符串类的设计

2.2 类的设计说明 图2-2类string的说明图

2.3 主要算法流程图 图2-3主要算法流程图

模块功能流程图: 图2-4 图2-6 Read功能模块图

3程序清单及注释 #include #include using namespace std; char s[12];char s1[20]; const int MAX=5; class String { public: char *str; int length; static void menun() { cout<<" ******************************* "<

字符串类设计

华北科技学院计算机学院综合性实验 实验报告 课程名称___________ 《C++程序设计B》 ________ 实验学期2017 至2016学年第二学期 学生所在系部网络工程 ___________________ 年级2015 ___________ 专业班级网络B151 学生姓名_______________ 学号___________________ 任课教师_______________ 胡英___________________ 成绩评定: 1、类及类文件、函数文件设计:A( ),B( ),C( ),D( ),F() 2、程序结构合理,格式美观:A( ),B( ),C( ),D( ),F() 3、语法语义及算法准确:A( ),B( ),C( ),D( ),F() 4、实验结果正确,运行界面:A( ),B( ),C( ),D( ),F() 5、操作熟练,解析完整:A( ),B( ),C( ),D( ),F() 5、报告规范度:A( ),B( ),C( ),D( ),F() 实验成绩___________________________________________

计算机学院制 《C++程序设计》课程综合性实验报告 开课实验室:基础实验室三2018年6月5日

} 五、实验结果(运行界面)及测试数据分析 MyString1("Z00")调用构造函数MyString::MyString(char *str),MyString2(MyStringl) 调用复制构造函数MyString::MyString(const MyString &str) ,MyString3 调用构造函数MyString()。使用运算符重载函数>>输入字符串对MyString3重新赋值为hello。MyString3调用成员函数int length()求得字符串MyString3的长度。使用运算符重载函数=把MyString1的值赋给MyString3。使用运算符重载函数+把字符串MyString1 和MyString3进行连接。使用运算符重载函数>和<对字符串MyString1和MyString3 进行判断。使用运算符重载函数==对字符串MyString1和MyString2进行判断。 MyString3调用函数UprString()把字符串小写转换为大写。MyString1调用函数LwrStri ng()把字符串大写转换为小写。 六、实验总结 通过本学期的课程学习使我对C++程序设计有了初步的认识,也让我对面向对象 有了一个更深刻的理解。本系统虽然仍然存在着不足之处,但对于题目要求实现的功能均已实现。 源代码: #in clude

课程设计--实现字符串的多种操作

课程设计--实现字符串的多种操作

C++课程设计报告 课程设计题目:实现字符串的多种 操作 姓名:刘欢 学籍号:201110910422 专业班级:计算机科学与技术2班 指导教师:秦相林

目录引言 1.设计目的 2.设计题目 3.设计需求 4.设计总体思路 5.详细设计 6.运行结果 7.课程设计心得 8.参考文献

引言 随着人们生活水平的提高,计算机发展异常迅速。如今,计算机已经深入到我们社会的各个领域,计算机的使用也已不再局限于科学计算,它已进入人类社会的各个领域并发挥着越来越重要的作用。通过计算机对各类信息的管理已经成为一种高效、快捷的方式。而C++课程设计是我们实践性教学环节之一,结合实际应用的要求,使课程设计既覆盖C++的知识点,又接近工程实际需要。通过课程设计的综合训练,培养我们实际分析问题、解决问题的能力,以及编程和动手能力,最终目标是通过课程设计这种形式,帮助学我们系统掌握C++这门课程的主要内容, 本课程设计就是要求完成一个字符串类的设计,使所设计出的字符串类具有包括复制、连接、比较、求子串、交换等功能 1. 设计目的 本设计通过定义字符串类来实现对字符串的复制、连接、比较、求子串、交换操作。首先定义一个字符串类,通过调用字符串类中成员函数,对字符串类进行复制,然后实现了字符串类之间的连接,字符串类之间的相互比较,求一个字符串的子串,以及实现两个字符串之间的交换。 2. 设计题目 实现字符串的多种操作 3.设计需求 通过本次的C++课程设计,让我们学会把书本上的知识应用到了实际中来。深入了解C++各类及相关函数的应用,结合其它相关知识,如软件工程等,把所学知识融会贯通。对系统进行功能需求分析,设计合理的数据结构和系统框

C++课程设计String类

#include #include #include #include #define Base 10000 #define M 1000 /*初始长度为Base,以后依次增加M*/ using namespace std; class String { private: char *str; ///str为指针,len为长度,size为能容纳的最大字符数 int len,size; public: ///构造函数,能直接确定长度,或者用一个字符串初始化 String (int maxsize=Base); String (const char *s); char *c_str() { return str; } ///返回一个指向字符串头部的C语言的指针String insert(int pos,const char c); ///在pos位置插入字符c String insert(int pos,String s); ///在pos位置插入String s String insert(int pos,const char *s); ///插入字符串 String Delete(int pos); ///删除pos位置的字符 String Delete(int start,int end); ///删除区间内的字符 String Delete(char c); ///删除所有的c字符 int copy(char *s,int num,int start); ///从start开始复制num个字符到str中 int search(char c); ///返回第一个出现字符c的位置 char operator [] (int pos); String operator = (String other) ; ///重载= 运算符 String operator = (const char * other) ; ///还是重载,使其支持字符串直接赋值 String operator + (String &other) const; ///重载,返回两个字符串连接 String operator += (String &other) ; ///还是重载,在原String后添加String bool operator < ( String &other) ; ///重载< ,比较大小 ///用重载好了的< ,直接定义其他运算符 bool operator > ( String &other) { return other < *this;} bool operator >= ( String &other) { return !(*this < other);} bool operator <= ( String &other) { return !(other < *this);} bool operator == ( String &other) { return (other <= *this) && (*this <= other);} bool operator != ( String &other) { return other < *this || *this < other;}

C++课程设计之string字符串类

课程名称: ________ C++ 程序设计____________ 课程代码: _________________ 05 __________ 题目: _______ 字符串类的设计_______ 年级/专业/班: 软件工程2班 __________________ 学生姓名: _________________ 学号: ___________ 指导教师: 袁辉勇_________ 开题时间:2011 年5_月丄5_日 完成时间:2011 年6_月_5_日 —湖南人文科技学院计算机 系

引言 ........................................ 设计目的与任务 .................................. _1_总体设计 ....................................... _2_详细设计 ....................................... 四程序清单....................................... 五程序调试与体会................................... 六运行结果....................................... 14

七结论................................. 八参考文献............................. 摘要 本设计通过定义字符串类来实现对字符串的赋值、连接、复制、查找、交换操作。首先定义一个字符串类,通过调用字符串类中成员函数,对字符串类进行赋值,然后实 现了字符串类之间的连接,字符串类之间的相互复制,字符串类之间的交换,最后可以对该字符串类中的字符串进行查找。 关键字:字符串;类;成员函数;对象 Abstract By defining the design of this type of string to string to the realization of the assignment, to connect, copy, find, exchange operations. First of all, the definition of a type of string, by calling membersof the String class function, the type of string for assignment, and then realized the connection between the type of string, string-type between the copy, between string-type In exchange, the last class to 3 3 4 4 4 4 10 错误!未定义书签。 错误!未定义书签。

字符串操作(算法与数据结构课程设计)

字符串操作 一、问题描述 字符串是一种常见的数据类型,在现实生活中有着广泛的应用。本次课程设计需要选择合适的结构完成字符串的建立,实现串的基本操作,编写三种模式匹配算法和字符串的加密与解密算法,并利用它们实现字符串的应用:包括文本文件对单词的检索和计数。 二、基本要求 程序要求选择合适的存储结构,并实现以下功能: 1.完成串的基本操作,如:串的赋值,比较,连接,插入,删除; 2.实现串的模式匹配,包括:穷举法,BF算法和KMP算法; 3.字符串的应用:字符串的加密与解密;文本文件单词的计数;文本文件单 词的检索; 三、测试数据 1.对模式匹配(穷举法,KMP算法和BF算法)的测试:如:在“asd sfhasd asd” 中找从第3个下标开始匹配的模式串“asd”。 2.对加密与解密的测试:如:对串“afhbs 537hsj/sjdh”加密,再将加密 后的串还原。 3.对文本文件单词的计数和检索的测试:如创建一个文本文件,在其中对单 词“me”进行计数并且检索其所处行、列。 四、算法思想 1、用结构体SString记录字符串信息,其中ch代表字符串,length代表字符串长度。 2、模式匹配: 1)穷举法的Index(S,T,pos): 从位置开始通过SubString截取S中T长度的字符串,并与T通过StrCompare进行比较,若找到则返回位置;否则继续。若没找到,返回-1。 2)BF算法: IndexBF(S, T,pos) 主串S从pos位置开始,模式串T从0位置开始,从目标串s=“s0s2…sn-1"的第一个字符开始和模式串t=“t0t2…tm-1"中的第一个字符比较,若相等,则继续逐个比较后续字符;否则从目标串s的第二个字符开始重新与模式串t的第一个字符进行比较。依次类推,若从模式串s的i位置字符开始,每个字符依次和目标串t中的对应字符相等,则匹配成功,该算法返回i;否则,匹配失败,函数返回-1。 3)KMP算法:

字符串类课程设计说明书

字符串类课程设计说明书

目录 前言 (1) 正文 (2) 2.1设计的目的和意义 (3) 2.2目标与总体方案 (3) 2.3设计方法和内容 (4) 2.3.1开发环境 (4) 2.3.2设计流程图 (4) 2.3.3设计内容 (5) 2.4设计创新和关键技术 (11) 2.5结论 (13) 致谢 (13) 参考文献 (15) 附录 (16)

前言 在科技日新月异的今天,电脑成为人的生活中不可缺少的一部分。作为计算机专业的学生,应该充分利用所学知识,把实际问题转移到电脑上去,通过电脑的编程,使复杂问题简单化,深奥问题浅显化,抽象问题具体化。在学过面向对象的语言C++后,我们对计算机有了更深的了解。计算机科学是一种创造性思维活动,其教育必须面向设计。“数据结构”正是一门面向设计,且处于计算机学科核心地位的技术基础和主干必修课。 字符串数据是计算机非数值处理的主要对象之一。随着语言加工程序的发展,许多语言增加了字

符串类型,在程序中可以使用字符串变量进行一系列字符串操作[1]。例如:在事务处理程序中,顾客的姓名和地址以及货物的名称、产地和规格等。要是将这些信息用计算机存储起来,进行各种操作都会很方便了。在这里,我针对字符串的处理写了许多操作,这将对信息检索系统有很大的作用。 本次设计主要设计的是关于字符串类的研究。在里面囊括了串的多种实现方式,如顺序存储;建立一个值和某个字符串相等的串,块链存储。其次,在本次设计中,可以对串进行求长度,判断是否为空,清空某个串,在主串中插入一个子串,在主串中删除一个子串,返回主串的的某个子串,将字符串反转输出,将主串的某个子串用另一个串替换,复制一个串,将两个串进行比较,将两个串联结在一起,求一个子串在主串中第一次出现的位置,查找字符串中元音字母的个数,判断一个串是否是回文,串的大小写转换,将一个串转换成整数。 此次设计应用广泛,文字编辑程序、事务问答系统、自然语言翻译系统、音乐分析程序等都可以应用这个原理实现。 正文 数据结构指的是数据之间的逻辑关系以及数据在计算机中的存储方式。我们现在所使用的计算机的硬件结构主要是面向数值计算的需要,基本上没有提供处理字符串数据的操作指令,需要用软件实现

字符串类的设计与实现

C++ 上机实验报告 上机实验名称:类与对象 实验题目:字符串类的设计与实现 班级: 学号: 姓名: 指导教师:张荣博

一.实验目的: 1.掌握C++类的概念和基本组成,学会设计类,掌握类的使用方法。 2.了解类的各成员在类中的封装特性。 3.熟悉各种成员函数包括构造、析构及内联等函数的定义与使用。 二.字符串UML图 String -*m_data : char +String (*str : const char = NULL) :String +~ String() : String +String(&other :const String ) :String +length(*str : char) :int +& operator =( &other : const String) : String + print() : void +comparestr(*str1 :const char ,*str2 : const char) : int +stringlianjie(*str1 : char,*str2 : char) : void 三.调试过程 1.实验前先查阅相关书籍,了解学习关于字符串的内容。理解本次实验目的,与同组的成员交流。 2.实验时,增加了一些对两个字符串的处理,处理字符串的比较时,对比较的方法有不会的,向老师及同组的同学请教,使用比较ASCII码比较。 3.实验后,进一步学习UML图。 四.测试结果 1.输入一个字符串 2..输出对这个字符串的操作

3..输入两个字符串 4..输出对这两个字符串的处理 五.程序代码: #include #include #include #include using namespace std; class String { public: String(const char *str = NULL); String(const String &other);

C 课程设计字符串类的设计与实现论文

C++课程设计字符串类的设计与实现论文 封皮 (按学校要求手工填写) 课程设计任务书 学院信息科学与工程专业通信工程学生姓名*** 学号10030603** 设计题目字符串类的设计与实现内容及要求: 计算机处理的对象分为数值数据和非数值数据,字符串是最基本的非数值数据。其应用非常广泛,它是许多软件系统(如字符编辑、情报检索、词法分析、符号处理、自然语言翻译等系统)的操作对象。其重要性不言而喻。 要求采用C++语言实现进行字符串类的设计, 具体要求如下: (1)使用堆分配存储表示实现字符串的存储; (2)实现串赋值操作StrAssign &T, chars ; (3)实现串比较操作StrCompare S,T ; (4)实现求串长操作StrLength S ; (5)实现串连接操作Concat &T,S1,S2 (6)实现求子串操作SubString &Sub,S,pos,len (7)实现清空子串操作ClearString &S ; (8)将上述功能作为类的成员函数实现,编写主函数测试上述功能。

进度安排: 第17周:分析题目,查阅课题相关资料,进行类设计、算法设计; 第18周:程序的设计、调试与实现; 第19周:程序测试与分析,撰写课程设计报告,进行答辩验收。指导教师(签字): 年月日学院院长(签字) 年月日 目录 1 需求分析- 1 - 2 算法基本原理- 1 - 3 类设计- 2 - 4 详细设计- 3 - 4.1 类的接口设计 - 3 - 4.2 类的实现- 5 - 4.3 主函数设计- 10 - 5 DOS界面程序运行结果及分析- 11 - 5.1 程序运行结果 - 11 - 5.2运行结果分析- 12 - 6 基于MFC的图形界面程序开发- 13 - 6.1 基于MFC的图形界面程序设计 - 13 - 6.2 程序测试- 17 - 6.3 MFC程序编写总结 - 19 -

采油输油工常用工具识别与使用

采油输油工常用工具识别与使用 一、管钳 管钳是用来转动金属管或其他圆柱形工件的,是管路安装和修理的常用工具。管钳的结构和使用方法如图2-1所示。 (b)管钳使用图 图2-1管钳及使用示意图 管钳规格是指管钳合口时整体长度,如人们常说的:“24in 、36in 、48in”就是指的管钳长度,常用的管钳规格如表2-1所列。 表2-1常用管钳技术规 管钳规格,mm(in)使用围,mm 可钳管子最大直径,mm 450(18) 40以下60 600(24) 50~62 75 900(36) 62~76 85 1200(48) 76~100 110 管钳使用注意事项: (1)要选择合适的规格; (2)钳头开口要等于工件的直径; (3)钳头要卡紧工件后再用力扳,防止打滑伤人; (4)用加力杆时长度要适当,不能用力过猛或超过管钳允许强度; (5)管钳牙和调节环要保持清洁。

二、扳手 板手主要用来紧固和拆卸零部件,通常有四种类型,即梅花扳手、套筒扳手、活动扳手和呆型扳手等。 1.梅花扳手 梅花扳手的扳头是一个封闭的梅花形,如图2-2所示。当螺母和螺栓头的周围空间狭小,不能容纳普通扳手时,就采用这种扳手。梅花扳手常用的规格有:14~17mm、17~19mm、22~24mm、24~27mm、30~32mm等。 图2-2 梅花扳手示意图 梅花扳手可以在扳手转角小于60°的情况下,一次一次地扭动螺母。使用权用时一定要选配好规格,使用权被扭螺母和梅花扳手的规格尺寸相符,不能松动打滑,否则会将梅花菱角啃坏。使用扳手时不能用加力杆,不能用手锤敲打扳手柄,扳手头的梅花沟槽不能有污垢。 2.套筒扳手 当螺母或螺栓头的空间位置有限,用普通扳手不能工作时,就需采用套筒扳手,如图2-3所示。 图2-3 套筒扳手组成图 使用套筒扳手的方法是: (1)根据被扭件选规格,将扳手头套在被扭件上; (2)根据被扭件所在位置大小选择合适的手柄; (3)扭动前必须把手柄接头安装稳定才能用力,防止打滑脱落伤人; (4)扭动手柄时用力要平稳,用力方向与补扭件的中心轴线垂直。 3.活动扳手

字符串操作课程设计报告

南京理工大学VC++课程设计报告 课程:VC++课程设计 系别:计算机科学与技术大类 班级:9121068401 学号:912106840149 姓名:韩飞 选题1名称:字符串操作 选题1难易级别:A级 选题2名称: 选题2难易级别: 自报成绩: 起止时间: 指导教师:严悍 2013年09月

目录 1 课题目标 通过多种成员函数的定义和运算符的重载,实现字符串的各种直接操作,如:去掉串首串尾与子串相同的子符,子串在主串的定位,用新子串更换主串中的指定子串,比较字符串的大小,字符串连接等,所有功能已经经过验证. 2 程序具体实现原理 2.1 总体方案 设计一个类,在类中包含对字符串操作的成员函数,然后在主函数中用类的对象来调用成员函数,实现字符串操作的功能。 2.1.1开发平台 VC++ 6.0; 2.1.2基本原理

2.2 程序各个功能说明 2.2.1 程序结构 class Fstring { private: char * str; int nlength; public: void copy(const char* s); Fstring(){str=NULL;} Fstring(char * s); Fstring(bool b); Fstring(int i); Fstring(double d); Fstring(const Fstring& f){this->copy(f.str);this->nlength=f.nlength;} ~Fstring(); int getLength(); char* getstr(){return this->str;} Fstring& operator=(const char* s); Fstring& operator=(const Fstring& f); void show(){cout<<(this->str);} Fstring operator+(const char * sAppend);//重载加法运算符 Fstring operator+(const Fstring sAppend);//重载加法运算符 Fstring& operator+=(const char * sAppend);//重载加法运算符 Fstring& operator+=(const Fstring sAppend);//重载加法运算符 Fstring operator-(const char* sSub);//重载减法运算符 Fstring operator-(const Fstring sSub);//重载减法运算符 Fstring& operator-=(const char* sSub);//重载减法运算符 Fstring& operator-=(const Fstring sSub);//重载减法运算符 int operator<(const char * val);//重载关系<运算符 int operator<(const Fstring val);//重载关系<运算符 int operator<=(const char * val);//重载关系<=运算符 int operator<=(const Fstring val);//重载关系<=运算符 int operator>(const char * val);//重载关系>运算符 int operator>(const Fstring val);//重载关系>运算符

c++程序设计之字符串类的设计报告

C++课程设计 课程名称: C++程序设计 题目: 字符串类的设计 年级/专业/班: 学生姓名: 学号: 指导教师: 完成时间: 2013 年 12 月27 日

目录 摘要 (3) 一、引言 (3) 二、设计目的与任务 (3) 三、设计方案 (3) 1、总体设计 (3) 2、详细设计 (4) 3、程序清单 (5) 4、程序调试与体会 (7) 5、运行结果 (8) 四、结论 (9)

摘要 本课程设计的目的是设计一个定义字符串string类包含存放字符串的字符数组和 字符串中字符的个数的程序用来实现设计菜单实现功能选择、字符串的输入与赋值、字 符串的运算、字符串的输出。设计菜单实现功能选择和字符串的输入与输出都比较简单 这里不详细讲述至于字符串的赋值有三种方法LET语句INPUT语句READ/DATA 语句给字符串变量赋值字符串的运算有很多种比方说连接、复制、查找、交换、求子串和比较等。一些编程语言设计为编写字符串处理程序更容易编写使程序变得更简单、 清晰方便用户的操作尽量减少用户的操作。 关键词类; 对象; C++; 算法; 函数 《C++程序设计》课程设计 ------字符串类的设计 一、引言 本课程设计要实现的是一个字符串类的设计的程序,这在现实生活和以后的工作中有 很强的实际意义。符串或串(String)是由零个或多个字符组成的有限序列。一般记为 s='a1a2???an'(n>=0)。它是编程语言中表示文本的数据类型。 通常以串的整体作为操作对象如在串中查找某个子串、求取一个子串、在 串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是长度相等并且各个对应位置上的字符都相等。设p、q 是两个串求q 在p 中首次 出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。 二、设计目的与任务 字符串主要用于编程概念说明、函数解释、用法详述见正文这里补充两点1.Free Pascal 中的Ansistring 只能看成整体很多函数无法使用就算是提取单个元素也很麻烦所以除非万不得已就不要用2.字符串在存储上类似字符数组所以它每一位的单个元素都是可以提取的如s=“aaaaabbbbb”则s【1】=“a”s【10】="b"而字符串的零位正是它的长度如s【0】=10上述功能Ansistring 没有。这可以给我们提供很 多方便如高精度运算时每一位都可以转化为数字存入数组。 三、设计方案 1、总体设计 我们设计一个程序定义点字符串string类包含存放字符串的字符数组和字符串 中字符的个数。实现功能 1、设计菜单实现功能选择 2、字符串的输入与赋值; 3、字符串的运算包括 1连接 2复制 3查找

C课程设计字符串类的设计与实现

封皮(按学校要求手工填写) 课程设计任务书

目录 1 需求分析 (4) 2 算法基本原理 (4) 3 类设计 (5) 4 详细设计 (5) 4.1类的接口设计 (5) 4.2类的实现 (6) 4.3主函数设计 (6) 5 DOS界面程序运行结果及分析 (9) 5.1程序运行结果 (13) 5.2运行结果分析 (15) 6 基于MFC的图形界面程序开发 (15) 6.1基于MFC的图形界面程序设计 (15) 6.2程序测试 (19) 6.3MFC程序编写总结 (21) 7 参考文献 (21)

1 需求分析 (1)计算机处理的对象分为数值数据和非数值数据,字符串是最基本的非数值数据。其应用非常广泛,它是许多软件系统(如字符编辑、情报检索、词法分析、符号处理、自然语言翻译等系统)的操作对象。其重要性不言而喻。 (2)字符串是字符的有限集合,可记作a=’a1 …an’。其中a是字符串的名,单括号里的字符序列是字符串的值,单引号不是字符串的成分,其作用是为了避免变量名与常量混淆。ai(00,如果等于0,则称a为空串,记作:a=’’。 2 算法基本原理 (1)字符串从结构上看是一种以字符为数据元素的线性表,从存储结构的不同可分为顺序表和链式存储结构,它们都适用于字符串,但由于要求的操作不同,为了提高运算效率所选用的存储结构也是不同的。对于字符串改动较频繁的一般用链式存储结构,而顺序存储结构能够高效的读取。所以各有优点。本程序由于需要大量改动数据,理所当然的选择链式存储结构,其算法结构为:Typedef struct { Char *ch; /*若字符串为空,则按长度分配存储区,否则为NULL */ Int length; /*字符串的长度*、 } (2)本题字符串要求用堆来分配字符串的存储空间,采用堆分配函数malloc,它的格式为T->ch=(char *)malloc(sizeof(char)*len,就会为字符串分配内存。 (3)函数是有字符串类进行调用的,通过在主函数中定义字符串类的对象,作为函数的参数,对于需要改写对象的需要进行址传递,我们可以通过函数在主函数中的反映来观察他的执行状态。

C++课程设计之string字符串类

课程名称: C++程序设计 课程代码:05 题目: 字符串类的设计 年级/专业/班: 软件工程2班 学生姓名: 学号: 指导教师: 袁辉勇 开题时间: 2011 年 5 月 15 日 完成时间: 2011 年 6 月 5 日 —湖南人文科技学院计算机系

目录 一引言 (3) 二设计目的与任务 (3) 三设计方案 (4) 1 总体设计 (4) 2 详细设计 (4) 四程序清单 (4) 五程序调试与体会 (10) 六运行结果 (14) 七结论................................................. 错误!未定义书签。八参考文献............................................... 错误!未定义书签。

摘要 本设计通过定义字符串类来实现对字符串的赋值、连接、复制、查找、交换操作。首先定义一个字符串类,通过调用字符串类中成员函数,对字符串类进行赋值,然后实现了字符串类之间的连接,字符串类之间的相互复制,字符串类之间的交换,最后可以对该字符串类中的字符串进行查找。 关键字:字符串;类;成员函数;对象 Abstract By defining the design of this type of string to string to the realization of the assignment, to connect, copy, find, exchange operations. First of all, the definition of a type of string, by calling members of the String class function, the type of string for assignment, and then realized the connection between the type of string, string-type between the copy, between string-type In exchange, the last class to the string of string to find. Keywords: string; category; members of the function; object 。

java类的设计(动物类)

《Java大作业实践》 报告 Animal公司的分析与设计 广东药学院 一.Animal类的设计要求: 根据实际需求设计Animal类,并完成以下功能: 1.输出全部信息 2.对2个实例进行比较 3.使用static对共同的属性进行修饰 4.实现从键盘输入的功能 5.实现单态设计模式

6.加异常信息 7.加入多线程 8.使用集合(可选) 二.设计场景,实现其要求 场景设计在一间公司,拥有很多的小猫小狗等宠物可以出卖。 1.输出9只动物的全部信息,举例代表全部动物的信息,并用List 集合存放所有信息。 2.可以选择输入动物的信息来增加动物的数量,其中输入错误不能 添加,并且进行了异常处理。 3.可以对动物的属性进行比较,例如年龄,名字等。用到了方法的 重载。 4.公司的动物的总数为共同属性和来源,用static修饰。 5.公司实现单态模式设计,所有动物都是属于这间公司的。 6.可以从键盘输入许多不同的选择,选择对动物进行不同的操作, 并且所有的输入都进行了异常的处理。 7.采用多线程售卖动物,实现三个窗口同时售卖,并且进行了同步 设计,保证安全。 8.利用ArrayList集合收集动物的年龄信息,并对其进行分析。 三.接口与类的基本设计

接口Animal(包涵四个抽象方法):String print();//姓名+年龄 String talk();//姓名+他的声音 String all();//全部信息 void input();//输入数据 抽象父类A:实现接口Animal 1.私有属性 private String name; private int age; private String voice; private String beizhu;//备注 共同属性 static String house="KFC"; static int num=200; 2.构造方法 3.抽象方法 public abstract String print(); 4. 重写接口的部分抽象方法 5.对于封装的属性对外提供函数Dog类:继承A类

字符串类的设计与实现样本

C++ 上机实验报告 上机实验名称: 类与对象 实验题目: 字符串类的设计与实现 班级: 学号: 姓名: 指导教师: 张荣博

一.实验目的: 1.掌握C++类的概念和基本组成, 学会设计类, 掌握类的使用方法。 2.了解类的各成员在类中的封装特性。 3.熟悉各种成员函数包括构造、析构及内联等函数的定义与使用。二.字符串UML图 三.调试过程 1.实验前先查阅相关书籍, 了解学习关于字符串的内容。理解本次实验目的, 与同组的成员交流。 2.实验时, 增加了一些对两个字符串的处理, 处理字符串的比较时, 对比较的方法有不会的, 向老师及同组的同学请教, 使用比较ASCII码比较。 3.实验后, 进一步学习UML图。

四.测试结果 1.输入一个字符串 2..输出对这个字符串的操作 3..输入两个字符串 4..输出对这两个字符串的处理

五.程序代码: #include #include #include #include using namespace std; class String { public: String(const char *str = NULL); String(const String &other); ~ String(); int length(char *str); String & operator =(const String &other); void print(); int comparestr(const char *str1 ,const char *str2);

字符串实现一个简单的行编辑器(数据结构课程设计参考样本)

用字符串实现一个简单的行编辑器 学生姓名:OOO 指导老师:XXX 摘要:本课程设计主要解决在文本编辑中,对行编辑的问题,通过字符串完善对文本的编辑,实现对文本的查找、替换、和修改数据。在本课程设计中,系统开发平台为Windows2000,程序设计语言为C语言,程序运行平台为Windws 98/2000/XP。在程序设计中采用了字符串的方法实现对简单的行编辑器。程序通过调试运行,初步实现了设计目标,并且经过适当完善后,将可以应用在实际中解决问题。 关键词:程序设计;行编辑器;C语言;

1 引言 对于日常生活中的文本编辑来说,行编器是一个很重要的问题,文本的完善关系到文件做出的完美,决定了人们在编辑文本的时效率。一个好的用字符串实现的行编辑可以大大的提高人们办公效率。 1.1 课题背景 行编辑器是文本编辑器的一种,针对行进行编辑。现在看来当然非常地老式,这种编辑器起源于操作员还使用电传打字机的年代,也就是一个打印机连着键盘,因为没有显示器,也就无法在文档中移动光标。行编辑器只能从事最简单的输入输出。输入、编辑、文档显示并不能同步地进行。一般而言,用户无法直接输入文本,而只能在文本终端上通过简要的命令,对已有的文档进行添加或编写。命令和文本,以及编辑器的相应输出,会根据他们的输入顺序,从底部开始逐一显示。虽然命令一般会显示被修改的行,但如果要将行连同文档中的上下文显示,则需要另外单独的命令。 现在常见的编辑器,都是通过移动光标,来选取要编辑的文本段落,与此不同的是,行编辑只能对“当前行”进行编辑。一般也可以在行内进行上下文匹配,或者选择特定行,以决定哪部分文档将被编辑或显示。当然,这些编辑每次都只能针对一行。行编辑器就只能一行一行的编辑,不能出错,一出错就得重来。 因此我们用字符串来定义,可以增强行编辑器的应用,增强可读性,加快人们的编辑文本的效率,从而推进社会的发展。这就是其重要意义。 1.2 课程设计目的 数据结构是在整个计算机科学与技术领域上广泛被使用的术语。它用来反映一个数据的内部构成,即一个数据由那些成分数据构成,以什么方式构成,呈什么结构。数据结构有逻辑上的数据结构和物理上的数据结构之分。逻辑上的数据结构反映成分数据之间的逻辑关系,而物理上的数据结构反映成分数据在计算机内部的存储安排。数据结构是数据存在的形式。数据结构是信息的一种组织方式,其目的是为了提高算法的效率,它通常与一组算法的集合相对应,通过这组算法集合可以对数据结构中的数据进行某种操作。 数据结构课程的主要目的是介绍一些常用的数据结构,阐明数据结构内在的逻辑关系,讨论它们在计算机中的存储表示,并结合各种数据结构,讨论对它们实行的各种

Java面向对象程序设计 字符串

计算机工程系实验报告 课程名称:Java面向对象程序设计 班级:姓名:学号: 一、实验目的: 1.掌握String类的常用方法。 2.掌握StringBuffer类的常用方法。 二、实验要求: 1.编写一个Java应用程序,判断两个字符串是否相同,判断字符串的前缀、后缀是否于某个字符串相同,比较两个字符串的大小关系,进行字符串检索,创建子字符串,将数字型字符串转化为数字,将字符串放到数组中,用字符数组创建字符串等。 2. 编写一个应用程序,使用StringBuffer对象实现对字符串的编辑操作,如替换字符串中的某些字符、删除字符串中的某些字符、在字符串中插入或追加新的字符串等。 三、程序代码: 1.class StringExample { public static void main(String args[]) { String s1=new String("you are a student"), s2=new String("how are you"); if(s2.equals(s1)) //判断s1与s2是否相同 { System.out.println("s1与s2相同"); } else { System.out.println("s1与s2不相同"); } String s3=new String("22030219851022024"); if(s3.startsWith("220302")) //判断s3的前缀是否“220302” { System.out.println("吉林省的身份证"); } String s4=new String("你"), s5=new String("我"); if(https://www.wendangku.net/doc/5813128970.html,pareTo(s5)>0) //s4大于s5的表达式 {

相关文档
相关文档 最新文档