资源描述:
《实验2 C++对C的扩充》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、电子信息学院实验报告书课程名:面向对象程序设计题目:实验2C++对C的扩充实验类别:设计研究型班级:BX1004学号:101003040420姓名:施程程评语:实验态度:认真()一般()差()实验结果:正确()部分正确()错()实验理论:掌握()熟悉()了解()不懂()操作技能:强()一般()差()实验报告:好()一般()差()成绩:指导教师:批阅时间:年月日1、实验目的(1)了解在面向过程程序设计中功能的扩充与增强,并善于在编写过程中应用这些新的功能。(2)进一步熟悉在所用的系统上编辑、编译、连接和运行C++程序的方法。 (3)进一步熟悉C++程序的结构和编程方法。2、
2、实验内容要求事先编好解决下面问题的程序,然后上机输入并调试运行。(1)输入以下程序,进行编译,观察编译情况,如果有错误,请修改程序,再进行编译,直到没有错误,然后进行连接和运行,分析运行结果。#include<iostream> using namespace std;intmain(){inta,b;c=add(a,b) cout<<“a+b=”<<c<<endl; return0;}int add(int x,int y) {z=x+y;return(z);}(2)编一个程序,用来求2个或3个正整数中的最大数。1、用不带默认参数的函数实现。2、用带有默认参数的函数
3、实现。对比两种方法,分析用带有默认参数的函数的优点和应用场合,总结如何选择默认b参数的值。请分析本题中默认参数的值应该在什么范围。(3)对3个变量按由小到大顺序排序,要求使用变量的引用。1、使用指针方法2、使用变量的的引用请总结引用时要注意什么问题。(4)有5个字符串,要求对他们按由小到大的顺序排列,用string方法, (5)编译一个程序,用同一个函数名对n个数据进行从小到大排序,数据类型可以是整型、单精度型、双精度型。1、用重载函数实现。2、用函数模板实现。比较这两种方法各有什么特点,什么情况下可以用函数模板代替重载函数? 3.实验结果(1)程序:#include
4、ostream>usingnamespacestd;intmain(){intadd(intx,inty);inta,b,c;cin>>a>>b;c=add(a,b);cout<<"a+b="<usingnamespacestd;intmain(){intmax(inta,intb,intc);intmax(inta,intb);inta,b,c;cin>>a>>b>>c;c
5、out<<"max(a,b,c)="<a)a=b;if(c>a)a=c;returna;}intmax(inta,intb){if(a>b)returna;elsereturnb;}运行结果:程序2:用带有默认参数的函数实现#includeusingnamespacestd;intmax(inta,intb,intc=0){if(b>a)a=b;if(c>a)a=c;retur
6、na;}intmain(void){inta,b,c;cin>>a>>b>>c;cout<<"max(a,b,c)="<main(){voidswap(int*,int*,int*);i
7、nta,b,c;int*p1,*p2,*p3;p1=&a;p2=&b;p3=&c;printf("Enter3integers:");scanf("%d%d%d",&a,&b,&c);swap(p1,p2,p3);printf("smalltobig:%d,%d,%d/n",a,b,c);}voidswap(int*p1,int*p2,int*p3){inttemp,*tmp;staticinti=3;if(i--){if(*p1>*p2){temp=*p1;*p1=*p2;*p2=temp;}if(i==2){tmp=p2;