Диплом, курсовая, контрольная работа
Помощь в написании студенческих работ

Программная реализация. 
Разработка программного продукта в среде Visual C++, осуществляющего генерацию псевдослучайных чисел двумя методами

РефератПомощь в написанииУзнать стоимостьмоей работы

Printf («Ошибка: Некорректная операция»); Printf («1. Линейный конгруэнтный метод»); Создать файл для сохранения массива. Рис. 11. Выбрать `S' и ввести имя файла. FILE *fp;// Указатель на файловой поток. Отображается тема курсовой работы. Else printf («Число не было сохранено «); Printf («0. Вернуться в главное меню»); Case 'S': // Сохранение числа в файле. Bool direct;// Компонента направления… Читать ещё >

Программная реализация. Разработка программного продукта в среде Visual C++, осуществляющего генерацию псевдослучайных чисел двумя методами (реферат, курсовая, диплом, контрольная)

Назначение

Программа «Курсовой проект: Генерация псевдослучайных чисел» предназначена для осуществления генерации псевдослучайных чисел.

Пользовательский интерфейс

Рис. 1.

Программная реализация. Разработка программного продукта в среде Visual C++, осуществляющего генерацию псевдослучайных чисел двумя методами.

Основное окно программы:

При запуске программы:

  • • Отображается тема курсовой работы.
  • • Программа предлагает одно из действий в меню.

Пример использования

Рис. 2. Выбрать `M'

Рис. 3. Выбрать `1'.

Рис. 4. Выбрать `2'

Рис. 5. Выбрать `0'

Рис. 6. Выбрать `D' и ввести начало и конец диапазона чисел Рис. 7. Выбрать `M'

Рис. 8. Выбрать `1'

Рис. 9. Выбрать `2'.

Программная реализация. Разработка программного продукта в среде Visual C++, осуществляющего генерацию псевдослучайных чисел двумя методами.
Программная реализация. Разработка программного продукта в среде Visual C++, осуществляющего генерацию псевдослучайных чисел двумя методами.
Программная реализация. Разработка программного продукта в среде Visual C++, осуществляющего генерацию псевдослучайных чисел двумя методами.
Программная реализация. Разработка программного продукта в среде Visual C++, осуществляющего генерацию псевдослучайных чисел двумя методами.
Программная реализация. Разработка программного продукта в среде Visual C++, осуществляющего генерацию псевдослучайных чисел двумя методами.
Программная реализация. Разработка программного продукта в среде Visual C++, осуществляющего генерацию псевдослучайных чисел двумя методами.
Программная реализация. Разработка программного продукта в среде Visual C++, осуществляющего генерацию псевдослучайных чисел двумя методами.

программный регистр псевдослучайный числовой Рис. 10. Выбрать `0'

Выбрать `S' и ввести имя файла.

Рис. 11. Выбрать `S' и ввести имя файла

Рис. 12. Файл `1.txt'.

Листинг программного кода

Interface.cpp.

#include // библиотека ввода-вывода.

#include // библиотека языковой локализации.

#include «global.h» // библиотека работы с упакованным числом.

#include // для вывода в файл.

// Длинаименифайла.

static const int length = 66;

#pragma warning (disable: 4996).

/*.

Главная функция. Реализует ввод, проверку, интерфейс с пользователем.

*/.

int PrintСongruential (int min, int max);

int PrintLFSR (int min, int max);

void main ().

