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

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

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

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

Лабораторна робота №2 «Інтегровані структури даних»

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

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ІКНІ
Факультет:
КН
Кафедра:
Інформаційних систем та мереж (ІСМ)

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

Рік:
2016
Тип роботи:
Лабораторна робота
Предмет:
Теорія алгоритмів
Група:
КН-31
Варіант:
17 17 9
Коротко про документ

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

Звіт про виконання лабораторної роботи присвячено роботі зі структурами даних та їх сортуванню на мові C++. Програма реалізує введення з клавіатури або файлу, обробку та сортування записів сільськогосподарських підприємств.

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

  • Структури даних
  • Модульне програмування
  • Алгоритми сортування
  • Мова програмування C++
  • Робота з файлами

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

  1. Мета роботи
  2. Індивідуальне завдання
  3. Блок-схема
  4. Текст програми на мові C/C++
  5. Результати комп'ютерної реалізації програми
  6. Висновок
Для кого:Студенти технічних спеціальностей та викладачі дисципліни Теорія алгоритмів
Викладачі:Не вказано

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

структура данихсортуванняC++файлклавіатуразаписалгоритмінтеграція данихвізуальне середовищепомилка

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

Міністерство освіти та науки України Національний університет “ Львівська політехніка” Кафедра інформаційних систем та мереж Звіт про виконання лабораторної роботи №2 «Інтегровані структури даних» з дисципліни: “Теорія алгоритмів” Варіант 17 Мета роботи: Придбання та закріплення навиків в роботі із записами, в інтеграції даних, в модульному програмуванні. Індивідуальне завдання: Сільське господарство Найменування с/г підприємства, вид власності, основний вид продукції, к-сть тих що працюють, прибуток   Графічна схема алгоритму розв’язування задачі Блок-схема: Пояснення Програма призначена для побудови структури сільськогосподарського підприємства. Користувачу дається вибір: ввести дані про підприємство з клавіатури чи зчитати з файлу. Далі програма дає змогу вибрати вид сортування (за іменем або площею) за зростанням чи спаданням. Наприкінці це все виводиться на екран. Програмою передбачено, що кількість працівник має бути лише натуральним числом. В протилежному випадку, програма видає повідомлення про помилку. Текст програми на мові С/С++: #include<iostream> #include<conio.h> #include<stdlib.h> #include <fstream> #include <stdio.h> #include <string> using namespace std; #define FOREST 7 #define _CRT_SECURE_NO_WARNINGS void inputKey(struct Forest[]); void inputFile(struct Forest[]); void output(struct Forest[]); void operation(struct Forest[]); void procent(struct Forest[]); void sortAlph(struct Forest[]); void sortNum(struct Forest[]); //Оголошую структуру struct Forest{ string name; int area; string species; int age; string density; }; //Головна програма int main(){ Forest forest[FOREST]; int n, k; cout<<"Input from keyboard - 1, file 2: "; cin>>n; if (n==1) inputKey(forest); else if (n==2) inputFile(forest); else {cout<<"Error! Wrong data."; exit (0);} cout<<"Choose: sort by name - 1, profit - 2: "; cin>>k; if (k==1){sortAlph(forest);} else if(k==2){sortNum(forest);} else {cout<<"Error! Wrong data.";exit(0);} getch(); return 0; } //Підпрограма для вводу з клавіатури void inputKey(Forest forest[]){ for(int i = 0; i<FOREST; i++){ cout<<"Name of factory : "; cin.sync(); cin>>forest[i].name; cout<<"Profit : "; cin>>forest[i].area; if (forest[i].area<=0) {cout<<"Error! Wrong data."; system("pause"); exit (0);} cout<<"Main species: "; cin>>forest[i].species; cout<<"Count : "; cin>>forest[i].age; if (forest[i].age<=0){cout<<"Error! Wrong data."; system("pause"); exit (0);} cout<<"Type of owning : "; cin>>forest[i].density; } } //Підпрограма для читання з файлу void inputFile(Forest forest[]) { ifstream file("file.txt"); for (int i = 0; i<FOREST; i++) { file>>(*(forest+i)).name; file>>(*(forest+i)).area; file>>(*(forest+i)).species; file>>(*(forest+i)).age; file>>(*(forest+i)).density; } file.close(); } //Підпрограма виведення void output(Forest forest[]){ cout<<"Name of factory"<<"\t"<<"Profit"<<"\t"<<"Main species"<<"\t"<<"Count"<<"\t" <<"Type of owning"<<endl; for(int i = 0; i<FOREST; i++){ cout<<forest[i].name<<"\t"<<"\t" <<forest[i].area<<"\t" <<forest[i].species<<"\t"<<"\t" <<forest[i].age<<"\t"<<"\t" <<forest[i].density<<endl; } } //Підпрограма сортування за алфавітом void sortAlph(Forest forest[]) { bool wasSwapped = true; int k; cout<<"Sort by ascending - 1, Sort by descending - 2: "; cin>>k; if(k==1){ for (int i = 1; (i <= FOREST) && wasSwapped; ++i) { wasSwapped = false; for (int j = 0; j < (FOREST - i); ++j) { if (forest[j].name > forest[j + 1].name) { swap(forest[j], forest[j + 1]); wasSwapped = true; } } } } if(k==2){ for (int i = 1; (i <= FOREST) && wasSwapped; ++i) { wasSwapped = false; for (int j = 0; j < (FOREST - i); ++j) { if (forest[j].name < forest[j + 1].name) { swap(forest[j], forest[j + 1]); wasSwapped = true; } } } } cout<<"Sorted by name: "<<"\n"; output(forest); } //Сортування за прибутком void sortNum(Forest forest[]) { bool wasSwapped = true; int k; cout<<"Sort by ascending - 1, Sort by descending - 2: "; cin>>k; if (k==2){ for (int i = 1; (i <= FOREST) && wasSwapped; ++i) { wasSwapped = false; for (int j = 0; j < (FOREST - i); ++j) { if (forest[j].area < forest[j + 1].area) { swap(forest[j], forest[j + 1]); wasSwapped = true; } } } } else if (k==1){ for (int i = 1; (i <= FOREST) && wasSwapped; ++i) { wasSwapped = false; for (int j = 0; j < (FOREST - i); ++j) { if (forest[j].area > forest[j + 1].area) { swap(forest[j], forest[j + 1]); wasSwapped = true; } } } } cout<<"Sorted by area: "<<"\n"; output(forest); } Результати комп'ютерної реалізації програми Користувач заповнює структуру типу struct вручну з клавіатури або з файлу. Далі програма сортує структуру forest за іменем с/г підприємства або прибутком(за зростанням чи спаданням). Далі це все виводиться на екран. В цій програмі я оперую форматами даних – string та int, float. Скріншоти виконання програми: / Рис.1 Приклад роботи програми за коректно введених даних. Відсортовано за числовим параметром, а саме за прибутком за зростанням / Рис.2 Приклад роботи програми за коректно введених даних. Відсортовано за числовим параметром, а саме за прибутком за спаданням / Рис.3 Сортування по назві за зростанням / Рис.4 Результат роботи програми за некоректного введення даних з консолі / Рис.5 Файл із даними Висновок. На даній лабораторній роботі я написав програму на мові C++, у середовищі програмування Visual Studio 2010. Програма працює із структурами даних, а конкретніше із структурами сільськогосподарських підприємств. Також вона сортує дані за назвою по алфавіту і за чисельними значеннями по зростанню і спаданню. Врахував помилки виконання програми при сортуванні. Програма повинна сортувати структуру. Обмежень в застосуванні програми немає. Покращити дану програму можливо, добавивши деякі функції.
Допоможи студентському архіву

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

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

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

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

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

Admin

26.02.2023 12:38

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