}
2、编写一种程序,用来求2个或3个正整数中最大数。
①用不带默认参数函数实现。
②用带默认参数函数实现。
3、有5个字符串,规定对它们按由小到大顺序排列,用string办法。
4、定义一种求两个数中较小值函数模板min(),规定在main()函数中进行调用求两个
浮点型数据和两个整型数据中较小数。
实验三类和对象
(一)
一、实验目
1、掌握声明类办法,类和类成员概念以及定义对象办法。
2、掌握类构造函数与析构函数概念和用法。
3、初步掌握用类和对象编制基于对象程序。
二、实验规定
1、分析下面程序,写出其运营时输出成果。
#include
usingnamespacestd;
classDate
{public:
Date(int,int,int);
Date(int,int);
Date(int);
Date();
voiddisplay();
private:
intmonth;
intday;
intyear;
};
Date∷Date(intm,intd,inty):
month(m),day(d),year(y){}
Date∷Date(intm,intd):
month(m),day(d){year=;}
Date∷Date(intm):
month(m)
{day=1;
year=;
}
Date∷Date()
{month=1;
day=1;
year=;
}
voidDate∷display()
{cout<intmain()
{Dated1(10,13,);
Dated2(12,30);
Dated3(10);
Dated4;
d1.display();
d2.display();
d3.display();
d4.display();
return0;
}
2、建立一种名为Student类,该类有如下几种私有成员变量:
学生姓名、学号、性别、年龄。
尚有如下两个成员变量:
一种用于初始化学生姓名、学号、性别和年龄构造函数,一种用于输出学生信息函数。
编写一种主函数,声明一种学生对象,然后调用成员函数在屏幕输出学生信息。
3、类Person定义如下,请实现该类,并在主函数中创立对象obj,然后使用构造函数为obj赋予初始值(内容自定)。
classPerson
{private:
stringname;
intage;
intsalary;
chartel;
public:
Person(stringxname,intxage,intxsalary,charxtel);
voiddisplay();
};
实验四类和对象
(二)
一、实验目
1、进一步加深对类和对象理解。
2、掌握对类对象数组、对象指针及其用法。
3、掌握友元概念和使用。
4、理解类模板用法。
二、实验规定
1、分析并比较下列程序运营成果。
程序一:
#include
#include
classsmallone
{public:
smallone(intsma)
{cout<<"smconstr:
"<};
voidfn(intn)
{smallonesm(n);
cout<<"infunctionfnwithn="<}
intmain()
{fn(10);
fn(20);
return0;
}
程序二:
#include
#include
classsmallone
{public:
smallone(intsma)
{cout<<"smconstr:
"<};
voidfn(intn)
{staticsmallonesm(n);
cout<<"infunctionfnwithn="<}
intmain()
{fn(10);
fn(20);
return0;
}
2、建立一种对象数组,内放5个学生数据(学号、成绩),设立一种函数max,用指向对象指针作函数参数,在max函数中找出5个学生中成绩最高者,并输出其学号。
3、声明一种类模板,运用它分别实现两个整数、浮点数和字符比较,求出大数和小数。
(例3.14)
实验五运算符重载
一、实验目
1、进一步理解运算符重载概念和用法。
2、掌握几种惯用运算符重载办法。
二、实验规定
1、定义一种复数类Complex,重载运算法“+”,使之能用于复数加法运算。
将运算符重载为普通函数(非成员、非友元)、成员函数、友元函数。
依照规定修改通过函数来实现复数相加示例,分别编写程序,求两个复数之和。
#include
usingnamespacestd;
classComplex//定义Complex类
{public:
Complex(floatx=0,floaty=0){real=x;imag=y;}//构造函数
Complexcomplex_add(Complex&c2);//声明复数相加函数
voiddisplay(){cout<private:
floatreal;//实部
floatimag;//虚部
};
ComplexComplex:
:
complex_add(Complex&c2)
{Complexc;
c.real=real+c2.real;
c.imag=imag+c2.imag;
returnc;
}
intmain()
{Complexcomplex1(3.34f,4.8f),complex2(12.8f,5.2f);
Complexcomplex;//定义3个复数对象
complex=plex_add(complex2);//进行两个复数加运算
complex.display();
return0;
}
实验六继承和派生
一、实验目
1、理解继承在面向对象程序设计中重要作用。
2、进一步理解继承与派生概念。
3、掌握通过继承派生出一种新类办法。
4、理解虚基类作用和用法。
二、实验规定
1、运营程序,分析构造函数与析构函数调用顺序。
程序一:
#include
classA
{public:
A(){cout<<"A:
Constructor"<~A(){cout<<"A:
Destructor"<};
classB:
publicA
{public:
B(){cout<<"B:
Constructor"<~B(){cout<<"B:
Destructor"<};
voidmain()
{Bb;
}
程序二:
#include
classA
{inta;
public:
A(intaa=0){a=aa;}
~A(){cout<<”DestructorA!
”<};
classB:
publicA
{intb;
public:
B(intaa=0,intbb=0):
A(aa){b=bb;}
~B(){cout<<”DestructorB!
”<
};
voidmain()
{Bx(5),y(6,7);
}
2、分别声明Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出