#include<iostream>
#include<fstream>
#include<string>
#include<iomanip>
#include<stdlib.h>
using namespace std;
class drink
{
public:
char name[10];
float price;
float turnover;//营业额
int oristore;
int sales;
void getdrink(drink d[3]);
void adddrink(drink d[3]);
void getmoney(drink d[3]);
};
void main()
{
drink drk[3];
fstream books;
int i;
books.open("drink.dat",ios::in|ios::out|ios::binary);
for(i=0;i<3;i++)
{
books.seekg((i)*sizeof(drink),ios::beg);
books.read((char*)&drk[i],sizeof(drk[i]));
}
books.close();
cout<<"请选择操作:1—顾客购买,2—存货员添加饮料,3—收银员取款,0—结束操作! ";
cin>>i;
while(i)
{
switch(i)
{
case 1:drk[0].getdrink(drk);break;
case 2:drk[1].adddrink(drk);break;
case 3:drk[2].getmoney(drk);break;
}
cout<<"请选择操作:1—顾客购买,2—存货员添加饮料,3—收银员取款,0—结束操作! ";
cin>>i;
}
books.open("drink.dat",ios::out|ios::binary);
if(!books)
{
cout<<"文件打开出错!"<<endl;
exit(1);
}
for(i=0;i<3;i++)
{
books.write((char*)&drk[i],sizeof(drk[i]));
}
books.close();
}
void drink::getdrink(drink d[3])
{
int i;
float j,k;//顾客投币
L:cout<<"请选择饮料种类或结束操作:1—果汁,2—奶茶,3—咖啡,0—退出! ";
cin>>i;
while(i)
{
switch(i)
{
case 1:
{
if((d[0].oristore-d[0].sales)<=0)
{
cout<<"抱歉,果汁已卖完,您可以选则其他饮料或结束本服务!"<<endl;
goto L;
}
else
{
cout<<"请投币! ";
cin>>j;
while(j<d[0].price)
{
cout<<"请继续投币,一瓶果汁2.5元! ";
cin>>k;
j+=k;
}
d[0].sales++;
d[0].turnover=d[0].sales*d[0].price;
cout<<"您刚才购买了一瓶果汁,输入了"<<j<<"元人名币,找您"<<(j-d[0].price)<<"元,欢迎下次光临!"<<endl;
}
cout<<"请选择饮料种类或结束操作:1—果汁,2—奶茶,3—咖啡,0—退出! ";
cin>>i;
break;
}
case 2:
{
if((d[1].oristore-d[1].sales)<=0)
{
cout<<"抱歉,奶茶已卖完,您可以选则其他饮料或结束本服务!"<<endl;
goto L;
}
else
{
cout<<"请投币! ";
cin>>j;
while(j<d[1].price)
{
cout<<"请继续投币,一瓶奶茶2元! ";
cin>>k;
j+=k;
}
d[1].sales++;
d[1].turnover=d[1].sales*d[1].price;
cout<<"您刚才购买了一杯奶茶,输入了"<<j<<"元人名币,找您"<<(j-d[1].price)<<"元,欢迎下次光临!"<<endl;
}
cout<<"请选择饮料种类或结束操作:1—果汁,2—奶茶,3—咖啡,0—退出! ";
cin>>i;
break;
}
case 3:
{
if((d[2].oristore-d[2].sales)<=0)
{
cout<<"抱歉,咖啡已卖完,您可以选则其他饮料或结束本服务!"<<endl;
goto L;
}
else
{
cout<<"请投币! ";
cin>>j;
while(j<d[2].price)
{
cout<<"请继续投币,一杯咖啡1.5元! ";
cin>>k;
j+=k;
}
d[2].sales++;
d[2].turnover=d[2].sales*d[2].price;
cout<<"您刚才购买了一杯奶茶,输入了"<<j<<"元人名币,找您"<<(j-d[2].price)<<"元,欢迎下次光临!"<<endl;
}
cout<<"请选择饮料种类或结束操作:1—果汁,2—奶茶,3—咖啡,0—退出! ";
cin>>i;
break;
}
}
}
}
void drink::adddrink(drink d[3])
{
int i,j;
cout<<"饮料现有量: "<<endl;
cout<<"果汁:"<<d[0].oristore-d[0].sales<<" "<<"奶茶:"<<d[1].oristore-d[1].sales<<" "<<"咖啡:"<<d[2].oristore-d[2].sales<<endl;
cout<<"添加果汁? 1—yes,or 0—no ";
cin>>i;
if(i==1)
{
cout<<"输入添加量 ";
cin>>j;
d[0].oristore+=j;
}
cout<<"添加奶茶? 1—yes,or 0—no ";
cin>>i;
if(i==1)
{
cout<<"输入添加量 ";
cin>>j;
d[1].oristore+=j;
}
cout<<"添加咖啡? 1—yes,or 0—no ";
cin>>i;
if(i==1)
{
cout<<"输入添加量 ";
cin>>j;
d[2].oristore+=j;
}
}
void drink::getmoney(drink d[])
{
int i;
float sum=0;
cout<<"销售情况 :"<<endl;
for(i=0;i<3;i++)
{
cout<<setiosflags(ios::left)<<setfill(' ')<<setw(3)<<d[i].name;
cout<<setiosflags(ios::left)<<setfill(' ')<<setw(10)<<": 出售量 :"<<d[i].sales;
cout<<setiosflags(ios::left)<<setfill(' ')<<setw(10)<<" 销售额 :"<<d[i].turnover;
cout<<endl;
sum+=d[i].turnover;
d[i].oristore-=d[i].sales;
d[i].sales=0;
d[i].turnover=0;
}
cout<<endl;
cout<<"总营业额 :"<<sum<<endl;
}