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.  Як оголосити масив структур?


 

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

19596. Ручні інструменти для нанесення фарб та лаків 221 KB
  Ручні інструменти для нанесення фарб та лаків. Лакофарбові матеріали на підготовлену поверхню наносять вручну пензлями а механізовано розпиленням наливом зануренням та на вальцових верстатах. Для ручного нанесення фарб на поверхню деревини застосовують різном
19597. Вивчення вимірювальних генераторів 4.05 MB
  Генератор Г3-112 – джерело низькочастотних синусоїдальних та прямокутних сигналів. Діапазон частот: від 10 Гц до 10 МГц для синусоїдального сигналу та від 10 Гц до 1 МГц для меандру
19598. Технологія як перетворююча діяльність людини 26.54 KB
  Урок 1. Вступне заняття. Технологія як перетворююча діяльність людини 1 год. Мета уроку. Засвоєння знань про техніку технології основні види технологічної діяльності правила безпечної праці та внутрішнього розпорядку у шкільній майстерні. Розвивати пам'ять. Вихову
19600. Об’єкти технологічної діяльності 28.99 KB
  Урок 2. Обєкти технологічної діяльності 1 год. Мета уроку. Засвоєння знань про обєкти технологічної діяльності метод фантазування як засіб створення обєктів технологічної діяльності показники якості виробу; види виробів з фанери. Формування вмінь здійснювати по
19601. Художнє конструювання виробу. Урок 276.33 KB
  Художнє конструювання виробу. Мета уроку. Засвоєння знань про етапи проектування ескіз технічний опис макет креслення шаблони; формування вмінь застосовувати метод фантазування виконувати ескізне конструювання. Розвивати окомір точність під час в...
19602. Технічне конструювання 163.8 KB
  Урок 4. Технічне конструювання 1 год. Мета уроку. Засвоєння знань про технічний рисунок креслення типи ліній нанесення розмірів застосування масштабу умовні позначення. Формування вмінь користуватися креслярським інструментом наносити розміри на кресленні. Вих...
19603. Побудова простого креслення об’єкта проектування 21.48 KB
  Урок 5. Побудова простого креслення обєкта проектування 1 год. Мета уроку. Формування вмінь користуватися креслярським інструментом наносити розміри на кресленні; оформляти технічний рисунок креслення обєкта проектування. Розвивати просторову уяву. Виховувати о
19604. Конструкційні матеріали та їх види 26.42 KB
  Урок 6. Конструкційні матеріали та їх види 2 год. Мета уроку. Засвоєння знань про види та способи вибору конструкційних матеріалів; формування практичних вмінь визначати види конструкційних матеріалів за їх властивостями; сприяти розвитку памяті. Виховувати інтерес ...