221 lines
5.1 KiB
C++
221 lines
5.1 KiB
C++
|
#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++)
|
|||
|
{
|
|||
|
string sFName = " ";
|
|||
|
string sLName = " ";
|
|||
|
string sNum = " ";
|
|||
|
|
|||
|
CPhoneBook.GetItem(i, sFName, sLName, sNum);
|
|||
|
cout << 1 + i << ". " << sFName << " " << sLName << ": " << sNum << endl;
|
|||
|
}
|
|||
|
}
|
|||
|
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;
|
|||
|
string sNum;
|
|||
|
|
|||
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ";
|
|||
|
cin >> nNumOfElement;
|
|||
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:" << endl;
|
|||
|
cout << "<EFBFBD><EFBFBD><EFBFBD>: ";
|
|||
|
cin >> sFName;
|
|||
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ";
|
|||
|
cin >> sLName;
|
|||
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ";
|
|||
|
cin >> sNum;
|
|||
|
CPhoneBook.SetNewValueToItem(sFName, sLName, sNum, nNumOfElement);
|
|||
|
}
|
|||
|
|
|||
|
void CConsoleUI::SortItems(CBookItems& CPhoneBook)
|
|||
|
{
|
|||
|
int nSortingType = 0;
|
|||
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:" << endl;
|
|||
|
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;
|
|||
|
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;
|
|||
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:" << endl;
|
|||
|
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++)
|
|||
|
{
|
|||
|
string sFName = " ";
|
|||
|
string sLName = " ";
|
|||
|
string sNum = " ";
|
|||
|
|
|||
|
CPhoneBook.GetItem(nNumOfDesirvedItems.at(i), sFName, sLName, sNum);
|
|||
|
cout << 1 + i << ". " << sFName << " " << sLName << ": " << sNum << endl;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
void CConsoleUI::CreateNewItem(CBookItems& CPhoneBook)
|
|||
|
{
|
|||
|
string sFName;
|
|||
|
string sLName;
|
|||
|
string sNum;
|
|||
|
|
|||
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:" << endl;
|
|||
|
cout << "<EFBFBD><EFBFBD><EFBFBD>: ";
|
|||
|
cin >> sFName;
|
|||
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ";
|
|||
|
cin >> sLName;
|
|||
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ";
|
|||
|
cin >> sNum;
|
|||
|
|
|||
|
CPhoneBook.CreateNewItem(sFName, sLName, sNum);
|
|||
|
}
|
|||
|
|
|||
|
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");
|
|||
|
}
|