Untitled
unknown
plain_text
2 years ago
26 kB
9
Indexable
#include <iostream>
#include <string>
#include <vector>
using namespace std;
void List_Restaurants(int&,vector<vector<string>>&,vector<string>&,int [],int);//list the restaurants with delivery fee
void Add_Items_to_Cart(vector<string>&, vector<string>&,int &,int);//input his name and the cuisine number that he wants to add to the cart
void Payment(vector<string>&,int&, int [][10],vector<string>dfee); //input his name and show all of the items in his cart
void shopsystem(vector<vector<string>>,vector<string>&,int [],vector<string>& cartlist,vector<string>& namelist,int &counter);
void pickup(vector<string>&, vector<string>&,int &);
int main()
{
string Do;int shopgood[10];shopgood[1]=2;shopgood[2]=2;shopgood[3]=3;
string do_what;vector<string> cartlist(100);int counter=0;vector<string>shoplist(10);
vector<vector<string>> restaurant(10,vector<string>(20));
int shops=3;
shoplist[1]="*** Walmart ***";shoplist[2]="*** Target ***";shoplist[3]="*** Costco ***";
vector<string>namelist(100);vector<string> shopname(10);int good[10];//goods amount in each shop
vector<string>dfee(10);vector<vector<string>> shop(10,vector<string>(20));
dfee[1]="Delivery Fee NTD 29";dfee[4]="Delivery Fee NTD 0";
dfee[2]="Delivery Fee NTD 49";
dfee[3]="Delivery Fee NTD 39";
shop[1][0]="1 Walmart NTD 49";
shop[1][1]="1-1 Tissue NTD 124";shop[1][2]="1-2 Light Bulbs NTD 99";
shop[2][0]="2 Target NTD 39";
shop[2][1]="2-1 Shampoo NTD 239";shop[2][2]="2-2 Toothpaste NTD 129";
shop[3][0]="3 Costco NTD 29";
shop[3][1]="3-1 Milk NTD 259";shop[3][2]="3-2 Doritos NTD 165";shop[3][3]="3-3 Croissant NTD 199";
good[1]=2;good[2]=3;good[3]=3;
int goodvalue[10][10];
goodvalue[1][0]=29;goodvalue[2][0]=49;goodvalue[3][0]=39;//delivery fee
goodvalue[1][1]=75;goodvalue[1][2]=85; //good value
goodvalue[2][1]=71;goodvalue[2][2]=78;goodvalue[2][3]=52;//good value
goodvalue[3][1]=140;goodvalue[3][2]=130;goodvalue[3][3]=50;//good value
shopname[1]="*** Wang shih jhen sin tang ***";
shopname[2]="*** Taiwan di er jia yan su ji ***";
shopname[3]="*** Fang kong nai ba ***";
restaurant[1][0]="1 Wang shih jhen sin tang NTD 29";restaurant[1][10]="1 Wang shih jhen sin tang NTD 0";
restaurant[2][0]="2 Taiwan di er jia yan su ji NTD 49";restaurant[2][10]="2 Taiwan di er jia yan su ji NTD 0";
restaurant[3][0]="3 Fang kong nai ba NTD 39";restaurant[3][10]="3 Fang kong nai ba NTD 0";
restaurant[1][1]="1-1 Bubble Tea NTD 75";
restaurant[1][2]="1-2 Cheese-Topped Black Tea NTD 85";
restaurant[2][1]="2-1 Boneless Salted Crispy Chicken NTD 71";
restaurant[2][2]="2-2 Egg Tofu NTD 78";
restaurant[2][3]="2-3 Green Beans NTD 52";
restaurant[3][1]="3-1 Sakura Shrimp Fried Rice NTD 140";
restaurant[3][2]="3-2 Squid Fried Noodles NTD 130";
restaurant[3][3]="3-3 Grilled King Oyster Mushrooms NTD 50";
do
{
cout << "**********************************\n*** Food Delivery Homepage ***\n**********************************" << endl;
cout << "Enter 1 to Food Delivery System" << endl;
cout << "Enter 2 to Shops System" << endl;
cout << "Enter 3 to Pick-Up System" << endl;
cout << "Enter 4 to Payment" << endl;
cout << "Enter exit() to quit\n>>>" ;
getline(cin,Do);
if(Do=="exit()")//old
{
return 0;
}
if(Do=="1"||Do=="2"||Do=="3"||Do=="4"||Do=="exit()")//good input
{
cout<<endl;
}
else
{
cout << "Unknown command\n"<<endl;
continue;
}
if(Do=="1")
{
do
{
cout << "**********************************" << endl;
cout << "*** Food Delivery System ***\n**********************************" << endl;
cout << "Enter 1 to List Restaurants" << endl;
cout << "Enter 2 to Add Items to Cart" << endl;
cout << "Enter back to the Homepage\n>>>" ;
getline(cin,do_what);
if(do_what=="back")
{
cout<<endl;
break;
}
if(do_what=="1"||do_what=="2")//good input
{
cout<<endl;
}
else
{
cout << "Unknown command\n"<<endl;
continue;
}
if(do_what=="1")
{
List_Restaurants(shops,restaurant,shopname,good,0);
}
else if(do_what=="2")
{
Add_Items_to_Cart(cartlist,namelist,counter,0);
}
}while(do_what!="back");
}
else if(Do=="2")
{
shopsystem(shop,shoplist,shopgood,cartlist,namelist,counter);
}
else if(Do=="3")
{
do
{
cout << "**********************************" << endl;
cout << "*** Pick-Up System ***\n**********************************" << endl;
cout << "Enter 1 to List Restaurants" << endl;
cout << "Enter 2 to Add Items to Cart" << endl;
cout << "Enter back to the Homepage\n>>>";
getline(cin,do_what);
if(do_what=="back")
{
cout<<endl;
break;
}
if(do_what=="1"||do_what=="2")//good input
{
cout<<endl;
}
else
{
cout << "Unknown command\n"<<endl;
continue;
}
if(do_what=="1")
{
List_Restaurants(shops,restaurant,shopname,good,2);
}
else if(do_what=="2")
{
Add_Items_to_Cart(cartlist,namelist,counter,2);
}
}while(true);
}
else if(Do=="4")
{
Payment(cartlist,counter,goodvalue,dfee);
}
}while(Do!="exit()");
}
void List_Restaurants(int &shops , vector<vector<string>> &restaurant , vector<string> &shopname ,int good[],int control)//control=0 deliver control=2 pick up
{
string option;
do
{
cout << "*** List Restaurants ***" << endl;
cout << "No. Restaurant Delivery Fee" << endl;
if(control==0)
{
for(int i=1;i<=3;i++)
{
cout<< restaurant[i][0] <<endl;
}
}
if(control==2)
{
for(int i=1;i<=3;i++)
{
cout<< restaurant[i][10] <<endl;
}
}
if(control==0)
{
cout << "Enter number to the restaurant or enter back to the Food Delivery System\n>>>";
}
else if(control==2)
{
cout << "Enter number to the restaurant or enter back to the Pick-Up System\n>>>";
}
getline(cin,option);
if((option[0]-'0'<=shops||option=="back")&&option[0]-'0'>0&&(option.length()==4||option.length()==1))//good input
{
cout<<endl;
}
else
{
cout << "Unknown command\n"<<endl ;
continue;
}
if(option=="back")
{
return;
}
else //stoi(option) is the place of store
{
cout << shopname[stoi(option)]<<endl ;
cout << "No. Cuisine Price"<<endl ;
for(int i=1;i<=good[stoi(option)];i++)
{
cout<<restaurant[stoi(option)][i]<<endl;
}
cout <<endl;
continue;
}
}while(true);
}
void Add_Items_to_Cart(vector<string>& cartlist,vector<string>& namelist,int &counter,int control)//control=0 delivery ,control=1 shop control=2 pick up
{
string name;string add_cart;int same=0;int first=0;
cout <<"*** Add Items to Cart ***" << endl;
cout << "Enter your name: ";
getline(cin,name);
if(control==0)//delivery
{
if(counter==0)// first name
{
namelist[counter]=name;
cartlist[counter]=name;
cartlist[counter]+=",";
first=1;
do
{
cout << "Enter item number to add it to cart: " ;
getline(cin,add_cart);
if(add_cart=="1-1"||add_cart=="1-2"||add_cart=="2-1"||add_cart=="2-2"||add_cart=="2-3"||add_cart=="3-1"||add_cart=="3-2"||add_cart=="3-3")//right
{
cartlist[counter]+="0";cartlist[counter]+=add_cart;cartlist[counter]+=",";
cout <<"Added successfully!\n" << endl;
break;
}
else
{
cout <<"Wrong number, please enter again!" << endl;
continue;
}
}while(true);
counter++;
}
for(int i=0;i<counter;i++)//name used?
{
if(namelist[i]==name&&first==0)//name same
{
same=1;
}
if(same==1)//name same
{
do
{
cout << "Enter cuisine number to add it to cart: " ;
getline(cin,add_cart);
if(add_cart=="1-1"||add_cart=="1-2"||add_cart=="2-1"||add_cart=="2-2"||add_cart=="2-3"||add_cart=="3-1"||add_cart=="3-2"||add_cart=="3-3")//right
{
cartlist[i]+="0";cartlist[i]+=add_cart;cartlist[i]+=",";
cout <<"Added successfully!\n" << endl;
return;
}
else
{
cout <<"Wrong number, please enter again!" << endl;
continue;
}
}while(true);
}
}
if(same==0&&first==0)//new name not first
{
namelist[counter]=name;
cartlist[counter]=name;
cartlist[counter]+=",";
counter++;
do
{
cout << "Enter cuisine number to add it to cart: " ;
getline(cin,add_cart);
if(add_cart=="1-1"||add_cart=="1-2"||add_cart=="2-1"||add_cart=="2-2"||add_cart=="2-3"||add_cart=="3-1"||add_cart=="3-2"||add_cart=="3-3")//name,01-1...
{
cartlist[counter-1]+="0";cartlist[counter-1]+=add_cart;cartlist[counter-1]+=",";
cout <<"Added successfully!\n" << endl;
break;
}
else
{
cout <<"Wrong number, please enter again!" << endl;
continue;
}
}while(true);
}
}
else if(control==1)//shop
{
if(counter==0)// first name
{
namelist[counter]=name;
cartlist[counter]=name;
cartlist[counter]+=",";
first=1;
do
{
cout << "Enter item number to add it to cart: " ;
getline(cin,add_cart);
if(add_cart=="1-1"||add_cart=="1-2"||add_cart=="2-1"||add_cart=="2-2"||add_cart=="3-1"||add_cart=="3-2"||add_cart=="3-3")//name,11-1,13-3...
{
cartlist[counter]+="1";cartlist[counter]+=add_cart;cartlist[counter]+=",";
cout <<"Added successfully!\n" << endl;
break;
}
else
{
cout <<"Wrong number, please enter again!" << endl;
continue;
}
}while(true);
counter++;
}
for(int i=0;i<counter;i++)//name used?
{
if(namelist[i]==name&&first==0)//name same
{
same=1;
}
if(same==1)//name same
{
do
{
cout << "Enter item number to add it to cart: " ;
getline(cin,add_cart);
if(add_cart=="1-1"||add_cart=="1-2"||add_cart=="2-1"||add_cart=="2-2"||add_cart=="2-3"||add_cart=="3-1"||add_cart=="3-2"||add_cart=="3-3")//right
{
cartlist[i]+="1";cartlist[i]+=add_cart; cartlist[i]+=",";
cout <<"Added successfully!\n" << endl;
return;
}
else
{
cout <<"Wrong number, please enter again!" << endl;
continue;
}
}while(true);
}
}
if(same==0&&first==0)//new name not first
{
namelist[counter]=name;
cartlist[counter]=name;
cartlist[counter]+=",";
counter++;
do
{
cout << "Enter item number to add it to cart: " ;
getline(cin,add_cart);
if(add_cart=="1-1"||add_cart=="1-2"||add_cart=="2-1"||add_cart=="2-2"||add_cart=="2-3"||add_cart=="3-1"||add_cart=="3-2"||add_cart=="3-3")//right
{
cartlist[counter-1]+="1";cartlist[counter-1]+=add_cart;cartlist[counter-1]+=",";
cout <<"Added successfully!\n" << endl;
break;
}
else
{
cout <<"Wrong number, please enter again!" << endl;
continue;
}
}while(true);
}
}
if(control==2)//pick up
{
if(counter==0)// first name
{
namelist[counter]=name;
cartlist[counter]=name;
cartlist[counter]+=",";
first=1;
do
{
cout << "Enter item number to add it to cart: " ;
getline(cin,add_cart);
if(add_cart=="1-1"||add_cart=="1-2"||add_cart=="2-1"||add_cart=="2-2"||add_cart=="2-3"||add_cart=="3-1"||add_cart=="3-2"||add_cart=="3-3")////name,21-1...
{
cartlist[counter]+="2";cartlist[counter]+=add_cart;cartlist[counter]+=",";
cout <<"Added successfully!\n" << endl;
break;
}
else
{
cout <<"Wrong number, please enter again!" << endl;
continue;
}
}while(true);
counter++;
}
for(int i=0;i<counter;i++)//name used?
{
if(namelist[i]==name&&first==0)//name same
{
same=1;
}
if(same==1)//name same
{
do
{
cout << "Enter item number to add it to cart: " ;
getline(cin,add_cart);
if(add_cart=="1-1"||add_cart=="1-2"||add_cart=="2-1"||add_cart=="2-2"||add_cart=="2-3"||add_cart=="3-1"||add_cart=="3-2"||add_cart=="3-3")//right
{
cartlist[i]+="2";cartlist[i]+=add_cart; cartlist[i]+=",";
cout <<"Added successfully!\n" << endl;
return;
}
else
{
cout <<"Wrong number, please enter again!" << endl;
continue;
}
}while(true);
}
}
if(same==0&&first==0)//new name not first
{
namelist[counter]=name;
cartlist[counter]=name;
cartlist[counter]+=",";
counter++;
do
{
cout << "Enter item number to add it to cart: " ;
getline(cin,add_cart);
if(add_cart=="1-1"||add_cart=="1-2"||add_cart=="2-1"||add_cart=="2-2"||add_cart=="2-3"||add_cart=="3-1"||add_cart=="3-2"||add_cart=="3-3")//name,1-1...
{
cartlist[counter-1]+="2";cartlist[counter-1]+=add_cart;cartlist[counter-1]+=",";
cout <<"Added successfully!\n" << endl;
break;
}
else
{
cout <<"Wrong number, please enter again!" << endl;
continue;
}
}while(true);
}
}
}
void Payment(vector<string>& cartlist,int&counter,int goodvalue[][10],vector<string>dfee)//control=0 delivery ,control=1 shop control=2 pick up
{
string name;int same=0;int deliveramount=0;int shopamount=0;vector<string> shopfee(10);
int deliverplace[100]={0};int shopplace[100]={0};
shopfee[1]="Delivery Fee NTD 49";
shopfee[2]="Delivery Fee NTD 39";
shopfee[3]="Delivery Fee NTD 29";
int shopvalue[10][10];
shopvalue[1][0]=49;
shopvalue[2][0]=39;
shopvalue[3][0]=29;
shopvalue[1][1]=124;shopvalue[1][2]=99;
shopvalue[2][1]=239;shopvalue[2][2]=129;
shopvalue[3][1]=259;shopvalue[3][2]=165;shopvalue[3][3]=199;
vector <vector<string>> item(10,vector<string>(10));vector <vector<string>> shopitem(10,vector<string>(10));
item[1][1]="Bubble Tea NTD 75";shopitem[1][1]="Tissue NTD 124";
item[1][2]="Cheese-Topped Black Tea NTD 85";shopitem[1][2]="Light Bulbs NTD 99";
item[2][1]="Boneless Salted Crispy Chicken NTD 71";shopitem[2][1]="Shampoo NTD 239";
item[2][2]="Egg Tofu NTD 78";shopitem[2][2]="Toothpaste NTD 129";
item[2][3]="Green Beans NTD 52";shopitem[3][1]="Milk NTD 259";
item[3][1]="Sakura Shrimp Fried Rice NTD 140";shopitem[3][2]="Doritos NTD 165";
item[3][2]="Squid Fried Noodles NTD 130";shopitem[3][3]="Croissant NTD 199";
item[3][3]="Grilled King Oyster Mushrooms NTD 50";
cout << "*** Payment ***" << endl;
cout << "Enter your name: " ;
getline(cin,name);
for(int i=0;i<counter;i++)//which cartlist
{
if(cartlist[i].substr(0,name.length())==name&&cartlist[i].substr(name.length(),1)==",")//consumer
{
same=1;int total=0;bool deliverusage[10]={0};bool shopusage[10]={0};
cout<<endl;
cout << "*** This is "<<name<<"'s order ***"<<endl ;
cout << "Item Price"<<endl ;
cout << "-------------------------------------------"<<endl ;
int y=cartlist[i].length();
for(int x=(name.length()+1);x<y;x+=5)//buy what cart list= name,01-1,21-2,13-3...
{
if(deliverusage[static_cast<int>(cartlist[i][x+1])-'0']==0 && static_cast<int>(cartlist[i][x]-'0')==0)//deliver fee
{
deliverusage[static_cast<int>(cartlist[i][x+1])-'0']=1;
total+=goodvalue[static_cast<int>(cartlist[i][x+1])-'0'][0];
deliverplace[deliveramount]=static_cast<int>(cartlist[i][x+1])-'0';//
deliveramount++;
}
if(cartlist[i][x]=='0')//pick up and deliver
{
cout<<item[static_cast<int>(cartlist[i][x+1])-'0'][static_cast<int>(cartlist[i][x+3])-'0']<<endl;
total+=goodvalue[static_cast<int>(cartlist[i][x+1])-'0'][static_cast<int>(cartlist[i][x+3])-'0'];
}
if(cartlist[i][x]=='1')//shop
{
if(shopusage[static_cast<int>(cartlist[i][x+1])-'0']==0)//deliver fee shop version
{
shopusage[static_cast<int>(cartlist[i][x+1])-'0']=1;
total+=shopvalue[static_cast<int>(cartlist[i][x+1])-'0'][0];
shopplace[shopamount]=static_cast<int>(cartlist[i][x+1])-'0';// 1 2 3
shopamount++;
}
cout<<shopitem[static_cast<int>(cartlist[i][x+1])-'0'][static_cast<int>(cartlist[i][x+3])-'0']<<endl;
total+=shopvalue[static_cast<int>(cartlist[i][x+1])-'0'][static_cast<int>(cartlist[i][x+3])-'0'];
}
if(cartlist[i][x]=='2')//pick up and deliver
{
cout<<item[static_cast<int>(cartlist[i][x+1])-'0'][static_cast<int>(cartlist[i][x+3])-'0']<<endl;
total+=goodvalue[static_cast<int>(cartlist[i][x+1])-'0'][static_cast<int>(cartlist[i][x+3])-'0'];
}
}
for(int i=0;i<deliveramount;i++)//output delivery fee for food system
{
cout<<dfee[deliverplace[i]]<<endl;
}
for(int i=0;i<shopamount;i++)//output delivery fee for shop system
{
cout<<shopfee[shopplace[i]]<<endl;
}
cout<<"-------------------------------------------"<<endl;
cout<<"Total NTD "<<total<<"\n"<<endl;
break;
}
}
if(same==0)
{
cout << "You don't have any item in cart!\n" << endl;
}
}
void shopsystem(vector<vector<string>> shop,vector<string>& shoplist,int shopgood[],vector<string>& cartlist,vector<string>& namelist,int &counter)
{
string option;string listoption;
do
{
cout << "**********************************" << endl;
cout << "*** Shops System ***" << endl;
cout << "**********************************" << endl;
cout << "Enter 1 to List Shops"<<endl;
cout << "Enter 2 to Add Items to Cart"<<endl;
cout << "Enter back to the Homepage\n>>>";
getline(cin,option);
if((option[0]-'0'<=2||option=="back")&&option[0]-'0'>0&&(option.length()==4||option.length()==1))//good input
{
cout<<endl;
}
else
{
cout << "Unknown command\n"<<endl ;
continue;
}
if(option=="back")
{
return;
}
else if (option=="1")
{
do
{
cout<<"*** List Shops ***"<<endl;
cout<<"No. Shop Delivery Fee"<<endl;
for(int i=1;i<=3;i++)
{
cout << shop[i][0] << endl;
}
cout<<"Enter number to the shop or enter back to the Shops System"<<endl;
cout<<">>>";
getline(cin,listoption);
cout<<endl;
if(listoption=="back")
{
break;
}
if(listoption!="back")
{
cout << shoplist[stoi(listoption)]<<endl;
cout<<"No. Groceries Price"<<endl;
for(int i=1;i<=shopgood[stoi(listoption)];i++)
{
cout<<shop[stoi(listoption)][i]<<endl;
}
cout<<endl;
}
}while(listoption!="back");
}//end of else if
else if (option=="2")
{
Add_Items_to_Cart(cartlist,namelist,counter,1);
}
}while(true);
}
Editor is loading...
Leave a Comment