Untitled
unknown
plain_text
2 years ago
26 kB
6
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 &); void List_shops(vector<vector<string>> &shop, int shopgood[], vector<string> &shoplist); 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(100); vector<vector<string>> shop(10, vector<string>(20)); dfee[1] = "Delivery Fee NTD 29"; dfee[11] = "Delivery Fee NTD 49"; dfee[2] = "Delivery Fee NTD 49"; dfee[12] = "Delivery Fee NTD 39"; dfee[3] = "Delivery Fee NTD 39"; dfee[13] = "Delivery Fee NTD 29"; 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_shops(vector<vector<string>> &shop, int shopgood[], vector<string> &shoplist) { string listoption; 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); if (listoption == "back") { cout << endl; break; } if (listoption == "1" || listoption == "2" || listoption == "3") { cout << endl; 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; } else { cout << "Unknown command\n" << endl; continue; } } while (listoption != "back"); } 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 item number to add it to cart: " ;//cuisine 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 item number to add it to cart: " ;//cuisine 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 == "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 == "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); } }//end of shop 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; 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]; deliverplace[deliveramount] = static_cast<int>(cartlist[i][x + 1]) - '0' + 10; // 11,12,13 deliveramount++; } 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 and shop cout << dfee[deliverplace[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") { List_shops(shop, shopgood, shoplist); }//end of else if else if (option == "2") { Add_Items_to_Cart(cartlist, namelist, counter, 1); } } while (true); }
Editor is loading...
Leave a Comment