Задания

Раздел посвящен текущим заданиям по программированию.
>>>tasks_3sem.html - за 3-й семестр

Тервер

Источники -
  • Бронштейн-Семендяев
  • Шнайер "Прикладная криптография"
  • Кнут(примерно второй том) - глава "Линейные конгруэнтные генераторы"
thver.html - Архив книг по терверу.

Lab1. - Генератор случайных чисел по заданному закону
  • Линейный конгуэрентный* генератор случайных чисел**
  • Распределение по :
    • Гаусс
    • Пуассон
    • Непрерывное 0..1 нормальное распределение с заданными параметрами
    • Вариативное - F(x) брать у Александра Романенкова
* - http://dic.academic.ru/dic.nsf/ruwiki/8174 - линейный конгруэнтный метод.

**Когруэнтный метод - m берётся на усмотрение программиста, остальное - из источников выше.

Lab2. - Ветвящиеся процессы
  • На примере "шары-урна": пользователь задает количество шаров двух типов (проверка на валидность)
  • Выполняется 2-3 шага (при некоторых условиях - больше)
  • Использование WinApi\MFC

Lab3. - Класс дискретной случайной величины
  • Условие нормировки
  • Только конечные
  • Функции класса
    • Хранение таблицы
    • Перегрузка операторов "+", "-", "*", "/"
    • Для оператора "/" при делении на 0 ввести объект типа "бесконечность"
    • Обработка деления на ноль - через if или try-catch на выбор
    • double p; int x; - рекомендация.
    • Таблица скачивается из файла на диске
    • Возможность сохранить объект на диск
  • Демонстрация возможностей класса
  • Делать на MFC
  • Вид1 - табличка
  • Вид2 - Полигон с возможностью перетаскивания мышкой значений по X
  • Вид3 - График функции распределения
  • Перерисовка при изменении данных - UpdateAllViews
  • Модальный диалог, отображающий значения мат.ожидания и дисперсии

PHP

Заданий всего 4. Так что распределяем их как обычно: номер в списке по модулю 4.
  • Календарь. Вывести на экран лист календаря текущего месяца (таблица с днями недели). Выделить сегодняшний день. Сделать возможность изменения месяца и года.
  • Калькулятор. Сделать форму HTML с возможностью ввода двух чисел (текстовые поля), системы счисления (radio button) и операции между ними (кнопка, посылающая запрос на сервер). На сервере производятся все проверки на допустимость введенных данных и вычисление с последующем выводом результата.
  • Хранилище данных. Данные о товаре (название, количество, цена) хранить в файле. Реализовать добавление и удаление данных из этого файла.
  • Аутентификация. В конфигурационном файле PHP задается ассоциативный массив вида $users = array ('login' => 'password', 'login2' => 'password2'). Необходимо осуществить аутентификацию пользователя с использованием сессий.
Адрес Глеба Косолапова

Модель

Требования по модели
  • Сетевое приложение(не менее 3х компов)
  • Архитектура клиент-сервер на сокетах
  • Задействовать большинство IPC
  • Задействовать большинство GUI
  • Использование COM
  • Использование ATL
  • Помимо WinApi - MFC
  • Менеджер и процессы пишут log-файл
  • Help - "О программе", "О модели", "Справочник пользователя", "Описание меню"

Требования по документации модели
  • Описание - название, содержательная часть
  • Структура программы - где какие виды IPC
  • Описание библиотеки классов + COM
  • Функционирование - логика и работа менеджера
  • Описание всех пунктов меню
  • Описание лог-файла
  • Описание протоколов взаимодействия логических блоков программы
  • Описание пункта меню "Help":
    • О программе.
    • Функционирование.
    • Инструкция пользователя.
    • Использование COM-компонентов.

MFC

Лабы*

  • Кружочки**
  • Копирование файлов. Работа с классами CFile, CFileDialog.
  • Реестр. Функции GetProfileInt, WriteProfileInt, GetProfileString, WriteProfileString.
  • Dll (явное и неявное связывание)
  • Dll ресурсов
  • Мьютексы. Класс CMutex
  • Критические секции. Класс CCriticalSection
  • События. Класс CEvent
  • Семафоры. Класс CSemaphore
  • Потоки. Функция AfxBeginThread
  • Сокеты

*Все лабораторные с применением ipc делаются в двух вариантах - потоки и процессы.

**Требования по работе "Кружочки":
  • -обработка кликов мыши, рисование геометрических фигур на месте кликов
  • -сохранение и открытие с использованием сериализации
  • -стандартный диалог выбора цвета
  • -свой диалог выбора размера