类与对象 继承 实验九 期末回顾

实验题目录:点击打开链接

1.第一题

1、编写一个程序设计一个汽车类vehicle,包含的数据成员有车轮个数wheels和车重weight。小车类car是它的私有派生类,其中包含载人数passenger_load。卡车类truckvehicle的私有派生类,其中包含载人数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类,把inputoutput函数写为友元函数,并相应修改主函数,使程序得到正确的运行结果

#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类的成员函数inputoutput,定义一个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类数据成员birthdaydate类包含三个数据成员:yearmonthday,以及用于初始化的构造函数,用于输入数据的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();
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值