Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Гурик / Лабораторная работа №7.docx
Скачиваний:
1
Добавлен:
01.04.2022
Размер:
1.8 Mб
Скачать

Лабораторная работа №7

«Запись одномерных массивов в текстовый файл и документ Microsoft Word»

Оглавление

Y

1. Задание на лабораторную работу 3

2. Формализация 5

3. Заставка к лабораторной работе 6

4. Схема алгоритма решения задачи 7

5. Листинг программы 17

5.1 Листинг основной программы 17

.2 Листинг dll библиотеки 18

6 Тестирование программы 25

Список использованной литературы: 33

  1. Задание на лабораторную работу

Задача: Разработать проект с двумя формами. Первая форма – заставка к приложению, вторая – решение задания лабораторной работы. Заставка в первой форме должна быть реализована при помощи надписи. Кроме этого разработать функцию VSTAVKA, PROSOYVSTAVKA,Zapis, ZapisWordIsx_ ZapisWordrez, еntermas и outputmas типа void , которые будут находиться в dll библиотеке.

Дан целочисленный массив, элементы которого могут принимать неотрицательные целые значения до 10000 включительно. Необходимо произвести метод вставки элемента массива и отдельно вывести массив с данным результатом, а также произвести сортировку исходного массива методом простой вставки и также вывести массив с данным результатом. После этого нужно вывести результаты данной программы в Microsoft Word, а исходный массив в текстовый файл

Вставка элементов массива осуществляется следующим образом:

1) Первые k элементов массива остаются без изменения;

2) Все элементы, начиная с (k - 1)-го необходимо сдвинуть вправо, чтобы

освободить место для вставляемого элемента;

3) Элементу с номером k присвоить значение m. Количество элементов

массива увеличить на 1.

Сортировка массива простой вставкой осуществляется следующим образом:

Пусть имеется массив a[1], a[2], ..., a[n]. Пусть элементы a[1], a[2], ..., a[i

– 1] уже отсортированы, и пусть имеем входную последовательность a[i], a[i

+ 1], ..., a[n]. На каждом шаге, начиная с i = 2 и увеличивая i на единицу, берем i-й элемент входной последовательности и вставляем его на подходящее место в уже отсортированную часть последовательности. Вставляемый элемент - х. Начальный массив 32 64 9 30 87 14 2 76.

i = 2 х = 64. Ищем для х подходящее место, считая, что а[1] = 32 — это уже отсортированная часть последовательности. Получаем 32 64 9 30 87 14 2 76.

i=3 х=9. Ищем для х подходящее место: 9 32 63 30 87 14 2 76.

i = 4 х = 30. Ищем для х подходящее место: 9 30 32 64 87 14 2 76.

i = 5 х = 87. Ищем для х подходящее место: 9 30 32 64 87 14 2 76.

i = 6 х = 14. Ищем для х подходящее место: 9 14 30 32 64 87 2 76.

i=7 х=2. Ищем для х подходящее место: 2 9 14 30 32 64 87 76.

i = 8 х = 76. Ищем для х подходящее место: 2 9 14 30 32 64 76 87.

При поиске подходящего места для элемента х чередуются сравнения и

пересылки.

«Просеивание» может закончиться при двух различных условиях:

1) Найден элемент, значение которого больше, чем х;

2) Достигнут конец последовательности.

Для выполнения лабораторной работы требуется разработать:

  1. Заставку в первой форме, которая должна быть реализована при помощи надписи.

  2. Функцию outputmas типа void с параметрами (int* a, int len, DataGridView^ dgv), в которой будет происходить вывод массива, а также будут вноситься дополнительные под настройки для datagridview1 .

  3. Функцию entermas типа void с параметрами (int* mas, int n), в которой будет происходить генерация массива.

  4. Функцию VSTAVKA типа void с параметрами (int k, int* mas, int n, int m), в которой будет вставка элементов массива.

  5. Функцию PROSOYVSTAVKA типа void с параметрами (int* mas, int n), в которой будет происходить сортировка массива с помощью метода простой вставки.

  6. Функцию Zapis типа void с параметрами (DataGridView^ grid), в которой будет происходить запись исходного массива в текстовый файл

  7. Функцию ZapisWordIs типа void с параметрами (int* arr, int len), в которой будет происходить запись исходного массива в Microsoft Word.

  8. Функцию ZapisWordrez типа void с параметрами (int* arr, int len), в которой будет происходить заполнение базы данных.

  9. Разработать dll библиотеку, в которой будут находиться функция: Zapis, ZapisWordIsx, ZapisWordrez, outputmas, entermas, VSTAVKA, PROSOYVSTAVKA.

  10. Событийную button1_Click_1 в которой будет происходить считывание данных через MessageBox и генерация массива, а также будет происходить запуск функции Zapis, ZapisWordIsx, ZapisWordrez, outputmas, entermas, VSTAVKA и PROSOYVSTAVKA.