Стандартна бібліотека шаблонів. Контейнери та алгоритми.

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних наук та інформаційних технологій
Факультет:
Не вказано
Кафедра:
Програмного забезпечення (ПЗ)

Інформація про роботу

Рік:
2008
Тип роботи:
Лабораторна робота
Предмет:
Об’єктно-орієнтоване програмування
Група:
ПІ-1

Частина тексту файла (без зображень, графіків і формул):

Міністерство науки і освіти України Національний університет “Львівська політехніка” Інститут комп’ютерних наук та інформаційних технологій кафедра програмного забезпечення Звіт з лабораторної роботи №9 з дисципліни “Об’єктно-орієнтоване програмування ” Виконав: студент групи ПІ – 1 Львів 2008 Лабораторна робота 9 Стандартна бібліотека шаблонів. Контейнери та алгоритми. ЗАВДАННЯ Написати програму з використанням STL. Програма повинна демонструвати роботу з контейнерами STL і використання алгоритмів STL: Використовуючи необхідний алгоритм, знайти в контейнері елемент, який задовільняє заданій умові . Текст програми //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include <iostream> #include <string> #include <map> #include <list> #include <algorithm> using namespace std; typedef struct _pair { char Type[20]; int freight; }Characters; typedef struct { char Ship[25]; Characters ch1; } LArgument; char up,down; //--------------------------------------------------------------------------- #pragma argsused bool IsInRange (multimap <string, Characters>::iterator it) { return (it->first[0] >= up && it->first[0] <= down); } //------------------------------------------------------- bool IsInRange (list <LArgument>::iterator Lit) { return (Lit->Ship[0] >= up && Lit->Ship[0] <= down); } //------------------------------------------------------- bool LASort (LArgument L1, LArgument L2) { return (strcmp(L1.Ship,L2.Ship)); } //------------------------------------------------------- int main() { multimap <string, Characters> ship1, ship2; multimap <string, Characters>::iterator it,it2; multimap <string, Characters>::reverse_iterator rit; int cnt1,cnt2,i; char ship[25]; Characters temp; //zav 1 //zapovnuemo kartu cout << "Vveditj k-tj zapusiv: "; cin >> cnt1; cin.get(); for(i=0; i<cnt1; i++) { cout << i+1 << " - yj zapys:" << endl; cout << "Vveditj nazvu korablya : "; cin.getline(ship,25); cout << "Vveditj typ : "; cin.getline(temp.Type,20); cout << "Vveditj vantazhopidjomnist' (v tonnah): "; cin >> temp.freight; cin.get(); ship1.insert(multimap<string,Characters>::value_type( string(ship), temp)); } //zav 2 //vuvodumo kartu cout << "\n\nVuvodumo vmist multykartu : " << endl << endl; for (it=ship1.begin(); it!=ship1.end(); it++) { cout << it->first << " - " << it->second.Type; cout <<"; V: " << it->second.freight << " tonn" <<endl; } //zav 3 //zmina elementiv kartu char ansver; char key[25]; cout << "\nVydalennya elementiv.\n"; cout << "Vykonaty? (y/n)"; cin >> ansver; cin.get(); if(ansver=='y') { do { cout << "Vvedit' nazvu korablya, zapys\n"; cout << "yakogo maye buty vydalenyj:\n"; cin.getline(key,25); if((it=ship1.find(key)) == ship1.end()) cout << "V nas takyh korabliv nemaye:)!\n"; else { ship1.erase(it); cout << "Dani pro korabel vydaleni zi spysku...\n\n"; } if(ship1.empty()) { cout << "\nZapysiv nemaye!!!\n" << endl; break; } cout << "Prodovzhyty vydalennya? (y/n) : "; cin >> ansver; cin.get(); } while(ansver=='y'); } cout << "\n\nZamina elementiv.\n"; cout << "Vykonaty zaminu zapysu?\n"; cin >> ansver; cin.get(); if(ansver=='y') { do { cout << "Vveditj nazvu korablya, zapys\n"; cout << "yakogo bazhayete zaminyty:\n"; cin.getline(key,25); if((it=ship1.find(key)) == ship1.end()) cout << "V nas takyh korabliv nemaye!!!\n"; else { cout << "Vveditj typ : "; cin.getline(it->second.Type ,20); cout << "Vveditj vantazhopidyomnist' (v tonnah): "; cin >> it->second.freight; cout << "\nZapys uspishno zaminenyj!\n"; } if(ship1.empty()) { cout << "Zapysiv nemaye!!!" << endl; break; } cout << "\nProdovzhyty zaminu? (y/n) : "; cin >> ansver; cin.get(); } while(ansver=='y'); } //zav 4 //vuvodumo kartu za dopomogoyu iteratoriv cout << "\n\nVyvedennya vmistu (za dop. iteratoriv): " << endl << endl; for (it=ship1.begin(); it!=ship1.end(); it++) { cout << it->first << " - " << it->second.Type; cout <<"; V: " << it->second.freight << "tonn" <<endl; } //zav 5 //stvorutu we odun konteyner takogo zh tupy i yogo zapovnutu cout << "\nVveditj k-tj zapusiv drugogo kontejneru: "; cin >> cnt2; cin.get(); for(i=0; i<cnt2; i++) { cout << i+1 << " - yj zapys:" << endl; cout << "Vveditj nazvu korablya : "; cin.getline(ship,25); cout << "Vveditj typ : "; cin.getline(temp.Type,20); cout << "Vveditj vantazhopidyomnist' (v tonnah) : "; cin >> temp.freight; cin.get(); ship2.insert(multimap<string,Characters>::value_type( string(ship), temp)); } //zav 6 //vudalennya n elem pisla zadanogo ta dodavannya zapusiv //z ship2 v ship int n,index=0; ansver='n'; do { ansver='n'; cout << "\nVveditj nazvu korablya dlya poshuku: "; cin.getline(key,25); if((it=ship1.find(key)) == ship1.end()) { cout << "V nas takyh korabliv nemaye!!!\n"; cout << "Prodovzhyty poshuk? (y/n) : "; cin >> ansver; cin.get(); } } while(ansver=='y'); if (it!=ship1.end()) { cout << "Skilky zapysiv pislya zadanogo treba vydalyty?\n"; cin >> n; cin.get(); for(++it,index=0; it!=ship1.end() && index<n; it++,index++) ship1.erase(it); if(index<n) cout << "\nKorabli skinchylys'!\n"; else cout << "Vudaleno " << n << " elementiv...\n\n"; } for(it2=ship2.begin(); it2!=ship2.end(); it2++) { ship1.insert(multimap<string,Characters>::value_type( string(it2->first), it2->second )); } cout << "Dodaemo zapysy z pershogo konteyneru v drugyy...\n"; //zav 7 //vuvestu dvi kartu cout << "\n\nVuvodumo pershyj konteyner : " << endl << endl; for (it=ship1.begin(); it!=ship1.end(); it++) { cout << it->first << " - " << it->second.Type; cout << "; V: " << it->second.freight << "tonn" <<endl; } cout << "\n\nVuvodumo drugyj konteyner : " << endl << endl; for (it2=ship2.begin(); it2!=ship2.end(); it2++) { cout << it2->first << " - " << it2->second.Type; cout <<"; V: " << it2->second.freight<< "tonn" << endl; } //zav 8-9 //vuvodumo kartu v zvorotnjomy poryadky cout << "\nNashi korabli v zvorotnyomu poryadku: " << endl << endl; for (rit=ship1.rbegin(); rit!=ship1.rend(); rit++) { cout << rit->first << " - " << rit->second.Type; cout <<"; V: " << rit->second.freight<< "tonn" << endl; } //zav 10&11 //znaytu zapusu yaki vidpovidayutj ymovi za dop algorutmiv //i zapus ih y list list<LArgument> MyList; list<LArgument>::iterator Lit; LArgument arg; cout << "Vveditj verhnyu litery diapazony : "; cin >> up; cin.get(); cout << "\nVveditj nuzhnu litery diapazony : "; cin >> down; cin.get(); cout << "\nVyvedennya zapysiv, scho znah. v mezhah diapazonu:\n"; for (it=ship1.begin(); it!=ship1.end(); it++) if (IsInRange(it)) { cout << it->first << " - " << it->second.Type; cout <<"; V: " << it->second.freight<< "tonn" << endl; strcpy(arg.Ship,it->first.c_str()); arg.ch1=it->second; MyList.push_front(arg); } //zav 12 //proglyanytu list cout << "\n\nVyvadennya vmistu spusky : " << endl << endl; for (Lit=MyList.begin() ; Lit!=MyList.end(); Lit++) { cout << Lit->Ship << " - " << Lit->ch1.Type; cout <<"; V: " << Lit->ch1.freight<< "tonn" << endl; } //zav 13 //posortyvatu list po zrostannyu MyList.sort(LASort); cout << "Sortuvannya vmistu multykartu i spusky po zrostannyu...\n"; //zav 14 //vuvestu map & list cout << "\nVuvodennya vmistu karty : " << endl << endl; for (it=ship1.begin(); it!=ship1.end(); it++) { cout << it->first << " - " << it->second.Type; cout <<"; V: " << it->second.freight<< "tonn" << endl; } cout << "\n\nVyvedennya vmistu spysku : " << endl << endl; for (Lit=MyList.begin() ; Lit!=MyList.end(); Lit++) { cout << Lit->Ship << " - " << Lit->ch1.Type; cout <<"; V: " << Lit->ch1.freight<< "tonn" << endl; } //zav 15 //otrumatu we odun list list<LArgument> MyList2; cout << "\nZlyttya multykapty i spysku v drugyy spysok...\n" ; for (it=ship1.begin(); it!=ship1.end(); it++) { strcpy(arg.Ship,it->first.c_str()); arg.ch1=it->second; MyList2.push_front(arg); } for (Lit=MyList.begin(); Lit!=MyList.end(); Lit++) { strcpy(arg.Ship,Lit->Ship); arg.ch1=Lit->ch1; MyList2.push_front(arg); } //zav 16 //vuvestu list 2 cout << "\n\nVyvedennya vmistu drugogo spysku : " << endl << endl; for (Lit=MyList2.begin() ; Lit!=MyList2.end(); Lit++) { cout << Lit->Ship << " - " << Lit->ch1.Type; cout <<"; V: " << Lit->ch1.freight<< "tonn" << endl; } //zav 17 //porahyvatu skilyku elem z list 2 zadoviljnyae IsInRange() for (Lit=MyList2.begin(),index=0 ; Lit!=MyList2.end(); Lit++) if (IsInRange(Lit)) { index++; } cout << "\nV drugomu spysku je " << index << " korabliv, zapysy yakyh zadoviljnyayut ymovy"; cin.get(); return 0; } //--------------------------------------------------------------------------- Протокол роботи програми  Висновок: Написав програму з використанням STL. Програма демонструє роботу з контейнерами STL і використовує алгоритм STL вказаний завданням.
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!