Muhammad Al-xorazmiy nomidagi Toshkent axborot
texnologiyalari universiteti Dasturiy injiniring fakulteti 310-
22
guruh talabasi:
Ramazonov Mirshod Mamasaid o’g’li
Ma’lumotlar tuzilmasi va Algoritmlar
1-variant(5-dars)
Tuzilma berilgan. Fayldan tuzilma ma'lumotlarini o‘qib oling va ekranga chiqaring.
TOPSHIRIQ 1: Ma'lumotlarni to'g'ridan-to'g'ri qo‘shishusuli bilan saralash.
TOPSHIRIQ 2: Ma'lumotlarni to'g'ridan-to'g'ri tanlash usuli bilan saralash.
TOPSHIRIQ 3: Ma'lumotlarni to'g'ridan-to'g'ri almashtirish usuli bilan saralash.
#include
#include
#include
#include
#include
class Oquvchi {
public:
std::string FISH;
int yoshi;
std::string maktab;
int sinfi;
void ekrangaChiqar() {
std::cout << "FISH: " << FISH << ", Yosh: " << yoshi << ", Maktab: " <<
maktab << ", Sinfi: " << sinfi << std::endl;
}
};
int main() {
std::ifstream fayl("oquvchilar.txt");
if (!fayl) {
std::cerr << "Xato: Faylni ochib bo'lmadi." << std::endl;
return 1;
}
std::vector oquvchilar;
Oquvchi oquvchi;
while (fayl >> oquvchi.FISH >> oquvchi.yoshi >> oquvchi.maktab >>
oquvchi.sinfi) {
oquvchilar.push_back(oquvchi);
}
fayl.close();
for (const auto &oquvchi : oquvchilar) {
oquvchi.ekrangaChiqar();
}
std::cout << "To'g'ridan-to'g'ri qo'shish usuli bilan saralash:" << std::endl;
std::vector togridanTogriQoshilgan = oquvchilar;
std::sort(togridanTogriQoshilgan.begin(), togridanTogriQoshilgan.end(),
[](const Oquvchi &a, const Oquvchi &b) {
return a.FISH < b.FISH;
});
for (const auto &oquvchi : togridanTogriQoshilgan) {
oquvchi.ekrangaChiqar();
}
std::cout << "To'g'ridan-to'g'ri tanlash usuli bilan saralash:" << std::endl;
std::vector togridanTogriTanlangan = oquvchilar;
std::sort(togridanTogriTanlangan.begin(), togridanTogriTanlangan.end(),
[](const Oquvchi &a, const Oquvchi &b) {
return a.yoshi < b.yoshi;
});
for (const auto &oquvchi : togridanTogriTanlangan) {
oquvchi.ekrangaChiqar();
}
std::cout << "To'g'ridan-to'g'ri almashtirish usuli bilan saralash:" <<
std::endl;
std::vector togridanTogriAlmashtirilgan = oquvchilar;
std::sort(togridanTogriAlmashtirilgan.begin(),
togridanTogriAlmashtirilgan.end(),
[](const Oquvchi &a, const Oquvchi &b) {
return a.maktab < b.maktab;
});
for (const auto &oquvchi : togridanTogriAlmashtirilgan) {
oquvchi.ekrangaChiqar();
}
return 0;
}
Do'stlaringiz bilan baham: |