Робота з масивами структур.

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

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

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

Рік:
2026
Тип роботи:
Лабораторна робота
Предмет:
Інші
Група:
КН

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ „ЛЬВІВСЬКА ПОЛІТЕХНІКА” Кафедра інформаційних систем та мереж Лабораторна робота №9 на тему: Робота з масивами структур. Львів-2008р. Назва роботи: Робота з масивами структур Мета роботи: Здобути практичні навички використання масивів структур для опрацювання таблиць різнотипних даних мови Сі. Завдання лабораторної роботи: У завданнях першої частини необхідно: Кількість елементів масиву оголосити за допомогою макроконстант, визначених директивою #define. Верхню межу індексів масиву у циклах задавати за допомогою макроконстант; Введення масивів структур з клавіатури та їх виведення на екран здійснювати у вигляді таблиць. Введення вхідних даних та виведення результатів супроводжувати відповідними до умови задачі текстовими повідомленнями. Після введення вхідних даних виконувати ехо-виведення їх значень на екран; Для звернення до елементів масивів використати індекси; У завданнях другої частини необхідно: Кількість елементів масиву ввести з клавіатури, після чого виділити необхідний об’єм динамічної пам’яті для розміщення масиву структур; Занести у динамічну пам’ять введені з клавіатури дані; для звернення до елементів масиву перевагу надати використанню вказівників замість індексів; Введення та виведення масивів структур здійснювати у вигляді таблиць. Після введення вхідних даних виконувати ехо-виведення їх значень на екран. Введення вхідних даних та виведення результатів супроводжувати відповідними до умови задачі текстовими повідомленнями. Перед виходом з програми звільнити зайняту динамічну пам’ять. Текст програми: Програма 1 #include <conio.h> #include <stdio.h> #include <string.h> #define n 3 struct Tvlasn { char imja[15]; char prizv[15]; }; struct TCar { char marka[15],kolir[15]; long int nomer; int rik; Tvlasn vl; }; int RZ(TCar a[n]); void main() { TCar car[n],temp; int i,j; clrscr(); for (i=0; i<n; i++) { printf("Введiть марку авто %d => ",i+1); scanf("%s",&car[i].marka); printf("Введiть колiр авто %d => ",i+1); scanf("%s",&car[i].kolir); printf("Введiть номер авто %d => ",i+1); scanf("%ld",&car[i].nomer); printf("Введiть рiк випуску авто %d => ",i+1); scanf("%d",&car[i].rik); printf("\nВведiть iнформацiю про власника авто %d:\n",i+1); printf("Введiть iм'я власника авто %d =>",i+1); scanf("%s",&car[i].vl.imja); printf("Введiть прiзвище власника авто %d =>",i+1); scanf("%s",&car[i].vl.prizv); strcat(car[i].vl.prizv," "); puts("--------------------------------------------------------------------------"); } for (j=0; j<n-1; j++) for (i=0; i<(n-1)-j; i++); if ((car[i].marka)<(car[i+1].marka)) { temp=car[i+1]; car[i+1]=car[i]; car[i]=temp; } puts("№ Марка Колiр Номер Рiк Данi про власника"); puts("--------------------------------------------------------------------------"); for (i=0; i<n; i++) printf("%-6d %-13s %-10s %-11ld %-11d %-s\n",i+1,car[i].marka,car[i].kolir,car[i].nomer,car[i].rik,strcat (car[i].vl.prizv, car[i].vl.imja)); puts("--------------------------------------------------------------------------"); //printf("Кiлькiсть рiзних кольрiв кожної марки=%d\n",RZ(car)); getch(); } int RZ(TCar a[n]) {int z=0,k=1,i,j; for (j=0; j<n; j++) { for (i=0; i<j; i++) if(i!=j) if(strcmpi(a[j].kolir,a[i].kolir)) z=1; else {z=0; break;} k+=z; } return k;}   Програма 2 #include <conio.h> #include <stdio.h> #include <string.h> #include <stdlib.h> struct Tdata { int mis,den,rik; }; struct TKl { char *pr[]; Tdata *data; long int nom; int botr,bper,gotr,gper,zl; }; void main() {TKl *kl; int i,n,d1,d2,m1,m2,r1,g; char *st; clrscr(); printf("Введiть кiлькiсть клiєнтiв банку: "); scanf("%d",&n); clrscr(); kl=(TKl*)malloc(n*sizeof(TKl)); for (i=0;i<n; i++) { clrscr(); printf("Введiть iнформацiю про клiєнта %d: \n\n",i+1); gets(st); printf("Прiзвище та iнiцiали клiєнта: ");gets(*(kl+i)->pr); printf("№ рахунку: "); scanf("%ld",&(kl+i)->nom); printf("Сума безготiвкового отримання: "); scanf("%d",&(kl+i)->botr); printf("Сума безготiвкового переведення: "); scanf("%d",&(kl+i)->bper); printf("Сума отримана готiвкою: "); scanf("%d",&(kl+i)->gotr); printf("Сума видана готiвкою: "); scanf("%d",&(kl+i)->gper); puts("--------------------------"); printf("\nДата проведення операцiї:\n"); printf("День: "); scanf("%d",&(kl+i)->data->den); printf("Мiсяць: "); scanf("%d",&(kl+i)->data->mis); printf("Рiк: "); scanf("%d",&(kl+i)->data->rik); } clrscr(); printf("Введiть критерiї вiдбору:\n"); printf("День: (вiд/до) "); scanf("%d/%d",&d1,&d2); printf("Мiсяць: (вiд/до) "); scanf("%d/%d",&m1,&m2); printf("Рiк: "); scanf("%d",&r1); printf("Граничне значення: "); scanf("%d",&g); for(i=0; i<n; i++) { (kl+i)->zl=(rand()*100)+(kl+i)->botr+(kl+i)->gotr-(kl+i)->bper-(kl+i)->gper; } puts("\n№ рахунку Безгот. отр. Безгот. пер. Отр. гот. Вид. гот. Залишок"); puts("-----------------------------------------------------------------------------"); for(i=0; i<n; i++){ if (((kl+i)->data->den<=d2)&&((kl+i)->data->den>=d1&&(kl+i)->data->mis<=m2)&&(((kl+i)->bper+(kl+i)->gper)>=g)&&(kl+i)->data->mis>=m1&&(kl+i)->data->rik==r1)//&&kl[i].bper>1000) printf("%-13ld %-15d %-14d %-11d %-10d %d \n",(kl+i)->nom,(kl+i)->botr,(kl+i)->bper,(kl+i)->gotr,(kl+i)->gper,(kl+i)->zl); } getch(); }   Результати виконання програми: Програма 1  Програма 2  Висновки: Я здобув практичні навички використання масивів структур для опрацювання таблиць різнотипних даних мови Сі. Блок-схеми: Програма 1  Програма 2 
Антиботан аватар за замовчуванням

10.12.2012 21:12-

Коментарі

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

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

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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