📄 function.cpp
字号:
i=0;
if(n=="2")
{ cout<<"现有金额: "<<payment<<"元"<<endl;
cout<<"请输入您要的金额: ";
cin>>m; //取出管理员想要的金额
while(m>payment&&i<=2)
{
if(i==2)
{
cout<<"\n对不起,您连续3次输入错误,退出系统!\n"<<endl;
exit_operate();
}
cout<<"金额不足,请重新输入! ";
i++;
cin>>m;
}
payment-=m;
save_payment();
cout<<"系统正在处理,请等待..."<<endl;
for(long l=0;l<=250000000;l++)
;
cout<<"操作成功! 货款已取出!"<<endl;
cout<<"余额: "<<payment<<endl;
}
if(n=="0")
{;}
}
//*****************************************************************
void administrator() //管理员操作函数
{
char n,m;
int i=0;
Product temp;
cout<<"\t*********************************"<<endl;
cout<<"\t 欢迎光临管理员登录"<<endl;
cout<<"\t*********************************"<<endl;
while(m)
{
cout<<endl;
cout<<"1. 菜单初始化"<<endl;
cout<<"2. 自定义菜单"<<endl;
cout<<"3. 修改菜单"<<endl; //管理员的操作选项
cout<<"4. 取出货款"<<endl;
cout<<"5. 修改密码"<<endl;
cout<<"0. 退出"<<endl;
cout<<'\n'<<"请输入: ";
cin>>n;
while(n!='0'&&n!='1'&&n!='2'&&n!='3'&&n!='4'&&n!='5'&&i<=2)
{
if(i==2)
{
cout<<"\n对不起,您连续3次输入错误,退出系统!\n"<<endl;
exit_operate();
}
cout<<"对不起,您输入错误,请重新输入! ";
i++;
cin>>n;
}
switch(n)
{
case '0':exit_operate();break;
case '1':{ //1. 菜单初始化操作
initialize_menu();
cout<<'\n'<<"请等待..."<<endl;
for(long m=0;m<=250000000;m++)
;
cout<<"\n菜单初始化完毕!"<<endl;
};break;
case '2':{ //2. 自定义菜单操作
input_menu(temp);
save_menu();
};break;
case '3':{ read_menu(temp); //3. 修改菜单操作
modify_menu(temp);
}break;
case '4':take_payment();break; //4. 取出货款操作
case '5':modify_pin();break; //5. 修改密码
}
cout<<"\n继续操作请按 1 ,退出系统请按 0 : ";
{ cin>>m;
system("cls");
if(m=='0')
exit_operate() ;
}
}
}
/************************************************
上面是管理员操作
*************************************************/
/*************************************************
下面是顾客操作
*************************************************/
void con_save_menu()
{
ofstream outfile("menu.txt",ios::out);
if(!outfile)
{
cout<<"open error!"<<endl;
exit(1);
}
outfile<<num<<endl;
for(int i=0;i<num;i++)
{
outfile<<books[i].get_name()<<"\t"<<books[i].get_cubage()<<"\t";
outfile<<books[i].get_price()<<"\t"<<books[i].get_amount()<<endl;
}
outfile.close();
}
//**********************************************
void Consumer::open_menu(Product & pp)
{
int i;
string n;
int c;
double p;
int a;
ifstream infile("menu.txt",ios::in);
if(!infile)
{
cout<<"open error!"<<endl;
exit(1);
}
infile>>num;
cout<<"\n"<<"\t商品种类有"<<num<<"种"<<endl;
for(i=0;i<N;i++)
{
infile>>n>>c>>p>>a;
books.push_back(pp);
books[i].set_menu2(n,c,p);
books[i].set_amount(a);
}
cout<<endl;
infile.close();
}
//*************************************************************
void in_coin(Coin & c)
{ cout<<"\n"<<"请选择0.1元,0.5元,1元投币,请以0结束,";
cout<<"如果投其他面值的硬币将不会被识别。"<<endl;
do
{
c.set_coin_value();
if(c.get_coin_value()==0.1||c.get_coin_value()==0.5||c.get_coin_value()==1)
{
c.add_value();
}
}
while(c.get_coin_value()!=0);
cout<<"投币金额:"<<c.get_value()<<endl;
}
//***********************************************************
int buyed_amount[15];//定义一个数组
//用来保存可买商品的数量
void Consumer::select_merchdise(Product & pp,Coin & c)
{
int flag=1,n=0;
//if(c.get_coin_value()!=0)
{
while(flag!=0)
{
if(n==3)
{
cout<<"\n对不起,您连续3次输入错误,退出系统!\n"<<endl;
cout<<"\n退还余额:"<<c.get_value()<<"元"<<endl;
exit_operate();
}
else
{
for(int i=0,m=0;i<num;i++)
if(Coin::value<books[i].get_price())
m++;
n++;
if(m==num)
{
cout<<"您的余额不足,请重新投币"<<endl;
in_coin(c);
}
else
flag=0;
}
}
cout<<endl;
cout<<"您可以够买的商品的名称以及数量:"<<endl;
cout<<"序号"<<'\t'<<"商品名称"<<'\t'<<"体积(ml)"<<'\t';
cout<<"价格(元)"<<'\t'<<"可买数量"<<endl;
for(int i=0;i<num;i++)
{
buyed_amount[i]=Coin::value/books[i].get_price();
if(buyed_amount[i]<=0)
continue;
//{cout<<i+1<<"\t"<<books[i].get_name()<<"\t"<<books[i].get_cubage()<<"\t"<<'\t';
// cout<<books[i].get_price()<<'\t'<<"\t"<<"金额不足。"<<endl; }
else if(buyed_amount[i]>0&&buyed_amount[i]<=books[i].amount)
{cout<<i+1<<"\t"<<books[i].get_name()<<"\t"<<books[i].get_cubage()<<'\t'<<'\t';
cout<<books[i].get_price()<<"\t"<<'\t'<<buyed_amount[i]<<endl;}
else
{cout<<i+1<<"\t"<<books[i].get_name()<<"\t"<<books[i].get_cubage()<<'\t'<<'\t';
cout<<books[i].get_price()<<"\t"<<'\t'<<books[i].amount<<endl;}
}
}
}
//***********************************************************
void Consumer::buy_merchdise(Coin & cc)
{ string n;
//int j=1;
cout<<endl;
int number,am,other;//other是可买商品数量与
//要购买的商品数量之差
while(other<0)
{
int m=0;
cout<<"请输入您要的商品的序号:";
cin>>number;
cout<<"请输入您要购买的数量:";
cin>>am;
if(number>num||number==0)
{
cout<<"输入错误!"<<endl;
break;
}
else
if(books[number-1].get_amount()==0)
{
cout<<"您所选的商品已售完!"<<endl;
break;
}
else{
system("cls");
cout<<"购买商品所需费用:"<<am<<"*"<<books[number-1].get_price();
cout<<"="<<am*books[number-1].get_price()<<"元"<<endl;
if(buyed_amount[number-1]-am<0)
{ cout<<"余额:"<<Coin::value<<"元"<<endl;
cout<<"对不起,您的余额不足,无法购买此商品!"<<endl;
cout<<"继续投币请按 1 , 退出投币请按 0 :";
cin>>n;
m=0;
while(n!="1"&&n!="0"&&m<=2)
{
if(m==2)
{
cout<<"\n对不起,您连续3次输入错误,退出系统!\n"<<endl;
exit_operate();
}
cout<<"对不起,您输入错误,请重新输入! ";
m++;
cin>>n;
}
if(n=="1"){in_coin(cc);break;} //继续投币
else break;
}
}
other=buyed_amount[number-1]-am;
Coin::value=Coin::value-am*books[number-1].get_price();
//记录余额
payment+=am*books[number-1].get_price();
//增加货款并记录
save_payment(); //保存货款
books[number-1].set_amount(books[number-1].get_amount()-am);
//保存剩余商品的数量
cout<<"系统正在处理,请等待..."<<endl;
for(long l=0;l<=250000000;l++)
;
cout<<"操作成功!"<<endl;
con_save_menu();
}
cout<<"余额:"<<Coin::value<<"元"<<endl;
}
//***********************************************************
void consumer() //顾客操作函数
{ int i;
Coin c; //生成各个类的对象
Consumer con;
Product temp;
//*****************************************************
con.open_menu(temp); //传递一个Product的对象给
//Consumer类的成员函数open_menu();
cout<<'\n'<<"序号"<<'\t'<<"商品名称"<<'\t'<<"体积(ml)"<<'\t';
cout<<"价格(元)"<<'\t'<<"数量"<<endl;
for(i=0,point=books.begin();i<num;point++,i++)
{ cout<<i+1<<'\t';
show_menu(*point); //用迭代器输出菜单
}
in_coin(c); //传递一个Coin类的对象给函数in_coin()
//进行投币操作
system("cls");
con.select_merchdise(temp,c); //选择商品
con.buy_merchdise(c); //购买商品
string n;
while(c.get_value()!=0)
{
//system("cls");
cout<<'\n'<<"序号"<<'\t'<<"商品名称"<<'\t'<<"体积(ml)"<<'\t';
cout<<"价格(元)"<<'\t'<<"数量"<<endl;
for(i=0,point=books.begin();i<num;point++,i++)
{ cout<<i+1<<'\t';
show_menu(*point); //用迭代器输出菜单
}
cout<<"您还想购买其他商品吗?购买请按1,投币请按2,退出请0: ";
cin>>n;
system("cls");
int m=0;
while(n!="1"&&n!="0"&&n!="2"&&m<=2)
{
if(m==2)
{
cout<<"\n对不起,您连续3次输入错误,退出系统!\n"<<endl;
exit_operate();
}
cout<<"对不起,您输入错误,请重新输入! ";
m++;
cin>>n;
}
if(n=="1")
{
con.select_merchdise(temp,c);
con.buy_merchdise(c);
}
if(n=="2")
{
in_coin(c);
con.select_merchdise(temp,c); //选择商品
system("cls");
con.buy_merchdise(c); //购买商品
}
if(n=="0")
{ cout<<"\n退还余额:"<<c.get_value()<<"元"<<endl;
exit_operate();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -