OLLABERGANOV MIRZOXID 941-21
Tajriba ishi №4
Mavzu: Konteyner sinflar. Аssotsiativ konteynerlar (set, map). Tartiblanmagan assotsiativ konteynerlar (unordered_set, unordered_map, unordered_multiset, unordered_multimap)
Ishning maqsadi: Аssotsiativ konteynerlar, tartiblanmagan assotsiativ konteynerlar (unordered_set, unordered_map, unordered_multiset, unordered_multimap) bilan ishlash.
Topshiriqlar
Masalaning qo’yilishi:
set va multiset asosida yaratilgan to’plam elementlarini set va mutiset ning maxsus funksiyalari yordamida qayta ishlash.
Laboratoriya mashg’ulotini bajarish bo’yicha variantlar
Berilgan vazifalarni bajarishda kiruvchi qiymatlar matinli fayldan o’qib olinishi kerak.
1- jadval
|
Berilgan string turidagi to’plamning juft uzinlikka ega bo’lgan elementidan 2- to’plamni, toq uzinlikdagi elementidan 3- to’plamni hosil qiluvchi va ularni ekranga chiqaruvchi dastur tuzing.
|
map va multimap sinflaridan foydalanib, amaliy dasturlar yaratish
#include
#include
#include
#include
using namespace std;
int main(){
multiset M1;
multiset M2;
multiset M3;
int n;
ifstream fin("To'plam.txt");
fin>>n;
for(int i=0; i
string b; fin>>b;
M1.insert(b);
}
cout<<"To'plam elementlarining soni: "<
multiset::iterator i1;
for(i1=M1.begin(); i1!=M1.end(); i1++){
string s=*i1;
if(s.length()%2==0){M2.insert(s);}
if(s.length()%2==1){M3.insert(s);}
}
cout<
for(i1=M1.begin(); i1!=M1.end(); i1++){
string s1=*i1;
cout<
}
multiset::iterator i2;
cout<
for(i2=M2.begin(); i2!=M2.end(); i2++){
string s2=*i2;
cout<
}
multiset::iterator i3;
cout<
for(i3=M3.begin(); i3!=M3.end(); i3++){
string s3=*i3;
cout<
}fin.close();
}
Masalaning qo’yilishi:
map va multimap asosida yaratilgan to’plam elementlarini map va mutimap ning maxsus funksiyalari yordamida qayta ishlash.
Laboratoriya mashg’ulotini bajarish bo’yicha variantlar
Berilgan vazifalarni bajarishda kiruvchi qiymatlar matinli fayldan o’qib olinishi kerak.
2- jadval
15
|
Korxona xodimlari haqida (FIO, yili, staji, lavozimi va oyligi) to’plam berilgan. Xodimlarning familiyasi bir xillardan 2- to’plamni, ismi bir xillardan 3- to’plamni, staji bir xillardan 4- to’plamni va oyligi bir xillardan 5- to’plamni tashkil qiluvchi hamda xodimni FIO, yili, staji, lavozimi va oyligi bo’yicha qidiruvchi hamda topilgan natijani faylga saqlashni taklif qiladigan dastur tuzing.
|
#include
#include
#include
#include
using namespace std;
int main(){
int n; bool t=false;
cout<<"Korxona Xodimlari sonini kiriting: "; cin>>n;
multimap M, M1, M2, M3;
for (int i = 0; i < n; i++){
string FIO;
int oyligi;
cout<
cout<<"Fam, ismi: ";
string fam,ism;
cin>>fam>>ism;
FIO = fam+" "+ism;
cout<<"Oyligi: "; cin>>oyligi;
M.insert(pair(FIO,oyligi));
}
string S;
int N;
cout<<"Sizga kerak bo'lgan xodimning oyligini kiriting: ";
cin>>N;
int k=0;
multimap :: iterator it;
for ( it = M.begin(); it != M.end(); ++it){
S = it->first;
if(S.find(" ")second == N){
M2.insert(pair(S,N));t=true;}
}
if(t==true){
cout<<"Natijani faylga chiqarish uchun 1 ni ekranga chiqarish uchun 2 bosing.\n";
char t;
cin>>t;
if(t=='1'){
ofstream fout("Xodim.txt");
for ( it = M2.begin(); it != M2.end(); ++it){
fout<first<<" "<second<
}
cout<<"Natijalar Xodim.txt fayliga yuborildi!\n";
}
else {
for ( it = M2.begin(); it != M2.end(); ++it){
cout<first<<" "<second<
}
}
} else cout<<"Bunday oylik oladigan xodim yo'q.";}
Do'stlaringiz bilan baham: |