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



Download 407,01 Kb.
bet1/3
Sana20.03.2023
Hajmi407,01 Kb.
#920469
  1   2   3
Bog'liq
1-amaliyot. Dasturlash II


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


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:
namespace {
………
}
Umimiy nomlar sohasidan foydalanish
#include
#include
using namespace std;
namespace Mynamespace {
int i,k;
void myfunc(int j){
cout<}
}
using namespace Mynamespace;
int main(){
i = 23;
k = 10;
myfunc(i);
myfunc(k);
}
Natija:
23
10
Nomlar fazosida xatoliklar:



Ichma – ich joylashgan nomlar fazosi

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
using namespace std;
namespace yangi_nomlar_fazosi { //Yangi nomlar fazosi
class Chelak {
protected:
int razmer, ishlab_chiqarilgan_yili;
string materiali;
public:
Chelak() {}
Chelak(int razmer, int yil, string materiali) {
this->razmer = razmer;
this->ishlab_chiqarilgan_yili = yil;
this->materiali =materiali;
}
static void qidirish(Chelak* massiv, int n, string mat) { //qidirish materiali bo'yicha
for (int i = 0; i if (massiv[i].materiali ==mat) massiv[i].print();
}
}
static void saralash(Chelak* massiv, int n) { //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(int razmer, int yil, string materiali) {//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;
}
};
class Togora :public Chelak {
public:
Togora(){}
Togora(int razmer, int yil, string materiali) {
this->razmer = razmer;
this->ishlab_chiqarilgan_yili = yil;
this->materiali =materiali;
}
};
}
int main() {
using namespace 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 = new Chelak[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 = new Togora[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);

}






Download 407,01 Kb.

Do'stlaringiz bilan baham:
  1   2   3




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish