ONKurs/phoebook/CConsoleUI.cpp

221 lines
5.1 KiB
C++
Raw Normal View History

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++)
{
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");
}