DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

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

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ІКТА
Факультет:
КН
Кафедра:
Не вказано

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

Рік:
2013
Тип роботи:
Розрахунково - графічна робота
Предмет:
Об’єктно-орієнтоване програмування
Група:
КІ
Варіант:
11

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

Міністерство освіти і науки, молоді та спорту України Національний університет «Львівська політехніка»  РОЗРАХУНКОВО-ГРАФІЧНА РОБОТА з дисципліни «Об’єктно-орієнтоване програмування, частина 2» Керівник лабораторних занять: ст. викладач Кузьо М.М. Варіант 11 Завдання 1.Згідно вибраного номеру задачі, вказаного нижче, написати програму реалізації перевантажених функцій, вибравши відповідну їх групу: a) int func(int* arr, int length1); double func(double* arr, int length1); Функція func(....) : перевіряє чи елементи масиву розташовані по спаданню. Головна програма повинна містити також тестову перевірку програми виконання поставленої задачі а також ввід значень індексів розмірності двовимірного масиву, режим багаторазового вводу вхідної послідовності, вводу всіх можливих комбінації вхідної послідовності, за якої забезпечується як виконання, так і не виконання відповідної умови задачі. Результати виконання кожної тестової перевірки програми повинні відображатись на екрані монітора, а також записані в текстовий файл, тобто програма повинна забезпечувати: - запис даних у текстовий файл ; - читання даних з текстового файлу. Запис даних у файл здійснюється у вигляді структурованої таблиці, з використанням засобів форматування. Послідуючі записи додаються у файл.Не менше двох записів у файл повинно бути здійснено. Слід передбачати незалежний багаторазовий вибір користувачем режиму роботи: запис чи читання даних при роботі з текстовим файлом. Структура даних, що записується у файл наступна: перше поле – поле запису прізвища; друге поле – поле запису імені; третє поле – поле запису номера групи та номера завдання; четверте поле – поле запису результату тестової перевірки, що включає задану вхідну послідовність даних та вихідну, за необхідності, або, відповідний до умови задачі, результат обчислення. Слід також передбачити обробку виключних ситуацій Порядок виконання: 1.Реалізовано програму main.cpp #include<iostream> #include<fstream> #include<conio.h> using namespace std; int func(int**arr,int lenght1,int lenght2) { int b; for(int k=0;k+1<lenght1;k++) for(int j=0;j+1<lenght2;j++) { if(arr[k][j]<=arr[k+1][j+1]){ b=1; } else{ b=0; } } return b; } double func(double**arr,int lenght1,int lenght2) { double t; for(int k=0;k+1<lenght1;k++) for(int j=0;j+1<lenght2;j++) { if(arr[k][j]<=arr[k+1][j+1]){ t=1; } else{ t=0; } } return t; } void main() { int choice, i, j=0; int lenght1,lenght2,change; int** arr_l; double** arr_f; char *name; char *prizvuwche; char *grupa; char *res; char *res1; name= new char[100]; prizvuwche=new char[100]; grupa=new char[100]; res=new char[100]; res1=new char[100]; while(j==0) { cout<<"\nIf you want to add the information to the File\t\tPRESS \"1\"\n\nIf you want to show the information at the screen\tPRESS \"2\"\n\nIf you want to out \t\t\t\t\tPRESS \"0\"\n\n"; change=getch(); if(change=='1'){ ofstream fout("File.txt",ios::app); cout<<"Enter your name, please!\n\n"; cin>>name; cout<<"Enter your prizvuwche, please!\n\n"; cin>>prizvuwche; cout<<"Enter your grupu, please!\n\n"; cin>>grupa; cout<<"Enter size of array, please!\t"; cin>>lenght1>>lenght2; arr_l=new int* [lenght1]; for (int i=0;i<lenght1;i++) arr_l[i]=new int [lenght2]; arr_f=new double* [lenght1]; for (int i=0;i<lenght1;i++) arr_f[i]=new double [lenght2]; cout<<"\nEnter int array, please!\n"; for(i=0; i<lenght1; i++) for(int j=0;j<lenght2;j++) { cout<<"arr_l["<<i<<"]["<<j<<"] "; cin>>arr_l[i][j]; } for(i=0; i<lenght1; i++){ for(int j=0;j<lenght2;j++){ cout<<arr_l[i][j]<<" "; } cout<<endl; } int q = func(arr_l,lenght1,lenght2); if(q == 1){ cout<<"Danuy masuv ne spadae"; res=" -----> Masuv Ne Spadae"; } else{ cout<<"Masuv Spadae"; res=" ----> Masuv spadae"; } cout<<"\nEnter double array, please!\n"; for(i=0; i<lenght1; i++) for(int j=0;j<lenght2;j++) { cout<<"arr_f["<<i<<"]["<<j<<"] "; cin>>arr_f[i][j]; } for(i=0; i<lenght1; i++){ for(int j=0;j<lenght2;j++){ cout<<arr_f[i][j]<<" "; } cout<<endl; } int z = func(arr_l,lenght1,lenght2); if(z == 0){ cout<<"Danuy Masuv Ne Spadae"; res1=" -----> Masuv Ne Spadae"; } else{ cout<<"Danuy masuv spadae"; res1=" ----> Masuv spadae"; } fstream outfile("File.txt",ios::app); if( !outfile){ cout << "Файл не відкритий. \n"; } fout.width(25); fout <<name<<"\t"; fout.width(25); fout<<prizvuwche<<"\t"; fout.width(30); fout<<grupa<<"\t"; fout.width(50); for(i=0; i<lenght1; i++) for(int j=0;j<lenght2;j++) fout<<arr_l[i][j]; fout.width(50); fout<<res<<"\t"; fout.width(50); for(i=0; i<lenght1; i++) for(int j=0;j<lenght2;j++) fout<<arr_f[i][j]; fout.width(50); fout<<res1<<"\t\n"; fout.close(); cout<<"\nThe information was added to the File\n\n"; } if(change=='2') { ofstream fout("File.txt",ios::app); system ("cls"); ifstream fin("File.txt"); cout<<"Content\n\n"<<"File.txt"<<"\t\n\n\n"; char ch; while(fin.get(ch)) cout<<ch; fin.close(); } if(change=='0') { j=1; } } } 2.Вихідні дані:  Масив типу double  Дані записалися у файл File.txt  Завдання 2. Створити оголошення класів згідно варіанту. Розробити програму-драйвер, яка продемонструє роботу похідних класів. 5 Базовий клас: class Resource { protected: int id; bool isUsed; char* title; char* author; public: Resource(int number) ; virtual ~ Resource() ; virtual bool TakeResource (); virtual bool GiveBackResource(); virtual void PrintInfo(); virtual bool Status() {return isUsed;} }; Resource() – конструктор базового класу. Ініціалізує змінну id та isUsed. Виділяє пам’ять під title та author. ~ Resource() – деструктор базового класу. TakeResource() – встановлює змінну isUsed=1 (виводить на екран повідомлення). GiveBackResource() – встановлює змінну isUsed=0 (виводить на екран повідомлення). PrintInfo () – виводить інформацію про ресурс. Status() – повертає стан ресурсу. Похідний клас Book. Атрибути: int pages; int year; Похідний клас CD. Атрибути: int cdType; Визначити конструктор та деструктор (!вивільняти всі ресурси!) класу. В основній програмі створити декілька ресурсів та продемонструвати процес їхнього використання.   Порядок виконання: 1.Реалізовано програму 6.cpp #include "Resource.h" void main() { int a; CD NFS(1,"Ukrainian songs","Pikardiska tertsia",4); NFS.PrintInfo(); NFS.TakeResource(); NFS.Status(); NFS.GiveBackResource(); NFS.Status(); cout << "\n\n"; Book Stys(2,"Vasyl Stus","A-BA-BA-GA-LA-MA-GA",756,2001); Stys.PrintInfo(); Stys.TakeResource(); Stys.Status(); Stys.GiveBackResource(); NFS.Status(); cin >> a; } Resource.h #include <iostream> using namespace std; class Resource { protected: int id; bool isUsed; char* title; char* author; public: Resource(int num,char* t, char* a) { id = num; isUsed = 0; title = new char; author = new char; title = t; author = a; } virtual bool TakeResource(); virtual bool GiveBackResource(); virtual void PrintInfo(); virtual bool Status() { if (isUsed) cout << "\nUsed"; else cout << "\nNot Used"; return isUsed; } }; class Book:public Resource { protected: int pages; int year; public: Book(int num,char* t, char* a, int p, int y):Resource(num, t, a) { pages = p; year = y; } void PrintInfo(); }; class CD: public Resource { protected: int cdType; public: CD(int num,char* t, char* a, int type):Resource(num,t,a) { cdType = type; } void PrintInfo(); }; Resource.cpp #include "Resource.h" /*Methods of Resource class */ bool Resource::TakeResource() { isUsed = 1; cout << "Take Resource"; return 1; } bool Resource::GiveBackResource() { isUsed = 0; cout << "\nGive Back Resource"; return 1; } void Resource::PrintInfo() { cout << "\nID: " << id << endl; cout << "Title: " << title << endl; cout << "Author: " << author << endl; } /*End methods of resource class*/ /*Method of books class */ void Book::PrintInfo() { cout << "\nID: " << id << endl; cout << "Title: " << title << endl; cout << "Author: " << author << endl; cout << "Pages: " << pages << endl; cout << "Year: " << year << endl; } /*End methods of books class*/ /*Method of CD class*/ void CD::PrintInfo() { cout << "\nID: " << id << endl; cout << "Title: " << title << endl; cout << "Author: " << author << endl; cout << "cdType: " << cdType << endl; } /*End method of CD class*/ 2.Вихідні дані:  Завдання 3. Побудувати програму розв’язання задачі, що вказане нижче, з використанням власного класу контейнера масиву та дружнього класу ітератора. Контейнерний клас повинен містити дані масиву та необхідні методи контейнерних класів. Слід використати основні методи контейнерних класів: begin()- повернення ітератора до початкового елементу масиву контейнера, end()- повернення ітератора на позицію останнього елементу контейнера, size()-повернення кількості елементів масиву контейнера Клас ітераторів повинен містити основні методи(функції) роботи ітераторів, такі як: pd++, ++pd - інкременти, переміщення ітератора по всім елементам контейнера, *pd- розіменування ітератора,тобто повернення або присвоєння значення елемента контейнера,а також інші функії, такі як присвоєння одного ітератора іншому (pd1= pd2) або порівняння двох ітераторів(pd1== pd2). Перевірити чи елементи двовимірного масиву розташовані по спаданню. Порядок виконання: 1.Реалізовано програму main.cpp #include <iostream> #include <vector> #include <algorithm> #include <time.h> using namespace std; void main() { int n,m,N,t; cout<<"Vvedit' rozmir matruci:\n"; cin>>n>>m; N=m*n; vector<char> v(N); //створення обєкту типу vector vector<char>::iterator vv;//оголошення ітератора for(int i = 0; i < v.size(); i++) { cout<<"Vvedit' v["<<i+1<<"]= "; cin>>v[i]; } for(int i=0; i<N; i++) { cout<<v[i]<<"\t"; if((i+1)%n==0) { cout<<endl; } } for(int k=0;k<N-1;k++) if(v[k]<=v[k+1]) t=1; else t=0; if(t == 1) cout<<"Elementu matruci roztawovani Ne po-spadann`u\n\a\n\n\n"; else cout<<"Elementu matruci roztawovani po-spadann`u\n\a\n\n\n"; } 2.Вихідні дані:  Реалізовано програму main2.cpp #include <iostream> #include <string> #include <fstream> #include <vector> using namespace std; class Stack{ char items[40]; int sp; public: friend class StackIter; Stack() { sp = 0; } void push() { int n,m,N; cout<<"Vvedit' rozmir matruci:\n"; cin>>n>>m; N=m*n; for(; sp < N; sp++) { cout<<"Vvedit' v["<<sp+1<<"]= "; cin>>items[sp]; } for(int i=0; i<N; i++) { cout<<items[i]<<"\t"; if((i+1)%n==0) { cout<<endl; } } } int pop() { return items[sp--]; } bool isEmpty() { return (sp == - 1); } }; class StackIter{ const Stack &stk; int index; public: StackIter(const Stack &s): stk(s) { index = 0; } void operator++() { index++; } bool operator()() { return index != stk.sp + 1; } int operator *() { return stk.items[index]; } }; bool operator == (const Stack &l, const Stack &r) { StackIter itl(l), itr(r); for (; itl(); ++itl, ++itr) if (*itl != *itr) break; return !itl() && !itr(); } void main() { Stack s; s.push(); int z=0; int r=-1; StackIter sp(s); z=*sp; //for(;sp();++sp) while(sp()) { ++sp; if(z<*sp){ z=*sp; r=1; } else r=-1; break; } if(r==1) cout<<"\n Elementu masuvu Ne po-spadannu\n\n\n\a"; else cout<<"\n Elementu masuvu po-spadannu\n\n\n\n\a"; } Вихідні дані: 
Антиботан аватар за замовчуванням

23.01.2013 19:08

Коментарі

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

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

Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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