实验题目录:点击打开链接
1.第一题
1、编写一个程序设计一个汽车类vehicle,包含的数据成员有车轮个数wheels和车重weight。小车类car是它的私有派生类,其中包含载人数passenger_load。卡车类truck是vehicle的私有派生类,其中包含载人数passenger_load和载重量payload。每个类都有一个公有成员函数输出汽车的
相关的信息。用主函数进行测试。
要求:
(1)数据成员的访问权限不能设为public
(2)定义有参构造函数。
#include<bits/stdc++.h>
using namespace std;
const double PI=acos(-1.0);
class Vehicle
{
int wheels;
double weight;
public:
Vehicle(int i,double j)
{
wheels=i;
weight=j;
}
int getwe()
{
return wheels;
}
double getw()
{
return weight;
}
};
class car:private Vehicle
{
int num;
public:
car(int i,double j,int k):Vehicle(i,j)
{
num=k;
}
void out()
{
cout<<"车轮个数、车重、载人数" <<endl;
cout<<getwe()<<" "<<getw()<<" "<<num<<endl;
}
};
class truck:private Vehicle
{
int num;
public:
truck(int i,double j,int k):Vehicle(i,j)
{
num=k;
}
void out()
{
cout<<"车轮个数、车重、载人数" <<endl;
cout<<getwe()<<" "<<getw()<<" "<<num<<endl;
}
};
int main()
{
car c(4,400,4);
c.out();
truck t(10,4000,10);
t.out();
return 0;
}
2.第二题
2、教材P240 程序练习第5题
修改同步练习6.1程序练习第2题中的student类,把input和output函数写为友元函数,并相应修改主函数,使程序得到正确的运行结果。
#include <bits/stdc++.h>
using namespace std;
class student
{
char name[20];
unsigned id;
double score;
public:
student(char s[20]="\0", unsigned k=0, double t=0)
{
strcpy(name,s);
id=k;
score=t;
}
student(const student &ss)
{
strcpy(name,ss.name);
id=ss.id;
score=ss.score;
}
friend void input(student &ss); //声明友元函数
friend void output(student ss); //声明友元函数
};
void input(student &ss)
{
cout<<"name? ";
cin>>ss.name;
cout<<"id? ";
cin>>ss.id;
cout<<"score? ";
cin>>ss.score;
}
void output(student ss)
{
cout<<"name: "<<ss.name<<"\tid: "<<ss.id<<"\tscore: "<<ss.score<<endl;
}
int main()
{
student s1;
input(s1);
output(s1);
}
3.第三题
3、教材P240 程序练习第6题
删除同步练习6.1程序练习第2题中student类的成员函数input和output,定义一个iostudent类,它是student类的友元类,完成对student数据成员的
输入/输出操作。编写完整的程序,使其得到正确的运行效果。
#include <bits/stdc++.h>
using namespace std;
class iostudent;
class student
{
char name[20];
unsigned id;
double score;
public:
student(char s[20]="\0", unsigned k=0, double t=0)
{
strcpy(name,s);
id=k;
score=t;
}
student(const student &ss)
{
strcpy(name,ss.name);
id=ss.id;
score=ss.score;
}
friend class iostudent;
};
class iostudent
{
public:
void input(student &ss)
{
cout<<"name? ";
cin>>ss.name;
cout<<"id? ";
cin>>ss.id;
cout<<"score? ";
cin>>ss.score;
}
void output(student ss)
{
cout<<"name: "<<ss.name<<"\tid: "<<ss.id<<"\tscore: "<<ss.score<<endl;
}
} ;
int main()
{
student s1;
iostudent s;
s.input(s1);
s.output(s1);
return 0;
}
4.第四题
4、教材P241 同步练习6.4的程序练习第2题
为同步练习6.1程序练习第2题中的student类添加一个date类数据成员birthday,date类包含三个数据成员:year、month、day,以及用于初始化的构造函数,用于输入数据的input和输出数据的output成员函数。student类构造函数需要完成birthday的数据初始化,并且完成birthday数据的输入/输出。用main函数测试这个类。
#include <bits/stdc++.h>
using namespace std;
class date
{
int y,m,d;
public:
date(int i=0,int j=0,int k=0)
{
y=i;m=j;d=k;
}
int input()
{
cout<<"year? ";
cin>>y;
cout<<"month? ";
cin>>m;
cout<<"day? ";
cin>>d;
}
void output()
{
cout<<"year: "<<y<<"\tmonth: "<<m<<"\tday: "<<d<<endl;
}
};
class student
{
char name[20];
unsigned id;
double score;
date d;
public:
student(char s[20]="\0", unsigned k=0, double t=0,int i=0,int j=0,int w=0):d(i,j,w)
{
strcpy(name,s);
id=k;
score=t;
}
student(const student &ss)
{
strcpy(name,ss.name);
id=ss.id;
score=ss.score;
}
void input(); //声明友元函数
void output(); //声明友元函数
};
void student::input()
{
cout<<"name? ";
cin>>name;
cout<<"id?";
cin>>id;
cout<<"score? ";
cin>>score;
d.input();
}
void student::output()
{
cout<<"name: "<<name<<"\tid: "<<id<<"\tscore: "<<score<<endl;
d.output();
}
int main()
{
student s1;
s1.input();
s1.output();
}
5.第五题
5、第6章综合练习,程序设计的第2题。
定义一个Box(盒子)类,在该类定义中包括以下数据成员和成员函数。
数据成员:length(长)、width(宽)和height(高)。
成员函数:构造函数Box,设置盒子的长、宽和高三个初始数据;成员函数setBox对数据成员置值;成员函数volume计算盒子的体积。
在main函数中,要求创建Box对象,输入长、宽、高,输出盒子的体积。
#include <iostream>
using namespace std;
class BOX
{
public:
BOX( double l, double w, double h )
{ length = l;
width = w;
height = h;
}
void volume()
{ cout << "volume=" << length * width * height << endl;
}
private:
double length, width, height;
};
int main()
{
BOX box1( 1,3,5 );
box1.volume();
BOX box2( 2,4,6 );
box2.volume();
}