2021-03-25 22:59:37 +03:00
|
|
|
|
#include "CConsoleUI.h"
|
|
|
|
|
|
|
|
|
|
void CConsoleUI::StartUsingUI(CBookItems& CPhoneBook)
|
|
|
|
|
{
|
|
|
|
|
LoadPhoneBook(CPhoneBook);
|
|
|
|
|
bExit = false;
|
|
|
|
|
_aUserCommandList.push_back("help");
|
|
|
|
|
_aUserCommandList.push_back("SHW_PHNBOOK");
|
|
|
|
|
_aUserCommandList.push_back("CNG_ITEM");
|
|
|
|
|
_aUserCommandList.push_back("SRT_ITEMS");
|
|
|
|
|
_aUserCommandList.push_back("FND_ITEM");
|
|
|
|
|
_aUserCommandList.push_back("CRT_ITEM");
|
|
|
|
|
_aUserCommandList.push_back("SAVE_ITEMS");
|
|
|
|
|
_aUserCommandList.push_back("EXIT");
|
|
|
|
|
_aUserCommandList.push_back("LOAD_ITEMS");
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CConsoleUI::PrintPhoneBook(CBookItems& CPhoneBook)
|
|
|
|
|
{
|
|
|
|
|
if (CPhoneBook.GetSize() >= 1)
|
|
|
|
|
{
|
|
|
|
|
for (int i = 0; i < CPhoneBook.GetSize(); i++)
|
2021-03-28 21:12:20 +03:00
|
|
|
|
cout << 1 + i << ". " << CPhoneBook.GetItem(i) << endl;
|
2021-03-25 22:59:37 +03:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>" << endl;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CConsoleUI::ChangeSomeItem(CBookItems& CPhoneBook)
|
|
|
|
|
{
|
|
|
|
|
int nNumOfElement = 0;
|
|
|
|
|
string sFName;
|
|
|
|
|
string sLName;
|
2021-03-28 12:08:19 +03:00
|
|
|
|
string sNum1;
|
|
|
|
|
string sNum2;
|
2021-03-25 22:59:37 +03:00
|
|
|
|
|
|
|
|
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ";
|
|
|
|
|
cin >> nNumOfElement;
|
2021-03-28 12:08:19 +03:00
|
|
|
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:" << endl;
|
2021-03-25 22:59:37 +03:00
|
|
|
|
cout << "<EFBFBD><EFBFBD><EFBFBD>: ";
|
|
|
|
|
cin >> sFName;
|
|
|
|
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ";
|
|
|
|
|
cin >> sLName;
|
2021-03-28 12:08:19 +03:00
|
|
|
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1: ";
|
|
|
|
|
cin >> sNum1;
|
|
|
|
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2: ";
|
|
|
|
|
cin >> sNum2;
|
|
|
|
|
CPhoneBook.SetNewValueToItem(sFName, sLName, sNum1, sNum2, nNumOfElement);
|
2021-03-25 22:59:37 +03:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CConsoleUI::SortItems(CBookItems& CPhoneBook)
|
|
|
|
|
{
|
|
|
|
|
int nSortingType = 0;
|
2021-03-28 12:08:19 +03:00
|
|
|
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:" << endl;
|
2021-03-25 22:59:37 +03:00
|
|
|
|
cout << "1. <20><> <20><><EFBFBD><EFBFBD><EFBFBD>" << endl;
|
|
|
|
|
cout << "2. <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" << endl;
|
2021-03-28 12:08:19 +03:00
|
|
|
|
cout << "3. <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1" << endl;
|
|
|
|
|
cout << "4. <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2" << endl;
|
2021-03-25 22:59:37 +03:00
|
|
|
|
cin >> nSortingType;
|
|
|
|
|
nSortingType--;
|
|
|
|
|
int error = CPhoneBook.SortItems(nSortingType);
|
|
|
|
|
if (error == 1)
|
|
|
|
|
{
|
|
|
|
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!" << endl;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CConsoleUI::FindItem(CBookItems& CPhoneBook)
|
|
|
|
|
{
|
|
|
|
|
string sValueNeed = "";
|
|
|
|
|
vector<int> nNumOfDesirvedItems;
|
|
|
|
|
int nSortingType = 0;
|
2021-03-28 12:08:19 +03:00
|
|
|
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:" << endl;
|
2021-03-25 22:59:37 +03:00
|
|
|
|
cout << "1. <20><> <20><><EFBFBD><EFBFBD><EFBFBD>" << endl;
|
|
|
|
|
cout << "2. <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" << endl;
|
|
|
|
|
cout << "3. <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" << endl;
|
|
|
|
|
cin >> nSortingType;
|
|
|
|
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ";
|
|
|
|
|
cin >> sValueNeed;
|
|
|
|
|
|
|
|
|
|
CPhoneBook.FindItem(sValueNeed, nSortingType, nNumOfDesirvedItems);
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < nNumOfDesirvedItems.size(); i++)
|
|
|
|
|
{
|
2021-03-28 23:42:20 +03:00
|
|
|
|
cout << 1 + i << ". " << CPhoneBook.GetItem(nNumOfDesirvedItems.at(i)).to_string() << endl;
|
2021-03-25 22:59:37 +03:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CConsoleUI::CreateNewItem(CBookItems& CPhoneBook)
|
|
|
|
|
{
|
|
|
|
|
string sFName;
|
|
|
|
|
string sLName;
|
2021-03-28 12:08:19 +03:00
|
|
|
|
string sNum1;
|
|
|
|
|
string sNum2;
|
2021-03-25 22:59:37 +03:00
|
|
|
|
|
2021-03-28 12:08:19 +03:00
|
|
|
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:" << endl;
|
2021-03-25 22:59:37 +03:00
|
|
|
|
cout << "<EFBFBD><EFBFBD><EFBFBD>: ";
|
|
|
|
|
cin >> sFName;
|
|
|
|
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ";
|
|
|
|
|
cin >> sLName;
|
2021-03-28 12:08:19 +03:00
|
|
|
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1: ";
|
|
|
|
|
cin >> sNum1;
|
|
|
|
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2: ";
|
|
|
|
|
cin >> sNum2;
|
2021-03-25 22:59:37 +03:00
|
|
|
|
|
2021-03-28 12:08:19 +03:00
|
|
|
|
CPhoneBook.CreateNewItem(sFName, sLName, sNum1, sNum2);
|
2021-03-25 22:59:37 +03:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CConsoleUI::Help()
|
|
|
|
|
{
|
|
|
|
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" << endl << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: " << endl;
|
|
|
|
|
cout << "EXIT- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" << endl;
|
|
|
|
|
cout << "SHW_PHNBOOK- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" << endl;
|
|
|
|
|
cout << "CNG_ITEM- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" << endl;
|
|
|
|
|
cout << "SRT_ITEMS- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" << endl;
|
|
|
|
|
cout << "FND_ITEM- <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" << endl;
|
|
|
|
|
cout << "CRT_ITEM- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" << endl;
|
|
|
|
|
cout << "SAVE_ITEMS- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" << endl;
|
|
|
|
|
cout << "LOAD_ITEMS- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" << endl;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CConsoleUI::MakeSomeAcion(CBookItems& CPhoneBook)
|
|
|
|
|
{
|
|
|
|
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" << endl << "(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 'help' <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>): ";
|
|
|
|
|
cin >> _sUserCommand;
|
|
|
|
|
system("cls");
|
|
|
|
|
for (int i = 0; i < _aUserCommandList.size(); i++)
|
|
|
|
|
{
|
|
|
|
|
if (_sUserCommand == _aUserCommandList.at(i))
|
|
|
|
|
{
|
|
|
|
|
switch (i)
|
|
|
|
|
{
|
|
|
|
|
case 0:
|
|
|
|
|
Help();
|
|
|
|
|
break;
|
|
|
|
|
case 1:
|
|
|
|
|
PrintPhoneBook(CPhoneBook);
|
|
|
|
|
break;
|
|
|
|
|
case 2:
|
|
|
|
|
ChangeSomeItem(CPhoneBook);
|
|
|
|
|
PrintPhoneBook(CPhoneBook);
|
|
|
|
|
break;
|
|
|
|
|
case 3:
|
|
|
|
|
SortItems(CPhoneBook);
|
|
|
|
|
PrintPhoneBook(CPhoneBook);
|
|
|
|
|
break;
|
|
|
|
|
case 4:
|
|
|
|
|
FindItem(CPhoneBook);
|
|
|
|
|
break;
|
|
|
|
|
case 5:
|
|
|
|
|
CreateNewItem(CPhoneBook);
|
|
|
|
|
PrintPhoneBook(CPhoneBook);
|
|
|
|
|
break;
|
|
|
|
|
case 6:
|
|
|
|
|
SavePhoneBook(CPhoneBook);
|
|
|
|
|
PrintPhoneBook(CPhoneBook);
|
|
|
|
|
break;
|
|
|
|
|
case 7:
|
|
|
|
|
CloseProgramm();
|
|
|
|
|
break;
|
|
|
|
|
case 8:
|
|
|
|
|
LoadPhoneBook(CPhoneBook);
|
|
|
|
|
PrintPhoneBook(CPhoneBook);
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" << endl;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CConsoleUI::SavePhoneBook(CBookItems& CPhoneBook)
|
|
|
|
|
{
|
|
|
|
|
if (CPhoneBook.SaveItems("myFile.txt") == 1)
|
|
|
|
|
{
|
|
|
|
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>" << endl;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" << endl;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CConsoleUI::LoadPhoneBook(CBookItems& CPhoneBook)
|
|
|
|
|
{
|
|
|
|
|
if (CPhoneBook.LoadItems("myFile.txt") == 1)
|
|
|
|
|
{
|
|
|
|
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>" << endl;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" << endl;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CConsoleUI::CloseProgramm()
|
|
|
|
|
{
|
|
|
|
|
bExit = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CConsoleUI::SetConsoleUI(CBookItems& CPhoneBook)
|
|
|
|
|
{
|
|
|
|
|
StartUsingUI(CPhoneBook);
|
|
|
|
|
setlocale(LC_ALL, "Rus");
|
|
|
|
|
while (!bExit)
|
|
|
|
|
{
|
|
|
|
|
MakeSomeAcion(CPhoneBook);
|
|
|
|
|
}
|
|
|
|
|
system("cls");
|
|
|
|
|
}
|