0 / 0 / 0
Регистрация: 05.06.2022
Сообщений: 29
1

Добавляемые мобильные номера не должны повторяться в текущей очереди номеров

24.07.2022, 21:53. Показов 285. Ответов 2

Привести приложение в следующее рабочее состояние:
Пока приложение работает:
- за рандомные промежутки времени добавлять в очередь рандомный мобильный номер
- отображать актуальный список с текущими мобильными номерами в очереди
- отображать текущий мобильный номер, который обрабатывается
- дать возможность пользователю, указать завершение обработки текущего мобильного номера.

***Добавляемые мобильные номера не должны повторяться в текущей очереди номеров. (Просьба помочь Вообще идей нет как это реализовать!)
Вот код мой можете отредактировать похимичеть спасибо тому кто помог :/

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <random>
#include <ctime>
using namespace std;
 
int main() {
    int nomer83[count]{};
    const int count = 30;
    
    orqasize(nomer83, count);
    cout << "++++++++++Current numbers in the queue:+++++++++\n";
    Ochered(nomer83, count);
    cout << "<------Current processed number------->:\n";
    cout << "-------+994(055 - 070- 050)-----------" << *nomer83;
 
}
void orqasize(int* arr, const int count) {
    srand(time(0));
    for (size_t i = 0; i < count; i++)
    {
        arr[i] = rand() % (10000000000 + 1 - 1000000000) + 1000000000;
    }
}
void Ochered(int* arr, const int  count) {
    for (size_t i = 0; i < count; i++)
    {
        cout << i + 1 << "+994(055 - 070- 050)" << arr[i] << '\n';
    }
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.07.2022, 21:53
Ответы с готовыми решениями:

Списки людей не должны повторяться
Доброго времени суток!!! Есть задачка. Excel 2010. Есть список людей (156 штук, на самом деле их...

Подставить вместо звездочек цифры из промежутка от 1 до 9. Числа не должны повторяться. **** / *** = **
Подставить вместо звездочек цифры из промежутка от 1 до 9. Числа не должны повторяться. **** /...

Создание массива из случайных целых чисел из определённого промежутка. Числа в массиве не должны повторяться
Здравствуйте! Недавно занялся Visual Basic'ом и столкнулся с такой проблемой. Дан массив x(100)....

Заполнить двумерный массив не повторяющимися числами. (Числа не должны повторяться в одной строке или столбце)
Заполнить двумерный массив не повторяющимися числами. (Числа не должны повторяться в одной строке...

2
3658 / 2995 / 828
Регистрация: 25.03.2012
Сообщений: 11,037
Записей в блоге: 1
25.07.2022, 00:29 2
Цитата Сообщение от dll no name Посмотреть сообщение
rand() % (10000000000
rand выдаёт максимум до RAND_MAX
ты не получишь из него никаких гигантских чисел
а остаток от деления меньшего числа на большее всегда оставит меньшее число без изменений 123%1000==123
при RAND_MAX=32767
rand() % 10000000000 не больше 32767

Добавлено через 6 минут
кроме того 10000000000 превышает INT_MAX и не имеет смысла делать с ним какие-то вычисления.
0
3979 / 2030 / 731
Регистрация: 29.11.2010
Сообщений: 4,357
25.07.2022, 14:21 3
Генерация (producer), обработка (consumer), паузы, потоки.
Наивно, влоб:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#include <iostream>
#include <queue>
#include <mutex>
#include <condition_variable>
#include <string>
#include <thread>
#include <chrono>
#include <random>
#include <unordered_set>
 
template<typename T, typename Queue = std::queue<T>>
struct SynchronizedQueue {
    SynchronizedQueue() : mutex{}, queue{} {}
 
    void enqueue(const T &value) {
        std::lock_guard<std::mutex> lock(mutex);
        queue.push(value);
        condition.notify_one();
    }
 
    T dequeue() {
        std::unique_lock lock(mutex);
        while (queue.empty()) {
            condition.wait(lock);
        }
        T value = std::move(queue.back());
        queue.pop();
        return value;
    }
 
    std::condition_variable condition;
    std::mutex mutex;
    std::queue<T> queue;
};
 
struct RandomPhoneNumber {
    RandomPhoneNumber() :
        randomEngine(std::chrono::system_clock::now().time_since_epoch().count()),
        digit('0', '9') {}
 
    std::string operator()() {
        std::string number;
        do {
            number = generate();
        } while (old.find(number) != old.end());
        old.insert(number);
        return number;
    }
 
    std::string generate() {
        std::string result;
        result.append("+");
        for (int i = 0; i < 10; ++i) {
            result += digit(randomEngine);
        }
        return result;
    }
 
    std::default_random_engine randomEngine;
    std::uniform_int_distribution<char> digit;
    std::unordered_set<std::string> old;
};
 
int main() {
    SynchronizedQueue<std::string> queue;
    std::string poison{"poison"};
    RandomPhoneNumber randomPhoneNumber;
 
    std::default_random_engine re(std::chrono::system_clock::now().time_since_epoch().count());
    std::uniform_int_distribution<int> millis(100, 200);
 
    auto producer = [&queue, &poison, &randomPhoneNumber, &re, &millis]() {
        for (int i = 0; i < 10; ++i) {
            queue.enqueue(randomPhoneNumber());
            std::this_thread::sleep_for(std::chrono::milliseconds(millis(re)));
        }
        queue.enqueue(poison);
    };
 
    auto consumer = [&queue, &poison]() {
        for (std::string value = queue.dequeue(); value != poison; value = queue.dequeue()) {
            std::cout << "Thread [" << std::this_thread::get_id() << "]: " << value << std::endl;
        }
        queue.enqueue(poison);
    };
    std::thread producerThread(producer);
    std::thread consumerThread1(consumer);
    std::thread consumerThread2(consumer);
 
    producerThread.join();
    consumerThread1.join();
    consumerThread2.join();
}
Дальше много неясноснтей.
Цитата Сообщение от dll no name Посмотреть сообщение
Пока приложение работает:
А что приложение делает?

Цитата Сообщение от dll no name Посмотреть сообщение
- отображать текущий мобильный номер, который обрабатывается
Что такое "обрабатывается"?

Цитата Сообщение от dll no name Посмотреть сообщение
- дать возможность пользователю, указать завершение обработки текущего мобильного номера.
Непонятно, что это значит и как это должно выглядеть. Ctrl+C?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.07.2022, 14:21
Помогаю со студенческими работами здесь

После вызова второго запроса, запросы начинаются повторяться по очереди
Здравствуйте,есть на одной странице AJAX запросы.Выполняются по нажатию на кнопку. Прикрутил...

Сколько имеется шестизначных чисел, если первая цифра разряда может быть нулем, цифры не должны повторяться
Правильно ли решил? Сколько имеется шестизначных чисел, если первая цифра разряда может быть...

Какова вероятность того, что будет угадано: все 6 номеров в очередном тираже; 5 или 6 номеров; по крайней мере 3 номера?
Владелец одной карточки лотереи «Спортлото» F из 49) зачеркивает 6 номеров. Какова вероятность...

Должны существовать мобильные тарифы для подключения страницы вконтакте/фейсбука
Должны существовать мобильные тарифы для подключения по sms страницы вконтакте/фейсбука. Например,...

Регулярное выражение тел номеров Белоруссия +375;80 (мобильные операторы)
Уважаемые участники и гости форума! Могли бы подсказать универсальное регулярное выражение,...

Оставить мобильные номера
Добрый день. Помогите, пожалуйста, достать мобильные номера. Есть таблица с более чем 10 тыс. ячеек...

Sms-рассылка на мобильные номера
Кто-нибудь сталкивался с смс рассылкой? В инете мало информации про программы на VB 6.0. Как я...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru