3- variant. Noma’lum turlar va noma’lum nomlar fazosi


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


Download 89.33 Kb.
bet2/2
Sana02.06.2020
Hajmi89.33 Kb.
#113225
1   2
Bog'liq
Dasturlash2.lab1.3v


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



3

Kompyuter” classini yarating. Maydonlari: Protsessor chastotasi (MGts), yadro soni, operativ xotira hajmi (MB), qattiq disk hajmi (GB), narxi. Ikkita virtual metod yarating: “Narx” metodida quyidagi formula orqali taxminiy narxni hisoblang: protsessor chastotasi 2000 MGts, yadro soni 2 dan kam bo’lmagan operativ xotira hajmi kamida 2048 Mb va qattiq disk hajmi 320 Gb bo’lsa, Protsessor chastotasi * yadro soni / 100 + xotira miqdori / 80 + qattiq disk hajmi / 20 formula orqali narxni($ dollar hisobida) hisoblasin. Mantiqiy tur qaytaruvchi “Yaroqlilik” nomli metod yarating. Ushbu metod Protsessor chastotasi 2000 MGts, yadro soni 2 dan kam bo’lmasa, operativ xotirasi 2048 MB dan kam bo’lmasa va qattiq disk hajmi kamida 320 GB bo’lsa rost(true), aks holda yolg’on(false) qiymat qaytarsin. Bundan tashqari, kompyuterlar haqida ma'lumotlarni chop etuvchi “Print” metodini yarating: protsessor chastotasi, yadro soni, operativ xotira hajmi, qattiq disk hajmi, narxi va ehtiyojlarimiz uchun yaroqliligi.

Shuningdek, “Noutbuk” nomli avlod classini yarating. Qo’shimcha parametri - batareyaning ishlash muddati (daqiqada). Qayta yuklangan ikkita metod: “Narx” metodi oddiy kompyuterning narxiga teng miqdorga + batareya ishlash muddati daqiqalari soni * 10 ($ dollar hisobida) ga teng bo'ladi va “Yaroqlilik” metodi oddiy kompyuter shartlarini bajarganda va batareya ishlash muddati 240 daqiqadan kam bo’lmaganda rost(true), aks holda yolg’on(false) qiymat qaytarsin. Bundan tashqari, kompyuterlar haqida ma'lumotlarni chop etuvchi “Print” metodini yarating: protsessor chastotasi, yadro soni, operativ xotira hajmi, qattiq disk hajmi, narxi va ehtiyojlarimiz uchun yaroqliligi.

Asosiy dasturda kompyuter va noutbuk classlarining obyektlarini yarating va ular haqidagi ma'lumotlarni namoyish qiling.


Dastur ko’di:

#include

using namespace std;
namespace Komp {

class Kompyuter {

private:

double prchas, yadson, operxotira, qattiqdisk, narx;

public:

Kompyuter (){};

Kompyuter(double prchas, double yadson, double operxotira, double qattiqdisk ): prchas(prchas), yadson(yadson),operxotira(operxotira), qattiqdisk(qattiqdisk) {}
virtual int Narx (){

if (prchas >=2000 && yadson >=2 && operxotira >=2048 && qattiqdisk >=320 ){


narx = (prchas*yadson)/100+(operxotira)/80+ (qattiqdisk)/20;

}

else {



narx=0;

cout<<" Kompyuter tekin beriladi :) "<

}

return narx;



}

virtual bool Yaroqlilik (){

bool a=false;

if (prchas>=2000 && yadson>=2 && operxotira>=2048 && qattiqdisk>=320 ){

a=true;

cout<<" Kompyuter yaroqli : "<

}

else {


cout<<" Kompyuter yaroqsiz: "<

}

}



virtual void Print (){
cout<<" Kompyuter chastotasi : "<


cout<<" Kompyuter yadrosi soni : "<

cout<<" Kompyuter operativ hotira : "<

cout<<" Kompyuter qattiq disk hajm: "<

cout<<" Kompyuter narxi : "<

}

};


class Noutbook : public Kompyuter {

private:

double nprchas, nyadson, noperxotira, nqattiqdisk, nnarx;

double Batareya ;

public:

Noutbook(double nprchas, double nyadson, double noperxotira, double nqattiqdisk, double Batareya) :

nprchas(nprchas), nyadson(nyadson), noperxotira(noperxotira), nqattiqdisk(nqattiqdisk), Batareya(Batareya) {}
int Narx() override{

if (nprchas>=2000 && nyadson>=2 && noperxotira>=2048 && nqattiqdisk>=320 ){


nnarx = (nprchas*nyadson)/100+(noperxotira)/80+ (nqattiqdisk)/20+Batareya*10;

}

else {



nnarx=0;

cout<<" Kompyuter tekin beriladi :) "<

}

return nnarx;



}

bool Yaroqlilik ()override {

bool b=false;

if (nprchas>=2000 && nyadson>=2 && noperxotira>=2048 && nqattiqdisk>=320 && Batareya>=240){

b=true;

cout<<" Kompyuter yaroqli : "<

}

else {


cout<<" Kompyuter yaroqsiz: "<

}

}



void Print () override{
cout<<" Noutbook chastotasi : "<

cout<<" Noutbook yadrosi soni : "<

cout<<" Noutbook operativ hotira : "<

cout<<" Noutbook qattiq disk hajm: "<

cout<<" Noutbook batareya o'lchovi:"<

cout<<" Noutbook narxi : "<

}

};


}

using namespace Komp;

int main (){

Kompyuter K= Kompyuter(2050,3,2080,360 );

Noutbook N= Noutbook (2100, 4,2048, 400, 300);

K.Print();

K.Yaroqlilik();

cout<<"___________________________________________________"<

N.Print();

N.Yaroqlilik();

return 0;

}

Natija:




Download 89.33 Kb.

Do'stlaringiz bilan baham:
1   2




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