diff --git a/FileName.cpp b/FileName.cpp deleted file mode 100644 index 3c81279..0000000 --- a/FileName.cpp +++ /dev/null @@ -1,299 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -using namespace std; - - -class User { // Product class declaration with public variables -public: //Product order number in the menu - string name, password, date; - double number{};//Product name and manufacturing date //Product price -}; - -vector split(string str, char delimeter) { //Function to split rows in txt file - vector result; - stringstream ss(str); - string item; - while (getline(ss, item, delimeter)) - { - result.push_back(item); - } - return result; -} - - -void show_menu(vector& menu) { //Function to write out menu file content in console - cout << "\nVending machine menu: "; - for (User i : menu) - { - cout << "\n\nUser number: " << i.number - << "\nUser name: " << i.name; - } -} -/* -void fill_menu(vector& menu) { //Function to fill menu vector with products objects - ifstream myfile; - myfile.open("menu.txt"); - string data; - vector row; - if (myfile.is_open()) - { - while (myfile) - { - getline(myfile, data); - row = split(data, ','); //Splitting text in menu.txt file - if (row.size() > 1) - { - Product product; - product.number = stoi(row[0]); - product.name = row[1]; - product.date = row[2]; - product.price = stod(row[3]); - menu.push_back(product); - } - } - } - else - { - cout << "Error: couldnt open menu file\n"; - } - myfile.close(); -} -*/ -void add_user(vector& menu) { //Function to add user - cout << "Adding new User\n"; - string name, password; - int last_product_number{}; - - cout << "\nEnter new user name: "; - cin >> name; - cout << "\nEnter new user password: "; - cin >> password; - - User user; //Declaring an object - - last_product_number = menu[menu.size() - 1].number; //Getting last user number by its size - - user.number = last_product_number + 1; - user.name = name; - user.password = password; - menu.push_back(user); - - cout << "\nNew User have been succesfully added to the list"; -} - -void edit_user(vector& menu) { //Function to edit user details - - show_menu(menu); - cout << "Editing user\n"; - cout << "\nEnter number of user you want to edit: "; - int number; - cin >> number; - - for (int i = 0; i < menu.size(); i++) - { - if (menu[i].number == number) - { - cout << "\n\nUser number: " << number //Program write current details about the user he want to edit to console - << "\nCurrent user name: " << menu[i].name - << "\nCurrent product password: " << menu[i].password; - - cout << "\n\nEnter new name for user: "; - cin >> menu[i].name; //entering new user details - cout << "\nEnter new password for user: "; - cin >> menu[i].password; - } - else if (number > menu.size() || number < 0) - { - cout << "\n\nInvalid user number!\n"; - break; - } - } - -} - -void remove_user(vector& menu) { //Function to remove User from the menu - int choice = MessageBox(0, (LPCWSTR)L"Are you sure that you want to remove a User from the menu?", (LPCWSTR)L"Confirmation", MB_YESNO | MB_ICONQUESTION); - if (choice == IDYES) - { - show_menu(menu); - cout << "Enter number of User to remove: "; - int number; - cin >> number; - for (int i = 0; i < menu.size(); i++) - { - if (menu[i].number == number) - { - menu.erase(menu.begin() + i); //Delete the row with the User from the menu - cout << "\nUser is deleted from the menu!\n"; - } - else if (number > menu.size() || number < 0) - { - cout << "\n\nInvalid User number!\n"; - break; - } - } - } - else { - return; - } -} - -void addRecord(vector& menu) { //Function to add financial record - int counter = 0, answer = 1; - double revenue = 0, loss = 0; - vector records_name; - vector records_price; - fstream myfile("records.txt", ios::app); - - - /* - cout << "Enter date (YYYY-MM-DD): "; - cin >> menu.date; - cout << "Enter revenue: "; - cin >> record.revenue; - cout << "Enter profit: "; - cin >> record.profit; - */ - myfile.close(); -} - -void records_report() { //Writing records info from the records.txt file - string line; - ifstream myfile("records.txt"); //Reading from the file - while (getline(myfile, line)) { - cout << "\n" << line; - } - myfile.close(); -} - -void add_edit_remove_menu(vector& menu) { //Function to display add/menu/remove menu from workers menu - int answer; - cout << "\n\nInventory configuration menu\n\n1. Add User\n2. Edit User\n3. Remove User\n4. Return to worker menu\n\nEnter your option and press return: "; - cin >> answer; - switch (answer) - { - case 1: - add_user(menu); - break; - case 2: - edit_user(menu); - break; - case 3: - remove_user(menu); - break; - case 4: - return; - default: //Handling not valid and non numeric input - cin.clear(); - cin.ignore(9999, '\n'); - cout << "\nPlease enter valid option!\n"; - break; - } -} - -void client_menu(vector& menu) { //Function to display users menu - int answer; - cout << "\nClient menu\n\n1. Add Record\n2. Back to main menu\n\nEnter your option and press return: "; - cin >> answer; - switch (answer) { - case 1: - addRecord(menu); - break; - case 2: - return; - default: //Handling not valid and non numeric input - cin.clear(); - cin.ignore(9999, '\n'); - cout << "\nPlease enter valid option!\n"; - break; - } -} - -void user_menu(vector& menu) { //Function to display workers menu - while (true) { - int answer; - cout << "\nWorker menu\n\n1. Check records history\n2. Add/Edit/Remove record\n3. Show menu\n4. Back to main menu\nEnter your option and press return: "; - cin >> answer; - - switch (answer) - { - case 1: - records_report(); - break; - case 2: - add_edit_remove_menu(menu); - break; - case 3: - show_menu(menu); - break; - case 4: - return; - default: //Handling not valid and non numeric input - cin.clear(); - cin.ignore(9999, '\n'); - cout << "\nPlease enter valid option!\n"; - break; - } - } -} - -void worker_menu_access(vector& menu) { //Function asks password (1234) from an user to access the worker menu or 0 to return back - int access_code = 0; - do { - cout << "\n\nEnter code to gain access to the worker menu or 0 to return back (format: 0000): "; - cin >> access_code; - if (access_code == 1234 && to_string(access_code).length() == 4) { - user_menu(menu); - break; - } - else if (access_code != 1234 && access_code != 0 || to_string(access_code).length() != 4 && access_code != 0) { - cout << "\nIncorrect password or wrong format "; - } - else if (access_code == 0) { - return; - } - else if (cin.eof()) { - cin.clear(); - cin.ignore(9999, '\n'); - cout << "\nPlease enter valid option!\n"; - break; - } - } while (access_code != 1234 || access_code != 0); -} - - -int main() { - vector menu; - int answer = 0; - //fill_menu(menu); - ofstream myfile("records.txt", ios::app); //Creating bills text file - myfile.close(); - do { - cout << "\n\Accounting software\n\n1. Create new user\n2. Log in user\n3. Exit\n\nEnter your option and press return: "; - cin >> answer; - switch (answer) - { - case 1: - client_menu(menu); - break; - case 2: - worker_menu_access(menu); - break; - case 3: - exit(0); - default: //Handling not valid and non numeric input - cin.clear(); - cin.ignore(9999, '\n'); - cout << "\nPlease enter valid option!\n"; - break; - - } - } while (answer != 3); - myfile.close(); - return 0; -} \ No newline at end of file