C++(07)
user_9838728
c_cpp
a year ago
3.7 kB
14
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...