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

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

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

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

Рік:
2013
Тип роботи:
Лабораторна робота
Предмет:
Інші

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

МІНІСТЕРCТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” Кафедра ICM Лабораторна робота №10 “ Робота з масивами структур” Мета роботи: Здобути практичні навички використання масивів структур для опрацювання таблиць різнотипних даних мови Сі. Хід виконання роботи Масиви структур у статичній пам'яті Сформувати масив структур з даними про студентів: прізвище, дата народження, місце народження. Дата народження задається у вигляді ДД:ММ:РР. Відсортувати масив за зростанням дат народження та вивести його на екран у формі таблиці. #include <stdio.h> #include <conio.h> #define n 40 struct dani { char neam[20]; char den,mis,rik; char misce[20]; }; void main() { struct dani stud[n],zmin; int k,j,i; printf("\n\nVvedit kilkist studentiv "); scanf("%d",&k); for(i=0;i<k;i++) { printf("prizvyshe %d-go studenta - ",i+1); scanf("%s",&stud[i].neam); printf("data narodzenja (dd:mm:yy)"); scanf("%2d:%2d:%2d",&stud[i].den,&stud[i].mis,&stud[i].rik); printf("misce narodzenja "); scanf("%s",&stud[i].misce); } printf("\n\n| prizvyshe | data | misce narodzenja |"); printf("\n|____________________|________|____________________|"); for(i=0;i<k;i++) printf("\n|%-20.20s|%02d:%02d:%02d|%-20.20s|", stud[i].neam,stud[i].den,stud[i].mis,stud[i].rik,stud[i].misce); for(j=0;j<k;j++) for(i=0;i<k-j-1;++i) if(stud[i].rik>stud[i+1].rik){zmin=stud[i];stud[i]=stud[i+1];stud[i+1]=zmin;} else if((stud[i].mis>stud[i+1].mis)&&(stud[i].rik==stud[i+1].rik)) {zmin=stud[i];stud[i]=stud[i+1];stud[i+1]=zmin;} else if((stud[i].den>stud[i+1].den) &&(stud[i].mis==stud[i+1].mis) &&(stud[i].rik==stud[i+1].rik)) {zmin=stud[i];stud[i]=stud[i+1];stud[i+1]=zmin;} printf("\n\n| prizvyshe | data | misce narodzenja |"); printf("\n|____________________|________|____________________|"); for(i=0;i<k;i++) printf("\n|%-20.20s|%02d:%02d:%02d|%-20.20s|", stud[i].neam,stud[i].den,stud[i].mis,stud[i].rik,stud[i].misce); getch(); }  Масиви структур у динамічній пам'яті Сформувати масив структур з даними про автомобілі: марка, колір, номер, рік випуску, дані про власника. Відсортувати масив по марках автомобілів та вивести його на екран у формі таблиці. Визначити кількість різних кольорів кожної марки. #include <stdio.h> #include <string.h> #include <alloc.h> #include <conio.h> struct dani {char marka[10],kolir[10],nomer[8],rik_v[5],dani_vla[34];}; struct mas {char marka[10]; int kil;}; void main(void) { int n,i,j,m=0; char k=1,s[34]; struct dani *a,*p,zmin; struct mas *str; printf("\nVveidt kilkist avto "); scanf("%d",&n); //vydilenja pamjati str=(struct mas*)calloc(n,sizeof(struct mas)); a=(struct dani*)calloc(n,sizeof(struct dani)); printf("\n marka | kolir |nomer |rik | DANI\n"); for(p=a;p<a+n;p++) scanf("%s %s %s %s %s",(*p).marka,(*p).kolir,(*p).nomer,(*p).rik_v,(*p).dani_vla); //sortuvanja for(i=0;i<n;i++) for(p=a;p<a+n-i-1;p++) if(strnicmp((char*)p,(char*)(p+1),10)>0){zmin=*p;*p=*(p+1);*(p+1)=zmin;} else if((strnicmp(((char*)p)+10,((char*)(p+1))+10,10)>0) &&(strnicmp((char*)p,(char*)(p+1),10)==0)) {zmin=*(p);*(p)=*(p+1);*(p+1)=zmin;} //vyvid danyh puts("\nvidsortovani dani po markah\n"); puts(" marka | kolir | nomer |rik | DANI"); puts("__________________________________________________________"); for(p=a;p<(a+n);p++) {printf("\n%-10s|%-10s|%-8s|%-4.4s|%s",(*p).marka, (*p).kolir,(*p).nomer,(*p).rik_v,(*p).dani_vla); //vyznachenja kilkosti koloriv koznoji marky if(strnicmp((char*)p,(char*)(p+1),10)!=0) { strncpy( s,(char*)p,10); strcat(str[m].marka,s); str[m].kil=k; k=1;m++; } else if(strnicmp(((char*)p)+10,((char*)(p+1))+10,10)!=0) k++; } puts("\n\n marky avto i kilkist riznyh koloriv\n"); for(i=0;i<m;i++) printf("\n|%-10.10s|%d|",str[i].marka,str[i].kil); getch(); free(str); free(a); }  Висновок: на даній лабораторній роботі я здобув практичні навички використання масивів структур для опрацювання таблиць різнотипних даних мови Сі.
Антиботан аватар за замовчуванням

31.03.2013 15:06

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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