Va kommunikatsiyalarni rivojlantirish vazirligi muhammad al-xorazmiy nomidagi toshkent axborot texnologiyalar universiteti


Download 257.28 Kb.
Pdf ko'rish
Sana26.04.2020
Hajmi257.28 Kb.
#101486
Bog'liq
3-laboratoriya 7-variant


O’ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI 

VA KOMMUNIKATSIYALARNI RIVOJLANTIRISH VAZIRLIGI 

MUHAMMAD AL-XORAZMIY NOMIDAGI 

TOSHKENT AXBOROT TEXNOLOGIYALAR UNIVERSITETI 

 

Dasturlash kafedrasi 

Dasturlash II fani bo’yicha 

 

 

 

Laboratoriya ishi 

Mavzu:Set Multiset, Map va Multimap konteynerlaridan 

foydalanib amaliy dasturlar yaratish 

 

 

Bajardi:SWD022-L2-guruh talabasi 

Jo’rayev M 

Tekshirdi:Baxramova Y 

 

 

 

TOSHKENT 2019 

 


3-laboratoriya ishi 

7-variant 

1



Berilgan  string  turidagi  to’plamning  2  ta  elementidan  2-  to’plamni,  3  ta 

elementidan  3-  to’plamni  hosil  qiluvchi  va  ularni  ekranga  chiqaruvchi  dastur  tuzing. 

Ikkala  to’plamdan  ham  bir  xil  qiymatli  elemetlar  o’chirilib  Saralangan  to’plam  hosil 

qilinsin hamda uning qiymatlari ekranga chiqarilsin.. 

 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

#include


 

"stdafx.h"

 

#include


 

"set"


 

#include


 

"string"


 

#include


 

"iostream"

 

#include


 

"fstream"

 

using


 

namespace

 std; 

int


 main() 

 



multiset

<

string


> toplam1; 

 

//set::iterator t2;



 

 

//set::iterator t3;



 

 

set



<

string


>toplam2; 

 

set



<

string


>toplam3; 

 

ifstream



 fin; 

string


 item; 

 

fin.open(



"to_plam.txt"

); 


 

if

 (!fin.is_open())cout << 



"Faylni ochib bo'lmadi.."; 

 

