⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 supermarket.cpp

📁 这是一个用VC++工具编的超市结帐系统
💻 CPP
字号:
#include <iostream.h>
#include <string.h>
#include <iomanip.h>
const MAX=10;
//商品抽象类
class Goods
{
protected:
	char gName[10];			//商品名称
	int currentQuantity;	//商品数量
public:
	Goods()
	{
		cout<<"请输入商品名称:";
		cin>>gName;
		cout<<"请输入商品数量:";
		cin>>currentQuantity;
	}
	char *getName(){return gName;}	//取商品名称
	int setCurrentQuantity(int num)	//出售商品数量处理
	{
		if(currentQuantity>=num)
			currentQuantity-=num;
		else
			cout<<"库存不够!\n";
		return currentQuantity;
	}
	int addCurrentQuantity(int num)	//新增商品数量处理
	{
			currentQuantity+=num;
			return currentQuantity;
	}
	virtual void ShowMe()=0;
};
//日用品类
class DailyGoods:public Goods
{
public:
	DailyGoods():Goods()
	{ /*空*/}
	void ShowMe()
	{
		cout<<setw(10)<<gName<<setw(10)<<currentQuantity<<endl;
	}
};
//食品类
class Food:public Goods
{
private:
	int preservePeriod;
public:
	Food():Goods()
	{
		cout<<"请输入保质期限:";
		cin>>preservePeriod;
	}
	void ShowMe()
	{
		cout<<setw(10)<<gName<<setw(10)<<currentQuantity<<setw(10)<<preservePeriod<<endl;
	}
};
//家电类
class ElectricalAppliance:public Goods
{
private:
	char color[10];
public:
	ElectricalAppliance():Goods()
	{
		cout<<"请输入颜色:";
		cin>>color;
	}
	void ShowMe()
	{
		cout<<setw(10)<<gName<<setw(10)<<currentQuantity<<setw(10)<<color<<endl;
	}
};
//超市类
class Supermarket
{
private:
	static int iDG;
	static int iF;
	static int iEA;
	DailyGoods *pD[MAX];
	Food *pF[MAX];
	ElectricalAppliance *pE[MAX];
public:
	void Add();		//新增商品
	void Sale();	//出售商品
	void Search();	//查询商品
	~Supermarket()	//析构函数
	{
		int i;
		for(i=0;i<iDG;i++)
			delete pD[i];
		for(i=0;i<iF;i++)
			delete pF[i];
		for(i=0;i<iEA;i++)
			delete pE[i];
	}
};
//新增实现
void Supermarket::Add(){
	int addChoice;
	char con='y';
	do{
		cout<<"请选择增加的商品种类:\n";
		cout<<"1.日用品  2.食品  3.家电  0.退出\n";
		cin>>addChoice;
		switch(addChoice)
		{
		case 1:
			do{
				pD[iDG]=new DailyGoods;
				iDG++;
					cout<<"是否继继?(Y/N)";
					cin>>con;
			}while(con=='y'||con=='Y');
			break;
		case 2:
			do{
				pF[iF]=new Food;
				iF++;
					cout<<"是否继继?(Y/N)";
					cin>>con;
			}while(con=='y'||con=='Y');
			break;
		case 3:
			do{
			pE[iEA]=new ElectricalAppliance;
			iEA++;
				cout<<"是否继继?(Y/N)";
				cin>>con;
			}while(con=='y'||con=='Y');
			break;
		case 4:
			cout<<"选择错误!\n";
		}
	}while(addChoice!=0);
}
//出售实现
void Supermarket::Sale(){
	int saleChoice;
	char saleName[10];
	int saleNum;
	int i;
	do{
		cout<<"请选择出售的商品种类:\n";
		cout<<"1.日用品  2.食品  3.家电  0.退出\n";
		cin>>saleChoice;
		switch(saleChoice)
		{
		case 0:
			break;

		case 1:
			cout<<"请输入出售的商品名称:\n";
			cin>>saleName;
			for(i=0;i<iDG;i++)
			{
				if(strcmp(saleName,pD[i]->getName())==0)
				{
					cout<<"请输入此种商品出售数量:";
					cin>>saleNum;
					pD[i]->setCurrentQuantity(saleNum);
					break;
				}
			}
			if(i==iDG)
				cout<<"对不起,无此类商品!\n";
			break;
		case 2:
			cout<<"请输入出售的商品名称:\n";
			cin>>saleName;
			for(i=0;i<iF;i++)
			{
				if(strcmp(saleName,pF[i]->getName())==0)
				{
					cout<<"请输入此种商品出售数量:";
					cin>>saleNum;
					pF[i]->setCurrentQuantity(saleNum);
					break;
				}
			}
			if(i==iF)
				cout<<"对不起,无此类商品!\n";
			break;
		case 3:
			cout<<"请输入出售的商品名称:\n";
			cin>>saleName;
			for(i=0;i<iEA;i++)
			{
				if(strcmp(saleName,pE[i]->getName())==0)
				{
					cout<<"请输入此种商品出售数量:";
					cin>>saleNum;
					pE[i]->setCurrentQuantity(saleNum);
					break;
				}
			}
			if(i==iEA)
				cout<<"对不起,无此类商品!\n";
			break;
		default:
			cout<<"选择错误!\n";
		}
	}while(saleChoice!=0);
}
//查询实现
void Supermarket::Search()
{
	int i;
	int searchChoice;
	do{
		cout<<"请输入要查询的商品种类:";
		cout<<"1.日用品  2.食品  3.家电  0.退出\n";
		cin>>searchChoice;
		switch(searchChoice)
		{
		case 0:
			break;
		case 1:
			cout<<setw(10)<<"名称"<<setw(10)<<"数量"<<endl;
			for(i=0;i<iDG;i++)
				pD[i]->ShowMe();
			break;
		case 2:
			cout<<setw(10)<<"名称"<<setw(10)<<"数量"<<setw(10)<<"保质期"<<endl;
			for(i=0;i<iF;i++)
				pF[i]->ShowMe();
			break;
		case 3:
			cout<<setw(10)<<"名称"<<setw(10)<<"数量"<<setw(10)<<"颜色"<<endl;
			for(i=0;i<iEA;i++)
				pE[i]->ShowMe();
			break;
		default:
			cout<<"选择错误\n";
		}
	}while(searchChoice!=0);
}

//静态成员初始化
int	Supermarket::iDG=0;
int Supermarket::iF=0;
int Supermarket::iEA=0;

//主函数
void main()
{
	Supermarket smarket;
	int typeChoice;
	do{
		cout<<"请选择您的操作:\n";
		cout<<"1.新增  2.出售  3.查询  0.退出\n";
		cin>>typeChoice;
		switch (typeChoice)
		{
		case 0:
			break;
		case 1:
			smarket.Add();
			break;
		case 2:
			smarket.Sale();
			break;
		case 3:
			smarket.Search();
			break;
		default:
			cout<<"\n选择错误!\n";
		}
	}while(typeChoice!=0);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -