Initial state
This commit is contained in:
commit
2c9cb71004
|
@ -0,0 +1,6 @@
|
||||||
|
Pavel Antonov +78005553535
|
||||||
|
Anton Pavkin +79374237500
|
||||||
|
Pavel Antonov +78005553535
|
||||||
|
Anton Pavkin +79374237500
|
||||||
|
Ivan Lalala 331547
|
||||||
|
Sash Huiasha 2021
|
|
@ -0,0 +1,274 @@
|
||||||
|
#include "CBookItems.h"
|
||||||
|
|
||||||
|
|
||||||
|
void CBookItems::CreateNewItem(string sFirstName, string sLastName, string sPhoneNumber)
|
||||||
|
{
|
||||||
|
_BookItem* spaceItem = new _BookItem;
|
||||||
|
spaceItem->_sFirstName = sFirstName;
|
||||||
|
spaceItem->_sLastName = sLastName;
|
||||||
|
spaceItem->_sPhoneNumber = sPhoneNumber;
|
||||||
|
|
||||||
|
_aItems.push_back(*spaceItem);
|
||||||
|
|
||||||
|
//delete spaceItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
int CBookItems::SetNewValueToItem(string sFirstName, string sLastName, string sPhoneNumber, int nNumOfItem)
|
||||||
|
{
|
||||||
|
nNumOfItem--;
|
||||||
|
if (!(nNumOfItem > _aItems.size()))
|
||||||
|
{
|
||||||
|
for (int i = 0; i < _aItems.size(); i++)
|
||||||
|
{
|
||||||
|
if (nNumOfItem == i)
|
||||||
|
{
|
||||||
|
_BookItem spaceItem;
|
||||||
|
spaceItem._sFirstName = sFirstName;
|
||||||
|
spaceItem._sLastName = sLastName;
|
||||||
|
spaceItem._sPhoneNumber = sPhoneNumber;
|
||||||
|
|
||||||
|
_aItems.at(nNumOfItem) = spaceItem;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int CBookItems::GetItem(int nNumOfItem, string& sFirstName, string& sLastName, string& sPhoneNumber)
|
||||||
|
{
|
||||||
|
if (!(nNumOfItem > _aItems.size()))
|
||||||
|
{
|
||||||
|
sFirstName = _aItems.at(nNumOfItem)._sFirstName;
|
||||||
|
sLastName = _aItems.at(nNumOfItem)._sLastName;
|
||||||
|
sPhoneNumber = _aItems.at(nNumOfItem)._sPhoneNumber;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int CBookItems::GetSize()
|
||||||
|
{
|
||||||
|
return _aItems.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
int CBookItems::SortItems(int nSortingType)
|
||||||
|
{
|
||||||
|
if (nSortingType == 0)
|
||||||
|
{
|
||||||
|
CBookItems spaceItem;
|
||||||
|
for (int i = 0; i < _aItems.size(); i++)
|
||||||
|
{
|
||||||
|
for (int j = i; j < _aItems.size(); j++)
|
||||||
|
{
|
||||||
|
if (_aItems.at(i)._sFirstName[0] > _aItems.at(j)._sFirstName[0])
|
||||||
|
{
|
||||||
|
string sFirstName = "";
|
||||||
|
string sLastName = "";
|
||||||
|
string sPhoneNumber = "";
|
||||||
|
|
||||||
|
sFirstName = _aItems.at(i)._sFirstName;
|
||||||
|
sLastName = _aItems.at(i)._sLastName;
|
||||||
|
sPhoneNumber = _aItems.at(i)._sPhoneNumber;
|
||||||
|
|
||||||
|
_aItems.at(i)._sFirstName = _aItems.at(j)._sFirstName;
|
||||||
|
_aItems.at(i)._sLastName = _aItems.at(j)._sLastName;
|
||||||
|
_aItems.at(i)._sPhoneNumber = _aItems.at(j)._sPhoneNumber;
|
||||||
|
|
||||||
|
_aItems.at(j)._sFirstName = sFirstName;
|
||||||
|
_aItems.at(j)._sLastName = sLastName;
|
||||||
|
_aItems.at(j)._sPhoneNumber = sPhoneNumber;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
else if (nSortingType == 1)
|
||||||
|
{
|
||||||
|
CBookItems spaceItem;
|
||||||
|
for (int i = 0; i < _aItems.size(); i++)
|
||||||
|
{
|
||||||
|
for (int j = i; j < _aItems.size(); j++)
|
||||||
|
{
|
||||||
|
if (_aItems.at(i)._sLastName[0] > _aItems.at(j)._sLastName[0])
|
||||||
|
{
|
||||||
|
string sFirstName = "";
|
||||||
|
string sLastName = "";
|
||||||
|
string sPhoneNumber = "";
|
||||||
|
|
||||||
|
sFirstName = _aItems.at(i)._sFirstName;
|
||||||
|
sLastName = _aItems.at(i)._sLastName;
|
||||||
|
sPhoneNumber = _aItems.at(i)._sPhoneNumber;
|
||||||
|
|
||||||
|
_aItems.at(i)._sFirstName = _aItems.at(j)._sFirstName;
|
||||||
|
_aItems.at(i)._sLastName = _aItems.at(j)._sLastName;
|
||||||
|
_aItems.at(i)._sPhoneNumber = _aItems.at(j)._sPhoneNumber;
|
||||||
|
|
||||||
|
_aItems.at(j)._sFirstName = sFirstName;
|
||||||
|
_aItems.at(j)._sLastName = sLastName;
|
||||||
|
_aItems.at(j)._sPhoneNumber = sPhoneNumber;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int CBookItems::FindItem(string sDesiredValue, int nSortingType, vector<int>& nNumOfDesirvedItems)
|
||||||
|
{
|
||||||
|
nSortingType--;
|
||||||
|
bool bCheckRightValue = false;
|
||||||
|
if (nSortingType == 0)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < _aItems.size(); i++)
|
||||||
|
{
|
||||||
|
for (int j = 0; j < sDesiredValue.size() & j < _aItems.at(i)._sFirstName.size(); j++)
|
||||||
|
{
|
||||||
|
if (sDesiredValue[j] == _aItems.at(i)._sFirstName[j])
|
||||||
|
{
|
||||||
|
bCheckRightValue = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bCheckRightValue = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (bCheckRightValue == true)
|
||||||
|
{
|
||||||
|
nNumOfDesirvedItems.push_back(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
else if (nSortingType == 1)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < _aItems.size(); i++)
|
||||||
|
{
|
||||||
|
for (int j = 0; j < sDesiredValue.size() & j < _aItems.at(i)._sLastName.size(); j++)
|
||||||
|
{
|
||||||
|
if (sDesiredValue[j] == _aItems.at(i)._sLastName[j])
|
||||||
|
{
|
||||||
|
bCheckRightValue = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bCheckRightValue = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (bCheckRightValue == true)
|
||||||
|
{
|
||||||
|
nNumOfDesirvedItems.push_back(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
else if (nSortingType == 2)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < _aItems.size(); i++)
|
||||||
|
{
|
||||||
|
for (int j = 0; j < sDesiredValue.size() & j < _aItems.at(i)._sPhoneNumber.size(); j++)
|
||||||
|
{
|
||||||
|
if (sDesiredValue[j] == _aItems.at(i)._sPhoneNumber[j])
|
||||||
|
{
|
||||||
|
bCheckRightValue = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bCheckRightValue = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (bCheckRightValue == true)
|
||||||
|
{
|
||||||
|
nNumOfDesirvedItems.push_back(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int CBookItems::SaveItems(string sNameOfFile)
|
||||||
|
{
|
||||||
|
ofstream fSave;
|
||||||
|
fSave.open(sNameOfFile);
|
||||||
|
|
||||||
|
if (!fSave.is_open())
|
||||||
|
{
|
||||||
|
fSave.close();
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (int i = 0; i < _aItems.size(); i++)
|
||||||
|
{
|
||||||
|
fSave << _aItems.at(i)._sFirstName << " " << _aItems.at(i)._sLastName << " " << _aItems.at(i)._sPhoneNumber << " " << endl;
|
||||||
|
}
|
||||||
|
fSave.close();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int CBookItems::LoadItems(string sNameOfFile)
|
||||||
|
{
|
||||||
|
_aItems.clear();
|
||||||
|
ifstream fLoad;
|
||||||
|
fLoad.open(sNameOfFile);
|
||||||
|
|
||||||
|
if (!fLoad.is_open())
|
||||||
|
{
|
||||||
|
fLoad.close();
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
string sFirstName = "", sLastName = "", sPhoneNum = "";
|
||||||
|
string sItemData = "";
|
||||||
|
while (getline(fLoad, sItemData))
|
||||||
|
{
|
||||||
|
int j = 0, k = 0;
|
||||||
|
while (sItemData.at(j) != ' ')
|
||||||
|
{
|
||||||
|
sFirstName += sItemData[j];
|
||||||
|
j++, k++;
|
||||||
|
}
|
||||||
|
k = 0;
|
||||||
|
j++;
|
||||||
|
while (sItemData.at(j) != ' ')
|
||||||
|
{
|
||||||
|
sLastName += sItemData[j];
|
||||||
|
j++, k++;
|
||||||
|
}
|
||||||
|
k = 0;
|
||||||
|
j++;
|
||||||
|
while (j < sItemData.size())
|
||||||
|
{
|
||||||
|
sPhoneNum += sItemData[j];
|
||||||
|
j++, k++;
|
||||||
|
}
|
||||||
|
|
||||||
|
CreateNewItem(sFirstName, sLastName, sPhoneNum);
|
||||||
|
sFirstName = "", sLastName = "", sPhoneNum = "", sItemData = "";
|
||||||
|
}
|
||||||
|
fLoad.close();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,81 @@
|
||||||
|
/**
|
||||||
|
* Класс "CBookItems" представляет собой сущность телефонного справочника
|
||||||
|
* Он хранит в себе все номера, имена и фамилии абонентов, занесённых в справочник
|
||||||
|
* Может менять и возвращать данные отдельного абонента, занесённого в справочник
|
||||||
|
* Может сортировать абонентов по фамилии или по имени
|
||||||
|
* Может производить поиск абонентов по фамилии, имени и номеру
|
||||||
|
* Может сохранять данные абонентов телефонного справочника в файл
|
||||||
|
* Может загружать данные абонентов телефонного справочника из файла
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
#include <iostream>
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
#include <fstream>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
|
||||||
|
class CBookItems
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
struct _BookItem
|
||||||
|
{
|
||||||
|
string _sFirstName;
|
||||||
|
string _sLastName;
|
||||||
|
string _sPhoneNumber;
|
||||||
|
};
|
||||||
|
|
||||||
|
vector<_BookItem> _aItems;
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
//===============================================================================
|
||||||
|
/**
|
||||||
|
*Создаёт элемент телефонного справочника и задаёт его значение
|
||||||
|
*/
|
||||||
|
void CreateNewItem(string sFirstName, string sLastName, string sPhoneNumber);
|
||||||
|
|
||||||
|
//===============================================================================
|
||||||
|
/**
|
||||||
|
*Меняет значение заданного элемента телефонного справочника
|
||||||
|
*/
|
||||||
|
int SetNewValueToItem(string sFirstName, string sLastName, string sPhoneNumber, int nNumOfItem);
|
||||||
|
|
||||||
|
//===============================================================================
|
||||||
|
/**
|
||||||
|
*Возвращает данные элемента телефонного справочника
|
||||||
|
*/
|
||||||
|
int GetItem(int nNumOfItem, string& sFirstName, string& sLastName, string& sPhoneNumber);
|
||||||
|
|
||||||
|
//===============================================================================
|
||||||
|
/**
|
||||||
|
*Возвращает количество элементов в телефонном справочнике
|
||||||
|
*/
|
||||||
|
int GetSize();
|
||||||
|
|
||||||
|
//===============================================================================
|
||||||
|
/**
|
||||||
|
*Сортирует абонентов в справочнике по именам или фамилии
|
||||||
|
*/
|
||||||
|
int SortItems(int nSortingType);
|
||||||
|
|
||||||
|
//===============================================================================
|
||||||
|
/**
|
||||||
|
*Ищет абонентов по имени, фамилии или по номеру телефона
|
||||||
|
*/
|
||||||
|
int FindItem(string sDesiredValue, int nSortingType, vector<int>& nNumOfDesirvedItems);
|
||||||
|
|
||||||
|
//===============================================================================
|
||||||
|
/**
|
||||||
|
*Сохраняет данные абонентов телефонной книги
|
||||||
|
*/
|
||||||
|
int SaveItems(string sNameOfFile);
|
||||||
|
|
||||||
|
//===============================================================================
|
||||||
|
/**
|
||||||
|
*Загружает данные абонентов телефонной книги
|
||||||
|
*/
|
||||||
|
int LoadItems(string sNameOfFile);
|
||||||
|
};
|
|
@ -0,0 +1,220 @@
|
||||||
|
#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 << "Âàøà òåëåôîííàÿ êíèãà ïóñòà" << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void CConsoleUI::ChangeSomeItem(CBookItems& CPhoneBook)
|
||||||
|
{
|
||||||
|
int nNumOfElement = 0;
|
||||||
|
string sFName;
|
||||||
|
string sLName;
|
||||||
|
string sNum;
|
||||||
|
|
||||||
|
cout << "Ââåäèòå íîìåð ýëåìåíòà: ";
|
||||||
|
cin >> nNumOfElement;
|
||||||
|
cout << "Ââåäèòå èìÿ, ôàìèëèþ è íîìåð àáîíåíòà:" << endl;
|
||||||
|
cout << "Èìÿ: ";
|
||||||
|
cin >> sFName;
|
||||||
|
cout << "Ôàìèëèÿ: ";
|
||||||
|
cin >> sLName;
|
||||||
|
cout << "Íîìåð: ";
|
||||||
|
cin >> sNum;
|
||||||
|
CPhoneBook.SetNewValueToItem(sFName, sLName, sNum, nNumOfElement);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CConsoleUI::SortItems(CBookItems& CPhoneBook)
|
||||||
|
{
|
||||||
|
int nSortingType = 0;
|
||||||
|
cout << "Ââåäèòå íîìåð òèïà ñîðòèðîâêè:" << endl;
|
||||||
|
cout << "1. Ïî Èìåíè" << endl;
|
||||||
|
cout << "2. Ïî Ôàìèëèè" << endl;
|
||||||
|
cout << "3. Ïî Íîìåðó" << endl;
|
||||||
|
cin >> nSortingType;
|
||||||
|
nSortingType--;
|
||||||
|
int error = CPhoneBook.SortItems(nSortingType);
|
||||||
|
if (error == 1)
|
||||||
|
{
|
||||||
|
cout << "Îøèáêà: êîìàíäà ââåäåíà íåâåðíî!" << endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void CConsoleUI::FindItem(CBookItems& CPhoneBook)
|
||||||
|
{
|
||||||
|
string sValueNeed = "";
|
||||||
|
vector<int> nNumOfDesirvedItems;
|
||||||
|
int nSortingType = 0;
|
||||||
|
cout << "Ââåäèòå íîìåð òèïà ïîèñêà:" << endl;
|
||||||
|
cout << "1. Ïî Èìåíè" << endl;
|
||||||
|
cout << "2. Ïî Ôàìèëèè" << endl;
|
||||||
|
cout << "3. Ïî Íîìåðó" << endl;
|
||||||
|
cin >> nSortingType;
|
||||||
|
cout << "Ââåäèòå èìÿ/ôàìèëèþ/òåëåôîí àáîíåíòà: ";
|
||||||
|
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 << "Ââåäèòå èìÿ, ôàìèëèþ è íîìåð àáîíåíòà:" << endl;
|
||||||
|
cout << "Èìÿ: ";
|
||||||
|
cin >> sFName;
|
||||||
|
cout << "Ôàìèëèÿ: ";
|
||||||
|
cin >> sLName;
|
||||||
|
cout << "Íîìåð: ";
|
||||||
|
cin >> sNum;
|
||||||
|
|
||||||
|
CPhoneBook.CreateNewItem(sFName, sLName, sNum);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CConsoleUI::Help()
|
||||||
|
{
|
||||||
|
cout << "Ïåðå÷èñëåííûå íèæå êîìàíäû" << endl << "Ïîìîãàþò âçàèìîäåéñòâîâàòü ïîëüçîâàòåëþ ñî ñïðàâî÷íèêîì: " << endl;
|
||||||
|
cout << "EXIT- çàêðûòü ïðîãðàììó" << endl;
|
||||||
|
cout << "SHW_PHNBOOK- ïîêàçàòü ñïðàâî÷íèê" << endl;
|
||||||
|
cout << "CNG_ITEM- èçìåíèòü äàííûå àáîíåíòà" << endl;
|
||||||
|
cout << "SRT_ITEMS- ñîðòèðîâêà àáîíåíòîâ" << endl;
|
||||||
|
cout << "FND_ITEM- ïîèñê àáîíåíòîâ" << endl;
|
||||||
|
cout << "CRT_ITEM- ñîçäàíèå íîâîãî àîíåíòà" << endl;
|
||||||
|
cout << "SAVE_ITEMS- ñîõðàíåíèå äàííûõ ïîëüçîâàòåëåé" << endl;
|
||||||
|
cout << "LOAD_ITEMS- çàãðóçêà äàííûõ ïîëüçîâàòåëåé" << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CConsoleUI::MakeSomeAcion(CBookItems& CPhoneBook)
|
||||||
|
{
|
||||||
|
cout << "Ââåäèòå êîììàíäó äëÿ âçàèìîäåéñòâèÿ ñ òåëåôîííûì ñïðàâî÷íèêîì" << endl << "(Ââåäèòå 'help' äëÿ îòîáðàæåíèÿ êîìàíä): ";
|
||||||
|
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 << "Íåâåðíî ââåäåíà êîìàíäà" << endl;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void CConsoleUI::SavePhoneBook(CBookItems& CPhoneBook)
|
||||||
|
{
|
||||||
|
if (CPhoneBook.SaveItems("myFile.txt") == 1)
|
||||||
|
{
|
||||||
|
cout << "Îøèáêà îòêðûòèÿ ôàéëà" << endl;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cout << "Ôàéë óñïåøíî îòêðûò" << endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void CConsoleUI::LoadPhoneBook(CBookItems& CPhoneBook)
|
||||||
|
{
|
||||||
|
if (CPhoneBook.LoadItems("myFile.txt") == 1)
|
||||||
|
{
|
||||||
|
cout << "Îøèáêà äîñòóïà ê ôàéëó" << endl;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cout << "Äàííûå óñïåøíî çàãðóæåíû" << endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void CConsoleUI::CloseProgramm()
|
||||||
|
{
|
||||||
|
bExit = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CConsoleUI::SetConsoleUI(CBookItems& CPhoneBook)
|
||||||
|
{
|
||||||
|
StartUsingUI(CPhoneBook);
|
||||||
|
setlocale(LC_ALL, "Rus");
|
||||||
|
while (!bExit)
|
||||||
|
{
|
||||||
|
MakeSomeAcion(CPhoneBook);
|
||||||
|
}
|
||||||
|
system("cls");
|
||||||
|
}
|
|
@ -0,0 +1,97 @@
|
||||||
|
/*
|
||||||
|
* Класс "CConsoleUI" прелставляет собой реализацию пользовательского интерфейса под консоль
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
#include <iostream>
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
#include "CBookItems.h"
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
|
||||||
|
class CConsoleUI
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
string _sUserCommand;
|
||||||
|
|
||||||
|
vector<string> _aUserCommandList;
|
||||||
|
|
||||||
|
bool bExit;
|
||||||
|
|
||||||
|
//===============================================================================
|
||||||
|
/**
|
||||||
|
*Осуществляет стартовые настройки консоли
|
||||||
|
*/
|
||||||
|
void StartUsingUI(CBookItems& CPhoneBook);
|
||||||
|
|
||||||
|
//===============================================================================
|
||||||
|
/**
|
||||||
|
*Выводит данные абонентов телефонного справочника
|
||||||
|
*/
|
||||||
|
void PrintPhoneBook(CBookItems& CPhoneBook);
|
||||||
|
|
||||||
|
//===============================================================================
|
||||||
|
/**
|
||||||
|
*Изменяет данные абонента телефонного справочника
|
||||||
|
*/
|
||||||
|
void ChangeSomeItem(CBookItems& CPhoneBook);
|
||||||
|
|
||||||
|
//===============================================================================
|
||||||
|
/**
|
||||||
|
*Сортирует данные абонентов телефонного справочника
|
||||||
|
*/
|
||||||
|
void SortItems(CBookItems& CPhoneBook);
|
||||||
|
|
||||||
|
//===============================================================================
|
||||||
|
/**
|
||||||
|
*Осуществляет поиск абонентов телефонного справочника
|
||||||
|
*/
|
||||||
|
void FindItem(CBookItems& CPhoneBook);
|
||||||
|
|
||||||
|
//===============================================================================
|
||||||
|
/**
|
||||||
|
*Создаёт нового абонента телефонного справочника
|
||||||
|
*/
|
||||||
|
void CreateNewItem(CBookItems& CPhoneBook);
|
||||||
|
|
||||||
|
//===============================================================================
|
||||||
|
/**
|
||||||
|
*Помощь в использовании UI
|
||||||
|
*/
|
||||||
|
void Help();
|
||||||
|
|
||||||
|
//===============================================================================
|
||||||
|
/**
|
||||||
|
*Диологовое окно работы с данными телефонного справочника
|
||||||
|
*/
|
||||||
|
void MakeSomeAcion(CBookItems& CPhoneBook);
|
||||||
|
|
||||||
|
//===============================================================================
|
||||||
|
/**
|
||||||
|
*Сохранение данных телефонного справочника
|
||||||
|
*/
|
||||||
|
void SavePhoneBook(CBookItems& CPhoneBook);
|
||||||
|
|
||||||
|
//===============================================================================
|
||||||
|
/**
|
||||||
|
*Загрузка данных телефонного справочника
|
||||||
|
*/
|
||||||
|
void LoadPhoneBook(CBookItems& CPhoneBook);
|
||||||
|
|
||||||
|
//===============================================================================
|
||||||
|
/**
|
||||||
|
*Закрытие программы
|
||||||
|
*/
|
||||||
|
void CloseProgramm();
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
//===============================================================================
|
||||||
|
/**
|
||||||
|
*Создаёт пользовательский интерфейс
|
||||||
|
*/
|
||||||
|
void SetConsoleUI(CBookItems& CPhoneBook);
|
||||||
|
};
|
|
@ -0,0 +1,8 @@
|
||||||
|
#pragma once
|
||||||
|
#include<iostream>
|
||||||
|
#include "CBookItems.h"
|
||||||
|
#include "CConsoleUI.h"
|
||||||
|
|
||||||
|
#define FST_NAME 0
|
||||||
|
#define LST_NAME 1
|
||||||
|
#define PHN_NUMBER 2
|
|
@ -0,0 +1,3 @@
|
||||||
|
Anton Pavkin +79374237500
|
||||||
|
Anton Pavkin +79374237500
|
||||||
|
Luap Pupa pupazalupu
|
|
@ -0,0 +1,11 @@
|
||||||
|
#include "Headers.h"
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
setlocale(LC_ALL, "Rus");
|
||||||
|
CBookItems CPhoneBook;
|
||||||
|
CConsoleUI CNewUI;
|
||||||
|
CNewUI.SetConsoleUI(CPhoneBook);
|
||||||
|
}
|
Loading…
Reference in New Issue