x

Разработать 4 простых класса для студенческого домашнего задания C++

Перейти к заказу
Ниже будет представлены требования для каждого из классов. 1) Vector std::vector Интерфейс и реализация std::vector во многом похожи на std::string. Ключевым отличием является семантика работы метода reserve (и остальных методов, которые приводят к увеличению capacity). При резервировании памяти под большее число объектов, выделяется "сырая" (неинициализированная) память достаточная для хранения нужного числа дополнительных объектов. Пустые ячейки заполняются лениво по мере необходимости. То есть, если size < capacity, то это значит, что первые size * sizeof(T) байт реально заняты объектами, а последние (capacity - size) * sizeof(T) байт пусты - объектов там не создано. Это нужно, например, для того, чтобы можно было создавать вектор из объектов, у которых нет конструктора по умолчанию (а как бы тогда нужно было инициализировать неиспользуемые ячейки?): struct A { int x; A() = delete; explicit A(int x_param) : x(x_param) { } }; std::vector v; v.reserve(1000); // объекты A не создаются! Выделяется "сырая" память размера 1000 * sizeof(A) for (int i = 0; i < 1000; ++i) { v.push_back(A(i)); // а лучше v.emplace_back(i); } Подробности на лекциях, семинарах, в чатах, на заборе, а также в справочнике. Детали реализации От вас требуется реализовать шаблонный класс Vector с единственным шаблонным параметром - типом хранящихся элементов. При реализации можно (и даже нужно) пользоваться обобщенными алгоритмами из STL (std::copy, std::fill и т.п.), но нельзя использовать стандартные контейнеры. Будет проверяться корректность мультипликативной схемы расширения массива с коэффициентом 2. В базовой версии ручное управление временем жизни объектов не требуется (см. доп. задание). Класс должен поддерживать следующий функционал:Конструктор по умолчанию - создает пустой массив;Явный конструктор от числа - создает массив заданного размера заполненный объектами, сконструированными по умолчанию;Конструктор, принимающий size и value (именно в этом порядке) - создает массив длины size, заполненный элементами со значением value;Шаблонный конструктор, принимающий пару итераторов - создает копию переданного диапазона;Важно: объявление этого конструктора должно иметь видtemplate ::iterator_category>>>Vector(Iterator first, Iterator last)Это делает конструктор доступным только в случае, когда на вход приходят два Forward итератора.Конструктор от std::initializer_list;Правило "пяти";Методы Size, Capacity, Empty;Константный и неконстантный оператор доступа по индексу []. Неконстантный должен позволять изменять полученный элемент;Константный и неконстантный метод доступа по индексу At. При выходе за границы массива должен бросать исключение std::out_of_range;Методы Front() и Back()доступ к первому и последнему элементам (тоже по две версии).Метод Data()возвращает указатель на начало массива.Метод Swap(other)обменивает содержимое с другим массивом other;Метод Resize(new_size)изменяет размер на new_size. Если вместимость не позволяет хранить столько элементов, то выделяется новый буфер с вместимостью new_size. Недостающие элементы конструируются по умолчанию.Метод Resize(new_size, value)то же, что и Resize(new_size), но в случае new_size > size заполняет недостающие элементы значением value.Метод Reserve(new_cap)изменяет вместимость на max(new_cap, текущая вместимость). Размер при этом не изменяется.Метод ShrinkToFit()уменьшает capacity до size.Метод Clear()устанавливает размер в 0, очищения выделенной памяти при этом НЕ происходит.Методы PushBack(const T&) и PushBack(T&&)добавляет новый элемент в конец массива.Метод PopBack()удаляет последний элемент.Операции сравнения (<, >, <=, >=, ==, !=), задающие лексикографический порядок.Также реализуйте поддержку итераторов и методы для работы с ними: begin(), end(), cbegin(), cend(), rbegin(), rend(), crbegin(), crend(). begin()-end(), rbegin()-rend() должны иметь две версии, возвращающие константные и неконстантные итераторы. Для того, чтобы codestyle не ругался на написание методов с маленькой буквы, напишите в данной строке комментарий // NOLINTВнутри класса Vector определите типы-члены ValueType, Pointer, ConstPointer, Reference, ConstReference, SizeType, Iterator, ConstIterator. Гарантии безопасности Спроектируйте класс так, чтобы при возникновении исключений (нехватка памяти, ошибка при копировании объектов и т.п.) методы удовлетворяли строгой гарантии безопасности. То есть все методы должны работать атомарно: либо работать без сбоев, либо не изменять исходного состояния вектора. Исключение: копирующее присваивание может давать лишь базовую гарантию безопасности.При решении можно предполагать, что конструкторы перемещения, перемещающие присваивания и деструкторы объектов никогда не бросают исключений!2) Itertools.Range Itertools Одним из минусов языка C++ является отсутствие удобного интерфейса работы с последовательностями и промежутками значений, который, по большому счету сводится к ручному написанию циклов и работе со встроенными итераторами. С введением библиотеки в C++20 ситуация заметно улучшилась. В этом цикле задач мы попытаемся решить заявленную проблему средствами C++17. Range Для написания цикла по целым значениям в C++ необходимо написать следующий код: for (int i = 0; i < end; ++i) { // ... } for (int i = begin; i < end; ++i) { // ... } for (int i = begin; i < end; i += step) { // ... } Сравните, например, с языком Python: for i in range(end): # ... for i in range(begin, end): # ... for i in range(begin, end, step): # ... Хотелось бы иметь подобный лаконичный код и в C++ (благо range-based for завезли в C++11): for (int i : range(end)) { // ... } for (int i : range(begin, end)) { // ... } for (int i : range(begin, end, step)) { // ... } Проблема в том, что в стандартной библиотеке (до C++20) нет сущности range, которую можно было использовать в подобном контексте. Ну а раз так - надо ее реализовать самостоятельно! Детали реализации Необходимо реализовать Range (класс или функцию), который возвращает объект некоторого класса (вам нужно его реализовать) с определенными методами begin и end. Эти методы должны возвращать итератор (его тоже нужно реализовать), который при разыменовывании возвращает соответствующее целое значение, а при инкрементировании увеличивает свое состояние на step (по умолчанию step == 1).Примеры: (больше примеров см. в тестах) for (int i : Range(3)) { ... } // i in [0, 1, 2] for (int i : Range(3, 6)) { ... } // i in [3, 4, 5] for (int i : Range(3, 6, 2)) { ... } // i in [3, 5] for (int i : Range(6, 1, -2)) { ... } // i in [6, 4, 2] Указание: вспомните как работает range-based for в C++- Поддержать обратные итераторы (см. примеры в тестах). 3) Реализуйте шаблонный класс UnorderedSet, аналог std::unordered_set, который основан на хешировании методом цепочек с динамическим увеличением числа корзин.Метод цепочек предполагает хранение массива, в каждой ячейке которого лежит корзина - список вставленных элементов с одинаковыми хеш-значениями. Среднее время операций над такой структурой пропорционально степени загруженности таблицы (load_factor = n_elements / n_buckets). При превышении load_factor некоторого значения (в задании = 1) происходит перехеширование - создание нового массива корзин в, например, 2 раза большего размера и перенос старых элементов в новые корзины.В простейшем варианте достаточно хранить вектор (std::vector) списков (std::list / std::forward_list) и выполнять операции над ним. Более эффективные техники описаны ниже в дополнительных заданиях. Базовая часть Шаблонный класс UnorderedSet должен быть параметризован типом ключа KeyT. Стратегия расширения такая же как в задаче String - при добавлении элемента в пустую таблицу число корзин становится равным 1, при добавлении элемента в полную таблицу число корзин увеличивается в 2 раза (таблица считается полной, если число корзин совпадает с числом элементов, то есть load_factor == 1). В качестве хеш-функции воспользуйтесь std::hash. std::hash отображает объекты в диапазон size_t, чтобы получить индекс корзины, возьмите остаток от деления полученного числа на количество корзин.Набор методов включает:Конструктор по умолчанию. Создает пустую хеш-таблицу.Конструктор от числа корзин count. Создает хеш-таблицу с count пустыми корзинами.Конструктор от промежутка заданного двумя Forward итераторами. Создает хеш-таблицу с числом корзин равным числу элементов в последовательности, а затем вставляет элементы в таблицу.Конструкторы копирования, перемещения, а также присваивания должны работать корректно.Методы Size, Empty, Clear с привычной семантикой.Методы вставки Insert(const KeyT&), Insert(KeyT&&).Метод удаления Erase(const KeyT&).Метод поиска bool Find(const KeyT&).Метод Rehash(new_bucket_count). Изменяет число корзин в хеш-таблице с перехешированием. Если new_bucket_count совпадает с текущим количеством корзин или меньше числа элементов (load_factor становится больше 1), то ничего делать не нужно.Метод Reserve(new_bucket_count). То же, что и Rehash, но не уменьшает число корзин, то есть срабатывает, если new_bucket_count превышает текущее количество корзин.Методы BucketCount (возвращает число корзин в таблице), BucketSize(id) (возвращает размер корзины с номером id), Bucket(key) (возвращает номер корзины, в которую попадает объект key), LoadFactor() (возвращает степень заполненности таблицы).Обратите внимание, что каждый раз создавать новые узлы списков при перехешировании может быть неэффективно. Для переиспользования старых узлов (перебрасывания указателей старых списков) рассмотрите возможность использования метода std::list::splice.4) BigInteger Условие В C++ в отличие от, например, Python нет встроенных возможностей для работы с длинной арифметикой - вычислениями над величинами превосходящими по размеру базовые типы. Несмотря на то, что типы long long и unsigned long long(~10191019) покрывают большую часть практических вычислений, иногда бывает необходимо повысить точность выполняемых операций.В этом задании необходимо реализовать класс BigInteger для работы с большими целыми числами, которые вмещают в себя значения от −N−N до NN, где N=1030,000N=1030,000 Детали реализации В качестве решения ожидается описание класса BigInteger. Для этого класса необходимо реализовать все требуемые арифметические операции и сопутствующие методы, упрощающие работу с ним.Длинное число можно представлять в памяти в виде массива цифр из некоторой системы счисления. Например, если в качестве системы счисления взять 1000, то каждый элемент массива будет представлять собой целое число из промежутка [0,...,999][0,...,999]. Рекомендуется в качестве основания брать некоторую степень 10 для удобства ввода и вывода числа в десятичной системе счисления (иначе придется выполнять перевод из одной системы в другую).Пример:Пусть число представляется в виде массива 5 цифр из 1000-й системы счисления. Тогда десятичное число 1,234,567,890 будет представляться в памяти массивом [890, 567, 234, 1, 0] (сначала младшие разряды, затем старшие).При таком подходе достаточно просто реализовать операции сложения, вычитания и умножения над массивами "в столбик", последовательно выполняя операции над цифрами.Недостатком данного метода является неэффективное расходование памяти, выделяемое под число. Допустим, основание системы счисления равно 10'000, а цифра представляет собой беззнаковое 16-битное число, которое может вместить в себя 65'536 значений. Получается, что в каждый момент времени, как минимум 2 бита расходуется в пустую.Кроме того, при реализации сложения и умножения следует помнить, что результат их применения к цифрам может не помещаться в заданный тип (9'999 * 9'999 не влезает в 16-битное число). Для решения этой проблемы можно было бы взять тип "с большим запасом" - хранить цифры в 32-битных целых числах. Но это только усугубляет проблему, описанную в предыдущем абзаце. В качестве альтернативы предлагается использование приведения целых типов к более широкому в момент умножения, для получения корректного результата.Пример: using DigitType = uint16_t; // тип цифры - 16 битное число using DoubleDigitType = uint32_t; // тип цифры с удвоенной шириной digits_[i] * digits_[j]; // результат uint16_t - возможно переполнение static_cast(digits_[i]) * digits_[j]; // результат uint32_t - нет переполнения Для поддержки отрицательных чисел достаточно хранить булевский флаг "отрицательности" числа и соответствующим образом корректировать операции в случае, когда он имеет значение true.Полный набор операций, который необходимо поддержать:Создание на основе целого числа (конструктор от целых чисел) и на основе си-строки с десятеричным представлением числа.IsNegative()true, если число отрицательное.Унарные + и -.Сложение, вычитание, умножение с присваивающими аналогами.Те же операции со встроенными целыми числами.Префиксные и постфиксные инкремент и декремент.Оператор приведения к bool.Операции сравнения.Операции ввода из потока и вывода в поток.При переполнении длинного числа, то есть если в результате операции количество десятичных цифр числа превосходит N (формально в тестах разрешается погрешность в 9 цифр), то нужно бросать исключение типа BigIntegerOverflow.Замечания.Решение должно состоять из файла интерфейса big_integer.h и файла реализации big_integer.cpp.В задаче есть открытые и закрытые тесты. Перед отправкой решения проверяйте его на открытых тестах (чуда не будет, если есть ошибка в публичных тестах, то она проявится и на более сложных приватных).Операции можно тестировать независимо на соответствующих задачах из Я.Контест.Решение необязательно должно быть оптимальным. Сосредоточьтесь на корректности реализаций. Решения "столбиком" будет достаточно."Бросить исключение типа E" значит - написать строку throw E{};. В этот момент выполнение функции прекращается и, если исключение не будет обработано, программа завершится аварийно. Тестирующий код корректно обработает эту ошибку, вам этого делать не нужно.Реализуйте операции целочисленного деления и взятия остатка от деления. Заметьте, правила деления отрицательных чисел в математике и C++ отличаются. От вас требуется реализация деления по правилам C++.Решение необязательно должно быть оптимальным, но в меру. Подойдет решение "уголком", но линейный поиск делителя на каждом шаге эффективным точно не назвать.

