Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Реализация задания в оконном приложении



Вид формы и полученные результаты представлены на рис. 2.2.

Рис. 2.2

Приведем только тексты функций, соответствующих указанным кнопкам:

...

struct Stack { // Декларация структурного типа

int info;

Stack * next;

} *begin, *t;

//----------------- Декларации прототипов функций пользователя ---------------------

Stack* InStack(Stack*, int);

void View(Stack*);

void Del_All(Stack **);

//---------------- Текст функции-обработчика кнопки Создать ------------------------

int i, in, n = StrToInt(Edit1->Text);

if(begin!= NULL){

ShowMessage("Освободите память!");

return;

}

for(i = 1; i <= n; i++){

in = random(20);

begin = InStack(begin, in);

}

Memo1->Lines->Add("Создали " + IntToStr(n) + " -ть.");

//------------------ Текст функции-обработчика кнопки Добавить ---------------------

int i, in, n = StrToInt(Edit1->Text);

for(i = 1; i <= n; i++){

in = random(20);

begin = InStack(begin, in);

}

Memo1->Lines->Add("Добавили " + IntToStr(n) + " -ть.");

//------------------ Текст функции-обработчика кнопки Просмотреть ---------------

if(!begin){

ShowMessage("Стек Пуст!");

return;

}

Memo1->Lines->Add("--- Элементы ---");

View(begin);

//------------------- Текст функции-обработчика кнопки Очистить -------------------

if (begin!= NULL) Del_All(&begin);

ShowMessage("Память освобождена!");

//------------------- Текст функции-обработчика кнопки EXIT --------------------------

if(begin!= NULL) Del_All(&begin);

Close();

//---------------------- Функция добавления элемента в Стек -----------------------------

Stack* InStack(Stack *p, int in) {

Stack *t = new Stack;

t -> info = in;

t -> next = p;

return t;

}

//--------------------------- Функция просмотра Стека---------------------------------------

void View(Stack *p) {

Stack *t = p;

while(t!= NULL) {

Form1->Memo1->Lines->Add(" " + IntToStr(t->info));

// В консольном приложении будет, например, cout << " " << t->info << endl;

t = t -> next;

}

}

//--------------------------- Функция освобождения памяти --------------------------------

void Del_All(Stack **p) {

while(*p!= NULL) {

t = *p;

*p = (*p) -> next;

delete t;

}

}





Дата публикования: 2015-02-22; Прочитано: 237 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...