Nurullayev Anvarbek
1- LABORATORIYA ISHI
Mavzu:Tiplarni dinamik tarzda aniqlash. Tiplarni almashtirish operatorlari. Yangi nomlar fazosini yaratish.
Ishning maqsadi: C++ dasturlash tilida obyektga yo’naltirilgan dasturlash tamoyilaridan foydalanib noma’lum nomlar fazosini tashkil qilish ko’nikmalarini shakllantirish.
Nazariy qism
Namespace – bir-xil identifikatorlarni bitta dasturda ishlatish muammosini hal qiladi.
Namespace ni umumiy strukturasi quyidagicha:
Topshiriqlar
Har bir talaba o’zining jurnaldagi nomeri bo’yicha topshiriq tanlaydi va shu topshiriq bo’yicha dasturini yaratadi
2.Kompyuter monitor va video kartasini class larini yarating va ularni bog’lovchi funksiyalar yarating.
#include
using namespace std;
namespace yangi_nomlar_fazosi { //Yangi nomlar fazosi
class Monitor {
protected:
string ishlab_chiqarilgan_firmasi; int ishlab_chiqarilgan_yili;
string turi;
public:
Monitor() {}
Monitor(string ishlab_chiqarilgan_firmasi, int yil, string turi) {
this->ishlab_chiqarilgan_firmasi = ishlab_chiqarilgan_firmasi;
this->ishlab_chiqarilgan_yili = yil;
this->turi =turi;
}
static void qidirish(Monitor* massiv, int n, string tur) { //qidirish turi bo'yicha
for (int i = 0; i if (massiv[i].turi ==tur) massiv[i].print();
}
}
static void saralash(Monitor* massiv, int n) { //saralash, ishlab_chiqarilgan_firmasi bo'yicha
for (int i = 0; i for (int j = i + 1; j if (massiv[i].ishlab_chiqarilgan_firmasi >massiv[j].ishlab_chiqarilgan_firmasi)
swap(massiv[i], massiv[j]);
}
}
}
void ozgartirish(string ishlab_chiqarilgan_firmasi, int yil,string turi) {//o'zgartirish metodi
this->ishlab_chiqarilgan_firmasi = ishlab_chiqarilgan_firmasi;
this->ishlab_chiqarilgan_yili = yil;
this->turi =turi;
}
void print() {
cout <<"\nishlab_chiqarilgan_firmasi: "<< ishlab_chiqarilgan_firmasi
<<"\nIshlab chiqarilgan yili: "<< ishlab_chiqarilgan_yili
<<"\nturi : "<< turi << endl;
}
} ;
class Videokarta :public Monitor {
public:
Videokarta(){}
Videokarta (string ishlab_chiqarilgan_firmasi, int yil, string turi) {
this->ishlab_chiqarilgan_firmasi = ishlab_chiqarilgan_firmasi;
this->ishlab_chiqarilgan_yili = yil;
this->turi =turi;
}
};
}
int main() {
using namespace yangi_nomlar_fazosi; // Yangi hosil qilingan nomlar fazosidan foydalanish
int n, m;
cout <<"Nechta Monitor haqida ma'lumot kiritmoqchisiz?\nn = "; cin >> n;
Monitor* Monitorlar;
Monitorlar = new Monitor [n];
if (n) cout <<"\nMonitorlar haqida ma'lumotlarni kiritish:\n\n";
for (int i = 0; i < n; i++) {
string ishlab_chiqarilgan_firmasi; int yili;
string turi;
cout <<"Monitorning ishlab_chiqarilgan_firmasi: "; cin >> ishlab_chiqarilgan_firmasi;
cout <<"Monitorning ishlab chiqarilgan yili: "; cin >> yili;
cout <<"Monitorning turi: "; cin >> turi;
Monitorlar[i] =Monitor (ishlab_chiqarilgan_firmasi, yili,turi);
}
cout <<"\nMonitorlarni saralash, ishlab_chiqarilgan_firmasi:\n";
Monitorlar[0].saralash(Monitorlar, n);
//Ekranga chiqarish:
for (int i = 0; i < n; i++) {
Monitorlar[i].print();
}
cout <<"\nQidirish: \nturlarini kiriting: ";
string man; cin >> man;
Monitorlar[0].qidirish(Monitorlar, n, man);
cout <<"Nechta Video karta haqida ma'lumot kiritmoqchisiz?\nn = "; cin >> m;
Videokarta* videokartalar;
videokartalar = new Videokarta[m];
if (m) cout <<"\nVideo kartalar haqida ma'lumotlarni kiritish:\n\n";
for (int i = 0; i < m; i++) {
string ishlab_chiqarilgan_firmasi;int yili;
string turi;
cout <<"Video kartaning ishlab_chiqarilgan_firmasi: "; cin >> ishlab_chiqarilgan_firmasi;
cout <<"Video kartaning ishlab chiqarilgan yili: "; cin >> yili;
cout <<"Video kartaning turi: "; cin >> turi;
videokartalar[i] =Videokarta( ishlab_chiqarilgan_firmasi, yili, turi);
}
cout <<"\nVideokartalarni saralash,ishlab_chiqarilgan_firmasi:\n";
videokartalar[0].saralash(videokartalar ,m);
//Ekranga chiqarish:
for (int i = 0; i < m; i++) {
videokartalar[i].print();
}
cout <<"\nQidirish: turi kiriting: ";
cin >> man;
videokartalar[0].qidirish(videokartalar, m, man);
}
Do'stlaringiz bilan baham: |