DZ4

Форк
0
/
project5.cpp 
53 строки · 2.1 Кб
1
//Разработать приложение, имитирующее очередь печати
2
//принтера.Должны быть клиенты, посылающие запросы
3
//на принтер, у каждого из которых есть свой приоритет.
4
//Каждый новый клиент попадает в очередь в зависимости
5
//от своего приоритета.Необходимо сохранять статистику печати(пользователь, время) в отдельной очереди.
6
//Предусмотреть вывод статистики на экран.
7
#include <iostream>
8
#include <queue>
9
#include <ctime>
10
#include<string>
11
using namespace std;
12
// Структура для представления клиента
13
struct Client {
14
    string name;
15
    int priority;
16
};
17

18
// Функция для сравнения клиентов по приоритету
19
struct ComparePriority {
20
    bool operator() (const Client& c1, const Client& c2) {
21
        return c1.priority > c2.priority;
22
    }
23
};
24

25
int main() {
26
    priority_queue<Client, vector<Client>, ComparePriority> printQueue;
27
    queue<pair<string, time_t>> printStats;
28

29
    // Добавление клиентов в очередь печати
30
    printQueue.push({ "Alice", 2 });
31
    printQueue.push({ "Bob", 1 });
32
    printQueue.push({ "Charlie", 3 });
33

34
    // Симуляция печати
35
    while (!printQueue.empty()) {
36
        Client client = printQueue.top();
37
        printQueue.pop();
38
        cout << "Printing document for " << client.name << " (Priority: " << client.priority << ")" << endl;
39

40
        // Запись статистики печати
41
        printStats.push({ client.name, time(NULL) });
42
    }
43

44
    // Вывод статистики печати
45
    cout << "Print statistics:" << endl;
46
    while (!printStats.empty()) {
47
        pair<string, time_t> printRecord = printStats.front();
48
        printStats.pop();
49
        cout << "User: " << printRecord.first << ", Time: " << asctime(localtime(&printRecord.second));
50
    }
51

52
    return 0;
53
}

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.