Найдено 5216 результатов

Придумать имя для бренда одежды

Необходимо разработать современное красивое и читаемое(чтобы с первого раза было понятно что прочитал) название для бренда одежды. Название должно быть легко читаемым, не иметь плохого подсмысла или перевода, в идеале не больше 5 букв(не обязательно), 1 слово. Можно использовать цифры в названии. Также, необходимо проверить свободно ли название для регистрации и патента по классам МКТУ - 25 и 24, проверить можно вот тут - https://linkmark.ru/request/WjRWN3p3YjRtczlidXpqVTlKS28xdz09?new=1. Одежда будет женская, название нужно латиницей. Для примера имена брендов которые мне нравятся - Namelaz, 12 storeez, Amour, zara, limelight,lici,lime, CSB и тд. Уточнять что именно будем продавать не буду, так как ассортимент будет расширяться и использовать в названии часть одежды не нужно. Выберу исполнителем человека предложившего лучшее название в соответствии с требованиями выше. !!! Дополнение- напоминаю что очень важно сначала проверить на возможность регистрации данного названия. На данный момент (23 июня) ни один из предложенных вариантов не приглянулся.

Персональный помощник
Опубликован:
21.06.24 10:23
Бюджет:
20000 руб.~$249.66
Перевод надписей с китайского на русский

