1- laboratoriya ishi obyektga yo’naltirilgan dasturlash



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


1- LABORATORIYA ISHI

  1. OBYEKTGA YO’NALTIRILGAN DASTURLASH

Noma’lum turlar va noma’lum nomlar fazosi
Ishning maqsadi: C++ dasturlash tilida obyektga yo’naltirilgan dasturlash tamoyilaridan foydalanib noma’lum nomlar fazosini tashkil qilish ko’nikmalarini shakllantirish.
Masalaning qo’yilishi:
Variantda berilgan class, konstruktor va class maydonlari yordamida noma’lum nomlar fazosini yarating. Class da obyektlar massivi ustida quyidagi funksiyalarni bajaruvchi 3 ta static metod yozing:
- Qidirish metodi
- Saralash metodi
- O’zgartirish metodi
Yuqoridagi metodlar uchun class maydonlaridan ixtiyoriysi tanlansin.
Chelak va tog’ora class larini yarating va ularni bog’lovchi funksiyalar yarating
Dastur:
#include
usingnamespace std;

namespace yangi_nomlar_fazosi { //Yangi nomlar fazosi


classChelak {
protected:
int razmer, ishlab_chiqarilgan_yili;
string materiali;

public:
Chelak() {}


Chelak(intrazmer, intyil, stringmateriali) {
this->razmer = razmer;
this->ishlab_chiqarilgan_yili = yil;
this->materiali =materiali;
}
staticvoid qidirish(Chelak* massiv, intn, stringmat) { //qidirish materiali bo'yicha
for (int i = 0; i if (massiv[i].materiali ==mat) massiv[i].print();
}
}
staticvoid saralash(Chelak* massiv, intn) { //saralash, razmeri bo'yicha
for (int i = 0; i for (int j = i + 1; j if (massiv[i].razmer >massiv[j].razmer)
swap(massiv[i], massiv[j]);
}
}
}
void ozgartirish(intrazmer, intyil, stringmateriali) {//o'zgartirish metodi
this->razmer = razmer;
this->ishlab_chiqarilgan_yili = yil;
this->materiali =materiali;
}
void print() {
cout <<"\nRazmeri: "<< razmer
<<"\nIshlab chiqarilgan yili: "<< ishlab_chiqarilgan_yili
<<"\nMateriali : "<< materiali << endl;
}
};
classTogora :publicChelak {
public:
Togora(){}
Togora(intrazmer, intyil, stringmateriali) {
this->razmer = razmer;
this->ishlab_chiqarilgan_yili = yil;
this->materiali =materiali;
}
};
}

int main() {


usingnamespace yangi_nomlar_fazosi; // Yangi hosil qilingan nomlar fazosidan foydalanish
int n, m;
cout <<"Nechta chelak haqida ma'lumot kiritmoqchisiz?\nn = "; cin >> n;
Chelak* chelaklar;
chelaklar = newChelak[n];
if (n) cout <<"\nChelaklar haqida ma'lumotlarni kiritish:\n\n";
for (int i = 0; i < n; i++) {
int razmer, yili;
string materiali;
cout <<"Chelakning razmeri: "; cin >> razmer;
cout <<"Chelakning ishlab chiqarilgan yili: "; cin >> yili;
cout <<"Chelakning materiali: "; cin >> materiali;
chelaklar[i] =Chelak(razmer, yili, materiali);
}
cout <<"\nChelaklarni saralash, razmeri bo'yicha:\n";
chelaklar[0].saralash(chelaklar, n);
//Ekranga chiqarish:
for (int i = 0; i < n; i++) {
chelaklar[i].print();
}
cout <<"\nQidirish: \nMaterialni kiriting: ";
string man; cin >> man;
chelaklar[0].qidirish(chelaklar, n, man);
cout <<"Nechta tog'ora haqida ma'lumot kiritmoqchisiz?\nn = "; cin >> m;
Togora* togoralar;
togoralar = newTogora[m];
if (m) cout <<"\nTog'oralar haqida ma'lumotlarni kiritish:\n\n";
for (int i = 0; i < m; i++) {
int razmer, yili;
string material;
cout <<"Tog'oraning razmeri: "; cin >> razmer;
cout <<"Tog'oraning ishlab chiqarilgan yili: "; cin >> yili;
cout <<"Tog'oraning materiali: "; cin >> material;
togoralar[i] =Togora(razmer, yili, material);
}
cout <<"\nTog'oralarni saralash, razmeri bo'yicha:\n";
togoralar[0].saralash(togoralar, m);
//Ekranga chiqarish:
for (int i = 0; i < m; i++) {
togoralar[i].print();
}
cout <<"\nQidirish: Materialni kiriting: ";
cin >> man;
togoralar[0].qidirish(togoralar, m, man);

}



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