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

Інтегровані структури даних, запису.

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

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

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

Рік:
2012
Тип роботи:
Лабораторна робота
Предмет:
Алгоритми і структури даних
Група:
КН

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

Міністерство освіти і науки України Національний університет "Львівська політехніка" Кафедра "Інформаційні системи та мережі"    Лабораторна робота № 3 з предмету: Алгоритми і Структури Даних на тему: Інтегровані структури даних, запису.          ЛЬВІВ-2008  Тема: Інтегровані структури даних, запису. Мета роботи: Придбання і закріплення навиків в роботі із записами, в інтеграції даних, в модульному програмуванні. Постановка завдання Для заданої прикладної області розробити опис об'єктів цієї області. Розробити процедури, що реалізуюють базові операції над цими об'єктами, зокрема: текстове введення-виведення (консольний і файловий); присвоювання; задання константних значень; порівняння (не менше 2-х типів). Підготувати файл початкових даних, що містять не менше 10 значень конкретних об'єктів. Використовуючи процедури і описи модуля типу даних, розробити програму, що забезпечує введення початкових даних з першого файлу даних в пам'ять і зберігання їх в масиві, сортування масиву по алфавітному і по числовому параметру. Варіанти індивідуальних завдань Для кожної області перераховані параметри об'єкту. Серед параметрів обов'язково є ключове алфавітне поле (наприклад, прізвище), яке ідентифікує об'єкт, у кожного об'єкту є також одне або декілька числових полів, по яким вірогідні звернення до об'єкту. Набір характеристик може бути розширений і ускладнений по розсуду виконавця. Варіант індивідуального завданя: Прикладна область: Відділ кадрів, Атрибути інформації: прізвище співробітника, ім'я, по батькові, посада, стаж роботи, оклад Перевірити, чи всі нульові елементи розміщені в лівій частині матриці (варіант №1). Хід виконання роботи: Для заданої прикладної області я розробив опис об'єктів цієї області, процедури, що реалізуюють базові операції над цими об'єктами, зокрема: текстове введення-виведення (консольний і файловий); присвоювання; 2 типи порівняння. Підготував файл початкових даних, що містять н10 значень конкретних об'єктів. Використовуючи процедури і описи модуля типу даних, розробити програму, що забезпечує введення початкових даних з файлу даних в пам'ять і зберігання їх в масиві, сортування масиву по алфавітному і по параметру зарплати. Текст програми на мові С++: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> class Worker { public: char name[20]; char surname[20]; char status[10]; int celery; int stag; public: Worker(char *n=NULL, char *sn=NULL, char *s=NULL, int c=0, int st=0) { if(n) strcpy(name, n); else *name='\n'; if(sn)strcpy(surname, sn);else *surname='\n'; if(s) strcpy(status, s); else *status='\n'; celery=c; stag=st; } void operator()(char *n, char *sn, char s, int c, int st) { *name='\0'; *surname='\0'; *status='\0'; celery=c; stag=st; } int read(FILE *in=NULL) { if(!in)in=stdin; return fscanf(in, "%s%s%s%d%d\n", name, surname, status, &celery, &stag)==5?1:0; } int write(FILE *out=NULL) { if(!out)out=stdout; return fprintf(out, "%-20s%-20s%-10s%4d%2d\n", name, surname, status, celery, stag)==5?1:0; } int operator<(Worker w) { int c; c=strcmp(name, w.name); if(c) return c<0?1:0; c=strcmp(surname, w.surname); return c<0?1:0; } int operator>(Worker w) { int c; c=strcmp(name, w.name); if(c) return c>0?1:0; c=strcmp(surname, w.surname); return c>0?1:0; } int operator<<(Worker w) { return celery<w.celery?1:0; } int operator>>(Worker w) { return celery>w.celery?1:0; } }; int readall(Worker w[], int maxn, char *fname) { int i; if(fname) { FILE *f=fopen(fname, "r"); if(!f){ puts("ERROR 1"); exit(1); } for(i=0; i<maxn; i++) if(!w[i].read(f)) return i; if(*fname)fclose(f); return i+1; }else{ for(i=0; i<maxn; i++) if(!w[i].read(stdin)) return i; return i-1; } } writeall(Worker w[], int maxn, char *fname) { int i; if(fname) { FILE *f=fopen(fname, "w"); if(!f){ puts("ERROR 2"); exit(1); } for(i=0; i<maxn; i++) w[i].write(f); if(*fname)fclose(f); }else{ for(i=0; i<maxn; i++) w[i].write(stdout); } } void sortns(Worker w[], int wn) { for(int i=0; i<wn-1; i++) for(int j=i+1; j<wn; j++) if(w[i]>w[j]) { Worker t=w[i]; w[i]=w[j]; w[j]=t; } } void sorts(Worker w[], int wn) { for(int i=0; i<wn-1; i++) for(int j=i+1; j<wn; j++) if(w[i]>>w[j]) { Worker t=w[i]; w[i]=w[j]; w[j]=t; } } void main() { Worker w[20]; int wn=0; char fname[80]; clrscr(); puts("Enter data file name(blank line for console)\n"); gets(fname); wn=readall(w, 20, fname); printf("\nRecords read: %d\n", wn); writeall(w, wn, NULL); getch(); sortns(w, wn); puts("\nSorted by name and surname\n"); writeall(w, wn, NULL); getch(); sorts(w, wn); puts("\nSorted by selery\n"); writeall(w, wn, NULL); getch(); return; } Результати компютерної реалізації програми: Результати компютерної реалізації програми виправдали очікування і підтвардили правильність її складання. Нижче наведено скріншот, який демонструє це:  Висновки Під час виконання роботи я придбав і закріпив навики в роботі із записами, в інтергациі даних, в модульному програмуванні.
Антиботан аватар за замовчуванням

30.11.2012 00:56

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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