Нужно перевести надписи с картинок и вставить в таблицу соответствия текст надписи на китайском и перевод на русский . Всего 16 картинок Картинки на следующих страницах (нумерация указана как в ворде, а не в нижнем колонтитуле страницы) 5 11 12 15 16 17 18 20 21 26 27 29 30 31 32 34 где черный экран и на нем какие-то надписи - переводить не нужно, это просто иллюстрация, кроме рисунка 3.9.

Переводы
Опубликован:
21.06.24 10:23
Бюджет:
1500 руб.~$18.73
Перевод и редактирование инструкций и коробок

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

Переводы
Опубликован:
21.06.24 09:57
Бюджет:
1000 руб.~$12.49
Длинные/Короткие нарды Construct 3

Нарды, классические – короткие/длинные с возможностью выбора Реализовать возможность открытия разных дизайнов досок и дизайна фишек за просмотр рекламы. В настройках: Языки – (легко переводится через сдк) Возможность выключить звук Выбор сверху или снизу, выбор цвета стартовых фишек черные-белые лидерборд

Игры
Опубликован:
21.06.24 08:56
Бюджет:
6000 руб.~$74.9
Игра паук пасьянс construct 3 (не на деньги)

Классическая игра пасьянс паук на констракт 3, с возможностью выбора дизайна самих перекладывающихся элементов (дизайны есть) за вознаграждение рекламное и выбор полотна, интеграция простого сдк, лидерборд, переводы на языки (тоже легко через сдк)

