Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти та науки України
НУ “Львівська політехніка”
Лабораторна робота №7
“Опрацювання структур.”
Львів 2005
Назва роботи: Опрацювання структур.
Мета роботи: Закріпити теоретичні знання та оволодіти практичними навиками опрацювання структур даних. Засвоїти техніку створення та опрацювання складних типів даних.
Завдання на лабораторну роботу.
Розробити програмне забезпечення для опрацювання структур відповідно до заданого варіанту.
Для внутрішнього представлення даних, що опрацьовуються, розробити відповідні структури даних.
Прямокутники (у межах даних задач) однозначно представляються координатами верхнього лівого та нижнього правого кутів.
Дані вводити зі стандартного пристрою вводу а результати виводити на стандартний пристрій виводу.
Забезпечити коректне звільнення динамічно виділеної пам’яті при завершенні використання даних під які вона виділена.
Звернути особливу увагу на обробку помилок, які користувач може зробити при використанні програми.
При вирішенні задач забезпечити дружній інтерфейс з користувачем.
Ввести прізвища, імена та номер залікової книжки довільного числа студентів групи. Впорядкувати введені записи за іменем у зворотному до алфавітного порядку та вивести результати.
Текст програми:
#include <stdio.h> // підключення необхідних бібліотек
#include <conio.h>
struct student { // об’ява структури з наступними полями
char group[10];
char name[20];
char surname[20];
int zal;
};
int main(int argc,char* argv[]) // головна функція
{
int i,j,max; \\ об’ява змінних
struct student *st;
int *sort,t;
// перевірка навведення початкових даних (кількість студентів)
if(argc!=2){printf("Error");return 1;}
sscanf(argv[1],"%d",&max); // зчитування із строки значення змінної згідно заданого формату
st=(struct student*)calloc(max,sizeof(struct student));// виділення пам’яті під структуру
sort=(int*)calloc(max,sizeof(int));
clrscr();
printf("Enter surname,name,and Nzal. For example (Petrov,Petro,01994436):\n");
for(i=0;i<max;i++){
printf("**************************************************\n");
printf("Surname:");scanf("%s",st[i].surname);
printf("Name:");scanf("%s",st[i].name);
printf("Nzal:");scanf("%d",&st[i].zal);
}
printf("\n");
printf("-----------------------------------------------------\n");
printf("| Sorted information about students |\n");
for(i=0;i<max;sort[i]=i++);
for(i=0;i<max-1;i++)
for(j=i+1;j<max;j++)
if(st[sort[i]].name[0]<st[sort[j]].name[0])
{
t=sort[j];sort[j]=sort[i];sort[i]=t;
}
printf("-----------------------------------------------------\n");
printf("| surname | name | zalikova |\n");
printf("-----------------------------------------------------\n");
for(i=0;i<max;i++){printf("|%11s|%14s|%24d|\n",st[sort[i]].surname,st[sort[i]].name,st[sort[i]].zal);}
printf("-----------------------------------------------------\n");
return 0;
}
Результат роботи програми:
Surname:Morozko
Name:Petro
Nzal:01222333
***********************************
Surname:Sidirov
Name:Ivan
Nzal:01232323
***********************************
Surname:Sokolov
Name:Muhajlo
Nzal:01233222
***********************************
-----------------------------------------------------
| Sorted information about student |
-----------------------------------------------------
| surname | name | zalikova |
-----------------------------------------------------
| Morozko| Petro| 01222333 |
| Sokolov| Muhajlo| 01232323 |
| Sidirov| Ivan| 01232323 |
-----------------------------------------------------
Алгоритм програми
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!