From 256ca87ec87da15333d0ef157c55e43edd9bad1d Mon Sep 17 00:00:00 2001 From: Rinats Andrejevs Date: Mon, 29 Apr 2024 20:59:36 +0000 Subject: [PATCH] Update main.cpp --- FileName.cpp => main.cpp | 632 +++++++++++++++++++-------------------- 1 file changed, 316 insertions(+), 316 deletions(-) rename FileName.cpp => main.cpp (96%) diff --git a/FileName.cpp b/main.cpp similarity index 96% rename from FileName.cpp rename to main.cpp index 4e19f7a..cf6c0b0 100644 --- a/FileName.cpp +++ b/main.cpp @@ -1,316 +1,316 @@ -#include -#include -#include -#include -#include -#include -using namespace std; - -class User { -public: - string name, password; -}; - -class FinancialRecord { -public: - string id, date, description; - double profit, loss; - - // Constructor - FinancialRecord(string id, string date, string description, double profit, double loss) : id(id), date(date), description(description), profit(profit), loss(loss) {} -}; - - -vector split(string str, char delimiter) { - vector result; - stringstream ss(str); - string item; - while (getline(ss, item, delimiter)) { - result.push_back(item); - } - return result; -} - -void register_user(vector& users) { - cout << "\nRegistering a new user\n"; - string name, password; - cout << "Enter new user name: "; - cin >> name; - cout << "Enter new user password: "; - cin >> password; - User user; - user.name = name; - user.password = password; - users.push_back(user); - cout << "\nNew user has been registered successfully."; -} - -bool login_user(const vector& users, string& username, string& password) { - cout << "\nLogging in...\n"; - cout << "Enter username: "; - cin >> username; - cout << "Enter password: "; - cin >> password; - for (const auto& user : users) { - if (user.name == username && user.password == password) { - cout << "\nLogin successful!"; - return true; - } - } - cout << "\nInvalid username or password."; - return false; -} - -void display_additional_menu() { - cout << "\nAdditional Menu:\n"; - cout << "1. Add Record\n"; - cout << "2. Edit User\n"; - cout << "3. Delete User\n"; - cout << "4. Edit Record\n"; - cout << "5. Delete Record\n"; - cout << "6. Output Analytics\n"; - cout << "7. Save Records to File\n"; - cout << "8. User Enter Check\n"; - cout << "9. Draw Graph\n"; - cout << "10. Output Profit\n"; - cout << "11. Output Loss\n"; - cout << "12. Total Value\n"; - cout << "0. Exit\n"; -} - -void add_record(vector& records) { - cout << "\nAdding a new financial record...\n"; - string id, date, description; - double profit, loss; - cout << "Enter ID: "; - cin >> id; - cout << "Enter date (YYYY-MM-DD): "; - cin >> date; - cout << "Enter description: "; - cin.ignore(); // Clear input buffer - getline(cin, description); - cout << "Enter amount: "; - cin >> profit; - cout << "Enter loss amount: "; - cin >> loss; - int next_id = records.empty() ? 1 : stoi(records.back().id) + 1; - records.push_back(FinancialRecord(to_string(next_id), date, description, profit, loss)); -} - -void edit_user(vector& users) { - cout << "\nEditing user details...\n"; - string username, new_name, new_password; - cout << "Enter username to edit: "; - cin >> username; - for (User& user : users) { - if (user.name == username) { - cout << "Enter new name: "; - cin >> new_name; - cout << "Enter new password: "; - cin >> new_password; - user.name = new_name; - user.password = new_password; - cout << "User details updated successfully.\n"; - return; - } - } - cout << "User not found.\n"; -} - -void delete_user(vector& users) { - cout << "\nDeleting a user...\n"; - string username; - cout << "Enter username to delete: "; - cin >> username; - for (auto it = users.begin(); it != users.end(); ++it) { - if (it->name == username) { - users.erase(it); - cout << "User deleted successfully.\n"; - return; - } - } - cout << "User not found.\n"; -} - -void edit_record(vector& records) { - cout << "\nEditing a financial record...\n"; - string record_id; - cout << "Enter the ID of the record you want to edit: "; - cin >> record_id; - - for (FinancialRecord& record : records) { - if (record.id == record_id) { - cout << "Enter new date (YYYY-MM-DD): "; - cin >> record.date; - cout << "Enter new description: "; - cin.ignore(); // Clear input buffer - getline(cin, record.description); - cout << "Enter new profit amount: "; - cin >> record.profit; - cout << "Enter new loss amount: "; - cin >> record.loss; - cout << "Record updated successfully.\n"; - return; - } - } - cout << "Record not found.\n"; -} - -void delete_record(vector& records) { - cout << "\nDeleting a financial record...\n"; - string record_id; - cout << "Enter the ID of the record you want to delete: "; - cin >> record_id; - - for (auto it = records.begin(); it != records.end(); ++it) { - if (it->id == record_id) { - records.erase(it); - cout << "Record deleted successfully.\n"; - return; - } - } - cout << "Record not found.\n"; -} - -void output_analytics(const vector& records) { - cout << "\nGenerating analytics data...\n"; - double total_profit = 0, total_loss = 0; - for (const FinancialRecord& record : records) { - total_profit += record.profit; - total_loss += record.loss; - } - cout << "Total Revenue: $" << total_profit << endl; - cout << "Total Loss: $" << total_loss << endl; - cout << "Net Profit: $" << (total_profit - total_loss) << endl; -} - -void save_records_to_file(const vector& records) { - cout << "\nSaving records to a file...\n"; - ofstream outfile("financial_records.txt"); - if (outfile.is_open()) { - for (const FinancialRecord& record : records) { - outfile << record.id << "," << record.date << "," << record.description << "," << record.profit << "," << record.loss << endl; - } - outfile.close(); - cout << "Records saved to financial_records.txt successfully.\n"; - } - else { - cout << "Unable to open file to save records.\n"; - } -} - -void user_enter_check() { - // Functionality to check user authentication - cout << "\nChecking user authentication..."; -} - -void draw_graph() { - // Functionality to draw graphs - cout << "\nDrawing graphs..."; -} - -void total_value(const vector& records) { - cout << "\nCalculating total value...\n"; - double total_profit = 0; - for (const FinancialRecord& record : records) { - total_profit += record.profit; - } - cout << "Total profit: $" << total_profit << endl; -} - -void output_loss(const vector& records) { - cout << "\nCalculating and displaying loss...\n"; - double total_loss = 0; - for (const FinancialRecord& record : records) { - total_loss += record.loss; - } - cout << "Total loss: $" << total_loss << endl; -} - -void output_profit(const vector& records) { - cout << "\nCalculating and displaying profit...\n"; - double total_value = 0; - for (const FinancialRecord& record : records) { - total_value += record.profit - record.loss; - } - cout << "Total value: $" << total_value << endl; -} - -int main() { - - vector records; - - vector users; - int choice; - string username, password; - do { - cout << "\nMain Menu:\n1. Register New User\n2. Login\n3. Exit\nEnter your choice: "; - cin >> choice; - switch (choice) { - case 1: - register_user(users); - break; - case 2: - if (login_user(users, username, password)) { - int additional_choice; - do { - display_additional_menu(); - cout << "\nEnter your choice: "; - cin >> additional_choice; - switch (additional_choice) { - case 1: - add_record(records); - break; - case 2: - edit_user(users); - break; - case 3: - delete_user(users); - break; - case 4: - edit_record(records); - break; - case 5: - delete_record(records); - break; - case 6: - output_analytics(records); - break; - case 7: - save_records_to_file(records); - break; - case 8: - user_enter_check(); - break; - case 9: - draw_graph(); - break; - case 10: - output_profit(records); - break; - case 11: - output_loss(records); - break; - case 12: - total_value(records); - break; - case 0: - cout << "\nLogging out...\n"; - break; - default: - cout << "\nInvalid choice. Please try again.\n"; - } - } while (additional_choice != 0); - } - break; - case 3: - cout << "\nExiting program...\n"; - break; - default: - cout << "\nInvalid choice. Please try again.\n"; - } - } while (choice != 3); - - - return 0; -} +#include +#include +#include +#include +#include +#include +using namespace std; + +class User { +public: + string name, password; +}; + +class FinancialRecord { +public: + string id, date, description; + double profit, loss; + + // Constructor + FinancialRecord(string id, string date, string description, double profit, double loss) : id(id), date(date), description(description), profit(profit), loss(loss) {} +}; + + +vector split(string str, char delimiter) { + vector result; + stringstream ss(str); + string item; + while (getline(ss, item, delimiter)) { + result.push_back(item); + } + return result; +} + +void register_user(vector& users) { + cout << "\nRegistering a new user\n"; + string name, password; + cout << "Enter new user name: "; + cin >> name; + cout << "Enter new user password: "; + cin >> password; + User user; + user.name = name; + user.password = password; + users.push_back(user); + cout << "\nNew user has been registered successfully."; +} + +bool login_user(const vector& users, string& username, string& password) { + cout << "\nLogging in...\n"; + cout << "Enter username: "; + cin >> username; + cout << "Enter password: "; + cin >> password; + for (const auto& user : users) { + if (user.name == username && user.password == password) { + cout << "\nLogin successful!"; + return true; + } + } + cout << "\nInvalid username or password."; + return false; +} + +void display_additional_menu() { + cout << "\nAdditional Menu:\n"; + cout << "1. Add Record\n"; + cout << "2. Edit User\n"; + cout << "3. Delete User\n"; + cout << "4. Edit Record\n"; + cout << "5. Delete Record\n"; + cout << "6. Output Analytics\n"; + cout << "7. Save Records to File\n"; + cout << "8. User Enter Check\n"; + cout << "9. Draw Graph\n"; + cout << "10. Output Profit\n"; + cout << "11. Output Loss\n"; + cout << "12. Total Value\n"; + cout << "0. Exit\n"; +} + +void add_record(vector& records) { + cout << "\nAdding a new financial record...\n"; + string id, date, description; + double profit, loss; + cout << "Enter ID: "; + cin >> id; + cout << "Enter date (YYYY-MM-DD): "; + cin >> date; + cout << "Enter description: "; + cin.ignore(); // Clear input buffer + getline(cin, description); + cout << "Enter amount: "; + cin >> profit; + cout << "Enter loss amount: "; + cin >> loss; + int next_id = records.empty() ? 1 : stoi(records.back().id) + 1; + records.push_back(FinancialRecord(to_string(next_id), date, description, profit, loss)); +} + +void edit_user(vector& users) { + cout << "\nEditing user details...\n"; + string username, new_name, new_password; + cout << "Enter username to edit: "; + cin >> username; + for (User& user : users) { + if (user.name == username) { + cout << "Enter new name: "; + cin >> new_name; + cout << "Enter new password: "; + cin >> new_password; + user.name = new_name; + user.password = new_password; + cout << "User details updated successfully.\n"; + return; + } + } + cout << "User not found.\n"; +} + +void delete_user(vector& users) { + cout << "\nDeleting a user...\n"; + string username; + cout << "Enter username to delete: "; + cin >> username; + for (auto it = users.begin(); it != users.end(); ++it) { + if (it->name == username) { + users.erase(it); + cout << "User deleted successfully.\n"; + return; + } + } + cout << "User not found.\n"; +} + +void edit_record(vector& records) { + cout << "\nEditing a financial record...\n"; + string record_id; + cout << "Enter the ID of the record you want to edit: "; + cin >> record_id; + + for (FinancialRecord& record : records) { + if (record.id == record_id) { + cout << "Enter new date (YYYY-MM-DD): "; + cin >> record.date; + cout << "Enter new description: "; + cin.ignore(); // Clear input buffer + getline(cin, record.description); + cout << "Enter new profit amount: "; + cin >> record.profit; + cout << "Enter new loss amount: "; + cin >> record.loss; + cout << "Record updated successfully.\n"; + return; + } + } + cout << "Record not found.\n"; +} + +void delete_record(vector& records) { + cout << "\nDeleting a financial record...\n"; + string record_id; + cout << "Enter the ID of the record you want to delete: "; + cin >> record_id; + + for (auto it = records.begin(); it != records.end(); ++it) { + if (it->id == record_id) { + records.erase(it); + cout << "Record deleted successfully.\n"; + return; + } + } + cout << "Record not found.\n"; +} + +void output_analytics(const vector& records) { + cout << "\nGenerating analytics data...\n"; + double total_profit = 0, total_loss = 0; + for (const FinancialRecord& record : records) { + total_profit += record.profit; + total_loss += record.loss; + } + cout << "Total Revenue: $" << total_profit << endl; + cout << "Total Loss: $" << total_loss << endl; + cout << "Net Profit: $" << (total_profit - total_loss) << endl; +} + +void save_records_to_file(const vector& records) { + cout << "\nSaving records to a file...\n"; + ofstream outfile("financial_records.txt"); + if (outfile.is_open()) { + for (const FinancialRecord& record : records) { + outfile << record.id << "," << record.date << "," << record.description << "," << record.profit << "," << record.loss << endl; + } + outfile.close(); + cout << "Records saved to financial_records.txt successfully.\n"; + } + else { + cout << "Unable to open file to save records.\n"; + } +} + +void user_enter_check() { + // Functionality to check user authentication + cout << "\nChecking user authentication..."; +} + +void draw_graph() { + // Functionality to draw graphs + cout << "\nDrawing graphs..."; +} + +void total_value(const vector& records) { + cout << "\nCalculating total value...\n"; + double total_profit = 0; + for (const FinancialRecord& record : records) { + total_profit += record.profit; + } + cout << "Total profit: $" << total_profit << endl; +} + +void output_loss(const vector& records) { + cout << "\nCalculating and displaying loss...\n"; + double total_loss = 0; + for (const FinancialRecord& record : records) { + total_loss += record.loss; + } + cout << "Total loss: $" << total_loss << endl; +} + +void output_profit(const vector& records) { + cout << "\nCalculating and displaying profit...\n"; + double total_value = 0; + for (const FinancialRecord& record : records) { + total_value += record.profit - record.loss; + } + cout << "Total value: $" << total_value << endl; +} + +int main() { + + vector records; + + vector users; + int choice; + string username, password; + do { + cout << "\nMain Menu:\n1. Register New User\n2. Login\n3. Exit\nEnter your choice: "; + cin >> choice; + switch (choice) { + case 1: + register_user(users); + break; + case 2: + if (login_user(users, username, password)) { + int additional_choice; + do { + display_additional_menu(); + cout << "\nEnter your choice: "; + cin >> additional_choice; + switch (additional_choice) { + case 1: + add_record(records); + break; + case 2: + edit_user(users); + break; + case 3: + delete_user(users); + break; + case 4: + edit_record(records); + break; + case 5: + delete_record(records); + break; + case 6: + output_analytics(records); + break; + case 7: + save_records_to_file(records); + break; + case 8: + user_enter_check(); + break; + case 9: + draw_graph(); + break; + case 10: + output_profit(records); + break; + case 11: + output_loss(records); + break; + case 12: + total_value(records); + break; + case 0: + cout << "\nLogging out...\n"; + break; + default: + cout << "\nInvalid choice. Please try again.\n"; + } + } while (additional_choice != 0); + } + break; + case 3: + cout << "\nExiting program...\n"; + break; + default: + cout << "\nInvalid choice. Please try again.\n"; + } + } while (choice != 3); + + + return 0; +}