Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

оформление 16

.doc
Скачиваний:
0
Добавлен:
30.05.2020
Размер:
46.08 Кб
Скачать

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

Тема: Программирование на языке С++ с использованием классов.

Цель работы: 1) изучить возможности программирования классов на языке С++;

2) получить основные навыки программирования манипуляторов ввода/вывода.

КОД

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma link "sColorSelect"

#pragma link "sSpeedButton"

#pragma link "sLabel"

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

int r,kilk=0;

class Tstack{

public:

int info;

Tstack *next;

//public:

stack(int n);

~Tstack();

void View (Tstack);

float ser_aryfm(Tstack);

int find(Tstack, int);

} *begin,*t;

Tstack* InStack(Tstack *, int);

void Del_All(Tstack **);

Tstack::stack(int n){

int in;

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

in = random(20);

begin = InStack(begin, in);

}

}

Tstack::~Tstack()

{

Del_All(&begin);

}

Tstack a;

void Del_All(Tstack **p){

while(*p != NULL){

t = *p;

*p = (*p) -> next;

delete t;

}

}

float ser_aryfm(Tstack *p)

{

float sum=0;

Tstack *t = p;

while( t != NULL){

sum+=t->info;

r++;

t = t -> next;

}

sum/=r;

return sum;

}

int find (Tstack *p,int k)

{

Tstack *t = p;

while( t != NULL){

if(r==k)

return t->info;

else

t = t -> next;

r++;

}

}

//--------------- Функцiя дoдавання eлeмeнту в Cтeк ------------------------

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

Tstack *t = new Tstack;

t -> info = in;

t -> next = p;

return t;

}

//----------------- Функцiя пeрeгляду Cтeка----------------------------------

void View(Tstack *p){

Tstack *t = p;

while( t != NULL){

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

// У кoнcoльнoму заcтocуваннi будe, наприклад, cout << " " << t ->info << endl;

t = t -> next;

}

}

void __fastcall TForm1::Button1Click(TObject *Sender)

{

kilk=0;

Memo1->Clear();

int n;

try{ n=StrToInt(Edit1->Text);

} catch(EConvertError &e) {ShowMessage("Превірте правильність введених данних."); return;}

a.stack(n);

View(begin);

kilk+=n;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)

{

Memo1->Clear();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)

{

Memo1->Clear();

int n;

try{ n=StrToInt(Edit1->Text);

} catch(EConvertError &e) {ShowMessage("Превірте правильність введених данних."); return;}

begin=InStack(begin,n);

View(begin);

kilk++;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)

{

a.~Tstack();

Memo1->Clear();

View(begin);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button4Click(TObject *Sender)

{

float k;

Memo1->Clear();

View(begin);

r=0;

k=ser_aryfm(begin);

Memo1->Lines->Add("Середнє арифметичне= "+FloatToStrF(k,ffFixed, 3,2));

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button5Click(TObject *Sender)

{

int k,rez;

r=0;

try{ k=StrToInt(Edit1->Text);

} catch(EConvertError &e) {ShowMessage("Превірте правильність введених данних."); return;}

if(k>kilk-1 || k<0){ ShowMessage("Елемента не знайдено"); return;}

rez=find(begin,k);

Memo1->Lines->Add("Знайдено= "+IntToStr(rez));

}

//---------------------------------------------------------------------------

Висновок: изучить возможности программирования классов на языке С++; получить основные навыки программирования манипуляторов ввода/вывода.

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