C++(07)
user_9838728
c_cpp
5 months ago
3.7 kB
3
Indexable
#include <iostream> #include<cstdlib> #include<string> #include <iomanip> #include <vector> #include<fstream> #include <conio.h> using namespace std; string fileNameG = "Bank Accounts Data"; enum enMainMenue { showClientList = 1, add = 2, deleteC = 3, updateC = 4, findC = 5, exitm = 6 }; struct bankAccount { string accountNumber{ 0 }; string pinCode{ 0 }; string name{ "not found" }; string phoneNunber{ 0 }; int balance{ 0 }; }; bankAccount readData() { bankAccount client; //cin.ignore(); cout << "enter your account accountNumber => "; getline(cin >> ws, client.accountNumber); cout << "-------------\n"; cout << "enter account pine code => "; getline(cin, client.pinCode); cout << "-------------\n"; cout << "enter your account name => "; getline(cin, client.name); cout << "-------------\n"; cout << "enter your account phoneNunber => "; getline(cin, client.phoneNunber); cout << "-------------\n"; cout << "enter account balance => "; cin >> client.balance; cout << "-------------\n"; return client; } // => from struct to line string convertOneRecordToLine(bankAccount client, string seperator = "#//#") { string str{ "" }; str += client.accountNumber + seperator; str += client.pinCode + seperator; str += client.name + seperator; str += client.phoneNunber + seperator; str += to_string(client.balance); return str; } // => from vector <struct> to vector <string> vector<string> veStringConverAlleRecordToLine(vector<bankAccount> veClientsData) { vector<string> clintsDataInLines; string newClient{ "" }; for (bankAccount currentClient : veClientsData) { newClient = convertOneRecordToLine(currentClient); clintsDataInLines.push_back(newClient); } return clintsDataInLines; } // => string to vector as words and delete seperator vector<string> SplitString(string str, string delim = "#//#") { int wordLong{ 0 }; string result = ""; vector <string> veResult; while ((wordLong = str.find(delim)) != string::npos) { result = str.substr(0, wordLong); if (result != "") veResult.push_back(result); str.erase(0, wordLong + delim.length()); } if (str != "") veResult.push_back(str); return veResult; } // display => one client data void displayClientData(bankAccount client) { cout << "====> client data <====\n\n"; cout << "client accountNumber is : " << client.accountNumber << endl; cout << "client pinCode is : " << client.pinCode << endl; cout << "client name is : " << client.name << endl; cout << "client phoneNunber is : " << client.phoneNunber << endl; cout << "client balance is : " << client.balance << endl; } // => from line to struct bankAccount ConvertLinetoRecord(string line) { vector<string> clientData = SplitString(line); bankAccount client; client.accountNumber = clientData.at(0); client.pinCode = clientData.at(1); client.name = clientData.at(2); client.phoneNunber = clientData.at(3); client.balance = stoi(clientData.at(4)); return client; } // = > save one line in file void saveOneClientDataInFile(string fileName, string clientData) { fstream dataFile; dataFile.open(fileName, ios::app); if (dataFile.is_open()) { dataFile << clientData << endl; dataFile.close(); } } // => save all data from vector <string> to file void saveClientDataInFile( string fileName ,vector<string> veClientsData) { fstream dataFile; dataFile.open(fileName, ios::out); if (dataFile.is_open()) { for (string& oneClientData : veClientsData) { saveOneClientDataInFile(fileName, oneClientData); } dataFile.close(); } }
Editor is loading...