实验7 类和对象
一.实验目的
1.掌握类的概念、类的定义格式、类与结构的关系、类的成员属性和类的封装性;
2.掌握类对象的定义;
3.理解类的成员的访问控制的含义,公有、私有和保护成员的区别;
4.掌握构造函数和析构函数的含义与作用、定义方式和实现,能够根据要求正确定义和重载构造函数。
能够根据给定的要求定义类并实现类的成员函数;
5.掌握友元函数的含义,友元函数和成员函数的区别。
二.实验内容
1.定义一个圆类,计算圆的面积和周长。
要求:用成员函数来求圆的面积和周长。
#include<iostream>
#define pi 3.14
using namespace std;
class Yuan
{
public:
double Zhouchang(int i)
{
r=i;
c=2*pi*r;
return c;
}
double Mianji(int p)
{
r=p;
s=pi*r*r;
return s;
}
void print()
{
cout<<"周长是"<<c<<endl
<<"面积是"<<s<<endl;
}
private:
int r;
double c;
double s;
};
int main()
{
Yuan a;
a.Zhouchang(3);
a.Mianji(3);
a.print();
}
2.定义一个学生类,其中3个数据成员为学号、姓名、年龄,以及若干成员函数。
同时编写主函数使用这个类,实现对学生数据的赋值和输出。
要求:
(1)使用成员函数实现对数据的输入、输出
(2)使用构造函数和析构函数实现对数据的输入、输出。
#include<iostream>
#include<string>
using namespace std;
class student
{
public:
student(char * pName,int num,int a);
void print();
~student();
private:
char name[20];
int number;
int age;
};
student::student(char * pName,int num,int a)
{
strncpy(name,pName,sizeof(name));
name[sizeof(name)]='\0';
number = num;
age = a;
}
void student::print()
{
cout<<"name:"<<name<<endl
<<"number:"<<number<<endl
<<"age:"<<age<<endl;
}
student::~student()
{}
void main()
{
student s("冯琳琳",2013180071,20);
s.print();
}
3.定义日期类型Date。
要求有以下面成员:
(1)可以设置日期;
(2)日期加一天操作;
#include<iostream>
using namespace std;
class Date
{
public:
Date(int m,int d,int y);
private:
int month;
int day;
int year;
};
Date::Date(int m,int d,int y)
{
if(m==1||m==3||m==5||m==7||m==8||m==10||m==12) {
if(d>31)
m=m+1,d=d-31;
}
else if(m==4||m==6||m==9||m==11)
{
if(d>30)
m=m+1,d=d-30;
}
else if(y%400==0||y%4==0&&y%100!=0)
{
if(d>29)
m=m+1,d=d-29;
}
else if(d>28)
m=m+1,d=d-28,d;
month=m;
day=d+1;//执行日期加一天
year=y;
cout<<month<<"/"<<day<<"/"<<year<<endl;
}
int main()
{
Date d(4,32,2012);
}
三.实验要求
1. 写出程序,并调试程序,要给出测试数据和实验结果。
2. 整理上机步骤,总结经验和体会。
3. 完成实验报告和上交程序。