Игры
Опубликован:
21.06.24 08:54
Бюджет:
6000 руб.~$74.9
Перевод нейросетью и редактура 2-х статей про станки

Есть две статьи на английском языке. Их нужно перевести на русский язык с помощью Chat GPT (НЕ гугл переводчик пр.). После этого их необходимо прочитать и отредактировать вручную, чтобы они соответствовали нормам русского языка и выглядели более естественно для человека. ВАЖНО! Тематика статей связана со станками для металлообработки, нужно хотя бы минимальное понимание специфики. Если успешно выполняете задание, возможно сотрудничество на постоянной основе.

Переводы
Опубликован:
21.06.24 07:09
Бюджет:
1000 руб.~$12.49
Перевод текста

Всем привет, нужно перевести текст с английского на русский, В идеальном качестве! Оцениваю качество текста и пунктуации

Переводы
Опубликован:
21.06.24 05:58
Бюджет:
1000 руб.~$12.49
Перевод ролика

Ролик про производство рыболовных катушек. Нужно перевести из него озвучку для дальнейшей переозвучки Длина ролика около 3х минут https://disk.yandex.ru/d/llEoNVNiYXl_6g Ссылка на ролик

Переводы
Опубликован:
21.06.24 05:17
Бюджет:
2000 руб.~$24.97
Диаграмма Ганнта

