Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PZ.docx
Скачиваний:
7
Добавлен:
01.03.2025
Размер:
927 Кб
Скачать
☆
    1. Структура приложения

    1. Таблица свойств объектов

Объект

Название

Другие свойства

RadioButton

rdbmax

Text: Min->Max(A-z)

rdbmin

Text: Max->Min(z-A)

rdbName

Text: Name

rdbPrice

Text: Price

rdbCount

Text: Count

Button

buttonSort

Text: Sortme

ComboBox

cmbSort

Text: std::sort line selection

GroupBox

GroupBox1

Text:Set the type of  sort

GroupBox2

Text: Sortby

ListView

lvList

-

    1. Таблица идентификаторов

      Область видимости

      Назначение

      Идентификатор

      Тип

      boolCondition()

      переменная названия товара

      x

      int

      переменная номера товара

      p

      int

      переменная цикла

      j

      int

      переменная цены товара

      max

      int

      boolGreater()

      переменная номера товара

      p

      int

      переменная цикла

      j

      int

      переменная цены товара

      max

      int

      sort1()

      переменная товара

      x

      int

      sort2 ()

      переменная максимального значения

      max

      int

      переменная шага в цикле

      j

      int

      переменная шага в цикле

      i

      int

      количество элементов массива

      N

      int

  1. Функциональное описание

  1. boolCondition() - функция состояния товара. В данной функции определяются переменные, которыми впоследствии будут обозначаться атрибуты товара(название,цена ,количество). Также определена переменная «х» для номера товара, и условие, что под каждым номером должны быть записаны определенные данные (в соответствии с атрибутами).

  2. Vivod() – функция вывода.

Создается цикл вывода сортируемых элементов, создан счетчик номеров товаров (т.е. товарам номер не присваивается, а изменяется динамически при выборке).

  1. Form1_Load() – функция загрузки главной формы.

В функции получаем количество сортируемых элементов и выводим на форму товары и их атрибутами случайным образом.

  1. btnSort_Click() – функция события нажатия кнопки «Sortme».

Проверяются условия:

  • Какой тип сортировки выбрал пользователь.

  • Какое поле выбрано в качестве сортируемого.

  • Ранжирование значений полей(от максимального к минимальному и наоборот).

В условиях вызываются функции сортировок sort1() и sort2(). Отсортированная информация заново выводится на форму (вызов vivod()). Считается время(GetSystemTime).

  1. Sort1()- функция алгоритма сортировки методом std::sort.

  2. Sort2()-функция алгоритма сортировки методом линейного выбора с обменом.

В начале первого просмотра предполагается, что первый элемент списка имеет наименьший ключ. Этот ключ вместе с адресом пересылается в рабочую память, где сравнивается со всеми линейными преемниками до тех пор, пока не встретится меньший ключ. Меньший ключ и его адрес становятся содержимым рабочей области памяти. Сравнения продолжаются при новом содержимом рабочей памяти. Пересылка выполняется всегда, когда в списке встречается ключ, который меньше ключа в рабочей памяти. Таким образом, в рабочей памяти всегда расположен наименьший из уже просмотренных ключей. Просмотр заканчивается по достижении конца списка. До этого момента процесс идентичен простому линейному выбору. Сортировка обменом отличается следующим шагом. По окончании первого просмотра запись, ключ которой расположен врабочей памяти, переставляется с записью из вершины списка. Теперь наименьшая величина в списке занимает первую позицию. Второй просмотр идентичен первому с той лишь разницей, что вторым по величине считается второй ключ, так как первым стоит наименьший элемент. Первая позиция исключается из процесса. По окончании второго просмотра вторая запись с наименьшим ключом помещается во вторую позицию списка. Третий просмотр начинается сравнением ключа из третьей позиции и т. д. Эта процедура заканчивается, когда свое место занимает (N—1)-я запись.

Этапы алгоритма:

1. Значение первого элемента принимается за минимальное значение всего массива.

2. Данный минимальный элемент сравнивается с другими элементами всего массива.

3. Если находится элемент меньше заданного минимального элемента, то в качестве наименьшего принимается меньший из них.

4. Просмотр заканчивается по достижении конца списка.

5. Минимальный элемент массива переставляется с элементов вершины списка, т.е.

наименьшая величина в списке занимает первую позицию.

6. Второй и последующие просмотры идентичны первому с той лишь разницей, что вторым

по величине считается второй элемент, третий – третьим и т.д.

7. Процедура заканчивается, когда свое место занимает (N – 1)-й элемент массива.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]