Лаб 3
Інтегровані структури даних, запису
Завдання на роботу:
Для заданої прикладної області розробити опис об'єктів цієї області. Розробити процедури, що реалізуюють базові операції над цими об'єктами, зокрема:
текстове введення-виведення (консольний і файловий);
присвоювання;
задання константних значень;
порівняння (не менше 2-х типів).
Підготувати файл початкових даних, що містять не менше 10 значень конкретних об'єктів.
Використовуючи процедури і описи модуля типу даних, розробити програму, що забезпечує введення початкових даних з першого файлу даних в пам'ять і зберігання їх в масиві, сортування масиву по алфавітному і по числовому параметру.
Варіанти індивідуальних завдань
Для кожної області перераховані параметри об'єкту. Серед параметрів обов'язково є ключове алфавітне поле (наприклад, прізвище), яке ідентифікує об'єкт, у кожного об'єкту є також одне або декілька числових полів, по яким вірогідні звернення до об'єкту. Набір характеристик може бути розширений і ускладнений по розсуду виконавця.
*****************************************************************************
Хід виконання завдання
#include<stdio.h>
#include<conio.h>
#include<string.h>
#define n 3
struct forest
{
char name[10];
char area[10];
char bread[15];
char average[15];
int density;
}d;
struct forest dani[n];
int i, j;
void main()
{
puts("Vvedit dani pro lisove hospodarstvo:");
for (i = 0; i < n; i++)
scanf("%s%s%s%s%d", &dani[i].name, &dani[i].area, &dani[i].bread, &dani[i].average, &dani[i].density);
for (i = 0; i < n - 1; i++)
for (j = i + 1; j < n; j++)
if (strcmp(dani[i].name, dani[j].name) >= 0)
if (strcmp(dani[i].name, dani[j].name)>0)
{
d = dani[i];
dani[i] = dani[j];
dani[j] = d;
}
else
if (strcmp(dani[i].area, dani[j].area) >= 0)
if (strcmp(dani[i].area, dani[j].area)>0)
{
d = dani[i];
dani[i] = dani[j];
dani[j] = d;
}
else
if (strcmp(dani[i].bread, dani[j].bread) >= 0)
if (strcmp(dani[i].bread, dani[j].bread) > 0)
{
d = dani[i];
dani[i] = dani[j];
dani[j] = d;
}
else
if (strcmp(dani[i].average, dani[j].average) > 0)
{
d = dani[i];
dani[i] = dani[j];
dani[j] = d;
}
puts("\n");
puts("VPORYADKOVANI DANI\n");
for (i = 0; i < n; i++)
printf("%s %s %s %s %d\n", dani[i].name, dani[i].area, dani[i].bread, dani[i].average, dani[i].density);
}
Результати виконання:
/
Висновок: на цій лабораторній роботі я придбав і закріпив навики в роботі із записами, в інтергациі даних, в модульному програмуванні.