O’zbekiston respublikasi axborot texnologiyalari va kommunikatsiyalarini rivojlantirish vazirligi muhammad al-xozazmiy nomidagi toshkent axborot texnologiyalari universiteti
Sana 29.01.2022 Hajmi 67,12 Kb. #416347
Bog'liq
3-LAB
O’ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI
MUHAMMAD AL-XOZAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
3-Labaratoriya ishi
MAVZU: Saralash usullari va ularning qo’llanilishi. Saralashning yaxshilangan usullari va ularning qo’llanilishi.
Guruh: 314-20
Bajardi:NORBOYEV DAVRONBEK
Tekshirdi: Ergashev S.B.
Toshkent 2021
Saralash usullari va ularning qo’llanilishi. Saralashning yaxshilangan usullari va ularning qo’llanilishi.
1-misol
#include
#include
using namespace std ;
class Mijozlar {
public:
int i = 0;
vectorIsm;
vectorRaqami;
vectorMarkasi;
vectorKirish_sana;
vectorChiqish_sana;
void resize(int n) {
Ism.resize(n);
Raqami.resize(n);
Markasi.resize(n);
Kirish_sana.resize(n);
Chiqish_sana.resize(n);
}
void read() {
string s;
cout << "Ism: ";
cin >> s;
while (s.length() < 12)s += " ";
Ism.push_back(s);
cout << "Raqami: ";
cin >> s;
Raqami.push_back(s);
cout << "Markasi: ";
cin >> s;
while (s.length() < 16)s += " ";
Markasi.push_back(s);
cout << "Ta`mirga kirish sanasi: ";
cin >> s;
Kirish_sana.push_back(s);
cout << "Ta`mirdan chiqish sanasi: ";
cin >> s;
Chiqish_sana.push_back(s);
}
bool comparision(int i, int j) {
string s = "",s1="",s2="",s3="";
for (int k = 6; k < Chiqish_sana[i].length(); k++) s += Chiqish_sana[i][k];
for (int k = 6; k < Chiqish_sana[j].length(); k++) s1 += Chiqish_sana[j][k];
for (int k = 3; k < 5; k++) s2 += Chiqish_sana[i][k];
for (int k = 3; k < 5; k++) s3 += Chiqish_sana[j][k];
if (s > s1)return true;
else if (s < s1)return false ;
else if (s2 > s3)return true;
else if (s2 < s3)return false;
else if (Chiqish_sana[i] > Chiqish_sana[j])return true;
else return false;
}
void sortIsm() {
for (int i = 0; i < Ism.size() - 1; i++)
for (int j = i; j < Ism.size(); j++) {
if (/*Chiqish_sana[i] > Chiqish_sana[j]*/comparision(i,j))swap2(i, j);
}
}
void print() {
cout << "Ism\t\tRaqami\tMarkasi\t\t\tKirish sanasi\tChiqish sanasi\n";
for (int i = 0; i < Ism.size(); i++)cout << Ism[i] << "\t" << Raqami[i] << "\t" << Markasi[i] << "\t" << Kirish_sana[i] << "\t" << Chiqish_sana[i] << "\n";
}
private:
void swap2(int a, int b) {
string s;
s = Ism[a];
Ism[a] = Ism[b];
Ism[b] = s;
s = Raqami[a];
Raqami[a] = Raqami[b];
Raqami[b] = s;
s = Markasi[a];
Markasi[a] = Markasi[b];
Markasi[b] = s;
s = Kirish_sana[a];
Kirish_sana[a] = Kirish_sana[b];
Kirish_sana[b] = s;
s = Chiqish_sana[a];
Chiqish_sana[a] = Chiqish_sana[b];
Chiqish_sana[b] = s;
}
};
int main() {
int n;
cout << "Mijozlar sonini kiriting: ";
cin >> n;
Mijozlar mijoz;
for (int i = 0; i < n; i++)mijoz.read();
mijoz.resize(n);
mijoz.sortIsm();
mijoz.print();
} Do'stlaringiz bilan baham: