📄 小芳便利店m.cpp
字号:
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int const N=6;
int Strlen(char *s) // 计算字符串的长度
{
int i;
for (i=0; s[i]!='\0'; )
i++;
return i; //将累加的i值返回给Strlen()
}
class Goods
{
string name;
float price;
public:
Goods(string na=0,float pr=0.0):name(na),price(pr){};
void setName(string na)
{
name=na;
};
string getName() const
{
return(name);
};
void setPrice(float pr)
{
price=pr;
};
float getPrice() const
{
return(price);
};
};
class Basket
{
vector<Goods> goodsList;
public:
void addGoods(Goods goods)
{
goodsList.push_back(goods);
};
vector<Goods> getAllGoods()
{
return(goodsList);
};
bool isEmpty()
{
if(goodsList.size()==0)
return true;
else
return false;
};
void clear()
{
goodsList.clear();
};
float getTotalPrice()
{
float total=0;
for(int i=0;i<goodsList.size();i++)
total+=goodsList[i].getPrice();
return total;
};
};
class Store
{
public:
static const Goods GOODS[N]; //所有商品
Basket basket; //存放选中商品的购物篮
static const string MESSAGE_HEADER; //菜单顶部
static const string MESSAGE_FOOTER; //菜单底部
void exit()
{
basket.clear();
cout<<"THANKS!"<<endl;
}; //打印消息退出整个程序
void checkOut()
{
cout<<"========CHECK OUT==========="<<endl;
for(int i=0;i<basket.getAllGoods().size();i++)
cout<<" "<<basket.getAllGoods()[i].getName()<<" "<<basket.getAllGoods()[i].getPrice()<<endl;
cout<<"============================="<<endl;
cout<<"TOTAL:"<<" "<<basket.getTotalPrice()<<endl;
}; //买单,打印所有已经选择的商品
void invalidInput()
{
cout<<"INVALIDINPUT,PLEASE TRY AGAIN"<<endl;
}; //当输入错误的时候,打印消息
void addGoods(int choice)
{
this->basket.addGoods(GOODS[choice-1]);
}; //添加选中的商品到购物篮
void printMenu() const
{
cout<<"******************************************\n";
cout<<" Welcome to XiaoFang Convinence Store\n";
cout<<"******************************************\n";
cout<<" "<<"(1)"<<" "<<"Bread"<<" "<<"1.0"<<endl;
cout<<" "<<"(2)"<<" "<<"Cocacoal"<<" "<<"1.0"<<endl;
cout<<" "<<"(3)"<<" "<<"Beer"<<" "<<"1.0"<<endl;
cout<<" "<<"(4)"<<" "<<"Chocolate"<<" "<<"1.0"<<endl;
cout<<" "<<"(5)"<<" "<<"Pencial"<<" "<<"0.5"<<endl;
cout<<" "<<"(6)"<<" "<<"Notebook"<<" "<<"3.0"<<endl;
cout<<" "<<"(9)"<<" "<<"CHECK OUT"<<endl;
cout<<" "<<"(0)"<<" "<<"EXIT"<<endl;
cout<<"------------------------------------------"<<endl;
//cout<<"PLEASE SELECT A NUMBER: ";
}//打印菜单
};
static const Goods GOODS[N]={Goods("Bread",1.0),Goods("Cocacola",1.0),Goods("Bear",1.0),Goods("Chocalate",1.0),Goods("Pencial",0.5),Goods("Notebook",3.0)};
static const string MESSAGE_HEADER="**********\nWelcome to XiaoFang Convinence Store\n*********";
static const string MESSAGE_FOOTER="-------------------";
void main()
{
int i;
int n=1;
Store store;
bool flag=true;
store.printMenu();
while(n!=0)
{
cout<<"PLEASE SELECT A NUMBER:";
char* str=new char[20];
cin>>str;
// fflush(stdin);
if(Strlen(str)!=1)
n=10;
else
for(i=0;i<1;i++)
{
if(str[i]<'0'||str[i]>'9')
n=10;
else
sscanf(str,"%d",&n);
}
delete [] str;//清除原数组内容
if(flag)
{
switch(n)
{
case 1:
cout<<"YOU HAVE SELECT ["<<GOODS[0].getName()<<"]"<<" "<<"$"<<GOODS[0].getPrice()<<endl;
store.basket.addGoods(GOODS[0]);break;
case 2:
cout<<"YOU HAVE SELECT ["<<GOODS[1].getName()<<"]"<<" "<<"$"<<GOODS[1].getPrice()<<endl;
store.basket.addGoods(GOODS[1]);break;
case 3:
cout<<"YOU HAVE SELECT ["<<GOODS[2].getName()<<"]"<<" "<<"$"<<GOODS[2].getPrice()<<endl;
store.basket.addGoods(GOODS[2]);break;
case 4:
cout<<"YOU HAVE SELECT ["<<GOODS[3].getName()<<"]"<<" "<<"$"<<GOODS[3].getPrice()<<endl;
store.basket.addGoods(GOODS[3]);break;
case 5:
cout<<"YOU HAVE SELECT ["<<GOODS[4].getName()<<"]"<<" "<<"$"<<GOODS[4].getPrice()<<endl;
store.basket.addGoods(GOODS[4]);break;
case 6:
cout<<"YOU HAVE SELECT ["<<GOODS[5].getName()<<"]"<<" "<<"$"<<GOODS[5].getPrice()<<endl;
store.basket.addGoods(GOODS[5]);break;
case 9:
store.checkOut();cout<<"THANKS!"<<endl;
cout<<endl;
store.printMenu();
break;
case 0:
store.exit();
flag=false;break;
default:
store.invalidInput();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -