- •Қазақстан республикасы білім және ғылым министрлігі қ. Жұбанов атындағы ақтөбе мемлекеттік университеті
- •050602 - «Информатика» мамандығы күндізгі бөлімінің
- •«Obp 4301 Объектіге бағытталған программалау» пәнінен
- •II кафедраның әдістемелік секциясы отырысында талқыланды
- •Пән мазмұны
- •Лабораториялық сабақтардың тақырыптарының үлгілі тізімі
- •Өзіндік жұмыстардың тақырыптарының үлгілі тізімі
- •Ұсынылған әдебиеттер тізімі
- •Оқу пәнінің жұмыс бағдарламасы
- •I жұмыс бағдарламасы дайындалып енгізілді
- •II кафедра отырысында талқыланды
- •IV факультеттің оқу-әдістемелік комиссиясына бекітуге ұсынылды
- •V алғашқы тексеру мерзімі 2011 ж. Тексеру мерзімділігі 1 жыл
- •Дәрістер
- •Практика сабақтары
- •Лаборатория сабақтары
- •Негізгі әдебиеттер
- •Оқу пәнінің жұмыс бағдарламасы
- •Пәннің тақырыптық жоспары
- •Өзіндік жұмыс тапсырмалары
- •1. Жұмыс түрлері:
- •2. Жұмыс түрлерін бағалау критериилері:
- •Курстық жұмыстың тақырыптары
- •Пән бойынша тапсырмаларды орындау және тапсыру графигі
- •Пәннің оқу-әдістемемен қамтамасыз ету картасы
- •Қр білім және ғылым министрлігі
- •2. Көпше түрдегі мұрагерлік
- •2. Операторларды қайта анықтаудың түрлері.
- •3. Унарлы операторларды қайта анықтау
- •4. Бинарлы операторларды қайта анықтау
- •5. Меншіктеу операторларын қайта анықтау
- •6. New және delete операторларын қайта анықтау
- •Жәй және күрделі полиморфизм
- •Виртуальді функциялар
- •Иерархия схемасы
- •Қр білім және ғылым министрлігі
- •2. Орындауға арналған тапсырмалар:
- •Практикалық жұмыс №2 конструкторларды және деструкторларды құру
- •2. Орындауға арналған тапсырмалар:
- •3. Өз бетімен орындауға арналған тапсырмалар (үй тапсырмасы):
- •Практикалық жұмыс №3-4 мұрагерлік. Жалғызданған және көпше түрдегі мұрагерлік
- •2. Орындауға арналған тапсырмалар:
- •3. Өз бетімен орындауға арналған тапсырмалар (үй тапсырмасы):
- •Практикалық жұмыс №5-6 полиморфизм. Амалдарды қайта анықтау
- •3. Өз бетімен орындауға арналған тапсырмалар (үй тапсырмасы):
- •5. Литерлік шамаларға қолданылатын функциялар қай кітапханада орналасқан?
- •Практикалық жұмыс №7-8 функциялардың және операторларды қайта жүктеудің бірге қолданылуы
- •3. Өз бетімен орындауға арналған тапсырмалар (үй тапсырмасы):
- •Практикалық жұмыс №9-10 енгізу-шығару ағындары
- •2. Өз бетімен орындауға арналған тапсырмалар (үй тапсырмасы):
- •Қр білім және ғылым министрлігі
- •Жұмысты орындау тәртібі
- •Өзіндік жұмыс тапсырмалары
- •Жұмыс есебі
- •Жұмысты орындау тіртібі
- •Өзіндік жұмыс тапсырмалары
- •Жұмыс есебі
- •Жұмысты орындау тіртібі
- •Өзіндік жұмыс тапсырмалары
- •Жұмыс есебі
- •Лабораторялық жұмыс бойынша сұрақтар
- •Лабораториялық жұмыс № 6-7 объектілер иерархиясы. Топтар. Итераторлар.
- •Қысқаша теориялық мәліметтер
- •Объектілер иерархиясы.
- •Мұндағы gr топ-объект.
- •Жұмысты орындау тәртібі
- •Өзіндік жұмыс тапсырмалары
- •Жұмыс есебі
- •2.Достық функциялар
- •Іі. Жұмыстың орындалу реті
- •Ііі. Өзіндік жұмыс тапсырмалар
- •Жұмыс есебі
- •Іі. Жұмыстың орындалу реті
- •Бүтін сандармен жұмыс жасайтын объект-калькулятор.
- •Жұмысты орындау реті.
- •Әдістемелік нұсқау.
- •Есеп берудің мазмұны.
- •Калькулятор
- •Қр білім және ғылым министрлігі
- •3. Практикалық және лабораториялық сабақтарды орындау
- •Қр білім және ғылым министрлігі
- •Тақырыбы: Конструкторлар және деструкторлар
- •Тақырыбы: Мұрагерлік
- •Тақырыбы: Операторларды қайта жүктеу
- •Тақырыбы: Ағындық кластар
- •Бақылау-өлшеу материалдары
- •21. Литерлік шамаларға қолданылатын функциялар қай кітапханада орналасқан?
- •Келісу парағы
Әдістемелік нұсқау.
1. Оқиғасын өңдеуді ұйымдастыратын топ ретінде №3 лабораториялық жұмыстан топты таңдау.
2. Әртүрлі өңделетін командалардың саны 5-тен кем болмауы қажет.
3. Кластардың анықталуын *.h файлға орналастыру. Кластың функция-мүшесінің анықталуын *.cpp файлға орналастыру.
4. Командалармен байланысты тұрақтылар үшін cmXXXX мнемоникалық атауларды қолдану.
Есеп берудің мазмұны.
1. Титулдық бет.
2. Есептің қойылымы.
3. Класстар иерархиясының схемасы.
4. Объектілер иерархиясының схемасы.
5. TEvent оқиғасы өтетін құрудан тазартуға дейінгі маршрутын сипаттау.
6. Класстарды анықтау.
7. GetEvent, Exicute, EndExec, Valid оқиғаларды өңдеу әдістерін жүзеге асыру.
8. HandleEvent –тің барлық әдістерін жүзеге асыру (барлық кластар үшін).
9. main() функциясының листингісі.
Қосымша.
КАЛЬКУЛЯТОР объектісінақты сандарды қосу, азайту, көбейту, бөлу амалдарын орындайды.
Объектілер иерархиясы.
Калькулятор
Қосу
схемасы
Азайту
схемасы Көбейту
схемасы
Бөлу
схемасы
регистр
қосындылағыш
Мысалда негізгі классты және типтерді анықтау және кейбір компоненттік функцияларды жүзеге асыру келтірілген.
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);
}