




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、华北科技学院计算机学院综合性实验实 验 报 告 课程名称 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(
2、 ),F( )5、报告规范度: A( ),B( ),C( ),D( ),F( )实验成绩 计算机学院制C+程序设计课程综合性实验报告开课实验室:基础实验室三 2018年 6 月 5 日实验题目字符串类设计一、实验目的掌握类的概念及构造方法;掌握构造函数的定义与使用;掌握友元的定义与使用;掌握运算符的重载定义与使用。掌握继承和派生概念及应用,掌握多态方法及应用。二、设备与环境微型计算机、Windows 系列操作系统 、Visual C+6.0等编辑软件三、实验内容设计字符串类。重载字符串+(连接)、=(复制)、判断(<、>、= =),并编程实现求字符串长度、字符串转换函数(小写转换为
3、大写及大写转换为小写)函数: MyString(); MyString(char *ptr);MyString(const MyString &str); MyString operator+(MyString &str);MyString operator=(MyString &str);MyString operator>(MyString &str);MyString operator<(MyString &str);MyString operator= (MyString &str); friend ostream&
4、operator<<(ostream& s, MyString &str); friend istream& operator>>(istream& s, MyString &str); MyString LenString(My String &str); MyString LwrString(My String &str);MyString UprString(My String &str);四、设计过程(包括类的数据成员、成员函数、友元函数及主函数,写出主要代码)class MyStringpubli
5、c : MyString()p=NULL; MyString(char *str); MyString(const MyString &str); int length(); MyString operator+(MyString &str); bool operator=(MyString &str); bool operator>(MyString &str); bool operator<(MyString &str); bool operator= (MyString &str); bool LwrString(); bool
6、 UprString(); friend ostream& operator<<(ostream& s, MyString &str); friend istream& operator>>(istream& s, MyString &str);private: char *p; char *getP();int main()MyString MyString1("ZOO"),MyString2(MyString1),MyString3;cout<<"MyString1="
7、;<<MyString1<<"MyString2="<<MyString2;cout<<"input MyString3"<<endl;cin>>MyString3;cout<<"MyString3="<<MyString3<<endl;cout<<"MyString3.length="<<(MyString3.length()<<endl;cout<<&quo
8、t;MyString3=MyString1 result is:"<<(MyString3=MyString1)<<endl;cout<<"MyString3="<<MyString3<<endl;MyString MyString4=MyString1+MyString3;cout<<"MyString1+MyString3="<<MyString4<<endl;cout<<"input MyString3"<
9、<endl;cin>>MyString3;cout<<"MyString1>MyString3 result is:"<<(MyString1>MyString3)<<endl;cout<<"MyString1<MyString3 result is:"<<(MyString1<MyString3)<<endl;cout<<"MyString1=MyString2 result is:"<<(MyS
10、tring1=MyString2)<<endl;cout<<"MyString3.UprString() result is:"<<(MyString3.UprString()<<endl;cout<<"MyString3="<<MyString3<<endl;cout<<"MyString1.LwrString() result is:"<<(MyString1.LwrString()<<endl;cout<
11、<"MyString1="<<MyString1<<endl;五、实验结果(运行界面)及测试数据分析MyString1("ZOO")调用构造函数MyString:MyString(char *str),MyString2(MyString1)调用复制构造函数MyString:MyString(const MyString &str),MyString3调用构造函数MyString()。使用运算符重载函数>>输入字符串对MyString3重新赋值为hello。MyString3调用成员函数int lengt
12、h()求得字符串MyString3的长度。使用运算符重载函数=把MyString1的值赋给MyString3。使用运算符重载函数+把字符串MyString1和MyString3进行连接。使用运算符重载函数>和<对字符串MyString1和 MyString3进行判断。使用运算符重载函数=对字符串MyString1和 MyString2进行判断。MyString3调用函数UprString()把字符串小写转换为大写。MyString1调用函数LwrString()把字符串大写转换为小写。六、实验总结 通过本学期的课程学习使我对C+程序设计有了初步的认识,也让我对面向对象有了一个更深刻
13、的理解。本系统虽然仍然存在着不足之处,但对于题目要求实现的功能均已实现。 源代码:#include<iostream>using namespace std;class MyStringpublic : MyString()p=NULL; MyString(char *str); MyString(const MyString &str); int length(); MyString operator+(MyString &str); bool operator=(MyString &str); bool operator>(MyString &am
14、p;str); bool operator<(MyString &str); bool operator= (MyString &str); bool LwrString(); bool UprString(); friend ostream& operator<<(ostream& s, MyString &str); friend istream& operator>>(istream& s, MyString &str);private: char *p; char *getP();MyStri
15、ng:MyString(char *str) p=str;MyString:MyString(const MyString &str) p=str.p;char *MyString:getP() return p;int MyString:length() int len=0; for(int i=0;pi!='0'i+) len+; return len;MyString MyString:operator+(MyString &str) char *p1,*p2,*p3; int len1=0,len2=0; p1=p; p2=str.getP(); len
16、1=this->length(); len2=str.length(); char *resultChar=new charlen1+len2+1; p3=resultChar; for(int i=0;i<len1+len2+1;i+) resultChari='0' while(*p1!='0') *p3=*p1; p3+; p1+; while(*p2!='0') *p3=*p2; p3+; p2+; return MyString(resultChar);bool MyString:operator=(MyString &am
17、p;str) char *p2,*p3; int len2=0; p2=str.getP(); len2=str.length(); char *resultChar=new charlen2+1; for(int i=0;i<len2+1;i+) resultChari='0' p3=resultChar; while(*p2!='0') *p3=*p2; p3+; p2+; p=resultChar; return true;bool MyString:operator>(MyString &str) char *p1,*p2; int
18、len1=0,len2=0; p1=p; p2=str.getP(); len1=this->length(); len2=str.length(); while(*p1!='0'&&*p2!='0') if(*p1>*p2) return true; else if(*p1<*p2) return false; p1+; p2+; if(*p1='0') return false; else return true; bool MyString:operator<(MyString &str) c
19、har *p1,*p2; int len1=0,len2=0; p1=p; p2=str.getP(); len1=this->length(); len2=str.length(); while(*p1!='0'&&*p2!='0') if(*p1>*p2) return false; else if(*p1<*p2) return true; p1+; p2+; if(*p2='0') return false; else return true; bool MyString:operator= (MyStr
20、ing &str) int len1=0,len2=0; char *p1,*p2; len1=this->length(); len2=str.length(); p1=p; p2=str.getP(); if(len1=len2) while(*p1!='0') if(*p1!=*p2) return false; p1+; p2+; return true; else return false; bool MyString:LwrString()/大转小 int len=0; len=this->length(); char *resultChar=n
21、ew charlen+1; resultCharlen='0' for(int i=0;i<len;i+) if(pi<65|pi>90) return false; resultChari=pi; for(int i=0;i<len;i+) resultChari=resultChari+32; p=resultChar; return true;bool MyString:UprString()/小转大 int len=0; len=this->length(); char *resultChar=new charlen+1; resultCh
22、arlen='0' for(int i=0;i<len;i+) if(pi<97|pi>122) return false; resultChari=pi; for(int i=0;i<len;i+) resultChari=resultChari-32; p=resultChar; return true;ostream& operator<<(ostream& s, MyString &str) s<<str.p<<endl; return s;istream& operator&g
23、t;>(istream& s, MyString &str) struct myString char str1; myString *next; ; int count1=0,len=0; char str2; myString *head=NULL,*myString1=NULL,*myString2=NULL; cout<<"请输入字符串,以0结束:"<<endl; cin>>str2; while(str2!='0') myString1=new myString; myString1->
24、;str1=str2; myString1->next=NULL; if(count1=0) head=myString1; count1=1; else myString2->next=myString1; myString2=myString1; len+; cin>>str2; char *resultChar=new charlen+1; resultCharlen='0' myString2=head; int i=0; while(myString2!=NULL) resultChari=myString2->str1; myStrin
25、g2=myString2->next; i+; str.p=resultChar; return s;int main()MyString MyString1("ZOO"),MyString2(MyString1),MyString3;cout<<"MyString1="<<MyString1<<"MyString2="<<MyString2;cout<<"input MyString3"<<endl;cin>>MyString3;cout<<"MyString3="<<MyString3<<endl;cout<<"MyString3.length="<<(MyString3.length()<<endl;cout<<"MyString3=MyString1 result is:"<<(MyString3=MyString1)<<endl;cout<<"MyString3="<
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- BI-1181181-MZ-生命科学试剂-MCE
- 宁夏大学新华学院《即兴口语传播一》2023-2024学年第一学期期末试卷
- 武汉生物工程学院《田径运动会编排操作》2023-2024学年第一学期期末试卷
- 西京学院《全科医疗中的医患关系与沟通技巧》2023-2024学年第一学期期末试卷
- 青岛远洋船员职业学院《漫画墨线绘制》2023-2024学年第一学期期末试卷
- 2024-2025学年江苏省扬大附中东部分学校九年级化学第一学期期末监测模拟试题含解析
- 公路货运行业数字化转型2025年与物流政策法规研究报告
- 公路货运行业数字化转型与绿色物流发展报告
- 雁形板在节能建筑中的应用及安装技巧
- 美容整形手术室的感染控制体系
- 2025高等教育人工智能发展报告
- 自然拼读教学培训
- 小学数学论文8篇
- 2025至2030中国网络动漫行业市场深度分析及前景趋势与投资报告
- 2025至2030中国海洋工程防腐涂料行业市场发展分析及发展前景与风险报告
- 职业病防治计划实施检查表
- 小麦检验培训课件
- 既有居住建筑节能改造实施方案
- 2025年湖南省高考物理试卷真题(含答案解析)
- 2025年中国东航旗下东方航空食品投资有限公司招聘笔试参考题库含答案解析
- 2025年时事政治考试100题(含参考答案)
评论
0/150
提交评论