17560

Структури в С++

Лабораторная работа

Информатика, кибернетика и программирование

ЛАБОРАТОРНА РОБОТА № 3 Тема:Структури в С. Мета: отримання навичок роботи із структурами. Теоретична частина Тип даних структура об'єднує декілька змінних можливо різного типу. Змінні які об'єднані структурою називаються полями структури чи елементами ст...

Украинкский

2013-07-04

111.5 KB

15 чел.

ЛАБОРАТОРНА РОБОТА № 3

Тема: Структури в С++.

Мета:  отримання навичок роботи із структурами.

Теоретична частина

Тип даних "структура" об'єднує декілька змінних, можливо різного типу. Змінні, які об'єднані структурою, називаються полями структури (чи елементами структури). Розглянемо приклад опису структури :

   struct student

     {

           char name [20];

           int kurs;

             char group [5];

       };

Сам опис структури ще не створює в оперативній пам'яті структурних об'єктів з вказаними полями. Опис структури є "шаблоном" (типом користувача) майбутніх об'єктів з описаною структурою

Для того, щоб оголосити конкретні змінні типу struct student, необхідно або вказати список імен через коми між фігурною дужкою, що закривається, і символом ";", або записати в програмі оголошення таких змінних, наприклад:

     student stud1, stud2, stud3;

Компілятор виділить пам'ять під ці конкретні змінні відповідно до вказаного опису.

Доступ до конкретного елементу структури здійснюється з використанням операції "точка". Наприклад, для друку утримуваного третього поля структурною змінною stud2 потрібно написати cout<<stud2.group;

Структури, як і змінні інших типів, можуть об'єднуватися в масиви структурних змінних. Для того, щоб оголосити такий масив, потрібно задати шаблон структури, а потім оголосити масив.

 Наприклад:   student studkurs[100];

Для доступу до поля kurs 15-го елементу масиву необхідно записати studkurs[14].Kurs .

Якщо оголошені дві змінні типу структури з одним шаблоном, допустима операція привласнення : stud2 = stud3;

Не можна використовувати операцію привласнення до змінних типу структури, шаблони яких описані під різними номерами, нехай навіть зовсім ідентично.

Змінні типу структури можуть бути глобальними, локальними, а також формальними. Можна створити покажчик на структуру і передавати аргумент типу структури по посиланню.

Приклад роботи із структурою

Ввести відомості про студентів учбової групи. Кожен елемент масиву студентської групи містить:

а) прізвище і ім'я;

б) підсумки складання іспиту по програмуванню.

Програма виводить інформацію про студента по його порядковому номеру в списку групи (індекс масиву, що містить введену інформацію)

Текст програми може мати вигляд:

##include <iostream.h>

##include<stdio.h>

##include <conio.h>

       struct student

       {

           char fio[10]; // поле для Ф.И. О. студента

           int est1;     // поле для оцінки

       } gruppa[25];   // масив для списку групи

void main(void)

{

     int i, j, k, priznak;

     clrscr();

       cout<<"\n Формування списку до 25 чоловік";

  /*------   /*------Формування списку----------*/

       for (i=1;i<=25;i++)

           {

               cout"\n Введіть відомості про "<<i<< студента \n";

               cout<<"\n Прізвище і ініціали : ";

               gets(gruppa[i].fio);

               cout<<"\n Введіть оценкy по програмуванню: ";

                 cin>>gruppa[i].est1;

             }

/*--------- /*---------Перегляд списку------------*/

     cout<<"\n Відомості про якого студента?\n";

     cin>>j;

       cout<<" \n СТУДЕНТ: ", gruppa[j].fio<<endl;

         cout<<" \n ВЕСНЯНА СЕСІЯ, ОЦІНКА по ПРОГРАМУВАННЮ: ", gruppa[j].est1;

           cout<<"\n РОБОТА ПРОГРАМИ ЗАВЕРШЕНА! Press any key.".;

 getch();

}

Завдання на лабораторну роботу

Роздрукувати список учнів, прізвища яких починаються на букву "В", з вказівкою дати їх народження.

Контрольні питання

  1.  Що є структура?
  2.  Як оголосити структур?
  3.  Як звернутися до елементу структури?
  4.  Як оголосити змінну типу структура?
  5.  Як оголосити масив структур?


void main(void)

{

     int i, j, k, priznak;

     clrscr();

       cout<<"\n Формування списку до 25 чоловік";

  /*------   /*------Формування списку----------*/

       for (i=1;i<=25;i++)

           {

               cout"\n Введіть відомості про "<<i<< студента \n";

               cout<<"\n Прізвище і ініціали : ";

               gets(gruppa[i].fio);

               cout<<"\n Введіть оценкy по програмуванню: ";

                 cin>>gruppa[i].est1;

             }

/*--------- /*---------Перегляд списку------------*/

     cout<<"\n Відомості про якого студента?\n";

     cin>>j;

       cout<<" \n СТУДЕНТ: ", gruppa[j].fio<<endl;

         cout<<" \n ВЕСНЯНА СЕСІЯ, ОЦІНКА по ПРОГРАМУВАННЮ: ", gruppa[j].est1;

           cout<<"\n РОБОТА ПРОГРАМИ ЗАВЕРШЕНА! Press any key.".;

 getch();

}

Завдання на лабораторну роботу

З цього списку спортсменів роздрукувати відомості про тих з них, хто займається плаванням. вказати вік, скільки років вони займаються спортом.

Контрольні питання

Що є структура?

Як оголосити структур?

Як звернутися до елементу структури?

Як оголосити змінну типу структура?

Як оголосити масив структур?


void main(void)

{

     int i, j, k, priznak;

     clrscr();

       cout<<"\n Формування списку до 25 чоловік";

  /*------   /*------Формування списку----------*/

       for (i=1;i<=25;i++)

           {

               cout"\n Введіть відомості про "<<i<< студента \n";

               cout<<"\n Прізвище і ініціали : ";

               gets(gruppa[i].fio);

               cout<<"\n Введіть оценкy по програмуванню: ";

                 cin>>gruppa[i].est1;

             }

/*--------- /*---------Перегляд списку------------*/

     cout<<"\n Відомості про якого студента?\n";

     cin>>j;

       cout<<" \n СТУДЕНТ: ", gruppa[j].fio<<endl;

         cout<<" \n ВЕСНЯНА СЕСІЯ, ОЦІНКА по ПРОГРАМУВАННЮ: ", gruppa[j].est1;

           cout<<"\n РОБОТА ПРОГРАМИ ЗАВЕРШЕНА! Press any key.".;

 getch();

}

Завдання на лабораторну роботу

Вичислити середній бал учнів класу, якщо відомі оцінки кожного учня по математиці, по українській мові і фізиці. Роздрукувати список учнів, що мають середній бал вище за середнє в класі.

Контрольні питання

  1.  Що є структура?
  2.  Як оголосити структур?
  3.  Як звернутися до елементу структури?
  4.  Як оголосити змінну типу структура?
  5.  Як оголосити масив структур?


void main(void)

{

     int i, j, k, priznak;

     clrscr();

       cout<<"\n Формування списку до 25 чоловік";

  /*------   /*------Формування списку----------*/

       for (i=1;i<=25;i++)

           {

               cout"\n Введіть відомості про "<<i<< студента \n";

               cout<<"\n Прізвище і ініціали : ";

               gets(gruppa[i].fio);

               cout<<"\n Введіть оценкy по програмуванню: ";

                 cin>>gruppa[i].est1;

             }

/*--------- /*---------Перегляд списку------------*/

     cout<<"\n Відомості про якого студента?\n";

     cin>>j;

       cout<<" \n СТУДЕНТ: ", gruppa[j].fio<<endl;

         cout<<" \n ВЕСНЯНА СЕСІЯ, ОЦІНКА по ПРОГРАМУВАННЮ: ", gruppa[j].est1;

           cout<<"\n РОБОТА ПРОГРАМИ ЗАВЕРШЕНА! Press any key.".;

 getch();

}

