Студопедия

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

Разделы сайта

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






Бүтін сандармен жұмыс жасайтын объект-калькулятор.






class TInt{

int EndState;

public

int x;

Int(int x1);

virtual ~Int();

virtual void GetEvent (TEvent & event);

virtual int Exicute();

virtual void HandleEvent (TEvent& event);

virtual void ClearEvent (TEvent& event);

int Valid();

void EndExec();

int GetX();

void SetX (int newX);

void AddY (int Y);

};

Негізгі ә дістердің жү зеге асу мү мкіндіктерін қ арастырамыз.

void TInit:: GetEvent(TEvent & event)

{char* OpInt = “+-*/=? q”; // жолда операциялар коды бар

char s[20];

char code;

cout< < ‘> ’;

cin> > s; code = s[1];

if(Test(char code, char*OpInt) // Test функциясы code символы OpInt жолына //кіретіндігін тексереді

 

{event.what = evMessage;

swith(code)

{case ‘+’: event.command=cmAdd;

break;

case‘q’: event.command = cmQuit;

break;

}

//екінші параметрді белгілеу, оны int типіне айналдыру жә не А ө рісіне меншіктеу

};

else event.what= evNothing

};

int TMyApp:: Execute()

{do{endState=0;

GetEvent(event); //оқ иғ аны алу

HandleEvent(event); //оқ иғ аны ө ң деу

if(event.what! =evNothing) //оқ иғ а ө ң делмей қ алды

while(! Valid());

return endState;

}

void TInt:: HandleEvent(TEvent& event)

{

if(event.what == evMessage)

{

switch(event.message.command)

{

case cmAdd: AddY(event.A);

СlearEvent(event);

break;

case cmQuit: EndExec();

СlearEvent(event);

break;

};

};

}

int TInt:: Valid();

{ if (EndState == 0) return 0;

else return 1;

}

 

void TInt:: ClearEvent(TEvent& event)

{

Event. what: = evNothing;

}

void TInt:: EndExec()

{

EndState= 1;

}

void TInt:: AddY(int Y)

{

x+=Y;

и т.д.

void main()

{

TInt MyApp;

MyApp.Execute();

}

 

Жұ мысты орындау реті.

1. Қ осымшада келтірілген мысалды талдау. Келесі срақ тарғ а жауап беру:

а) мұ ндағ ы кластардың иерархиясы қ андай?

б) мұ ндағ ы объектілердің иерархиясы қ андай?

в) операцияның аргументтері КАЛЬКУЛЯТОРҒ А қ алай беріледі? Олар қ айда сақ талады? Қ ОСУ, АЗАЙТУ жә не т.б. амалдар оғ ан қ алай қ олжетімді?

г) оқ иғ а топпен қ алай ө ң деледі?

д) TEvent оқ иғ асының барлық маршруттары қ андай?

е) барлық класстардың HandleEvent қ алай орындалады?

2. Оқ иғ аны ө ң дейтін объектілер тобын таң дау (бұ л қ осымшада келтірілген объектілер болуы мү мкін емес).

3. Таң далғ ан объектілер ү шін қ олданушының командасы бойынша орындалатын операциялар тізімін анық тау.

4. Командалық жолдың тү рін анық тау< операция коды> < параметрлер>. Сұ рақ тарды шешу:

Операциялар қ алай кодталады? Қ андай параметрлер беріледі?

5. Объектілердің иерархиясын анық тау, егер жаң а объектілер (объектілер тобын) қ осу қ ажет болса.

6. егер жаң а класс қ осу қ ажет болса, класстар иерархиясын анық тау.

7. Программада қ андай объект қ осымша қ ызметін атқ аратынын анық тау. Қ ажет болғ ан жағ дайда класстар иерархиясына TApp класын қ осу. Оқ иғ аны ө ң деудің негізгі циклын ұ йымдастыратын E xecute ә дісі қ ай класта болатынын анық тау.

8. Оқ иғ аны ө ң деуге қ ажет ә дістерді анық тау жә не жү зеге асыру.

9. (main) негізгі функциясын жазу.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.