




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电子信息学院实验报告书课 程 名: 面向对象程序设计 题 目:实验2 C+对C的扩充 实验类别: 设计研究型 班 级: BX1004 学 号: 101003040420 姓 名: 施程程 评语:实验态度:认真( ) 一般( ) 差( )实验结果:正确( ) 部分正确( )错( )实验理论:掌握( ) 熟悉( ) 了解( ) 不懂( )操作技能:强( ) 一般( ) 差( )实验报告:好( ) 一般( ) 差( )成绩: 指导教师: 批阅时间: 年 月 日1、实验目的 (1)了解在面向过程程序设计中功能的扩充与增强,并善于在编写过程中应用这些新的功能。(2)进一步熟悉在所用的系统上编辑、编译、连接和运行C+程序的方法。(3)进一步熟悉C+程序的结构和编程方法。2、实验内容要求事先编好解决下面问题的程序,然后上机输入并调试运行。(1) 输入以下程序,进行编译,观察编译情况,如果有错误,请修改程序,再进行编译,直到没有错误,然后进行连接和运行,分析运行结果。#includeiostream usingnamespacestd; int main()int a,b;c=add(a,b)cout“a+b=”cendl;return 0;intadd(intx,inty) z=x+y; return(z);(2) 编一个程序,用来求2个或3个正整数中的最大数。1、 用不带默认参数的函数实现。2、 用带有默认参数的函数实现。 对比两种方法,分析用带有默认参数的函数的优点和应用场合,总结如何选择默认b参数的值。请分析本题中默认参数的值应该在什么范围。(3) 对3个变量按由小到大顺序排序,要求使用变量的引用。1、 使用指针方法 2、 使用变量的的引用 请总结引用时要注意什么问题。(4) 有5个字符串,要求对他们按由小到大的顺序排列,用string方法,(5) 编译一个程序,用同一个函数名对n个数据进行从小到大排序,数据类型可以是整型、单精度型、双精度型。1、 用重载函数实现。 2、 用函数模板实现。比较这两种方法各有什么特点,什么情况下可以用函数模板代替重载函数?3实验结果 (1)程序:#include using namespace std;int main( )int add(int x,int y); int a,b,c; cin a b; c=add(a,b); cout a+b= c endl; return 0;int add(int x,int y)int z; z=x+y; return(z);运行结果:(2)程序1:用不带默认参数的函数实现 #include using namespace std;int main( )int max(int a,int b,int c); int max(int a,int b); int a,b,c; cin a b c; cout max(a,b,c)= max(a,b,c) endl; cout max(a,b)= max(a,b) a) a=b; if(ca) a=c; return a;int max(int a,int b)if(ab) return a; else return b; 运行结果:程序2:用带有默认参数的函数实现 #include using namespace std;int max(int a,int b,int c=0)if (ba)a=b; if (ca)a=c; return a;int main(void)int a,b,c; cin a b c; cout max(a,b,c)= max(a,b,c) endl; cout max(a,b)= max(a,b) endl; return 0;运行结果: 有时多次调用同一函数时用的是同样的实参直,C+提供的带有默认参数的的使用更加方便,给形参一个默认值,这样形参就不必一定要从实参取值了。在实行过程中要特别注意,指定默认值的参数必须放在形参列表中的最右端。(3) 程序1:使用指针#include main() void swap(int *,int *,int *); int a,b,c; int *p1,*p2,*p3; p1=&a; p2=&b; p3=&c; printf(Enter 3 integers:); scanf(%d%d%d,&a,&b,&c); swap(p1,p2,p3); printf(small to big: %d, %d, %d/n,a,b,c); void swap(int *p1,int *p2,int *p3) int temp,*tmp; static int i=3; if(i-) if(*p1*p2) temp=*p1; *p1=*p2; *p2=temp; if (i=2) tmp=p2;p2=p3;p3=tmp; if (i=1) tmp=p1;p1=p3;p3=tmp; swap(p1,p2,p3); 运行结果:程序2:使用变量的引用#include using namespace std;int main( )void sort(int &,int &,int &); int a,b,c,a1,b1,c1; coutabc; a1=a;b1=b;c1=c; sort(a1,b1,c1); couta b c in sorted order is ; couta1 b1 c1j) change(i, j); if (ik) change(i, k); if (jk) change(j, k);void change(int &x,int &y) int temp; temp=x; x=y; y=temp;运行结果:变量的“引用”就是变量的别名,引用的作用是为一个变量起另一个名字,以便在需要时可以方便、间接地应用该变量。在引用时要注意:由于引用不是独立的变量,编译系统不给它单独分配存储单元,因此在建立引用时只有声明,没有定义,只是声明它和原有的某一变量的关系。(4) 程序:#include #include using namespace std;int main( ) int i; string str5= shang,hai, string, C+,include; void sort(string ); sort(str); cout the sorted strings : endl; for(i=0;i5;i+) coutstri ; coutendl; return 0;void sort(string s )int i, j; string t; for (j=0; j5; j+) for(i=0; isi+1) t=si;si=si+1;si+1=t; 运行结果:(5) 程序1:用重载函数实现#include #include using namespace std;void sort(long a )int i, j; long t; for (j=0; j5; j+) for(i=0;iai+1) t=ai;ai=ai+1;ai+1=t; cout the sorted numbers : endl; for(i=0;i5;i+) coutai ; coutendl;void sort(int a )int i, j, t; for (j=0; j5; j+) for(i=0;iai+1) t=ai;ai=ai+1;ai+1=t; cout the sorted numbers : endl; for(i=0;i5;i+) coutai ; coutendl; void sort(float a )int i, j; float t; for (j=0;j5;j+) for(i=0;iai+1) t=ai;ai=ai+1;ai+1=t; cout the sorted numbers : endl; for(i=0;i5;i+) coutai ; coutendl;int main( ) long a5=12345,10000,87663,27958,36754; int b5=4,3,7,-5,9; float c5=1.2,-3.4,6.7,-2.6,4.5; sort(a); sort(b); sort(c); return 0;运行结果:程序2:用函数模板实现#include #include using namespace std;template void sort(T a ) int i, j, min; T t; for(i=0;i5;i+) min=i; for (j=i+1; jaj) min=j;t=ai; ai=amin; amin=t; cout The sorted numbers are : endl; for(i=0;i5;i+)coutai ; coutendlendl;int main( ) long a5=12345,10000, 87663,27958, 36754; int b5=4,3,7,-5,9; float c5=1.2, -3.4, 6.7, -2.6, 4.5 ; sort(a); sort(b); sort(c); return 0;运行结果:用函数模版比重载函数更方便,程序更简洁。但是应注意函数模版只适用于函数的参数个数相同而类型不同,且函数体相同的情况,如果参数的个数不同,则不能用函数模版。4结果分析与实验体会 这是C+的第二
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025医学食管癌诊治考试题目及答案
- 2025医学鼻咽癌诊断治疗考试题目及答案
- 2025德邦物流物流金融解决方案服务合同
- 2025版新能源项目设备安装及运维服务合同范本
- 2025版跨境电商聘用员工合同标准范本
- 2025版全新环保技术居间推广介绍费合同下载
- 2025瓷砖电商平台运营及推广合同范本
- 2025版三轮车环保节能技术合作开发合同
- 2025年度地铁电梯采购及售后服务合同
- 2025年高端水产养殖基地租赁及冷链物流配送合同
- 2025年湖南湘西自治州州直事业单位招聘考试笔试试卷附答案
- 幼儿园安全责任书及后勤管理制度
- 消防车辆事故课件
- 2026届四川省宜宾市普通高中高一化学第一学期期末统考试题含解析
- 《2型糖尿病中医防治指南(2024版)》解读课件
- 剑阁县普安镇污水处理厂扩容建设项目环评报告
- 商务楼宇管理办法
- 肺炎护理试题填空及答案
- 社用手机管理办法
- 心电监护操作常见并发症预防及处理
- 学校食堂各种检查记录表格表册11
评论
0/150
提交评论