




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计说明书 课 程 名 称: C+设计 课 程 代 码: 题 目: 字符串类的设计 年级/专业/班: 学 生 姓 名: 学 号: 指 导 教 师: 开 题 时 间: 年 月 日完 成 时 间: 年 月 日目 录一 引 言2二 设计目的与任务2三 设计方案2 1 总体设计2 2 详细设计3四 程序清单5五 程序调试与体会7六 运行结果11七 结 论12八 参考文献12摘 要 本设计通过定义字符串类来实现对字符串的赋值、连接、复制、查找、交换操作。首先定义一个字符串类,通过调用字符串类中成员函数,对字符串类进行赋值,然后实现了字符串类之间的连接,字符串类之间的交换,最后可以对该字符串类中的字符
2、串进行查找。关键字:字符串;类;成员函数;对象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 assignm
3、ent, 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。C+程序设计课程设计-字符串类的设计一 引 言随着人们生活水平的提高,计算机发展异常迅速。如今,计算机已经深入到我们社会的各个领
4、域,计算机的使用也已不再局限于科学计算,它已进入人类社会的各个领域并发挥着越来越重要的作用。通过计算机对各类信息的管理已经成为一种高效、快捷的方式。本课程设计就是要求完成一个字符串类的设计,使所设计出的字符串类具有包括赋值、连接、复制、查找、交换等功能二 设计目的与任务1、设计目的:这个程序是通过C+语言采用向量的方法来设计的。通过本次的C+课程设计,我们将会把平日书本上的知识真正应用到了实际中来。深入了解C+各类及相关函数的应用,结合其它相关知识,如软件工程等,把所学知识融会贯通。2、设计任务:我们此次做的字符串类设计课程将要完成以下功能:1字符串类对象的输入输出 ;2.字符串的长度 ;3.
5、字符串的连接 ;4.字符串的拷贝 ;5.字符串的减法 ;6.子串在主串中的定位 ;7.子串替换功能 ; 三 设计方案1 总体设计定义一个String类,实现对字符串类的赋值、连接、复制、查找、交换等操作。先设计一个总类然后写出多个子类来实现任务所给定的功能。2 详细设计程序中用到的函数:通过下列成员函数来说明设计中需要考虑的问题。String类是用来对字符串类的赋值,字符串之间的比较,字符串之间的连接,字符串之间的相互复制,字符串之间的交换,字符串中的字符查找等功能。1.连接子类代码清单如下:class a创建一个构造函数定义一个字符串数组str2;从键盘上获取字符串存入str2;定义一个字符
6、串存放数组s2,并将str2中的字符串放入s2;定义一个字符串存放数组s3;调运append( )函数连接s2到s1后并赋s3;输出s3;通过此子类的运行可以将两个不同的字符串连接在一起. 2. 复制子类代码清单如下:class b 创建一个构造函数输入一个字符串存入s1中;定义一个字符串存放数组s2;调运函数的s1拷贝给s2;输出s2;通过此子类的运行可以将第二个字符串覆盖第一个字符串. 3.查找子类代码清单如下:class c创建一个构造函数 输入一个字符串存入s1中;定义一个字符串数组str2;从键盘上获取字符串存入str2;如果str2的字符串的长度大于s1的长度,则提示错误;否则调运
7、find( )函数将子串的位置显示出来;;通过该子类可以实现字符的查找功能. 4.交换类代码清单如下: Class d创建一个构造函数 输入一个字符串存入s1中;定义一个字符串数组str2;从键盘上获取字符串存入str2;定义一个字符串数组s2, 将str2中的字符串放入s2中;调运swap()实现s1与s2交换,并把交换后的字符串放入s1中;将s1显示出来;;该子类可以实现两组不同的字符串的交换. 5 字串类代码清单如下:class e创建一个构造函数 输入一个字符串存入s1中;定义一个整型数start表示子串的开始位置,定义一个整型数n表示子串的长度;调运s1.assign(s1,star
8、t-1,n)得到子串,并将它存入s3中;将s3显示出来;;通过该类可以查找子串在主串的位置; 6.比较类的代码清单如下: class f创建一个构造函数 输入一个字符串存入s1中;定义一个字符串数组str2;从键盘上获取字符串存入str2;定义一个字符串数组s2, 将str2中的字符串放入s2中;如果s1的字典大小小于s2(调运compare( )函数实现比较),则输出s1比s2小;如果s1的字典大小大于s2,则输出s1比s2大;如果s1的字典大小等于s2,则输出s1与s2相等;;通过该类可以比较两组字符串的大小.void main( )输出菜单;输入字符串s1;获取s1的长度;使用一个循环如
9、果选择功能1,则调运类a,并通过构造函数输入s1;如果选择功能2,则调运类b,并通过构造函数输入s1;如果选择功能3,则调运类c,并通过构造函数输入s1;如果选择功能4,则调运类d,并通过构造函数输入s1;如果选择功能5,则调运类e,并通过构造函数输入s1;如果选择功能6,则调运类f,并通过构造函数输入s1;四 程序清单#include <iostream.h>#include <string>using namespace std;class a/连接类public:a(string &s1) char str220;cout<<"请输入
10、要连接的字符串:"<<endl;gets(str2);string s2(str2);string s3; s3=s1.append(s2);/连接s2到s1后并赋s3 cout<<s3.data()<<endl;class b/复制类public:b(string &s1) string s2(s1);/把s1拷贝给s2cout<<"字符串2:"<<s2.data()<<endl;class c/查找类public:c (string &s1) cout<<&qu
11、ot;请输入要查找的字符或字符串"<<endl;char str220;gets(str2);if(s1.find(str2)>s1.length()cout<<"找不到你输入的字符或字符串!"<<endl;/要查找的字符串开始位置大于原字符串的长度就是没有这个字符串else cout<<"你要找的字符串的开始位置是:"<<s1.find(str2)+1<<endl;class d/交换类public:d(string &s1) char str220;cou
12、t<<"请输入要交换字符串s2:"<<endl;gets(str2);string s2(str2); s1.swap(s2);/把s2和s1交换cout<<"交换后s1为:"<<endl;cout<<s1.data()<<endl;class e/求子串类public:e(string &s1) int start,n;cout<<"请输入子串的起始位置:"cin>>start;cout<<"请输入子串的长度
13、:" cin>>n;string s3=s1.assign(s1,start-1,n);/把字符串s中从start开始的n个字符赋给当前字符串cout<<s3.data()<<endl;class f/比较类public:f(string &s1) char str220;cout<<"请输入要比较的字符串s2:"<<endl;gets(str2);string s2(str2);if(pare(s2)<0)/比较其大小cout<<"s1比s2小"<&l
14、t;endl; if(pare(s2)>0)cout<<"s1比s2大"<<endl; if(pare(s2)=0)cout<<"s1与s2相等"<<endl;void main( )cout<<"menu:"<<endl;cout<<"1)link 2)copy 3)find 4)change 5)seek 6)compare 7)exit"<<endl;char str120;int num=0,len;cou
15、t<<"请输入一个字符串s1:"<<endl;gets(str1);string s1(str1);len=strlen(str1);/保存字符串长度while(num!=7)/功能选项cout<<"请选择功能的序号:"<<endl;cin>>num; if(num=1)a a(s1);if(num=2)b a(s1);if(num=3)c a(s1);if(num=4)d a(s1);if(num=5)e a(s1);if(num=6)f a(s1);五 程序调试与体会1)调试在对程序的调过程
16、中,我们遇到了很多不同的问题,在发现问题与解决问题的过程中我们深刻体会到一个程序所要具备的健全性的重要性,我们必须考虑到该程序在解决具体问题的直观性与全面性,也就是要加强程序的可读性,也就是要尽可能地多加注释,这样就大大方便了我们提高了我们的进展。也会方便读者很容易就了解到程序的层次及功能。我们所编写的程序具体要求我们输入一条完整的记录其中包括:1.连接:通过运行结果的显示我们看出此功能已经实现.2.复制:通过第二个运行图的结果显示,第二个功能复制完成;3.查找:通过该图可以得出。第三个功能查找实现。4.交换: 根据该图显示的结果得知交换功能已实现。5.求子串已实现:6.比较:通过该图显示的结
17、果得出,第六个功能都实现.2)体会通过本次课程设计,我们整个团队的每个成员都是受益匪浅:首先,我们深刻感受到平日书本上看似简单的理论知识在真正派上用场的时候当中所涵盖的学问是那么多。理论与实践的距离之间我们今天的努力还只是一个开始。在完成此次课程设计的过程中我们屡屡碰到不同的问题。比如;面向对象的思想。只有理论知识没有实践经验是不可能成为一名出色的软件设计师的。理论是实践的基础,实践是对所学知识的巩固与提高,只有理论与实践相结合才能真正掌握知识。设计思想是很重要的,没有一个人能说自己对于一个问题考虑得面面具到,一个再成功的个人也离不开一个优秀的团体。所以只有通过大家反覆讨论出来的设计思想才是清
18、晰的、全面的,这是一个好的程序最基本的要求,也是我们成功的决定性因素。在本次程序设计过程中,大家共同努力,分工合作,一起到图书馆找资料,找范文,共同学习,相互交流所学知识与经验,促使着我们共同进步并顺利地完成了该项任务。每个人的力量是有限的,但一旦团结起来力量将是无穷的。在竞争如此激烈的当今社会,这些东西都是我们终生受用的,因此对我们以后的工作和学习奠定了不错的基础。总体来说,这次课程设计我们付出了努力但也是获得了很多。六 运行结果我们也对该程序所能实现的功能作了相应的代码进行了标识。这样用户就可以很方便直观地使用该程序。图1 字符串连接功能的界面经过运行之后,出现了一个与用户的对话框,这个对
19、话框就是图1。在这个对话框中给出了六种功能:我们输入一个字符串thank;选择功能1(连接字符串);再输入一个字符串you;再按下回车键,此程序就将连接字符串;显示运行结果thankyou。图2 字符串复制功能的界面经过运行之后,出现了一个与用户的对话框,这个对话框就是图2。在这个对话框中给出了六种功能:我们输入一个字符串thank;选择功能2(复制字符串);再按下回车键,此程序就将复制字符串;显示运行结果字符串2:thank。图3 字符串查找功能的界面 经过运行之后,出现了一个与用户的对话框,这个对话框就是图3。在这个对话框中给出了六种功能:我们输入一个字符串thank;选择功能3 (查找制
20、字符/串);再输入字符或字符串a;运行结果:你要找的字符串的开始位置是:3。图4 字符串交换功能的界面 经过运行之后,出现了一个与用户的对话框,这个对话框就是图4。在这个话框中给出了六种功能:我们输入一个字符串thank;选择功能4(交换字符串);输入一个字符串you;再按下回车键,此程序就将交换字符串;显示运行结果交换后的s1为:you。图5 查找子字符串的功能界面经过运行之后,出现了一个与用户的对话框,这个对话框就是图5。在这个对话框中给出了六种功能:我们输入一个字符串thank you;选择功能5(查找子字符串);输入子字符串的起始位置:5;输入子串的长度;4;运行结果为k yo。图6
21、比较字符串的功能界面经过运行之后,出现了一个与用户的对话框,这个对话框就是图6。我们输入一个字符串:thank;选择功能6;再输入一个字符串s2:you;则输出结果为s1比s2小。七 结 论通过“字符串类的设计”的课程设计实验,可以得出:通过字符串类可以实现串的赋值、字符在字符串中所在位置的查找、把一个字符串复制到另一个字符串中、两个字符串的连接、两个字符串之间的相互交换、子串在主串中的定位等操作。八 参考文献1 张国峰编著.C+语言及其程序设计教程.北京:电子工业出版社,1996.2 秦勇编著.Visual C程序设计.北京:北京大学出版社,1994.3 张素琴主编.C+程序设计语言.北京:清华大学出版社,1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023七年级语文下册 第二单元 7 谁是最可爱的人配套教学实录 新人教版
- 2023-2024学年天津市中小学生mixly创意编程 第8课 双路抢答器-教学设计
- 开幕庆典致辞与未来展望报告
- 1神州谣 教学设计-2023-2024学年语文二年级下册统编版
- 8 网络新世界 第一课时(教学设计)-部编版道德与法治四年级上册
- 2023-2024学年高中化学 4.1.2 含硫化合物的性质教学实录 苏教版必修第一册
- 2024年四年级英语下册 Unit 8 What Can You Do Lesson 3教学实录 陕旅版(三起)
- 春节作文过春节
- 维生素D缺乏对某高原地区学龄期儿童生长发育影响的研究发展
- 17 我变成了一棵树 教学设计-2023-2024学年语文三年级下册统编版
- 2025年食品供应商合同范本
- 新版人音版小学音乐一年级下册全册教案
- (高清版)JTGT 3650-01-2022 公路桥梁施工监控技术规程
- DZ∕T 0213-2020 矿产地质勘查规范 石灰岩、水泥配料类(正式版)
- MOOC 跨文化交际通识通论-扬州大学 中国大学慕课答案
- GB/T 28799.2-2020冷热水用耐热聚乙烯(PE-RT)管道系统第2部分:管材
- 2023-瑞幸咖啡vi手册
- 10000中国普通人名大全
- 首件检验作业流程控制卡
- 解决方案员工安全教育培训手册
- 15、褥疮护理翻身卡
评论
0/150
提交评论