Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Осымша.






КАЛЬКУЛЯТОР объектісінақ ты сандарды қ осу, азайту, кө бейту, бө лу амалдарын орындайды.

Объектілер иерархиясы.

 


Мысалда негізгі классты жә не типтерді анық тау жә не кейбір компоненттік функцияларды жү зеге асыру келтірілген.

class TShema;

class TObject // абстрактілі класс – класстар иерархиясының басында тұ р

{protected:

TShema* owner;

public:

TObject();

~TObject();

virtual void HandleEvent(TEvent&);

virtual void ClearEvent(TEvent&);

};

class TShema:: public TObject // абстрактілі топ

{protected:

TItem* last;

public:

TShema();

~TShema();

virtual void Insert(TObject*);

virtual void HandleEvent(TEvent&);

};

class TDevice: public TShema //басқ арудың абстрактылы қ ұ рылғ ысы

{protected:

int EndState;

public:

virtual void GetEvent(TEvent&);

virtual void Execute();

virtual int Valid();

virtual void EndExec();

};

 

class TRec: public TObject//регистр – мә ліметтерді сақ тауғ а арналғ ан қ ұ рылғ ы

{protected:

float x;

public:

TReg();

~TReg();

float GetX();

void SetX(float&);

};

class TCalc: public TDevice //калькулятор

{pritected:

TReg* sum; // қ осындылағ ышқ а кө рсеткіш

TReg* reg; // регистрге кө рсеткіш

public:

TCalc();

void HamdleEvent(TEvent&);

void GetEvent(TEvent&);

void Execute();

float GetSum(); // қ осындылағ ыштың мә нін алу

void PutSum(float); //қ осындылағ ышқ а сан жазу

voit Help();

};

class TAdd: public TObject // қ осу схемасы

{public:

void HandleEvent(TEvent&);

void Add();

};

 

TObject:: TObject()

{owner=0; }

TShema:: TShema()

{last=0; }

TCalc:: TCalc()

{TObject* r;

sum=new TReg;

reg=new TReg;

r=new TAdd;

Insert (sum);

// ә рі қ арай барлық схема ү шін

};

TCalc:: HandleEvent(TEvent& event)

{if(event.what==evMessage)

switch(event.command)

{cmQuit:

EndExec();

ClearEvent(event);

break;

cmGet:

cout< < GetSum()< < endl;

ClearEvent(event);

break;

cmSet:

PutSum(event.A);

ClearEvent(event);

break;

default:

TSheme:: HandleEvent(event);

} }

TSheme:: HandleEvent(TEvent& event)

{TItem* r;

if(event.what==evMassage)

{r=last;

while(event.what! =evNothing& & r! =0)

{r-> HandleEvent(event);

r=r-> next; }

} }

TAdd:: HandleEvent(TEvent& event)

{if(event.what==evMessage)

switch(event.command)

{cmAdd:

//регистрге сан жазу

(owner-> reg)-> SetX(event.A);

//қ осу ә дісін шақ ыру

Add();

ClearEvent(event);

break;

} }

TAdd:: Add() //қ осындылағ ышқ а регистрдің мә нін қ осу

{float a, b;

//получить значение сумматора

a=(owner-> sum)-> GetX();

//регистрдің мә нін алу

b=(owner-> reg)-> GetX();

//қ осындылағ ыштың мә нін ө згерту

(owner-> sum)-> SetX(a+b);

}

 



Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.009 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал