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

这篇博客介绍了C++中继承与派生的应用,包括商品管理类的实现,如衬衣、帽子和立柜的进库、出库和总价计算。同时,展示了如何通过Person基类派生出Student、Teacher和GraduateStudent类,以及自定义DateTimeType类,包含了DateType和TimeType类对象。提供了具体的代码示例和样例输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


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

对本章示范题的用于管理商店商品的实现程序进行完善:完成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(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值