Завдання на лабораторну роботу

Роздрукувати прізвища робітників бригади, що починаються з букви "Л" і "С", з вказівкою їх місячної зарплати.

Контрольні питання

  1.  Що є структура?
  2.  Як оголосити структур?
  3.  Як звернутися до елементу структури?
  4.  Як оголосити змінну типу структура?
  5.  Як оголосити масив структур?


void main(void)

{

     int i, j, k, priznak;

     clrscr();

       cout<<"\n Формування списку до 25 чоловік";

  /*------   /*------Формування списку----------*/

       for (i=1;i<=25;i++)

           {

               cout"\n Введіть відомості про "<<i<< студента \n";

               cout<<"\n Прізвище і ініціали : ";

               gets(gruppa[i].fio);

               cout<<"\n Введіть оценкy по програмуванню: ";

                 cin>>gruppa[i].est1;

             }

/*--------- /*---------Перегляд списку------------*/

     cout<<"\n Відомості про якого студента?\n";

     cin>>j;

       cout<<" \n СТУДЕНТ: ", gruppa[j].fio<<endl;

         cout<<" \n ВЕСНЯНА СЕСІЯ, ОЦІНКА по ПРОГРАМУВАННЮ: ", gruppa[j].est1;

           cout<<"\n РОБОТА ПРОГРАМИ ЗАВЕРШЕНА! Press any key.".;

 getch();

}

Завдання на лабораторну роботу

З асортименту цукерок, що випускаються кондитерською фабрикою, вибрати ті, вартість яких від 15 до 45 гр. за 1 кг. Вказати термін їх придатності і номера магазинів, в яких вони є у продажу.

Контрольні питання

  1.  Що є структура?
  2.  Як оголосити структур?
  3.  Як звернутися до елементу структури?
  4.  Як оголосити змінну типу структура?
  5.  Як оголосити масив структур?


void main(void)

{

     int i, j, k, priznak;

     clrscr();

       cout<<"\n Формування списку до 25 чоловік";

  /*------   /*------Формирование списка----------*/

       for (i=1;i<=25;i++)

           {

               cout"\n Введіть відомості про "<<i<< студента \n";

               cout<<"\n Прізвище і ініціали : ";

               gets(gruppa[i].fio);

               cout<<"\n Введіть оценкy по програмуванню: ";

                 cin>>gruppa[i].est1;

             }

/*--------- /*---------Перегляд списку------------*/

     cout<<"\n Відомості про якого студента?\n";

     cin>>j;

       cout<<" \n СТУДЕНТ: ", gruppa[j].fio<<endl;

         cout<<" \n ВЕСНЯНА СЕСІЯ, ОЦІНКА по ПРОГРАМУВАННЮ: ", gruppa[j].est1;

           cout<<"\n РОБОТА ПРОГРАМИ ЗАВЕРШЕНА! Press any key.".;

 getch();

}

Завдання на лабораторну роботу

Роздрукувати список учнів музичної школи, які вчаться грати на скрипці. Вказати також, скільки років вони займаються музикою і чи брали участь в яких - або конкурсах.

Контрольні питання

  1.  Що є структура?
  2.  Як оголосити структур?
  3.  Як звернутися до елементу структури?
  4.  Як оголосити змінну типу структура?
  5.  Як оголосити масив структур?


void main(void)

{

     int i, j, k, priznak;

     clrscr();

       cout<<"\n Формування списку до 25 чоловік";

  /*------   /*------Формування списку----------*/

       for (i=1;i<=25;i++)

           {

               cout"\n Введіть відомості про "<<i<< студента \n";

               cout<<"\n Прізвище і ініціали : ";

               gets(gruppa[i].fio);

               cout<<"\n Введіть оценкy по програмуванню: ";

                 cin>>gruppa[i].est1;

             }

/*--------- /*---------Перегляд списку------------*/

     cout<<"\n Відомості про якого студента?\n";

     cin>>j;

       cout<<" \n СТУДЕНТ: ", gruppa[j].fio<<endl;

         cout<<" \n ВЕСНЯНА СЕСІЯ, ОЦІНКА по ПРОГРАМУВАННЮ: ", gruppa[j].est1;

           cout<<"\n РОБОТА ПРОГРАМИ ЗАВЕРШЕНА! Press any key.".;

 getch();

}

