Помощь в написании студенческих работ
Антистрессовый сервис

Разработка и тестирование компьютерной программы для сортировки числового массива методом Шелла на языке прогаммирования С++

Курсовая Купить готовую Узнать стоимостьмоей работы

Программа разработана для сортировки массивов. Запуск программы осуществляется двойным кликом по файлу Sort. exe под управлением ОС WindowsХР/7/8, не требует большого количества системных ресурсов, имеет удобный пользовательский интерфейс. Для начала работы надо ввести размерность исходного массива. Если появится окно ошибки, то введена не правильная размерность или пытались ввести символы или… Читать ещё >

Разработка и тестирование компьютерной программы для сортировки числового массива методом Шелла на языке прогаммирования С++ (реферат, курсовая, диплом, контрольная)

Содержание

  • ВВЕДЕНИЕ
  • 1. ТЕОРЕТИЧЕСКИЕ АСПЕКТЫ НАПИСАНИЯ ПРОГРАММЫ НА ЯЗЫКЕ C
    • 1. 1. Краткое описание языка программирования С
    • 1. 2. Функции сортировки в языке программирования C
    • 1. 3. Алгоритмы сортировки и их реализация на языке программирования C
      • 1. 3. 1. Сортировка пузырьком
      • 1. 3. 2. Сортировка методом вставок
      • 1. 3. 3. Сортировка методом выбора
    • 1. 4. Сортировка методом Шелла
  • 2. ОСОБЕННОСТИ АЛГОРИТМА СОРТИРОВКИ ЧИСЛОВОГО МАССИВА МЕТОДОМ ШЕЛЛА
  • 3. РАЗРАБОТКА И ТЕСТИРОВАНИЕ КОМПЬЮТЕРНОЙ ПРОГРАММЫ ДЛЯ СОРТИРОВКИ ЧИСЛОВОГО МАССИВА МЕТОДОМ ШЕЛЛА
    • 3. 1. Постановка задачи
    • 3. 2. Создание проекта в MS Visual Studio
    • 2. 3. Тестирование программы
    • 2. 4. Инструкция пользователя
  • ЗАКЛЮЧЕНИЕ
  • СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

Условия для решения поставленной задачи:

Сортировка. Под сортировкой понимается перегруппировка заданного множества элементов в некотором заданном порядке. Сортировку называют внутренней, если все элементы хранятся в оперативной памяти. Основное требование к методам сортировки — экономное использование времени процессора и оперативной памяти. Необходимо реализовать сортировку целочисленного массива, содержащего не менее 100 элементов, по по возрастанию. Функция сортировки методом Шелла. Входные параметры: исходный массив и его размерность. Выходные параметры: результирующий массив. Будет организован внешний цикл, в котором параллельно вводу, элемент будет заноситься в переменную, для сравнения. Во внутреннем цикле, который начинается от текущего элемента минус один, цикл будет выполнятся до начала массива и пока текущий элемент больше (меньше) предыдущего. В этом цикле производится сдвиг вправо, для вставки элемента. Функция заполнения исходного массива. Входные параметры: отсутствуют. Выходные параметры: исходный массив и его размерность. Изначально будет введена размерность массива. Если пользователь выберет случайное заполнение массива, то в цикле с помощью функции random (), массив будет заполнен случайными числами. Если будет выбран способ заполнения вручную, то будет очищен массив, организован цикл, в котором заполняем массив вручную. Если не будет выбран ни один из предложенных способов заполнения, то выдастся сообщение об ошибке. Главная функция.

Функция выхода из программы.

При разработке пользовательского интерфейса, будет предусмотрена кнопка для выхода из программы. При активации этой кнопки будет вызвана функция Close (), которая закрывает окно программы.

3.2 Создание проекта в MSVisualStudio 2017.

Для создания проекта необходимо на начальной странице VisualStudio нажать «Создать новый проект» как это продемонстрированно на рисунке2. Рисунок 2Создание проекта. Рисунок 3Создание проекта. Затем следует группы C++, подгруппы «Общее» и выбрать «Пустой проект» как это продемонстрированно на рисунке 4. Рисунок 4Выбор типа проекта. Длясоздание элемента кода, необходимо выбрать «Файлы исходного кода», затем «Добавить», и выбрать «Создать элемент…» как это продемонстрированно на рисунке 5. Рисунок 5Создание исходного кода.

Затем необходимо выбрать тип файла исходного кода, как это продемонстрированно на рисунке 6. Рисунок 6Выбор файла исходного кода.

Далее вводим исходный код:#include «stdafx.h» #include <iostream>#include <stdlib.h>#include <clocale>using namespace std;template< class T >void sort (T* arr, int size){T tmp;for (inti = 0; i < size — 1; ++i) // i — номерпрохода{for (int j = 0; j < size — 1; ++j) // внутренний цикл прохода{if (arr[j + 1] < arr[j]){tmp = arr[j + 1]; arr[j + 1] = arr[j]; arr[j] = tmp;}}}}int main (){setlocale (LC_CTYPE, «»); // вызов функции настройки локалиintsize;short q;cout << «Введите размер массива» << endl;;cin >> size;cout << endl;int *array = new int[size]; cout << «Введите способ заполнения массива» << endl << «1 — Случайно» << endl << «2 — С клавиатуры» << endl << endl;cin >> q;cout << endl;if (q == 1){for (inti = 0; i < size; i++)array[i] = rand () % 10 000 — 5000;}else if (q == 2){for (inti = 0; i < size; i++)cin >> array[i]; }else{cout << «_FATAL_ERROR_» << endl;return 0;}system («pause»);cout << endl << «Сортировка:» << endl;sort (array, size);for (inti = 0; i < size; i++){cout << array[i] << endl;}system («pause»);}Веденный исходный код программы представлен на рисунке 7. Рисунок 7. Исходный код программы2.

3 Тестирование программы.

Выполним тестирование программы:

Вначале выберем метод заполнения массива случайным способом. Результаты работы программы представлены на рисунке 8. Рисунок 8. Случайное заполнение массива.

Выполним заполнение массива с клавиатуры:

Рисунок 9. Заполнение массива с клавиатуры2.

4 Инструкция пользователя.

Программа разработана для сортировки массивов. Запуск программы осуществляется двойным кликом по файлу Sort. exe под управлением ОС WindowsХР/7/8, не требует большого количества системных ресурсов, имеет удобный пользовательский интерфейс. Для начала работы надо ввести размерность исходного массива. Если появится окно ошибки, то введена не правильная размерность или пытались ввести символы или знаки. Затем нужно выбрать способ заполнения массив и нажать кнопку. Если способ не выбран, выдается сообщение с предложением выбрать способ заполнения. Если выбран способ заполнения «С клавиатуры» начинаем ввод, после ввода каждого элемента массива нажимать клавишу Enter. Если же выбран способ заполнения «Случайно», то массив заполниться элементами случайно.

ЗАКЛЮЧЕНИЕ

Сортировка данных используется для эффективного решения других задач при программировании. Для упорядоченной совокупности данных быстро и легко решается задача, как поиск и отбор информации по заданному условию. Алгоритмы сортировки являются основой при решении большого числа прикладных задач программирования. Выполнение сортировки данных — это одна из стандартных проблем, которые возникают в процессе разработки программ. В данной курсовой работе были изученычетыре основных метода сортировки:

сортировка пузырьком;

сортировка методом вставок;

сортировка методом выбора;

сортировка методом Шелла. В процессе выполнения курсовой работы была разработана программа сортировки массивов методом Шелла на языке программирования C++, продуман удобный интерфейс для пользователя — введение исходного массива (вручную или случайно), проведено тестирование программы. Также в работе была рассмотрена библиотека C++ STL, которая выполняет оптимизацию алгоритма для заданного типа данных и операции сравнения, вследствие чего сортировка происходит быстрее. Кроме того, шаблоны имеют все свойства универсальности: различные данные — различные сравнения. STL позволяет сэкономить как время на разработку, так и время на выполнение, наследуя от универсальных функций свойство гибкости. За небольшие сроки получается оптимальный алгоритм с достаточной скоростью выполнения и минимальным количеством ошибок. В данной курсовойработе при разработке программы были закреплены навыки программирования на языке С++ всреде программирования VisualStudio 2017. СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫC++ для школьников: Учебное пособие / М. Дрейер. Перевод с англ.

под ред. В. Биллига—М.: БИНОМ. Лаборатория знаний, 2009.

— 128А.В. Левитин. Глава 4. Метод декомпозиции: Быстрая сортировка // Алгоритмы: введение в разработку и анализ. —.

М.: «Вильямс», 2006. — С. 174−179.Аммерааль STL для программистов на C++ / Аммерааль, Леен. — М.: ДМК, 1999. ;

239 c. Архангельский, А. Я. Приемы программирования в C++ Builder. Механизмы Windows, сети / А. Я. Архангельский. — М.: Бином, 2004. — 656 c. Вандевурд Шаблоны C++. Справочник разработчика / Вандевурд, Дэвид. ;

М.: Вильямс, 2008. — 544 c. Вирт Н. Алгоритмы и структуры данных. M.: ДМК Пресс, 2010. — 411Дейтел, Х. М. Как программировать на С++ / Х. М. Дейтел, П.Дж.

Дейтел. — М.: Бином; Издание 4-е, 2005. — 932 c. Джосьютис C++ стандартная библиотека / Джосьютис, Николай. — М.: СПб: Питер, 2004. ;

730 c. Дьюхарст Программирование на C++ / Дьюхарст, Старк Стефан;, Кэти. — М.: Диа.

Софт, 1993. — 272 c. Карпов, Б. C++: специальный справочник / Б. Карпов, Т. Баранова. ;

М.: СПб: Питер, 2003. — 480 c. Липпман основы программирования на C++ / Липпман, С. — М.: Вильямс, 2002. — 256 c. Лоудон, К.

C++. Карманный справочник / К. Лоудон. — М.: Питер, 2004. ;

224 c. Саттер Новые сложные задачи на C++ / Саттер, Герб. — М.: Вильямс, 2005. — 272 c. Секунов, Н. Ю. Самоучитель Visual C++ 6.0 / Н. Ю. Секунов. — М.: СПб: BHV, 2004. ;

960 c. Страуструп Язык программирования С++ / Страуструп, Бьерн. — М.: Бином; Издание 3-е, перераб., 2002. ;

541 c. Фридман, А. C/C++. Архив программ / А. Фридман, Л. Кландер, М.

Михаэлис, и др. — М.: ЗАО Издательство БИНОМ, 2001. — 640 c. Халперн Стандартная библиотека С++ / Халперн, Пабло.

— М.: Вильямс, 2001. — 336 c. Холзнер, С. V.

isual C++ 6. Учебный курс / С. Холзнер. — М.: Питер, 2001. ;

576 c. Шилдт Полный справочник по C++ / Шилдт, Герберт. — М.: Вильямс; Издание 4-е, 2003. ;

800 c. Янг Visual C++ 6. Полное руководство / Янг, Майкл. — М.: Киев: BHV, 2000. — 570 c.

Показать весь текст

Список литературы

  1. C++ для школьников: Учебное пособие / М. Дрейер. Перевод с англ. под ред. В. Биллига—М.: БИНОМ. Лаборатория знаний, 2009. — 128
  2. А.В. Левитин. Глава 4. Метод декомпозиции: Быстрая сортировка // Алгоритмы: введение в разработку и анализ. — М.: «Вильямс», 2006. — С. 174−179.
  3. Аммерааль STL для программистов на C++ / Аммерааль, Леен. — М.: ДМК, 1999. — 239 c.
  4. , А.Я. Приемы программирования в C++ Builder. Механизмы Windows, сети / А. Я. Архангельский. — М.: Бином, 2004. — 656 c.
  5. Вандевурд Шаблоны C++. Справочник разработчика / Вандевурд, Дэвид. — М.: Вильямс, 2008. — 544 c.
  6. Н. Алгоритмы и структуры данных. M.: ДМК Пресс, 2010. — 411
  7. , Х.М. Как программировать на С++ / Х. М. Дейтел, П.Дж. Дейтел. — М.: Бином; Издание 4-е, 2005. — 932 c.
  8. Джосьютис C++ стандартная библиотека / Джосьютис, Николай. — М.: СПб: Питер, 2004. — 730 c.
  9. Дьюхарст Программирование на C++ / Дьюхарст, Старк Стефан;, Кэти. — М.: ДиаСофт, 1993. — 272 c.
  10. Карпов, Б. C++: специальный справочник / Б. Карпов, Т. Баранова. — М.: СПб: Питер, 2003. — 480 c.
  11. Липпман основы программирования на C++ / Липпман, С. — М.: Вильямс, 2002. — 256 c.
  12. Лоудон, К. C++. Карманный справочник / К. Лоудон. — М.: Питер, 2004. — 224 c.
  13. Саттер Новые сложные задачи на C++ / Саттер, Герб. — М.: Вильямс, 2005. — 272 c.
  14. , Н.Ю. Самоучитель Visual C++ 6.0 / Н. Ю. Секунов. — М.: СПб: BHV, 2004. — 960 c.
  15. Страуструп Язык программирования С++ / Страуструп, Бьерн. — М.: Бином; Издание 3-е, перераб., 2002. — 541 c.
  16. Фридман, А. C/C++. Архив программ / А. Фридман, Л. Кландер, М. Михаэлис, и др. — М.: ЗАО Издательство БИНОМ, 2001. — 640 c.
  17. Халперн Стандартная библиотека С++ / Халперн, Пабло. — М.: Вильямс, 2001. — 336 c.
  18. Холзнер, С. Visual C++ 6. Учебный курс / С. Холзнер. — М.: Питер, 2001. — 576 c.
  19. Шилдт Полный справочник по C++ / Шилдт, Герберт. — М.: Вильямс; Издание 4-е, 2003. — 800 c.
  20. Янг Visual C++ 6. Полное руководство / Янг, Майкл. — М.: Киев: BHV, 2000. — 570 c.
Заполнить форму текущей работой
Купить готовую работу

ИЛИ