O’ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARNI RIVOJLANTIRISH VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI QARSHI FILIALI
Kompyuter injeniring fakultiti DI 11_21 guruh talabasi
Dasturlash1 fanidan tayyorlagan
1-LABARATORIA ISHI
Qabul qildi: Zohidov.J
Bajardi: Toshpulatov S
2022
1-Labaratoria ishi: Bufеrlashtirilgan kiritish va chiqarish.
Ishning maqsadi: C++ dasturlash tilida obyektga yo‘naltirilgan dasturlash
tamoyilaridan foydalanib, noma’lum nomlar fazosini tashkil qilish ko‘nikmalarini shakllantirish.
Buferlashtirilgan kiritish va chiqarish. C++ tilida ekran va faylga Iodan tashqari kiritish va chiqarish vazifalarini lokalizatsiyalash sifatida massivlardan foydalanadigan qator funksiyalarni qo‘llab-quvvatlaydi.Massivlarga asoslangan kiritish / chiqarish konseptual (array-basedI/O)echimga o‘xshasada, C tilining IO funksiyalari bilan anologdir(ayniqsa,sscanf() va sprintf() funksiyalari).Massivlar yordamida kiritish/chiqarishC++tilida juda moslashuvchan va foydalidir,chunki unda foydalanuvchi tomonidan yaratilgan o‘zgaruvchilarni kiritish va chiqarishda ham foydalaniladi. Massivlar bilan kiritish/chiqarishning barcha jihatlarini qamrab olish mumkin emas, ammo, eng muhim va tez tez ishlatiladigan xususiyatlari amalga oshirish mumkin.Massivlar yordamida Ioni amalga oshirish uchun ham oqimlarni talab qilishini tushunish muhimdir.Oldingi ko‘nikmalaringizdan C++da IO amalarini bilishingiz mumkin.Biroq,kiritish/chiqishda paramertlar sifatida ob’ektlardan foydalanishning barcha afzalliklari haqida dasturchilarning ko‘nikmalari muhimdir. Shuningdek,ma’lumot olish uchun,siz bir necha yangi xususiyatlarni boshqaradigan funksiyalar bilan tanishishingiz kerak.
Misol: 16.Muzlatgich va mikrovalovka class larini yarating va ularni bog‘lovchi
funksiyalar yarating.
Kod:
#include
using namespace std;
namespace yangi_nomlar_fazosi {
class Muzlatgich {
protected:
int avlodi, ishlab_chiqarilgan_yili;
string markasi;
public:
Muzlatgich() {}
Muzlatgich(int avlodi, int yil, string markasi) {
this->avlodi = avlodi;
this->ishlab_chiqarilgan_yili = yil;
this->markasi =markasi;
}
static void qidirish(Muzlatgich* massiv, int n, string mat) {
for (int i = 0; i if (massiv[i].markasi ==mat) massiv[i].print();
}
}
static void saralash(Muzlatgich* massiv, int n) {
for (int i = 0; i for (int j = i + 1; j if (massiv[i].avlodi >massiv[j].avlodi)
swap(massiv[i], massiv[j]);
}
}
}
void ozgartirish(int avlodi, int yil, string markasi) {
this->avlodi = avlodi;
this->ishlab_chiqarilgan_yili = yil;
this->markasi =markasi;
}
void print() {
cout <<"\nAvlodi: "<< avlodi
<<"\nIshlab chiqarilgan yili: "<< ishlab_chiqarilgan_yili
<<"\nMarkasi : "<< markasi << endl;
}
};
class Mikrovalovka :public Muzlatgich {
public:
Mikrovalovka(){}
Mikrovalovka(int avlodi, int yil, string markasi) {
this->avlodi = avlodi;
this->ishlab_chiqarilgan_yili = yil;
this->markasi =markasi;
}
};
}
int main() {
using namespace yangi_nomlar_fazosi;
int n, m;
cout <<"Nechta muzlatgich haqida ma'lumot kiritmoqchisiz?\nn = "; cin >> n;
Muzlatgich* muzlatgichlar;
muzlatgichlar = new Muzlatgich[n];
if (n) cout <<"\nMuzlatgichlar haqida ma'lumotlarni kiritish:\n\n";
for (int i = 0; i < n; i++) {
int avlodi, yili;
string markasi;
cout <<"Muzlatgichning avlodi: "; cin >> avlodi;
cout <<"Muzlatgichning ishlab chiqarilgan yili: "; cin >> yili;
cout <<"Muzlatgichning markasi: "; cin >> markasi;
muzlatgichlar[i] =Muzlatgich(avlodi, yili, markasi);
}
cout <<"\nMuzlatgichlarni saralash, avlodi bo'yicha:\n";
muzlatgichlar[0].saralash(muzlatgichlar, n);
for (int i = 0; i < n; i++) {
muzlatgichlar[i].print();
}
cout <<"\nQidirish: \nMarkasini kiriting: ";
string man; cin >> man;
muzlatgichlar[0].qidirish(muzlatgichlar, n, man);
cout <<"\nn Nechta mikrovalovka haqida ma'lumot kiritmoqchisiz?\nn = "; cin >> m;
Mikrovalovka* mikrovalovkalar;
mikrovalovkalar = new Mikrovalovka[m];
if (m) cout <<"\nMikrovalovkalar haqida ma'lumotlarni kiritish:\n\n";
for (int i = 0; i < m; i++) {
int avlodi, yili;
string markasi;
cout <<"Mikrovalovkaning avlodi: "; cin >> avlodi;
cout <<"Mikrovalovkaning ishlab chiqarilgan yili: "; cin >> yili;
cout <<"Mikrovalovkaning markasi: "; cin >> markasi;
mikrovalovkalar[i] =Mikrovalovka(avlodi, yili, markasi);
}
cout <<"\nMikrovalovkalarni saralash, avlodi bo'yicha:\n";
mikrovalovkalar[0].saralash(mikrovalovkalar, m);
for (int i = 0; i < m; i++) {
mikrovalovkalar[i].print();
}
cout <<"\nQidirish: Markasinini kiriting: ";
cin >> man;
mikrovalovkalar[0].qidirish(mikrovalovkalar, m, man);
}
Natija:
Nechta muzlatgich haqida ma'lumot kiritmoqchisiz?
n = 2
Muzlatgichlar haqida ma'lumotlarni kiritish:
Muzlatgichning avlodi: 5
Muzlatgichning ishlab chiqarilgan yili: 2003
Muzlatgichning markasi: Artel
Muzlatgichning avlodi: 7
Muzlatgichning ishlab chiqarilgan yili: 2012
Muzlatgichning markasi: Nove
Muzlatgichlarni saralash, avlodi bo'yicha:
Avlodi: 5
Ishlab chiqarilgan yili: 2003
Markasi : Artel
Avlodi: 7
Ishlab chiqarilgan yili: 2012
Markasi : Nove
Qidirish:
Markasini kiriting: Artel
Avlodi: 5
Ishlab chiqarilgan yili: 2003
Markasi : Artel
n Nechta mikrovalovka haqida ma'lumot kiritmoqchisiz?
n = 2
Mikrovalovkalar haqida ma'lumotlarni kiritish:
Mikrovalovkaning avlodi: 2
Mikrovalovkaning ishlab chiqarilgan yili: 2011
Mikrovalovkaning markasi: Macrone
Mikrovalovkaning avlodi: 4
Mikrovalovkaning ishlab chiqarilgan yili: 1016
Mikrovalovkaning markasi: Artel
Mikrovalovkalarni saralash, avlodi bo'yicha:
Avlodi: 2
Ishlab chiqarilgan yili: 2011
Markasi : Macrone
Avlodi: 4
Ishlab chiqarilgan yili: 1016
Markasi : Artel
Qidirish: Markasinini kiriting: Macrone
Avlodi: 2
Ishlab chiqarilgan yili: 2011
Markasi : Macrone
Do'stlaringiz bilan baham: |