![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Осымша.
КАЛЬКУЛЯТОР объектісінақ ты сандарды қ осу, азайту, кө бейту, бө лу амалдарын орындайды. Объектілер иерархиясы.
Мысалда негізгі классты жә не типтерді анық тау жә не кейбір компоненттік функцияларды жү зеге асыру келтірілген. 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); }
|