Нужно сделать План-график загруженности модуля переводчиков по диаграмме Ганнта. Супер простую таблицу, чтобы любой мог пользоваться. Нужно видоизменить шаблон по ТЗ, не нужные столбцы убрать.

Десктоп программирование
Опубликован:
20.06.24 20:50
Бюджет:
4000 руб.~$49.94
Шрифтовой логотип

Создать шрифтовой логотип для мебельной компании. Мебель в современном стиле. Требования !!!! Логотип должен быть читабельным , уникальный шрифт ( желательно с нуля или доработанный) , не тонкий просьба любителям онлайн программ ПО подбору ЛОГО - ВАШИ услуги НЕ НУЖНЫ! В прикрепленном файле: Название компании - Maura , на картинке с нашим диваном - буква М отрисована дизайнером (отображает 2 вершины горы) и хотелось бы ее доработать, но рассмотрим и варианты графического дизайнера) Немного о названии ГОРА МАУРА - энергоактивное место, легендарная возвышенность в центре Вологодской области. Согласно летописям, именно с вершины этой горки создатель близ расположенного Кирилловского монастыря увидел место его будущего расположения. Давайте познакомимся с ней поближе?! Для начала стоит разобраться с названием и ударением. Ударение НА первый слог: МАура. В переводе с финно-угорских языков - земля (Ма) у Солнца (Ра). Ма-у-Ра. Геологи утверждают что под горой соединяется несколько водных потоков - и это одна из причин по которой Мауру называют местом силы.

Логотип и брендинг
Опубликован:
20.06.24 18:18
Бюджет:
4000 руб.~$49.94
Отрисовать короткий мультяшный промо-ролик

Требования: • Длительность: 30-60 секунд • Формат: MP4 или другой стандартный видеоформат, подходящий для социальных сетей и веб-сайта • Разрешение: Full HD (1920x1080 пикселей) Содержание ролика: 1. Введение: • Краткое представление игры (например, логотип и слоган “TapRacoon Coin: Tap, Earn, Enjoy”) 2. Основной сюжет: • Анимация енота, который играет и зарабатывает монеты, показывая основные игровые механики. • Примеры игровых действий (тапание на экран, сбор монет, использование бонусов). • Показ процесса перевода заработанных монет на криптовалютные кошельки. 3. Заключение: • Призыв к действию (например, “Join the Fun!”, “Start Earning Today!”) • Логотип и контактная информация.

Видеоролики
Опубликован:
20.06.24 17:58
Бюджет:
20000 руб.~$249.66
Сайт бюро переводов на Тильде

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

Создание сайта
Опубликован:
20.06.24 15:47
Бюджет:
2000 руб.~$24.97
WP не корректно работает функция wp_query