while



 (!fin.eof()){ 

 

 



fin >> item; 

 

 



toplam1.insert(item); 

 



 

int


 i = 0; 

 

cout << 



"1-to'plam elementlari:\n"

 



for

 (

auto



 it : toplam1){ 

 

 



cout << it << endl; 

 

 



if

 (i < 2)toplam2.insert(it); 

 

 

else



  

 

 



 

if

(i>=2 && i<5)toplam3.insert(it); 



 

 

 



i++; 

 



 

cout << 


"\n2-to'plam elementlari\n"

 



for

 (

auto



 it : toplam2){ 

 

 



cout << it << endl; 

 



 

cout << 


"\n3-to'plam elementlari\n"

 



for

 (

auto



 it : toplam3){ 

 

 



cout << it << endl; 

 



 

for


 (

auto


 t3 = toplam3.begin(); t3 != toplam3.end(); t3++)toplam2.insert(*t3); 

 

toplam3.clear(); 



 

cout << 


"\n2- va 3- to'plamlardan saralangan to'plam:\n"

 



for

 (

auto



 it : toplam2){ 

 

 



cout << it << endl; 

 



 

system(


"pause"

); 


 

return


 0; 

 



 

Kafedralar haqida (nomi, mudir_FIO, xodimlar soni, fanlar soni va professorlar soni) 

to’plam berilgan. Kafedralarni nomi, mudir_FIO, fanlari soni va professorlar soni bo’yicha 

qidiruvchi hamda topilgan natijani faylga saqlashni taklif qiladigan dastur tuzing. 

 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

#include



 

"stdafx.h"

 

#include


 

"iostream"

 

#include


 

"map"


 

#include


 

"string"


 

#include


 

"fstream"

 

template


<

class


 

T



class

 

M



class


 

D



class

 

G



class


 

R



class

 

L



void


 _writeFile(

T

 



MudirFIO

M



 

Xodim_soni

D

 



Fanlar_soni

G



 

professor_soni

R

 



Talabalar_soni

L



 

KafedraNomi

){ 

 

ofstream



 fout; 

 

fout.open(



"natijalar.txt"

ios



::app); 

 

if



 (!fout.is_open())cout << 

"natijalar.txt fayli ochilmadi"

 

fout << 



"\n------------------"

 << 


KafedraNomi

 << 


"------------------\n"

 << endl; 

 

fout << 


KafedraNomi

 << 


" kafedrasi mudiri:"

 << 


MudirFIO

.at(


KafedraNomi

) << endl; 

 

fout << 


KafedraNomi

 << 


" kafedrasidagi xodimlar soni:"

 << 


Xodim_soni

.at(


KafedraNomi

) << endl; 

 

fout << 


KafedraNomi

 << 


" kafedrasida o'qitiladigan fanlar soni:"

 << 


Fanlar_soni

.at(


KafedraNomi

) << endl; 

 

fout << 


KafedraNomi

 << 


" kafedrasidagi talabalar soni:"

 << 


Talabalar_soni

.at(


KafedraNomi

) << 


endl; 

 

fout << 



KafedraNomi

 << 


" kafedrasidagi Professor o'qituvchilar soni:"

 << 


professor_soni

.at(


KafedraNomi

) << endl; 

 

fout.close(); 



template


<

class


 

T



class

 

M



class


 

D



class

 

G



class


 

R



class

 

L



void


 getKafedra(

T

 



MudirFIO

M



 

Xodim_soni

D

 



Fanlar_soni

G



 

professor_soni

R

 



Talabalar_soni

L



 

KafedraNomi

){ 

 

cout << 



"\n------------------"

 << 


KafedraNomi

 << 


"------------------\n"

 << endl; 

 

cout << 


KafedraNomi

 << 


" kafedrasi mudiri:"

 << 


MudirFIO

.at(


KafedraNomi

) << endl; 

 

cout << 


KafedraNomi

 << 


" kafedrasidagi xodimlar soni:"

 << 


Xodim_soni

.at(


KafedraNomi

) << endl; 

 

cout << 


KafedraNomi

 << 


" kafedrasida o'qitiladigan fanlar soni:"

 << 


Fanlar_soni

.at(


KafedraNomi

) << endl; 

 

cout << 


KafedraNomi

 << 


" kafedrasidagi talabalar soni:"

 << 


Talabalar_soni

.at(


KafedraNomi

) << 


endl; 

 

cout << 



KafedraNomi

 << 


" kafedrasidagi Professor o'qituvchilar soni:"

 << 


professor_soni

.at(


KafedraNomi

) << endl;   

template


<

class


 

T



class

 

M



 , 

class


 

D

 ,



class

 

G



 , 

class


 

R



class

 

A



void


 findInMaps(

T

 



MudirFIO

M



 

Xodim_soni

D

 



Fanlar_soni

G



 

professor_soni

,

R

 



Talabalar_soni

A



 

KafedraNomi

){ 

 

 



 

if

 (



MudirFIO

.find(


KafedraNomi

) != 


MudirFIO

.end()){ 

 

 

getKafedra(



MudirFIO

Xodim_soni



Fanlar_soni

professor_soni



Talabalar_soni

KafedraNomi



); 

 

 



char

 quiz; 


 

 

cout << 



"\n Natijani natijalar.txt fayligan yozilsinmi? (Y/N)  "

; cin >> quiz; 

 

 

if



 (quiz == 

'Y'


 || quiz == 

'y'


){ 

 

 



 

_writeFile(

MudirFIO

Xodim_soni



Fanlar_soni

professor_soni



Talabalar_soni

KafedraNomi



); 

 

 



 

 



else

 exit(0); 

 



 



else

 cout << 

"Bunday kafedra mavjud emas\n"



using

 

namespace



 std; 

int


 main() 

 



map

<

string


string


>MudirFIO; 

 

map



<

string


string


>::

const_iterator

 it; 

 

map



<

string


int


>Xodim_soni; 

 

map



<

string


int


>Fanlar_soni; 

 

map



<

string


int


>Talabalar_soni; 

 

map



<

string


int


 >professor_soni; 

 

ifstream



 fin; 

 

fin.open(



"berilgan_ma_lumotlar.txt"

); 


 

if

 (!fin.is_open())cout << 



"Faylni ochishdagi xatolik"

 



string

 KafedraNomi, MudirIsmSharifi, ism, fam, sharif; 

int

 XodimlarSoni, TalabalarSoni, 



ProfessorlarSoni, FanlarSoni;  

 


 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

while



 (!fin.eof()) 

 



 

 

fin >> KafedraNomi; 



 

 

fin >> fam; 



 

 

fin >> ism; 



 

 

fin >> sharif; 



 

 

fin >> FanlarSoni; 



 

 

fin >> XodimlarSoni;  



 

 

fin >> TalabalarSoni;  



 

 

fin >> ProfessorlarSoni; 



 

 

MudirIsmSharifi.append(fam); 



 

 

MudirIsmSharifi.append(



" "

); 


 

 

MudirIsmSharifi.append(ism); 



 

 

MudirIsmSharifi.append(



" "

); 


 

 

MudirIsmSharifi.append(sharif); 



 

 

MudirFIO.emplace(KafedraNomi, MudirIsmSharifi); 



 

 

Xodim_soni.emplace(KafedraNomi, XodimlarSoni); 



 

 

Fanlar_soni.emplace(KafedraNomi, FanlarSoni); 



 

 

Talabalar_soni.emplace(KafedraNomi, TalabalarSoni); 



 

 

professor_soni.emplace(KafedraNomi, ProfessorlarSoni); 



 

 

MudirIsmSharifi = 



""

 



 

fin.close(); 



 

cout << 


"\n------------Fayldan o'qilgan ma'lumotlar-------------\n"

 



for

 (it = MudirFIO.begin(); it != MudirFIO.end(); it++) 

 

 

getKafedra(MudirFIO, Xodim_soni, Fanlar_soni, professor_soni, Talabalar_soni, it-



>first); 

 

cout << 



"\nIzlanayotgan Kafedra nomini kiriting:"

; cin >> KafedraNomi; 

 

 

findInMaps(MudirFIO, Xodim_soni, Fanlar_soni, professor_soni, Talabalar_soni,KafedraNomi); 



 

system(


"pause"

); 


 

return


 0; 

 



 

 


 

 

 



 

Natijalar.txt fayli 



Berilgan_ma_lumotlar.txt fayli 

Download 257.28 Kb.

Do'stlaringiz bilan baham:




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