{.

int ch = '';// Пунктменю.

int fl0 = 0, fl1 = 0, fl2 = 0, fl = 0;// Проверка на использование метода.

long int min = 0, mmin = -2 147 483 648;// Min диапазона.

long int max = 100, mmax = 2 147 483 647;// Max диапазона.

int level;// Компонента уровня.

bool direct;// Компонента направления.

char filename[length]; // Имя файла.

FILE *fp;// Указатель на файловой поток.

// Для сообщений на русском языке.

setlocale (LC_ALL, «Russian»);

printf («Курсавая работа: Генератор псевдослучайных чисел»);

do { // Цикл обработки команд.

switch (ch).

{.

case 'M': // Выборметода.

case 'm':

do {.

// Отобразитьподменю.

printf («Подменю:»);

printf («1. Линейный конгруэнтный метод»);

printf («2. Метод регистра сдвига с линейной обратной связью»);

printf («0. Вернуться в главное меню»);

printf («Выберите подпункт:>»);

fflush (stdin);

ch = getchar ();

switch (ch).

{.

case '1': // Печать ленейно конгруэнтного метода.

X1 = PrintСongruential (min, max);

fl1 = 1;

fl2 = 0;

break;

case '2': // Печать метода регистра сдвига с линейной обратной связью.

X2 = PrintLFSR (min, max);

fl1 = 0;

fl2 = 1;

break;

}.

}.

while (ch ≠ '0');

break;

case 'D': // Настройка диапазона случайных значений.

case 'd':

do{.

// Ввести длину диапазона и проверить корректность ввода.

printf («Введите диапазон случайных чисел [-2 147 483 648.2147483647]: >»);

printf («min = «);

scanf («%ld», &min);

printf («max = «);

scanf («%ld», &max);

// Проверить корректность ввода и допустимоть диапазона.

if (min mmax — 1 ||.

max mmax).

{.

printf («Ошибка: Некорректныйдиапазон: «);

if (min mmax — 1) printf («Проблемас min «);

if (max mmax) printf («Проблемас max «);

fl0 = 1;

}.

if (min >= max).

{.

if (min > max) printf («max долженбытьбольше min «);

if (min == max) printf («max и min должны иметь разные значения «);

fl0 = 1;

}.

}.

while (fl0 == 1);

break;

case 'S': // Сохранение числа в файле.

case 's':

fflush (stdin);

// Ввести имя файла.

printf («Введите имя файла для сохранения (или нажмите [enter] для отмены):>»);

if (*gets_s (filename, length) == '') break;

// Создать файл для сохранения массива.

if ((fp = fopen (filename, «w»)) == NULL).

printf («Ошибка: Файл с указанным именем не может создан или открыт на запись «);

else.

{.

if (ch == 's' || ch == 'S').

{.

// Записать последнее сгенерированное чисело в текстовый файл.

if (fl1 == 1) fprintf (fp, «%ld», X1);

else {.

if (fl2 == 1) fprintf (fp, «%ld», X2);

else {.

fl = 1;

fprintf (fp, «Число не было сгенерировано»);

}.

}.

}.

// Закрыть файл.

fclose (fp);

if (fl == 0) printf («Число сохранен успешно «);

else printf («Число не было сохранено «);

}.

break;

case '': // Пустая команда.

break;

default:

printf («Ошибка: Некорректная операция»);

break;

};

// Сбросить устройство ввода.

fflush (stdin);

// Отобразить главное меню.

printf («Главное меню:»);

printf («M. Выбор метода»);

printf («D. Ввод диапазона случайных чисел (по умолчанию 0.100)»);

printf («S. Сохранение последнее сгенерированное чисело в текстовом файле»);

printf («Q. Выход»);

printf («Выберите пункт:>»);

ch = getchar ();

}.

while ((ch ≠ 'Q') && (ch ≠ 'q'));

// Сохранение новых сгенерированных чисел.

freopen («Global.h», «w», stdout);

printf («static unsigned long X1 = %d; static unsigned long X2 = %d;», X1, X2);

}.

PrintLFSR.cpp.

#include // библиотекаввода-вывода.

#include «global.h» // библиотека работы с упакованным числом.

int PrintLFSR (int min, int max).

{.

X2 = ((((X2 >> 31) (X2 >> 6) (X2 >> 4) (X2 >> 2).

(X2 >> 1) X2) & 0×1) <> 1);

printf («Сгенерированноечисло: %d «, X2% (max — min) + min);

return X2;

}.

PrintСongruential.cpp.

#include // библиотека ввода-вывода.

#include" Global. h" // библиотека работы с упакованным числом.

int PrintСongruential (int min, int max).

{.

X1 = (16 807 * X1 + 1) % 2 147 483 647;

printf («Сгенерированное число: %d «, X1% (max — min) + min);

return X1;

}.

Global.h.

static unsigned long X1 = 1;

static unsigned long X2 = 1;

Показать весь текст
Заполнить форму текущей работой