Laboratoriya ishi 1. SWD001-L1 Qadamboyev Farrux
8.Ruchka va Qalam class larini yarating va ularni bog’lovchi funksiyalar yarating
#include
#include
using namespace std;
class Boglash {
private:
string rang;
string firma;
public:
Boglash (string rang, string firma){
this-> rang = rang;
this-> firma= firma ;
}
virtual string getrang(){
return rang;
}
virtual string getfirma(){
return firma;
}
};
class Ruchka: public Boglash {
public:
Ruchka (string rrang, string rfirma): Boglash (rrang, rfirma){}
};
class Qalam : public Boglash {
public:
Qalam (string Qrang, string Qfirma ): Boglash (Qrang, Qfirma){}
};
int main (){
Ruchka R= Ruchka ( "ko'k ", "alfa" );
Qalam Q= Qalam ( "qora ", "delphin" );
cout<<"\n ";
cout<<"Ruchka rangi: "<
cout<<"Ruchka soni : "<
cout<<"__________________________________\n ";
cout<<"Qalam rangi : "<
cout<<"Qalam soni : "<
system("pause"); }
Classlar o’rtasida vorislikni tashkil qilish. Overriding va overloading bo’ladigan funksiyalarni yaratish
8
|
Kitob:
nomi, muallifi, nashr yili
|
Kitob do’koni:
nomi, muallifi, nashr yili, narxi
|
Agar hozirgi yil bilan hisoblaganda kitob nashr qilinganiga 5 yildan oshgan bo’lsa uning narxini 20% ga arzonlashtiring.
|
Dastur ko’di:
#include
#include
using namespace std;
class Shopbook{
private:
string bookname;
string bookafter;
int makeyear, booknarx ;
public:
Shopbook (string booknam, string bookafte, int makeyea , int booknar){
bookname=booknam; bookafter=bookafte; makeyear=makeyea; booknarx=booknar; }
string getname (){
return bookname;
}
string getafter (){
return bookafter;
}
int getyear (){
return makeyear;
}
int getnarx (){
return booknarx;
}
int getchegirma (){
int chegirnarx=getnarx();
if (makeyear<=2015){
chegirnarx=0.8*chegirnarx;
}
return chegirnarx;
}
Shopbook(){};
};
int main (){
string n,m;
int y,p;
cout<<"\n Kitob nomini kiriting : "; cin>>n;
cout<<" Kitob muallifini kiriting: "; cin>>m;
cout<<" Kitob chiqgann yilni kiriting : "; cin>>y;
cout<<" Kitob narxini kiriting : "; cin>>p;
cout<<"_________________________________________________\n\n";
Shopbook shop (n,m,y,p);
cout<<" kitob nomi : "<
cout<<" kitob mualifi: "<
cout<<" kitob chop qilingan : "<
cout<<" kitobga chegirma : ";
if (shop.getchegirma()==shop.getnarx()){
cout<<" yo'q \n";
cout<<" Avvalgi narxda qoldi: "<
}
else cout<<" bor: "<
}
Natija:
OYD ning merosxo’rlik va polimorfizm xususiyatlaridan foydalangan holda vazifaga muvofiq dasturlar yaratish
|
“Doira” classini yarating. Maydoni: aylana radiusi (R). Virtual metod yozing: “Yuza” metodi doira yuzini qaytaradi, shuningdek, “Kattalashtirish” metodi bitta haqiqiy tipli necha marta kattalashtirishligini anglatuvchi parameter va radiusni shuncha marta kattalashtirsin. “Ma’lumot” metodi doira haqida ma’lumotlarni ekranga chiqaradi: radius va yuzasi.
Bundan tashqari, “doira2” nomli avlod class yarating. Qo'shimcha parametr - ichki radius (ri), ajdod classdagi radius tashqi radiusni ifodalaydi. Qayta yuklangan “Yuza” metodi tashqi doira yuzi va ichki doira yuzi orasidagi yuzani hisoblaydi. Bundan tashqari, “Kattalashtirish” metodini ichki radius uchun amalga oshiring. “Ma’lumot” metodi doira2 haqida ma’lumotlarni ekranga chiqaradi: radius va yuzasi.
Asosiy dasturda doira va doira2 shakllarni yarating va ular haqida ma’lumotlarni chiqaring. Shundan so'ng ikkala obyektni bir yarim marta oshiring va yangilangan ma'lumotlarni taqdim eting.
|
Dastur ko’di:
#include
#include
#include
using namespace std;
namespace Aylana {
class Doira {
private:
float radius, kradius, yuza;
public:
Doira(){};
Doira (float radius ): radius(radius){}
virtual float Yuza (){
yuza= pow(radius,2)*3.14 ;
return yuza;
}
virtual float Kattalashtirish (float katta){
kradius= radius;
kradius= (katta) * (radius);
yuza= (kradius)* (kradius)*3.14;
cout<<" Kattalashgan radius : "<
cout<<" Aylananing yuzasi : "<
}
virtual void Malumot (){
cout<<" aylana radiusi : "<
cout<<" aylana yuzasi : "<
}
};
class Doira2 : public Doira {
private:
float radius , kradius, iradius, oyuza;
public:
Doira2 (float radius, float iradius): radius(radius), iradius(iradius){}
float Yuza ( ) {
oyuza= (pow( radius, 2)-pow(iradius, 2) ) *3.14;
return oyuza;
}
float Kattalashtirish(float katta ) {
kradius= iradius* (katta);
oyuza= (pow((katta *radius),2)-pow((kradius),2))*3.14;
cout<<" Kattalashgan radius : "<
cout<<" ichki aylana yuzasi : "<
}
void Malumot(){
cout<<" tashqi aylana radiusi: "<
cout<<" ichki aylana radius : "<
cout<<" ichki va tashqi aylanalar orasi yuzasi : "<
}
};
}
using namespace Aylana;
int main (){
Doira d= Doira (5);
Doira2 D= Doira2 (5,3);
cout<<"\n\n";
d.Malumot();
cout<<"________________________________________________________\n";
D.Malumot();
cout<<"_________________________________________________________\n";
cout<<" kattalashgan aylanalar \n";
cout<<"__________________________________________________________\n";
d.Kattalashtirish(1.5);
cout<<"_____________________________________________________\n";
D.Kattalashtirish(1.5);
}
Natija:
Do'stlaringiz bilan baham: |