
- •Пояснительная записка
- •Задание на курсовую работу
- •Содержание
- •Введение
- •Постановка задачи
- •1.1 Цель и задачи работы
- •1.2 Обоснование выбора средства программирования
- •1.3 Входная и выходная информация
- •1.4 Требования к аппаратному обеспечению
- •1.5 Требования к программному обеспечению
- •2 Сведения из теории
- •3 Алгоритм решения задачи
- •5. Руководство пользователя
- •Заключение
- •Список литературы:
- •Приложение 1
3 Алгоритм решения задачи
Алгоритм решения Задачи представлен ввиде блок-схем:
Функция добавление элемента:
Ввод
Node* ptr = new Node;
ptr->number = numb;
ptr->next = NULL;
tail = ptr;
Edit1->Text="";
+
-
-
+
-
+
if (head == NULL)
head = ptr;
ptrLast = ptr;
ptr->last = NULL;
ptr->last = ptrLast;
ptrLast->next = ptr;
ptrLast = ptr;
Вывод
Функция поиска элемента.
Ввод
if (head == NULL)
if (key == ptr->number)number)
Label3->Caption="Элемент найден";
if (ptr->next == NULL)
+
-
-
-
Label3->Caption="Элемент не найден";
ptr = ptr->next;
}
Вывод
Ввод
Вывод
Функция удаления элемента из очереди:
if (head == NULL)
+
+
if (head->next == NULL)
Label2->Caption = "Очередь пуста ";
head = NULL;
tail = NULL;
delete tail;
ptrDelete = head;
head = ptrDelete->next;
head->last = NULL;
delete ptrDelete;
Ф
Ввод
ункция просмотра списка очереди:
if (head == NULL)
+
-
+
-
Label2->Caption = "Очередь пуста";
ptr = tail;
Label2->Caption = "";
Label2->Caption = Label2->Caption+ptr->number+" ";
if (ptr->last == 0)
ptr = ptr->last;
Вывод
4 ОПИСАНИЕ ПРОГРАММЫ
4.1 Функциональное назначение программы
Данная программа предназначена для реализации очереди, поиска и удаления элементов из этой очереди.
4.2 Глобальные переменные и константы
Form1 – главное окно программы;
Edit - однострочное текстовое поле, служащее для ввода данных.
Button - это простая командная кнопка.
4.3 Внутренняя структура программы
Структурно программа состоит из пяти основных частей:
Добавление элемента в список
Поиск элемента этого списка
Просмотр списка элементов
Удаление последнего элемента
Главная форма программы имеет следующий вид:
Ввод данных осуществляется в левом верхнем углу основной формы:
Вывод списка элементов который имеет вид:
Осуществляется в четыре этапа:
Ввод числа и добавление его в очередь
int numb = Edit1->Text.ToInt();
Node* ptr = new Node;
ptr->number = numb;
ptr->next = NULL;
tail = ptr;
Edit1->Text="";
if (head == NULL){
head = ptr;
ptrLast = ptr;
ptr->last = NULL;
}
else{
ptr->last = ptrLast;
ptrLast->next = ptr;
ptrLast = ptr;
Поиск элемента (ищет элемент в текущей очереди)
Node* ptr = NULL;
int key = Edit2->Text.ToInt();;
if (head == NULL)
{
Label2->Caption = "Очередь пуста";
}
ptr = head;
while (1)
{
if (key == ptr->number)
{
Label3->Caption="Элемент найден";
break;
}
if (ptr->next == NULL)
{
Label3->Caption="Элемент не найден";
break;
}
ptr = ptr->next;
}
Удаление элемента из списка очереди
Node* ptrDelete = NULL;
if (head == NULL)
{
Label2->Caption = "Очередь пуста";
}
else{
if (head->next == NULL)
{
head = NULL;
tail = NULL;
delete tail;
}
else
{
ptrDelete = head;
head = ptrDelete->next;
head->last = NULL;
delete ptrDelete;
}
}
Просмотр очереди:
{
Node* ptr = NULL;
if (head == NULL)
{
Label2->Caption = "Очередь пуста";
}
else{
ptr = tail;
Label2->Caption = "";
while (1)
{
Label2->Caption = Label2->Caption+ptr->number+" ";
//cout<<ptr->number<<" ";
if (ptr->last == 0)
break;
ptr = ptr->last;
}
//cout<<"\n\n";
}