Untitled
unknown
plain_text
2 years ago
43 kB
14
Indexable
#include<iostream>
#include<iomanip>
#include<vector>
#include<string>
#include<fstream>
using namespace std;
// indicate different type of the systems
enum System{ FOOD = 0, SHOP, PICK_UP };
// the data structure of the cuisine or the groceries
struct Item
{
System method;// add item in the different systems, "Food Delivery", "Shops", and "Pick-Up"
string store_name;// which store this item belongs to
string number;// the cuisine or the groceries numebr, ex: 2-1
string name;// the cuisine or the groceries name
int price;// the cuisine or the groceries price
};
// the data structure of the member
struct Member
{
char identity;// seller='s', customer='c'
string name;// member name
string password;// use password to log in
vector<Item> cart;
};
// the data structure of the store
struct Store
{
string name;// the store name
string number;// the store number
int delivery_fee;// the delivery fee of each store
vector<Item> item_list;// the list of all items in this store
};
void Add_Store(vector<vector<Store>> &store_list)
{
string choose;
while(1)
{
string restaurant_number;
string restaurant_name;
string cuisine_num;
string cuisine_name;
int price;
char y_n = 'y';
Store R;
Item F;
int fee;
cout << "*** Add Store ***" << endl;
cout << "Enter 1 to add restaurants" << endl;
cout << "Enter 2 to add shops" << endl;
cout << "Enter back to the Homepage" << endl;
cout << ">>>";
cin >> choose;
while(choose != "1" && choose != "2" && choose != "back")
{
cout << "Unknown command" << endl << endl;
cout << "*** Add Store ***" << endl;
cout << "Enter 1 to add restaurants" << endl;
cout << "Enter 2 to add shops" << endl;
cout << "Enter back to the Homepage" << endl;
cout << ">>>";
cin >> choose;
}
if(choose == "back")
{
cout << endl;
break;
}
else if(choose == "1")
{
cout << endl << "Enter the restaurant number: ";
cin >> restaurant_number;
R.number = restaurant_number;
cout << "Enter the restaurant name: ";
getline(cin >> ws, restaurant_name);
R.name = restaurant_name;
cout << "Enter the delivery fee: ";
cin >> fee;
R.delivery_fee = fee;
cout << endl << "Add items..." << endl;
cout << "Enter the cuisine number: ";
cin >> cuisine_num;
F.number = cuisine_num;
cout << "Enter the cuisine name: ";
getline(cin >> ws, cuisine_name);
F.name = cuisine_name;
cout << "Enter the cuisine price: ";
cin >> price;
F.price = price;
F.store_name = restaurant_name;
R.item_list.push_back(F);
cout << "Add item successfully~ Continue? (y/n) ";
cin >> y_n;
while(1)
{
if(y_n == 'n')
{
break;
}
cout << endl;
cout << "Enter the cuisine number: ";
cin >> cuisine_num;
F.number = cuisine_num;
cout << "Enter the cuisine name: ";
getline(cin >> ws, cuisine_name);
F.name = cuisine_name;
cout << "Enter the cuisine price: ";
cin >> price;
F.price = price;
F.store_name = restaurant_name;
R.item_list.push_back(F);
cout << "Add item successfully~ Continue? (y/n) ";
cin >> y_n;
}
store_list[0].push_back(R);
}
else
{
cout << endl << "Enter the shop number: ";
cin >> restaurant_number;
R.number = restaurant_number;
cout << "Enter the shop name: ";
getline(cin >> ws, restaurant_name);
R.name = restaurant_name;
cout << "Enter the delivery fee: ";
cin >> fee;
R.delivery_fee = fee;
cout << endl << "Add items..." << endl;
cout << "Enter the groceries number: ";
cin >> cuisine_num;
F.number = cuisine_num;
cout << "Enter the groceries name: ";
getline(cin >> ws, cuisine_name);
F.name = cuisine_name;
cout << "Enter the groceries price: ";
cin >> price;
F.price = price;
F.store_name = restaurant_name;
R.item_list.push_back(F);
cout << "Add item successfully~ Continue? (y/n) ";
cin >> y_n;
while(1)
{
if(y_n == 'n')
{
break;
}
cout << endl;
cout << "Enter the groceries number: ";
cin >> cuisine_num;
F.number = cuisine_num;
cout << "Enter the groceries name: ";
getline(cin >> ws, cuisine_name);
F.name = cuisine_name;
cout << "Enter the groceries price: ";
cin >> price;
F.price = price;
F.store_name = restaurant_name;
R.item_list.push_back(F);
cout << "Add item successfully~ Continue? (y/n) ";
cin >> y_n;
}
store_list[1].push_back(R);
}
cout << endl;
}
}
void initialize_store(vector<vector<Store>> &store_list)
{
Store R;
Store S;
Store T;
Store V;
Store Q;
Store W;
Item F;
store_list.push_back(vector<Store>(0));
store_list.push_back(vector<Store>(0));
R.number = "1";
R.name = "Wang shih jhen sin tang";
R.delivery_fee = 29;
F.name = "Bubble Tea";
F.number = "1-1";
F.price = 75;
F.store_name = "Wang shih jhen sin tang";
R.item_list.push_back(F);
F.name = "Cheese-Topped Black Tea";
F.number = "1-2";
F.price = 85;
F.store_name = "Wang shih jhen sin tang";
R.item_list.push_back(F);
store_list[0].push_back(R);
S.number = "2";
S.name = "Taiwan di er jia yan su ji";
S.delivery_fee = 49;
F.name = "Boneless Salted Crispy Chicken";
F.number = "2-1";
F.price = 71;
F.store_name = "Taiwan di er jia yan su ji";
S.item_list.push_back(F);
F.name = "Egg Tofu";
F.number = "2-2";
F.price = 78;
F.store_name = "Taiwan di er jia yan su ji";
S.item_list.push_back(F);
F.name = "Green Beans";
F.number = "2-3";
F.price = 52;
F.store_name = "Taiwan di er jia yan su ji";
S.item_list.push_back(F);
store_list[0].push_back(S);
T.number = "3";
T.name = "Fang kong nai ba";
T.delivery_fee = 39;
F.name = "Sakura Shrimp Fried Rice";
F.number = "3-1";
F.price = 140;
F.store_name = "Fang kong nai ba";
T.item_list.push_back(F);
F.name = "Squid Fried Noodles";
F.number = "3-2";
F.price = 130;
F.store_name = "Fang kong nai ba";
T.item_list.push_back(F);
F.name = "Grilled King Oyster Mushrooms";
F.number = "3-3";
F.price = 50;
F.store_name = "Fang kong nai ba";
T.item_list.push_back(F);
store_list[0].push_back(T);
//shop
V.number = "1";
V.name = "Walmart";
V.delivery_fee = 49;
F.name = "Tissue";
F.number = "1-1";
F.price = 124;
F.store_name = "Walmart";
V.item_list.push_back(F);
F.name = "Light Bulbs";
F.number = "1-2";
F.price = 99;
F.store_name = "Walmart";
V.item_list.push_back(F);
store_list[1].push_back(V);
W.number = "2";
W.name = "Target";
W.delivery_fee = 39;
F.name = "Shampoo";
F.number = "2-1";
F.price = 239;
F.store_name = "Target";
W.item_list.push_back(F);
F.name = "Toothpaste";
F.number = "2-2";
F.price = 129;
F.store_name = "Target";
W.item_list.push_back(F);
store_list[1].push_back(W);
Q.number = "3";
Q.name = "Costco";
Q.delivery_fee = 29;
F.name = "Milk";
F.number = "3-1";
F.price = 259;
F.store_name = "Costco";
Q.item_list.push_back(F);
F.name = "Doritos";
F.number = "3-2";
F.price = 165;
F.store_name = "Costco";
Q.item_list.push_back(F);
F.name = "Croissant";
F.number = "3-3";
F.price = 199;
F.store_name = "Costco";
Q.item_list.push_back(F);
store_list[1].push_back(Q);
}
void Sign_Up(vector<struct Member> &info)
{
string username;
string password;
string identity;
Member R;
cout << "*** Sign Up ***" << endl;
cout << "Enter Username: ";
cin >> username;
R.name = username;
cout << "Enter Password: ";
cin >> password;
R.password = password;
cout << "Which identity do you want to sign up for?" << endl;
cout << "Enter 1 to become a customer" << endl;
cout << "Enter 2 to become a seller" << endl;
cout << ">>>";
cin >> identity;
if(identity != "1" && identity != "2")
{
cout << "Unknown command" << endl;
cout << "Fail to sign up! Go back to the Member system." << endl << endl;
return;
}
else
{
if(identity == "1")
{
R.identity = 'c';
}
else
{
R.identity = 's';
}
info.push_back(R);
cout << "Welcome! You are now a member of Food Delivery System." << endl << endl;
return;
}
}
void Log_In(vector<struct Member> &info, string &name, char &identity)
{
int i;
string username;
string password;
cout << "*** Log In ***" << endl;
cout << "Enter Username: ";
cin >> username;
cout << "Enter Password: ";
cin >> password;
for(i = 0; i < info.size(); i++)
{
if(username == info[i].name)
{
break;
}
}
if(i == info.size())
{
cout << "Fail to find your data." << endl;
cout << "Please sign up first." << endl << endl;
}
else
{
identity = info[i].identity;
name = info[i].name;
cout << "Welcome, " << name << "!" << endl << endl;
}
}
void Load_Member_Information(vector<struct Member> &info)
{
string a, b, c;
string filename;
Member R;
cout << "*** Load Member Information ***" << endl;
cout << "Enter the member file name: ";
cin >> filename;
ifstream file;
file.open(filename);
if(file.fail())
{
cout << "File could not be opened." << endl;
cout << endl;
}
else
{
while(file >> a >> b >> c)
{
R.name = a;
R.password = b;
char s_c = c[0];
R.identity = s_c;
info.push_back(R);
}
cout << "The file " << filename << " has been loaded..." << endl << endl;
}
}
void Member(vector<struct Member> &info, string &name, char &identity)
{
string choose;
while(1)
{
if(info.size() == 0)
{
cout << "**********************************" << endl;
cout << "*** Member system ***" << endl;
cout << "**********************************" << endl;
cout << "Enter 1 to Load Member Information" << endl;
cout << "Enter back to the Homepage" << endl;
cout << ">>>";
cin >> choose;
while(choose != "1" && choose != "back")
{
cout << "Unknown command" << endl << endl;
cout << "**********************************" << endl;
cout << "*** Member system ***" << endl;
cout << "**********************************" << endl;
cout << "Enter 1 to Load Member Information" << endl;
cout << "Enter back to the Homepage" << endl;
cout << ">>>";
cin >> choose;
}
cout << endl;
if(choose == "back")
{
return;
}
else
{
Load_Member_Information(info);
}
}
else
{
if(name == "0")
{
cout << "**********************************" << endl;
cout << "*** Member system ***" << endl;
cout << "**********************************" << endl;
cout << "Enter 2 to Log In" << endl;
cout << "Enter 3 to Sign Up" << endl;
cout << "Enter back to the Homepage" << endl;
cout << ">>>";
cin >> choose;
while(choose != "2" && choose != "3" && choose != "back")
{
cout << "Unknown command" << endl << endl;
cout << "**********************************" << endl;
cout << "*** Member system ***" << endl;
cout << "**********************************" << endl;
cout << "Enter 2 to Log In" << endl;
cout << "Enter 3 to Sign Up" << endl;
cout << "Enter back to the Homepage" << endl;
cout << ">>>";
cin >> choose;
}
cout << endl;
if(choose == "back")
{
return;
}
else if(choose == "2")
{
Log_In(info, name, identity);
}
else
{
Sign_Up(info);
}
}
else
{
cout << "**********************************" << endl;
cout << "*** Member system ***" << endl;
cout << "**********************************" << endl;
cout << "You are log in." << endl;
cout << "Enter 4 to log out" << endl;
cout << "Enter back to the Homepage" << endl;
cout << ">>>";
cin >> choose;
while(choose != "4" && choose != "back")
{
cout << "Unknown command" << endl << endl;
cout << "**********************************" << endl;
cout << "*** Member system ***" << endl;
cout << "**********************************" << endl;
cout << "You are log in." << endl;
cout << "Enter 4 to log out" << endl;
cout << "Enter back to the Homepage" << endl;
cout << ">>>";
cin >> choose;
}
if(choose == "back")
{
cout << endl;
return;
}
else
{
cout << "You are logging out..." << endl << endl;
name = "0";
identity = '0';
return;
}
}
}
}
}
void Add_Items_to_Cart(vector<struct Member> &info, vector<vector<Store>> &store_list, string &name, System &which)
{
Item R;
int i = 0;
int j = 0;
int k = 0;
string cuisine_num;
for(k = 0; k < info.size(); k++)
{
if(info[k].name == name)
{
break;
}
}
cout << "*** Add Items to Cart ***" << endl;
cout << "Enter item number to add it to cart: ";
cin >> cuisine_num;
if(which == FOOD) //food delivery
{
int test = 0;
for(i = 0; i < store_list[0].size(); i++)
{
for(j = 0; j < store_list[0][i].item_list.size(); j++)
{
if(store_list[0][i].item_list[j].number == cuisine_num)
{
test = 1;
break;
}
}
if(test == 1)
{
break;
}
}
while(test == 0)
{
cout << "Wrong number, please enter again!" << endl;
cout << "Enter item number to add it to cart: ";
cin >> cuisine_num;
for(i = 0; i < store_list[0].size(); i++)
{
for(j = 0; j < store_list[0][i].item_list.size(); j++)
{
if(store_list[0][i].item_list[j].number == cuisine_num)
{
test = 1;
break;
}
}
if(test == 1)
{
break;
}
}
}
R.method = FOOD;
R.store_name = store_list[0][i].name;
R.number = cuisine_num;
R.name = store_list[0][i].item_list[j].name;
R.price = store_list[0][i].item_list[j].price;
info[k].cart.push_back(R);
}
else if(which == SHOP) //shop
{
int test = 0;
for(i = 0; i < store_list[1].size(); i++)
{
for(j = 0; j < store_list[1][i].item_list.size(); j++)
{
if(store_list[1][i].item_list[j].number == cuisine_num)
{
test = 1;
break;
}
}
if(test == 1)
{
break;
}
}
while(test == 0)
{
cout << "Wrong number, please enter again!" << endl;
cout << "Enter item number to add it to cart: ";
cin >> cuisine_num;
for(i = 0; i < store_list[1].size(); i++)
{
for(j = 0; j < store_list[1][i].item_list.size(); j++)
{
if(store_list[1][i].item_list[j].number == cuisine_num)
{
test = 1;
break;
}
}
if(test == 1)
{
break;
}
}
}
R.method = SHOP;
R.store_name = store_list[1][i].name;
R.number = cuisine_num;
R.name = store_list[1][i].item_list[j].name;
R.price = store_list[1][i].item_list[j].price;
info[k].cart.push_back(R);
}
else
{
int test = 0;
for(i = 0; i < store_list[0].size(); i++)
{
for(j = 0; j < store_list[0][i].item_list.size(); j++)
{
if(store_list[0][i].item_list[j].number == cuisine_num)
{
test = 1;
break;
}
}
if(test == 1)
{
break;
}
}
while(test == 0)
{
cout << "Wrong number, please enter again!" << endl;
cout << "Enter item number to add it to cart: ";
cin >> cuisine_num;
for(i = 0; i < store_list[0].size(); i++)
{
for(j = 0; j < store_list[0][i].item_list.size(); j++)
{
if(store_list[0][i].item_list[j].number == cuisine_num)
{
test = 1;
break;
}
}
if(test == 1)
{
break;
}
}
}
R.method = PICK_UP;
R.store_name = store_list[0][i].name;
R.number = cuisine_num;
R.name = store_list[0][i].item_list[j].name;
R.price = store_list[0][i].item_list[j].price;
info[k].cart.push_back(R);
}
cout << "Added successfully!" << endl << endl;
}
void Food_Delivery_System(vector<struct Member> &info, vector<vector<Store>> &store_list, string &name, System &which)
{
string choose;
string choose1;
which = FOOD;
while(1)
{
cout << "**********************************" << endl;
cout << "*** Food Delivery System ***" << endl;
cout << "**********************************" << endl;
cout << "Enter 1 to List Restaurants" << endl;
cout << "Enter 2 to Add Items to Cart" << endl;
cout << "Enter back to the Homepage" << endl;
cout << ">>>";
cin >> choose;
while(choose != "1" && choose != "2" && choose != "back")
{
cout << "Unknown command" << endl << endl;
cout << "**********************************" << endl;
cout << "*** Food Delivery System ***" << endl;
cout << "**********************************" << endl;
cout << "Enter 1 to List Restaurants" << endl;
cout << "Enter 2 to Add Items to Cart" << endl;
cout << "Enter back to the Homepage" << endl;
cout << ">>>";
cin >> choose;
}
cout << endl;
if(choose == "back")
{
return;
}
else if(choose == "1")
{
while(1)
{
int test = 0;
cout << "*** List Restaurants ***" << endl;
cout << "No. Restaurant Delivery Fee" << endl;
for(int i = 0; i < store_list[0].size(); i++)
{
cout << left << setw(4) << store_list[0][i].number << left << setw(35) << store_list[0][i].name << "NTD" << right << setw(5) << store_list[0][i].delivery_fee << endl;
}
cout << "Enter number to the restaurant or enter back to the Food Delivery System" << endl << ">>>";
cin >> choose1;
for(int i = 0; i < store_list[0].size(); i++)
{
if(choose1 == store_list[0][i].number || choose1 == "back")
{
test = 1;
break;
}
}
while(test == 0)
{
cout << "Unknown command" << endl << endl;
cout << "*** List Restaurants ***" << endl;
cout << "No. Restaurant Delivery Fee" << endl;
for(int i = 0; i < store_list[0].size(); i++)
{
cout << left << setw(4) << store_list[0][i].number << left << setw(35) << store_list[0][i].name << "NTD" << right << setw(5) << store_list[0][i].delivery_fee << endl;
}
cout << "Enter number to the restaurant or enter back to the Food Delivery System" << endl << ">>>";
cin >> choose1;
for(int i = 0; i < store_list[0].size(); i++)
{
if(choose1 == store_list[0][i].number || choose1 == "back")
{
test = 1;
break;
}
}
}
cout << endl;
if(choose1 == "back")
{
break;
}
for(int i = 0; i < store_list[0].size(); i++)
{
if(choose1 == store_list[0][i].number)
{
cout << "*** " << store_list[0][i].name << " ***" << endl;
cout << "No. Cuisine Price" << endl;
for(int j = 0; j < store_list[0][i].item_list.size(); j++)
{
cout << left << setw(4) << store_list[0][i].item_list[j].number << left << setw(35) << store_list[0][i].item_list[j].name << "NTD" << right << setw(5) << store_list[0][i].item_list[j].price << endl;
}
cout << endl;
break;
}
}
}
}
else
{
if(name != "0")
{
Add_Items_to_Cart(info, store_list, name, which);
}
else
{
cout << "Please log in first." << endl << endl;
}
}
}
}
void Shops_System(vector<struct Member> &info, vector<vector<Store>> &store_list, string &name, System &which)
{
string choose;
string choose1;
which = SHOP;
while(1)
{
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" << endl;
cout << ">>>";
cin >> choose;
while(choose != "1" && choose != "2" && choose != "back")
{
cout << "Unknown command" << endl << endl;
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" << endl;
cout << ">>>";
cin >> choose;
}
cout << endl;
if(choose == "back")
{
return;
}
else if(choose == "1") //list shops
{
while(1)
{
int test = 0;
cout << "*** List Shops ***" << endl;
cout << "No. Shop Delivery Fee" << endl;
for(int i = 0; i < store_list[1].size(); i++)
{
cout << left << setw(4) << store_list[1][i].number << left << setw(35) << store_list[1][i].name << "NTD" << right << setw(5) << store_list[1][i].delivery_fee << endl;
}
cout << "Enter number to the restaurant or enter back to the Shops System" << endl << ">>>";
cin >> choose1;
for(int i = 0; i < store_list[1].size(); i++)
{
if(choose1 == store_list[1][i].number || choose1 == "back")
{
test = 1;
break;
}
}
while(test == 0)
{
cout << "Unknown command" << endl << endl;
cout << "*** List Shops ***" << endl;
cout << "No. Shop Delivery Fee" << endl;
for(int i = 0; i < store_list[1].size(); i++)
{
cout << left << setw(4) << store_list[1][i].number << left << setw(35) << store_list[1][i].name << "NTD" << right << setw(5) << store_list[1][i].delivery_fee << endl;
}
cout << "Enter number to the restaurant or enter back to the Shops System" << endl << ">>>";
cin >> choose1;
for(int i = 0; i < store_list[1].size(); i++)
{
if(choose1 == store_list[1][i].number || choose1 == "back")
{
test = 1;
break;
}
}
}
cout << endl;
if(choose1 == "back")
{
break;
}
for(int i = 0; i < store_list[1].size(); i++)
{
if(choose1 == store_list[1][i].number)
{
cout << "*** " << store_list[1][i].name << " ***" << endl;
cout << "No. Groceries Price" << endl;
for(int j = 0; j < store_list[1][i].item_list.size(); j++)
{
cout << left << setw(4) << store_list[1][i].item_list[j].number << left << setw(35) << store_list[1][i].item_list[j].name << "NTD" << right << setw(5) << store_list[1][i].item_list[j].price << endl;
}
cout << endl;
break;
}
}
}
}
else
{
if(name != "0")
{
Add_Items_to_Cart(info, store_list, name, which);
}
else
{
cout << "Please log in first." << endl << endl;
}
}
}
}
void PickUp_System(vector<struct Member> &info, vector<vector<Store>> &store_list, string &name, System &which)
{
string choose;
string choose1;
which = PICK_UP;
while(1)
{
cout << "**********************************" << endl;
cout << "*** Pick-Up System ***" << endl;
cout << "**********************************" << endl;
cout << "Enter 1 to List Restaurants" << endl;
cout << "Enter 2 to Add Items to Cart" << endl;
cout << "Enter back to the Homepage" << endl;
cout << ">>>";
cin >> choose;
while(choose != "1" && choose != "2" && choose != "back")
{
cout << "Unknown command" << endl << endl;
cout << "**********************************" << endl;
cout << "*** Pick-Up System ***" << endl;
cout << "**********************************" << endl;
cout << "Enter 1 to List Restaurants" << endl;
cout << "Enter 2 to Add Items to Cart" << endl;
cout << "Enter back to the Homepage" << endl;
cout << ">>>";
cin >> choose;
}
cout << endl;
if(choose == "back")
{
return;
}
else if(choose == "1")
{
while(1)
{
int test = 0;
cout << "*** List Restaurants ***" << endl;
cout << "No. Restaurant Delivery Fee" << endl;
for(int i = 0; i < store_list[0].size(); i++)
{
cout << left << setw(4) << store_list[0][i].number << left << setw(35) << store_list[0][i].name << "NTD" << right << setw(5) << 0 << endl;
}
cout << "Enter number to the restaurant or enter back to the Pick-Up System" << endl << ">>>";
cin >> choose1;
for(int i = 0; i < store_list[0].size(); i++)
{
if(choose1 == store_list[0][i].number || choose1 == "back")
{
test = 1;
break;
}
}
while(test == 0)
{
cout << "Unknown command" << endl << endl;
cout << "*** List Restaurants ***" << endl;
cout << "No. Restaurant Delivery Fee" << endl;
for(int i = 0; i < store_list[0].size(); i++)
{
cout << left << setw(4) << store_list[0][i].number << left << setw(35) << store_list[0][i].name << "NTD" << right << setw(5) << 0 << endl;
}
cout << "Enter number to the restaurant or enter back to the Pick-Up System" << endl << ">>>";
cin >> choose1;
for(int i = 0; i < store_list[0].size(); i++)
{
if(choose1 == store_list[0][i].number || choose1 == "back")
{
test = 1;
break;
}
}
}
cout << endl;
if(choose1 == "back")
{
break;
}
for(int i = 0; i < store_list[0].size(); i++)
{
if(choose1 == store_list[0][i].number)
{
cout << "*** " << store_list[0][i].name << " ***" << endl;
cout << "No. Cuisine Price" << endl;
for(int j = 0; j < store_list[0][i].item_list.size(); j++)
{
cout << left << setw(4) << store_list[0][i].item_list[j].number << left << setw(35) << store_list[0][i].item_list[j].name << "NTD" << right << setw(5) << store_list[0][i].item_list[j].price << endl;
}
cout << endl;
break;
}
}
}
}
else
{
if(name != "0")
{
Add_Items_to_Cart(info, store_list, name, which);
}
else
{
cout << "Please log in first." << endl << endl;
}
}
}
}
void Payment(vector<struct Member> &info, vector<vector<Store>> &store_list, string &name)
{
int i;
int total = 0;
vector<string> fee_paid1;
vector<string> fee_paid2;
cout << "*** Payment ***" << endl;
if(name == "0")
{
cout << "Please log in first." << endl << endl;
return;
}
for(i = 0; i < info.size(); i++)
{
if(info[i].name == name)
{
break;
}
}
if(info[i].cart.size() == 0)
{
cout << "You don't have any item in cart!" << endl << endl;
return;
}
cout << endl << "*** This is " << name << "'s order ***" << endl;
cout << "Item Price" << endl;
cout << "-------------------------------------------" << endl;
for(int j = 0; j < info[i].cart.size(); j++)
{
cout << left << setw(35) << info[i].cart[j].name << "NTD" << right << setw(5) << info[i].cart[j].price << endl;
total += info[i].cart[j].price;
}
for(int j = 0; j < info[i].cart.size(); j++)
{
if(info[i].cart[j].method == 0)
{
for(int k = 0; k < store_list[0].size(); k++)
{
if(store_list[0][k].name == info[i].cart[j].store_name)
{
int test = 0;
for(int a = 0; a < fee_paid1.size(); a++)
{
if(store_list[0][k].name == fee_paid1[a])
{
test = 1;
break;
}
}
if(test == 1)
{
}
else
{
cout << "Delivery Fee NTD" << right << setw(5) << store_list[0][k].delivery_fee << endl;
total += store_list[0][k].delivery_fee;
fee_paid1.push_back(store_list[0][k].name);
}
}
}
}
else if(info[i].cart[j].method == 1)
{
for(int k = 0; k < store_list[1].size(); k++)
{
if(store_list[1][k].name == info[i].cart[j].store_name)
{
int test = 0;
for(int a = 0; a < fee_paid2.size(); a++)
{
if(store_list[1][k].name == fee_paid2[a])
{
test = 1;
break;
}
}
if(test == 1)
{
}
else
{
cout << "Delivery Fee NTD" << right << setw(5) << store_list[1][k].delivery_fee << endl;
total += store_list[1][k].delivery_fee;
fee_paid2.push_back(store_list[1][k].name);
}
}
}
}
}
cout << "-------------------------------------------" << endl;
cout << "Total NTD" << right << setw(5) << total << endl << endl;
}
int main()
{
char identity;
System which;
string name = "0";
string choose;
vector<struct Member> info;
vector<vector<Store>> store_list;
initialize_store(store_list);
while(1)
{
if(identity == 's' && name != "0")
{
cout << "**********************************" << endl;
cout << "*** Food Delivery Homepage ***" << endl;
cout << "**********************************" << 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 Member System" << endl;
cout << "Enter 5 to Payment" << endl;
cout << "Enter 6 to Add Stores" << endl;
cout << "Enter exit() to quit" << endl;
cout << ">>>";
cin >> choose;
while(choose != "1" && choose != "2" && choose != "3" && choose != "4" && choose != "5" && choose != "6" && choose != "exit()")
{
cout << "Unknown command" << endl << endl;
cout << "**********************************" << endl;
cout << "*** Food Delivery Homepage ***" << endl;
cout << "**********************************" << 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 Member System" << endl;
cout << "Enter 5 to Payment" << endl;
cout << "Enter 6 to Add Stores" << endl;
cout << "Enter exit() to quit" << endl;
cout << ">>>";
cin >> choose;
}
cout << endl;
if(choose == "exit()")
{
return 0;
}
else if(choose == "1")
{
Food_Delivery_System(info, store_list, name, which);
}
else if(choose == "2")
{
Shops_System(info, store_list, name, which);
}
else if(choose == "3")
{
PickUp_System(info, store_list, name, which);
}
else if(choose == "4")
{
Member(info, name, identity);
}
else if(choose == "5")
{
Payment(info, store_list, name);
}
else
{
Add_Store(store_list);
}
}
else
{
cout << "**********************************" << endl;
cout << "*** Food Delivery Homepage ***" << endl;
cout << "**********************************" << 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 Member System" << endl;
cout << "Enter 5 to Payment" << endl;
cout << "Enter exit() to quit" << endl;
cout << ">>>";
cin >> choose;
while(choose != "1" && choose != "2" && choose != "3" && choose != "4" && choose != "5" && choose != "exit()")
{
cout << "Unknown command" << endl << endl;
cout << "**********************************" << endl;
cout << "*** Food Delivery Homepage ***" << endl;
cout << "**********************************" << 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 Member System" << endl;
cout << "Enter 5 to Payment" << endl;
cout << "Enter exit() to quit" << endl;
cout << ">>>";
cin >> choose;
}
cout << endl;
if(choose == "exit()")
{
return 0;
}
else if(choose == "1")
{
Food_Delivery_System(info, store_list, name, which);
}
else if(choose == "2")
{
Shops_System(info, store_list, name, which);
}
else if(choose == "3")
{
PickUp_System(info, store_list, name, which);
}
else if(choose == "4")
{
Member(info, name, identity);
}
else
{
Payment(info, store_list, name);
}
}
}
}
Editor is loading...
Leave a Comment