1-Amaliy ishi Mavzu: Tiplarni dinamik tarzda aniqlash. Tiplarni almashtirish operatorlari. Yangi nomlar fazosi yaratish. Buferlashtirilgan kiritish va chiqarish Ishning maqsadi


OYD ning merosxo’rlik va polimorfizm xususiyatlaridan foydalangan holda vazifaga muvofiq dasturlar yaratish


Download 406.28 Kb.
bet2/3
Sana09.06.2023
Hajmi406.28 Kb.
#1474907
1   2   3
Bog'liq
1-amaliyot. Dasturlash II

1.2 OYD ning merosxo’rlik va polimorfizm xususiyatlaridan foydalangan holda vazifaga muvofiq dasturlar yaratish


Ishning maqsadi: Polimorfizm(overload va override) metodlarni qayta e’lon qilish va qayta yuklash orqali dasturlash ko’nikmalarini shakllantirish.
Topshiriq: OYD ning merosxo’rlik va polimorfizm xususiyatlaridan foydalangan holda vazifaga muvofiq dasturni yozing.

  • Barcha classlarda class obyektlari yaratilishi kerak bo'lgan konstruktorlarni yozing.

  • Yaratiladigan obyektlarning parametrlari klaviaturadan (talaba xohlaganidek) kiritiladi va parametr sifatida konstruktorga uzatiladi.

  • Obyektlar haqida barcha ma'lumotlar chiqarilsin.

  • Virtual va do’st funksiyalar hamda do’st class lar yaratilsin.



Dastur:
#include
#include
using namespace std;
const string QIMMAT_REJISSOR_1 = "Stiven Spilberg", QIMMAT_REJISSOR_2="Djeyms Kemeron";
class Kinofilm {
protected:
string nomlanishi, rejissor;
int davomiyligi; //minutlarda
int aktyorlar_soni;
public:
Kinofilm(string nom, string rej, int dav, int akt) {
nomlanishi =nom;
rejissor =rej;
davomiyligi = dav;
aktyorlar_soni = akt;
}
virtual int narx() {
int narxi = davomiyligi * 20 + aktyorlar_soni * 30;
if (rejissor == QIMMAT_REJISSOR_1 || rejissor == QIMMAT_REJISSOR_2) {
narxi *= 2;
}
return narxi;
}
void axborot() {
cout <<"Nomlanishi: "<< nomlanishi << endl
<<"Rejissor: "<< rejissor << endl
<<"Davomiyligi: "<< davomiyligi << endl
<<"Aktyorlar soni: "<< aktyorlar_soni << endl
<<"Narxi: "<< narx() <<"\n\n";
}
};
class Multfilm :public Kinofilm {
public:
Multfilm(string nom, string rej, int dav, int akt) : Kinofilm(nom, rej, dav, akt){}
int narx() {
return davomiyligi * 25 + aktyorlar_soni * 10;
}
};
int main() {
//Ikkita film kiritish:
string nom, rej = QIMMAT_REJISSOR_1;
int dav, akt;
cout << rej <<"ning filmi nomini kiriting: "; getline(cin, nom);
cout << nom <<" filmi davomiyligi (minutlarda): "; cin >> dav;
cout << nom <<" filmi aktyorlar soni: "; cin >> akt; cin.ignore();
Kinofilm birinchi = Kinofilm(nom, rej, dav, akt);
rej ="Jorj Gofman";
cout << rej <<"ning filmi nomini kiriting: "; getline(cin, nom);
cout << nom <<" filmi davomiyligi (minutlarda): "; cin >> dav;
cout << nom <<" filmi aktyorlar soni: "; cin >> akt; cin.ignore();
Kinofilm ikkinchi = Kinofilm(nom, rej, dav, akt);
cout <<"Multfilm rejissori: "; getline(cin, rej);
cout << rej <<"ning multfilmi nomini kiriting: "; getline(cin, nom);
cout << nom <<" multfilmi davomiyligi (minutlarda): "; cin >> dav;
cout << nom <<" multfilmi aktyorlar soni: "; cin >> akt; cin.ignore();
Multfilm mulfilm = Multfilm(nom, rej, dav, akt);
cout <<"\n\nNatija:\n\n";
birinchi.axborot();
ikkinchi.axborot();
mulfilm.axborot();
}

Download 406.28 Kb.

Do'stlaringiz bilan baham:
1   2   3




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling