【C++】实验七 继承与派生


实验七(第八章)实践题一

对本章示范题的用于管理商店商品的实现程序进行完善:完成Wardrobe立柜类的具体定义与使用,并添加“帽子仓库类”以及“立柜仓库类”的定义及使用,以使程序能够对商店的这三种商品(衬衣、帽子、立柜)进行简单的管理与应用。

要对商品实现的操作有:商品的进库(增加某类商品及其库存量),商品的出库(减少某类商品及其库存量),以及某类商品总价格的计算。

【输入形式】

根据提示输入
【输出形式】

把处理后的数据输出

【样例】注意:红色为输入部分,黑色为输出部分。

5 * shirt data in: price/place/material =>60 Tianjin Cotton

3 * shirt data in: price/place/material =>80 Beijing Wool

60 Tianjin Cotton

60 Tianjin Cotton

60 Tianjin Cotton

60 Tianjin Cotton

60 Tianjin Cotton

80 Beijing Wool

80 Beijing Wool

80 Beijing Wool

shiSto.TotalPrice()=540

60 Tianjin Cotton

60 Tianjin Cotton

60 Tianjin Cotton

60 Tianjin Cotton

shiSto.TotalPrice()=240

5 * Cap data in: price/place/material/style =>40 Suzhou Cotton M

3 * Cap data in: price/place/material/style =>30 Wuxi Wool S

40 Suzhou Cotton M

40 Suzhou Cotton M

40 Suzhou Cotton M

40 Suzhou Cotton M

40 Suzhou Cotton M

30 Wuxi Wool S

30 Wuxi Wool S

30 Wuxi Wool S

capSto.TotalPrice()=290

40 Suzhou Cotton M

40 Suzhou Cotton M

40 Suzhou Cotton M

40 Suzhou Cotton M

capSto.TotalPrice()=160

5 * Wardrobe data in: price/place/material/color =>160 Guangzhou Pine Yellow

3 * Wardrobe data in: price/place/material/color =>200 Suzhou Oak Brown

160 Guangzhou Pine Yellow

160 Guangzhou Pine Yellow

160 Guangzhou Pine Yellow

160 Guangzhou Pine Yellow

160 Guangzhou Pine Yellow

200 Suzhou Oak Brown

200 Suzhou Oak Brown

200 Suzhou Oak Brown

WarSto.TotalPrice()=1400

160 Guangzhou Pine Yellow

160 Guangzhou Pine Yellow

160 Guangzhou Pine Yellow

160 Guangzhou Pine Yellow

WarSto.TotalPrice()=640

#include<iostream>
#include<cstring>
using namespace std;
class Base{
   
	private:
		double price;
		char place[20];
		int count;
	public:
		Base(double pr,char *pl,int cnt)
		{
   
			price = pr;
			strcpy(place,pl);
			count = cnt;
		}
		void display()
		{
   
			cout << price << " " << place<< " ";
		}
		void InSomething(int add_cnt)
		{
   
			count +=add_cnt;
		}
		void OutSomething(int del_cnt)
		{
   
			count -= del_cnt;
		}
		double TotalPrice()
		{
   
			return price;
		}
};
class Shirt:public Base{
   
	private:
		char material[20];
	public:
		Shirt(double pr,char *pl,int cnt,char *mat):Base(pr,pl,cnt)
		{
   
			strcpy(material,mat);
		}
		void display()
		{
   
			Base::display();
			cout <<material<< " ";
		}
};
class Cap:public Shirt{
   
	private:
		char style;
	public:
		Cap(double pr,char *pl,int cnt,char *mat,char sty):Shirt(pr,pl,cnt,mat)
		{
   
			style = sty;
		}
		void display (){
   
			Shirt::display();
			cout <<style;
		}
};
class Wardrobe:public Base{
   
	private:
		char material[20];
		char color[20];
	public:
		Wardrobe(double pr,char *pl,int cnt,char *mat,char *col):Base(pr,pl,cnt)
		{
   
			strcpy(material,mat);
			strcpy(color,col);
		}
		void display()
		{
   
			Base::display();
			cout << material << " " << color;
		}
};
int main(
  • 12
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 抱歉,我是一名自然语言处理AI,无法提供代码编写服务。但我可以为您提供一份停车场程序的思路: 1. 定义车辆类Vehicle,包括车牌号、进入时间、离开时间等属性和方法。 2. 定义停车场类ParkingLot,包括停车场容量、停车费用、当前停车数量等属性和方法。 3. 在ParkingLot类中定义一个车辆数组,用于存储停车场内的车辆信息。 4. 定义进入停车场函数enter,实现车辆进入停车场,将车辆信息加入车辆数组中。 5. 定义离开停车场函数leave,实现车辆离开停车场,将车辆信息从车辆数组中删除,并计算停车费用。 6. 定义查询停车场内车辆信息函数query,实现查询停车场内车辆信息,包括车牌号、进入时间、停车费用等。 7. 定义清空停车场函数clear,实现清空停车场,将车辆数组清空。 在实现时,可以考虑使用继承和多态的方式,定义两个子类Car和Truck分别继承自Vehicle父类,实现不同类型车辆的进入、离开和计费方式。 另外,为了方便管理和操作,可以考虑使用文件存储车辆信息,实现数据的持久化和跨程序的共享访问。 ### 回答2: 停车场程序是一个实现停车场管理功能的程序,它使用继承派生的概念来实现不同类型的车辆在停车场中的管理。 首先,我们可以定义一个基类"车辆",它包含了所有车辆共有的属性和行为,例如车牌号、车辆类型和颜色等。然后,将其派生出两个子类,分别是"轿车"和"客车"。 接下来,我们可以定义一个停车场类"停车场",它包含了管理停车场的方法和属性。在停车场类中,我们可以定义一个数组来保存停放在停车场中的车辆对象。当有车辆进入停车场时,我们可以根据车辆类型将该车辆对象添加到数组中。 在停车场类中,我们可以定义一些方法来实现不同的功能,例如"停车"、"取车"和"统计车辆数量"。停车方法可以根据车辆类型将车辆对象添加到停车场数组中,取车方法可以根据车牌号将车辆对象从数组中移除,统计车辆数量方法可以返回停车场中不同类型车辆的数量。 当然,我们也可以在停车场类中定义其他的方法和属性,以实现更多的功能。例如,我们可以添加一个判断停车场是否已满的方法,当停车场已满时,新进入的车辆将无法停放;我们还可以添加一个计算停车费用的方法,根据停放时间和车辆类型来计算费用。 通过继承派生的方式,我们可以更好地管理不同类型的车辆在停车场中的停放和取出。这样,我们可以方便地对停车场中的车辆进行管理和统计,提高停车场的效率和服务质量。 ### 回答3: 停车场程序是一个用C语言编写的程序,使用了继承派生的概念来实现停车场管理系统。 在这个程序中,我们定义了一个基类叫做"车辆",它包括了车牌号码和进入停车场的时间。然后我们派生出两个派生类,分别是"汽车"和"摩托车",它们继承了"车辆"类的属性和方法。 停车场程序的主要功能有:添加车辆、删除车辆和显示当前停车场情况。 首先,当用户选择添加车辆时,程序会询问是汽车还是摩托车,并要求输入相应的车牌号码和进入停车场的时间。然后程序会根据车辆的类型自动将车辆添加到相应的列表中。 接着,当用户选择删除车辆时,程序会要求输入要删除的车辆的车牌号码。然后程序会在相应的列表中查找并删除该车辆。 最后,当用户选择显示当前停车场情况时,程序会按照停车场的布局,将停车场中的车辆按照车辆类型和位置进行展示。程序会显示每一行停车位的状态,如果一个位置没有车辆,会显示为空;如果有车辆,会显示车辆的类型和车牌号码。 总的来说,通过使用继承派生的概念,停车场程序实现了对不同类型车辆的管理,方便用户进行添加、删除和查看停车场中的车辆情况。程序的实现可以通过使用数组、链表或者其他数据结构来存储和管理车辆信息。同时,可以通过适当的错误处理和输入验证来提高程序的稳定性和用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值