DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Звіт з лабораторної роботи №9 з дисципліни «Об’єктно-орієнтоване програмування»

Оригінальна назва роботи

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

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

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

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

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

Про що ця робота

У звіті з лабораторної роботи реалізовано програму на C++ з використанням стандартної бібліотеки шаблонів STL. Розглянуто роботу з контейнерами та алгоритмами для пошуку та обробки даних.

У роботі розглядаються

  • Об’єктно-орієнтоване програмування
  • Стандартна бібліотека шаблонів STL
  • Контейнери STL
  • Алгоритми STL
  • Мова програмування C++
  • Робота з мультикарточками
  • Списки та ітератори

Зміст і розділи

  1. Завдання
  2. Текст програми
  3. Протокол роботи програми
  4. Висновок
Для кого:Студенти технічних спеціальностей та викладачі дисципліни об’єктно-орієнтованого програмування.
Викладачі:Не вказано

Ключові поняття

STLконтейнериалгоритмиmultimaplistC++структура данихсортуванняпошук

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

Міністерство науки і освіти України Національний університет “Львівська політехніка” Інститут комп’ютерних наук та інформаційних технологій кафедра програмного забезпечення Звіт з лабораторної роботи №9 з дисципліни “Об’єктно-орієнтоване програмування ” Львів 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 вказаний завданням.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

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

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

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

Admin

26.02.2023 12:38

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