Технологии
Функция автоматического формирования иерархии.Должности вписала на английском.на русском не выходит..как сделать на русском???что нужно? - вопрос №1078282
Разработать программу, которая осуществляет рассылку писем. Сформировать иерархию групп. Осуществить рассылку писем… вот код.
#include <iostream>
#include <vector>
#include <queue>
#include <map>
#include <string>
#include <windows.h>
using namespace std;
class Messange {
public:
int prior;
string position;
string messeng;
Messange(){};
Messange(int prioritet, string Position, string Messeng) :
prior(prioritet), position(Position), messeng(Messeng){}
};
//создаем очередь приритетов с помощью векторного контейнера
priority_queue<Messange, vector<Messange>, less<vector<Messange>::value_type> > pqMessange;
// hierarchy — ассоциативный массив для хранения приоритетов (номеров групп) иерархии.
map <string, int> hierarchy;
typedef pair <string, int> bufHierarchy;
//переопределение операторов сравнения,
bool operator< (const Messange& structMessange1, const Messange &structMessange2)
{
return structMessange1.prior > structMessange2.prior;
}
bool operator> (const Messange& structMessange1, const Messange &structMessange2)
{
return structMessange1.prior > structMessange2.prior;
}
//------------------------------------------------------------------------
// Функция вывода иерархии групп.
int printHierarchy()
{
if (hierarchy.empty())
return 1;
cout << «Иерархия.\nНаименование — номер группы (приоритет):\n»;
for (map <string, int>::iterator cur = hierarchy.begin(); cur != hierarchy.end(); cur++)
cout << (*cur).
return 0;
}
//------------------------------------------------------------------------
//------------------------------------------------------------------------
// Функция автоматического формирования иерархии.
int forHierarchyA()
{
hierarchy.insert(bufHierarchy(«Decan», 0));
hierarchy.insert(bufHierarchy(«Zav.kaf», 1));
hierarchy.insert(bufHierarchy(«Profesor», 2));
hierarchy.insert(bufHierarchy(«Dosent», 3));
hierarchy.insert(bufHierarchy(«Prepodavatel», 4));
hierarchy.insert(bufHierarchy(«Студент», 5));
printHierarchy();
cout << "\nАвтоматическое формирование иерархии групп выполнено.\n";
return 0;
}
//------------------------------------------------------------------------
//------------------------------------------------------------------------
// Функция обработки рассылки (рассылка).
int list()
{
while (!pqMessange.empty())
{
//сортирует по заданому полю
pqMessange.top().prior; //находим элемент с наивысшим приоритетом
const Messange& messange = pqMessange.top();
cout << "\n\n" << messange.position << endl << messange.messeng << endl;
pqMessange.pop();//удаляем
}
return 0;
}
//------------------------------------------------------------------------
int AddMessage()
{
char key = '1';
do
{
cout << «Введите должность: »;
string position;
fflush(stdin);
getline(cin, position);
fflush(stdin);
cout << "\nВведите сообщение: ";
string mes;
fflush(stdin);
getline(cin, mes);
fflush(stdin);
if (hierarchy.find(position) != hierarchy.end())
pqMessange.push(Messange(hierarchy.find(position)->second, position,mes));
else
{
cout << "\nКатегория не найдена!";
}
cout << "\nВвести новое сообщение (1)";
cout << "\nВыход (0)";
cout << "\n\t\t-->";
fflush(stdin);
cin >> key;
fflush(stdin);
} while (key != '0');
return 0;
}
//------------------------------------------------------------------------
// Функция обработки ошибок.
int mainErrors(int error)
{
if (error == 1)
cout << «Ошибка! Иерархия пуста. Сформируйте иерархию.\n»;
if (error == 2)
cout << «Ошибка! Очередь рассылки пуста. Сформируйте рассылку.\n»;
return 0;
}
//------------------------------------------------------------------------
int main()
{
setlocale(LC_ALL, «Russian»);
int ch;
while (true)
{
system(«CLS»);
cout << «1) Автоматическое формирование иерархии групп.\n2) Вывод иерархии групп.\n3) Сформировать рассылку.\n4) Рассылка.\n0) Выход.\n->»;
cin >> ch;
switch (ch)
{
case 1: system(«CLS»); mainErrors(forHierarchyA()); break;
case 2: system(«CLS»); mainErrors(printHierarchy()); break;
case 3: system(«CLS»); mainErrors(AddMessage()); break;
case 4: system(«CLS»); mainErrors(list()); break;
case 0: exit(0);
}
system(«PAUSE»);
};
return 0;
}
июнь 2, 2014 г.
-
Всего ответов: 0
Похожие вопросы
При попытке компиляции кода на Visual Studio 2013 вылетает сообщение "Системе не удается найти указанный путь". Что это значит и что делать? Спасибо! ОС - Windows 7, 32 bit.
май 30, 2014 г.
В каком сегменте хранятся статические переменные? <p>В каком сегменте хранятся статические...
декабрь 28, 2012 г.