$args = array( //'category__in' => $_POST['cat'], 'cat' => $_POST['cat'], 'posts_per_page' => 9, 'paged' => $page, 'status' =>'publish', ); query_posts($args); global $wp_query; ее задача при прокрутки страницы добавить еще постов, если вызвать ее на страницы с постами отработает нормально если обратиться к ней через скрипт при авторизованом пользователе то же норм НО если режим инкогнито подменяет категорию на связанную по переводу [query] => Array ( [cat] => 16 [posts_per_page] => 9 [paged] => 2 [status] => publish ) [query_vars] => Array ( [cat] => 13 и выводит результат не той категории нужно поправить функцию

Доработка и настройка сайта
Опубликован:
20.06.24 14:43
Бюджет:
1000 руб.~$12.49
Перевести по 1 несложной строчке в 8-ми документах

Есть 8 документов, 1 строчка в них написана на английском, необходимо написать "добуквенный" перевод. Например: MIA 5567 - МИА... руб

Тексты
Опубликован:
20.06.24 14:09
Бюджет:
100 руб.~$1.25
Настройка смс информирования клиентов в CRM Битрикс 24

Настройка смс информирования клиентов в CRM Битрикс 24. При переводе клиента на этап "записан на встречу" нужно подключить отправку смс с данными о встрече. Сразу от назначении, утром и за час до встречи. Цену пишите сами

Доработка и настройка сайта
Опубликован:
20.06.24 13:51
Бюджет:
1000 руб.~$12.49
Перевод из двг в пдф

Перевести файл из автокада в формат пдф с разложением на листы. Сколько листов получится, столько и надо. Срок 2 дня

Стройка и ремонт
Опубликован:
20.06.24 12:11
Бюджет:
3000 руб.~$37.45
Небольшое SPA-приложение на javascript для youtube

Нужно сделать spa-приложение, которое в поле ввода получает ссылку на youtube-видео и делает его разбивку на предложения. То есть речь в видео переводится в текст. Текст разбивается на предложения и для каждого предложения определяется начало и конец его звучания. В итоге приложение выводит таблицу. Первая ячейка таблицы это само предложение, а 2-я и 3-я время начала и конца его звучания. Ориентир в первую очередь на англоязычные видео. Например, на это. https://www.youtube.com/watch?v=naIkpQ_cIt0 Приложение должно быть на javascript (или typescript). В качестве сборщика можно использовать Vite или Webpack. Должно также запускаться через виртуальный сервер сборщика.

Скрипты и боты
Опубликован:
20.06.24 10:15
Бюджет:
2000 руб.~$24.97
Вести страничку инстаграм фотографу недвижимости из США

Я фотограф, фотографирую дома, квартиры, апартаменты. Мне нужно вести инстаграмм, посты писать, сторисы делать, профиль надо на английском можно через гугл транслейтор переводить. Так же что-то то мне подсказывать что снять на съемке для публикации в профиль. Напишите мне предложение что будете делать . Бюджет гибкий главное результат

Соцсети и SMM
Опубликован:
19.06.24 20:25
Бюджет:
4000 руб.~$49.94
Донастроить плагин wpml для Wordpress

Настроили плагин wpml, но он не переводит некоторые кнопки и текст на сайте. Нужно разобраться почему и сделать чтобы переводил.

Доработка и настройка сайта
Опубликован:
19.06.24 10:43
Бюджет:
2000 руб.~$24.97
Разработать сайт по продаже лотереи онлайн

Нужен сайт по продаже лотерей онлайн #### 1. Общие требования- Разработка упрощенного сайта для проведения онлайн-лотерей.- Лотереи с розыгрышем квартиры, машины и денежных призов каждый день.- Рандомные заранее известные выигрыши.- Возможность просмотра итогов розыгрышей и хранения их истории.- Раздел "Вопрос-Ответ".- Возможность регистрации пользователей.- Раздел с фото победителей (генерация фото через ИИ).- Раздел поддержки.- Подключение платежной системы для приема оплаты переводом на карту и выдачи криптовалюты.- Автоматическая отправка результатов лотереи на почту участнику.#### 2. Функциональные требования##### 2.1. Главная страница- Приветственное сообщение и краткое описание сайта с фотографией трастового человека с ГЕО через ИИ сделанного.- Кнопки для регистрации и входа в личный кабинет.- Список текущих лотерей с кратким описанием призов.##### 2.2. Регистрация и авторизация- Форма регистрации с полями: имя, фамилия, email, пароль.- Форма авторизации с полями: email, пароль.- Восстановление пароля через email.##### 2.3. Личный кабинет пользователя- Просмотр текущих и прошлых лотерей.- История участия в лотереях.- Настройки профиля (изменение пароля, email и т.д.).##### 2.4. Лотереи- Страница с подробным описанием каждой лотереи.- Кнопка для участия в лотерее.- Отображение времени до окончания лотереи.- Автоматическое определение победителей с использованием рандомного алгоритма.- Отправка результатов лотереи на email участникам.##### 2.5. История розыгрышей- Страница с историей всех прошедших розыгрышей.##### 2.6. Раздел "Вопрос-Ответ"- Часто задаваемые вопросы и ответы на них.##### 2.7. Раздел поддержки- Информация о способах связи (email, телефон и т.д.).##### 2.8. Платежная система- Подключение платежной системы для приема оплаты переводом на карту.- Интеграция с p2p-платежами.#### 3. Нефункциональные требования- Удобный и интуитивно понятный интерфейс.- Адаптивный дизайн для корректного отображения на мобильных устройствах.- Высокая производительность и быстрая загрузка страниц.- возможность вбора языка (анг, хинди, латам или разные сайты под каждое гео)

All inclusive
Опубликован:
19.06.24 09:21
Бюджет:
200000 руб.~$2496.57

Текущая страница: 75

Всего страниц: 261