Завдання на лабораторну роботу

Дані відомості про працівників цього підприємства : прізвище, ім'я, по батькові, величину зарплати, стаж роботи і посаду. Роздрукувати список тих, хто пропрацював на підприємстві більше 10 років, але має заробітну плату за місяць нижче середньою по підприємству.

Контрольні питання

  1.  Що є структура?
  2.  Як оголосити структур?
  3.  Як звернутися до елементу структури?
  4.  Як оголосити змінну типу структура?
  5.  Як оголосити масив структур?


void main(void)

{

     int i, j, k, priznak;

     clrscr();

       cout<<"\n Формування списку до 25 чоловік";

  /*------   /*------Формування списку----------*/

       for (i=1;i<=25;i++)

           {

               cout"\n Введіть відомості про "<<i<< студента \n";

               cout<<"\n Прізвище і ініціали : ";

               gets(gruppa[i].fio);

               cout<<"\n Введіть оценкy по програмуванню: ";

                 cin>>gruppa[i].est1;

             }

/*--------- /*---------Перегляд списку------------*/

     cout<<"\n Відомості про якого студента?\n";

     cin>>j;

       cout<<" \n СТУДЕНТ: ", gruppa[j].fio<<endl;

         cout<<" \n ВЕСНЯНА СЕСІЯ, ОЦІНКА по ПРОГРАМУВАННЮ: ", gruppa[j].est1;

           cout<<"\n РОБОТА ПРОГРАМИ ЗАВЕРШЕНА! Press any key.".;

 getch();

}

Завдання на лабораторну роботу

N учнів проходили тестування по математиці. Скільки балів набрав кожен учень по усіх темах. Вичислити середній бал і різницю між кращим і середнім балом.

Контрольні питання

  1.  Що є структура?
  2.  Як оголосити структур?
  3.  Як звернутися до елементу структури?
  4.  Як оголосити змінну типу структура?
  5.  Як оголосити масив структур?


void main(void)

{

     int i, j, k, priznak;

     clrscr();

       cout<<"\n Формування списку до 25 чоловік";

  /*------   /*------Формування списку----------*/

       for (i=1;i<=25;i++)

           {

               cout"\n Введіть відомості про "<<i<< студента \n";

               cout<<"\n Прізвище і ініціали : ";

               gets(gruppa[i].fio);

               cout<<"\n Введіть оценкy по програмуванню: ";

                 cin>>gruppa[i].est1;

             }

/*--------- /*---------Перегляд списку------------*/

     cout<<"\n Відомості про якого студента?\n";

     cin>>j;

       cout<<" \n СТУДЕНТ: ", gruppa[j].fio<<endl;

         cout<<" \n ВЕСНЯНА СЕСІЯ, ОЦІНКА по ПРОГРАМУВАННЮ: ", gruppa[j].est1;

           cout<<"\n РОБОТА ПРОГРАМИ ЗАВЕРШЕНА! Press any key.".;

 getch();

}

Завдання на лабораторну роботу

Роздрукувати прізвища дітей цього дитячого саду, які народилися в певному місяці, вказати їх вік і групу.

Контрольні питання

  1.  Що є структура?
  2.  Як оголосити структур?
  3.  Як звернутися до елементу структури?
  4.  Як оголосити змінну типу структура?
  5.  Як оголосити масив структур?


void main(void)

