1- laboratoriya ishi obyektga yo’naltirilgan dasturlash


Natija: 0 1.2 Classlar o’rtasida vorislikni tashkil qilish. Overriding va overloading bo’ladigan funksiyalarni yaratish



Yüklə 174,13 Kb.
səhifə2/4
tarix25.03.2023
ölçüsü174,13 Kb.
#89913
1   2   3   4
1678362604 (2)

Natija:


0

1.2 Classlar o’rtasida vorislikni tashkil qilish. Overriding va overloading bo’ladigan funksiyalarni yaratish
Ishning maqsadi: Merosxo’rlik imkoniyatlaridan foydalanib dasturlash ko’nikmalarini shakllantirish.
Topshiriq:1 - jadvaldagi berilgan vazifalar uchun ajdod class va voris class larni yarating. Voris class da quyidagi funksiyalarni yozing:

  • Konstruktor.

  • Uchinchi ustundagi qo’yilgan vazifani bajaruvchi funksiya.

  • Avlod obyektlari haqida ma’lumotlarini chop qiluvchi funksiya.

Ajdod va voris class larning obyektlari haqida ma’lumotlarni kiritish va chiqarishni bajaruvchi friend funksiyalar va ularning shablonini yarating.


Dastur:
#include
#include
constint HOZIRGI_YIL = 2020;
usingnamespace std;
classTovar { // Ajdod sinf
protected:
string nomi;
int narxi;
string ishlab_chiqaruvchi;
//friend funksiyalar shablonlari
template
friendvoid kirit(T&);
template
friendvoid chiqar(T);
};
classTovar2 :publicTovar {
int yili;
int chegirma;

public:
//Konstruktorlar:


Tovar2() {}
Tovar2(stringnomi, intnarxi, stringish, intyil, intchegirma) {
this->nomi =nomi;
this->narxi = narxi;
ishlab_chiqaruvchi =ish;
this->yili = yil;
this->chegirma = chegirma;
}
//Uchinchi ustundagi vazifani bajaruvchi metod:
void uchinchi() {
if (HOZIRGI_YIL - yili >= 2) {
int narx = narxi * (100 - chegirma) / 100.0;
cout <<"Chegirma bilan narxi: "<< narx< }
else {
cout <<"Chegirma mavjud emas\n";
}
}
//chiqarish:
void print() {
cout << endl;
chiqar(*this);
}
//friend funksiyalar shablonlari
template
friendvoid kirit(T&);
template
friendvoid chiqar(T);
};
//kiritish funksiyasi shabloni
template
void kirit(T&tovar) {
cout <<"Tovarning nomi: ";
cin.ignore();
getline(cin, tovar.nomi);
cout <<"Tovarning narxi: "; cin >>tovar.narxi;
cout <<"Tovarning ishlab chiqaruvchisi: "; cin.ignore(); getline(cin, tovar.ishlab_chiqaruvchi);
if (typeid(&tovar) ==typeid(&Tovar2())) {
cout <<"Tovarning ishlab chiqarilgan yili: "; cin >>tovar.yili;
cout <<"Tovarning foizli chegirmasi: "; cin >>tovar.chegirma;
}
cout << endl;
}
//chiqarish funksiyasi shabloni
template
void chiqar(Ttovar) {
cout <<"Tovarning nomi: "< <<"Tovarning narxi: "< <<"Tovarning ishlab chiqaruvchisi: "< if (typeid(&tovar) ==typeid(&Tovar2())) {
cout <<"Tovarning ishlab chiqarilgan yili: "< cout <<"Tovarning foizli chegirmasi: "< }
}
int main() {
int n;
cout <<"Tovarlar soni: "; cin >> n;
Tovar2* tovarlar;
tovarlar = newTovar2[n];
//Kiritish
for (int i = 0; i < n; i++) {
kirit(tovarlar[i]);
}
//Uchinchi ustundagi shart + chiqarish:
for (int i = 0; i < n; i++) {
tovarlar[i].print();
tovarlar[i].uchinchi();
}
}



Yüklə 174,13 Kb.

Dostları ilə paylaş:
1   2   3   4




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin