实验2.docx

上传人:b****7 文档编号:9648338 上传时间:2023-02-05 格式:DOCX 页数:15 大小:119.03KB
下载 相关 举报
实验2.docx_第1页
第1页 / 共15页
实验2.docx_第2页
第2页 / 共15页
实验2.docx_第3页
第3页 / 共15页
实验2.docx_第4页
第4页 / 共15页
实验2.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

实验2.docx

《实验2.docx》由会员分享,可在线阅读,更多相关《实验2.docx(15页珍藏版)》请在冰豆网上搜索。

实验2.docx

实验2

电子信息学院

实验报告书

课程名:

面向对象程序设计

题目:

实验2C++对C的扩充

实验类别:

设计研究型

班级:

BX1004

学号:

35

姓名:

赵鑫

 

1、实验目的

(1)了解在面向过程程序设计中功能的扩充与增强,并善于在编写过程中应用这些新的功能。

(2)进一步熟悉在所用的系统上编辑、编译、连接和运行C++程序的方法。

 

(3)进一步熟悉C++程序的结构和编程方法。

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、用带有默认参数的函数实现。

对比两种方法,分析用带有默认参数的函数的优点和应用场合,总结如何选择默认b参数的值。

请分析本题中默认参数的值应该在什么范围。

(3)对3个变量按由小到大顺序排序,要求使用变量的引用。

1、使用指针方法

2、使用变量的的引用

请总结引用时要注意什么问题。

(4)有5个字符串,要求对他们按由小到大的顺序排列,用string方法。

 

(5)编译一个程序,用同一个函数名对n个数据进行从小到大排序,数据类型可以是整型、单精度型、双精度型。

1、用重载函数实现。

2、用函数模板实现。

比较这两种方法各有什么特点,什么情况下可以用函数模板代替重载函数?

 

3.实验结果

程序改错:

#include

usingnamespacestd;

intmain()

{

inta,b,c;

intadd(intx,inty);

cin>>a>>b;

c=add(a,b);

cout<<"a+b="<

return0;

}

intadd(intx,inty)

{

intz;

z=x+y;

return(z);

}

运行结果:

用不带默认参数的函数实现:

#include

usingnamespacestd;

intmax(inta,intb,intc)

{

if(b>a)a=b;

if(c>a)a=c;

returna;

}

intmax(inta,intb)

{

if(a>b)returna;

elsereturnb;

}

intmain()

{

inta,b,c;

cin>>a>>b>>c;

cout<

cout<

return0;

}

运行结果:

用带有默认参数的函数实现:

#include

usingnamespacestd;

intmax(inta,intb,intc=0)

{

if(b>a)a=b;

if(c>a)a=c;

returna;

}

intmain(void)

{

inta,b,c;

cin>>a>>b>>c;

cout<<"max(a,b,c)="<

cout<<"max(a,b)="<

return0;

}

运行结果:

(3)用带有默认参数的函数实现:

#include

usingnamespacestd;

voidres(int&x,int&y,int&z)

{

inttemp;

if(x>y)

{

temp=y;

y=x;

x=temp;

}

if(x>z)

{

temp=z;

z=x;

x=temp;

}

if(y>z)

{

temp=y;y=z;z=temp;

}

}

voidmain()

{

inta,b,c;

cout<<"输入三个数字"<

cin>>a>>b>>c;

res(a,b,c);

cout<

}

运行结果:

用不带默认参数的函数实现:

#include

usingnamespacestd;

voidres(int&x,int&y,int&z)

{

inttemp;

if(x>y)

{

temp=y;

y=x;

x=temp;

}

if(x>z)

{

temp=z;

z=x;

x=temp;

}

if(y>z)

{

temp=y;y=z;z=temp;

}

}

voidmain()

{

inta,b,c;

cout<<"输入三个数字"<

cin>>a>>b>>c;

res(a,b,c);

cout<

}

运行结果:

引用时要注意的问题:

由于引用不是独立的变量,编译系统不给它单独分配存储单元,因此在建立引用时只有声明,没有定义,只是声明它和原有的某一变量的关系。

在声明一个变量的引用后,在本函数执行期间,该引用一直与其代表的变量相联系,不能再作为其他变量的别名。

(4)#include

#include

usingnamespacestd;

intmain()

{

inti;

stringstr[5];

voidsort(strings[]);

cout<<"请输入字符串:

"<

for(i=0;i<=5;i++)

cin>>str[i];sort(str);cout<<"字符串为:

"<

for(i=0;i<5;i++)

cout<

return0;

}

voidsort(strings[])

{

inti,j;

stringtemp;

for(i=0;i<4;i++)

for(j=0;j<4-i;j++)

if(s[j]>s[j+1])

{

temp=s[j];

s[j]=s[j+1];

s[j+1]=temp;

}

}

运行结果:

(5)用重载函数实现:

#include

usingnamespacestd;

#definen5

template

voidsort(Ta[])

{

for(inti=0;i

for(intj=i+1;j

if(a[i]>a[j]){

Tt=a[i];

a[i]=a[j];

a[j]=t;

}

}

intmain()

{

inti,a1[5]={1,3,2,6,5};

floata2[5]={1.2,1.1,2.2,3.1,2.6};

doublea3[5]={1.8,1.7,1.9,2.1,2.0};

sort(a1);

sort(a2);

sort(a3);

for(i=0;i<5;i++)

cout<

cout<

system("PAUSE");

return0;

}

运行结果:

用函数模板实现:

#include

usingnamespacestd;

#definen5

template

voidsort(Ta[])

{

for(inti=0;i

for(intj=i+1;j

if(a[i]>a[j]){

Tt=a[i];

a[i]=a[j];

a[j]=t;

}

}

intmain()

{

inti,a1[5]={1,3,2,6,5};

floata2[5]={1.2,1.1,2.2,3.1,2.6};

doublea3[5]={1.8,1.7,1.9,2.1,2.0};

sort(a1);

sort(a2);

sort(a3);

for(i=0;i<5;i++)

cout<

cout<

system("PAUSE");

return0;

}

运行结果:

函数重载需要满足以下条件,参数的类型不同或者参数的个数不同。

函数摸板的特点是:

只有参数的类型不同,返回值类型不同,功能则完全一样,最大的好处是避免函数体的重复定义。

函数模版:

相同的名称,参数的个数相同;重载函数:

不同的名称,参数的个数不同。

4.实验体会

C++语言是一种结构化的程序设计语言,语言本身简洁、使用灵活方便。

既适用于设计和编写大的系统程序,又适用于编写小的控制程序,也适用科学计算。

它既有高级语言的特点,又具有汇编语言的特点。

运算符丰富,除了提供对数据的算术逻辑运算外,还提供了二进制的位运算。

并且也提供了灵活的数据结构。

用C++语言编写的程序表述灵活方便,功能强大。

用C++语言开发的程序,其结构性好,目标程序质量高,程序执行效率高。

程序的可移植性好。

用C++语言在某一种型号的计算机上开发的程序,基本上可以不作修改,而直接移植到其它型号和不同档次的计算机上运行。

程序的语法结构不够严密,程序设计的自由度大。

这对于比较精通C++语言的程序设计者来说,可以设计出高质量的非常通用的程序。

但对于初学者来说,要能比较熟练运用C++语言来编写程序,并不是一件容易的事情。

与其它高级语言相比而言,调试程序比较困难。

往往是编好程序输入计算机后,编译时容易通过,而在执行时还会出错。

但只要对C++语言的语法规则真正领会,编写程序及调试程序还是比较容易掌握的。

最后,感谢老师的教导!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 中国风

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1