{

     int i, j, k, priznak;

     clrscr();

       cout<<"\n Формування списку до 25 чоловік";

  /*------   /*------Формування списку----------*/

       for (i=1;i<=25;i++)

           {

               cout"\n Введіть відомості про "<<i<< студента \n";

               cout<<"\n Прізвище і ініціали : ";

               gets(gruppa[i].fio);

               cout<<"\n Введіть оценкy по програмуванню: ";

                 cin>>gruppa[i].est1;

             }

/*--------- /*---------Перегляд списку------------*/

     cout<<"\n Відомості про якого студента?\n";

     cin>>j;

       cout<<" \n СТУДЕНТ: ", gruppa[j].fio<<endl;

         cout<<" \n ВЕСНЯНА СЕСІЯ, ОЦІНКА по ПРОГРАМУВАННЮ: ", gruppa[j].est1;

           cout<<"\n РОБОТА ПРОГРАМИ ЗАВЕРШЕНА! Press any key.".;

 getch();

}

Завдання на лабораторну роботу

Роздрукувати список тих учителів школи, які викладають математику і інформатику, вказати стаж їх роботи і тижневе навантаження.

Контрольні питання

  1.  Що є структура?
  2.  Як оголосити структур?
  3.  Як звернутися до елементу структури?
  4.  Як оголосити змінну типу структура?
  5.  Як оголосити масив структур?


void main(void)

{

     int i, j, k, priznak;

     clrscr();

       cout<<"\n Формування списку до 25 чоловік";

  /*------   /*------Формування списку----------*/

       for (i=1;i<=25;i++)

           {

               cout"\n Введіть відомості про "<<i<< студента \n";

               cout<<"\n Прізвище і ініціали : ";

               gets(gruppa[i].fio);

               cout<<"\n Введіть оценкy по програмуванню: ";

                 cin>>gruppa[i].est1;

             }

/*--------- /*---------Перегляд списку------------*/

     cout<<"\n Відомості про якого студента?\n";

     cin>>j;

       cout<<" \n СТУДЕНТ: ", gruppa[j].fio<<endl;

         cout<<" \n ВЕСНЯНА СЕСІЯ, ОЦІНКА по ПРОГРАМУВАННЮ: ", gruppa[j].est1;

           cout<<"\n РОБОТА ПРОГРАМИ ЗАВЕРШЕНА! Press any key.".;

 getch();

}

Завдання на лабораторну роботу

Роздрукувати анкетні дані учнів, що брали участь в олімпіаді по інформатиці по інформатиці і що запрацювали не менше 30 балів.

Контрольні питання

  1.  Що є структура?
  2.  Як оголосити структур?
  3.  Як звернутися до елементу структури?
  4.  Як оголосити змінну типу структура?
  5.  Як оголосити масив структур?


void main(void)

{

     int i, j, k, priznak;

     clrscr();

       cout<<"\n Формування списку до 25 чоловік";

  /*------   /*------Формування списку----------*/

       for (i=1;i<=25;i++)

           {

               cout"\n Введіть відомості про "<<i<< студента \n";

               cout<<"\n Прізвище і ініціали : ";

               gets(gruppa[i].fio);

               cout<<"\n Введіть оценкy по програмуванню: ";

                 cin>>gruppa[i].est1;

             }

/*--------- /*---------Перегляд списку------------*/

     cout<<"\n Відомості про якого студента?\n";

     cin>>j;

       cout<<" \n СТУДЕНТ: ", gruppa[j].fio<<endl;

         cout<<" \n ВЕСНЯНА СЕСІЯ, ОЦІНКА по ПРОГРАМУВАННЮ: ", gruppa[j].est1;

           cout<<"\n РОБОТА ПРОГРАМИ ЗАВЕРШЕНА! Press any key.".;

 getch();

}

Завдання на лабораторну роботу

Роздрукувати прізвища тих учнів класу, які являються хорошистами і відмінниками за підсумками року. Також вказати, наскільки їх середній бал відрізняється від середнього балу класу.

Контрольні питання

  1.  Що є структура?
  2.  Як оголосити структур?
  3.  Як звернутися до елементу структури?
  4.  Як оголосити змінну типу структура?
  5.  Як оголосити масив структур?


 

А также другие работы, которые могут Вас заинтересовать

21990. Гуманизм Италии XIV-XV вв. 147 KB
  Гуманисты были творцами новой системы знания в центре которого стояла проблема человека его земного предназначения термин humanista полагает П. Мишле выдвинул принципиально отличное от средневекового решения проблемы отношения человека к миру. Бурдаха где он писал что новое понимание искусства литературы науки новая концепция человека не вступали в противоречие в христианской религией ибо были предопределены ее пышным цветением в XIII в. Наиболее значительной для Тоффанина была идея божественности человека.
21991. Западная Европа в конце XI в. 30 KB
  Отношения между представителями класса феодалов в государствах Западной Европы строились по принципу т. На ее вершине находился император король который считался верховным сеньором всех феодалов их сюзереном главой феодальной иерархии. Среди церковных феодалов тоже существовала иерархия по рангу занимаемой ими должности: папа римский кардиналы архиепископы епископы аббаты приоры кюре викарий. Многие из них были вассалами светских феодалов по своим земельным владениям и наоборот.
21992. Западные славяне 61.5 KB
  начинается серия войн с Византией велись они с переменным успехом но в целом удачно для Болгарии. престиж Болгарии как международной державы был высок. Послов Болгарии за императорским столом сажали выше чем послов германского императора Оттона I. в Болгарии появилось богомильское движение дуализм.
21993. Индия в IV-VI-VII-XII вв. 50 KB
  Упадок империи Гуптов в Индии явился рубежом отделяющим древность от средневековья. Индии. вождем эфталитов стал Торомана который овладел Гандхарой областью на северозападе Индии затем двинулся в пределы самой империи. Инд частью Центральной Индии совр.
21994. Индия в XII-XVII вв. 74.5 KB
  Завоеванные индийские земли были включены в состав гос. земель державы Гуридов и Мухаммед Гури как их верховный собственник стал раздавать эти земли в условное феодальное держание икта своим военачальникам поставив над ними в качестве наместника Кутбаддина Айбека. Военачальники которым он роздал индийские земли в феодальное держание отказались признать нового правителя Газни своим господином и создали на территории Северной Индии собственное государство получившее название по имени своей столицы Делийский султанат 12061526 гг....
21995. Иран в V-VII – X- XIII вв. 50.5 KB
  Сасанидский Иран крупнейшее государство Передней Азии. Эти изделия вывозились в страны Средиземноморья Азии Китай. Азии. Азии.
21996. Средневековая культура 107 KB
  Не откажите прислать с подателем сего письма деньги а также туфли и чулки. появилось деление на семестры большой ординарный учебный период magnus ordinaries с октября день св. Поскольку смех был изгнан из официальной жизни то поэтому появились праздники дураков которые проводились на Новый год день невинноубиенных младенцев Богоявление Иванов день. Здесь и страдающий Христос окруженный мальчикамиангелами; Тайная вечеря где присутствовал и Фома Аквинский борьба архангела Михаила с демонами источник бьющий вином гроб...
21997. Средневековый город 107.5 KB
  речь идет о функциях и свойствах города его месте в средневековом обществе. В средние века официально городом считалось поселение получившее от властей статус города закрепленный особыми грамотами имеющее внешние атрибуты стены ров укрепления много улиц жителей ратушу собор церкви большие здания порт рынки административные учреждения скопление властей уличную толпу. Существует свыше десятка теорий происхождения средневекового города: романистическая идея непрерывного развития города от римских времен до нового времени...
21998. Столетняя война (1137-1453) 60.5 KB
  Можно рассматривать и как феодальную войну за наследство земли но и как освободительную борьбу о стороны Франции и как первый общеевропейский международный конфликт. Но во Франции сославшись на LXIX титул Lex Salica лилии не прядут престол отдали представителю боковой линии французского дома Капетингов племяннику Филиппа Красивого Филиппу Валуа Филипп VI 13281350 и кузену Карла IV. Эдуард III начал войну в которую втянулись империя Фландрия Арагон Португалия на стороне Англии Кастилия Шотландия папство на стороне...