17560

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

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

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

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

Украинкский

2013-07-04

111.5 KB

11 чел.

ЛАБОРАТОРНА РОБОТА № 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.  Як оголосити масив структур?


 

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

10401. Типология партийных систем. Развитие многопартийности в России 31 KB
  Типология партийных систем. Развитие многопартийности в России. В политологии принято различать партийные системы. В зависимости от положения и количества политических партий в политической системе взаимопонимания и взаимодействия между ними складывается партий
10402. Государство как институт политической системы общества, его основные черты и формы 43 KB
  Государство как институт политической системы общества его основные черты и формы. Центральным институтом политической системы является государство. Именно в его деятельности концентрируется основное содержание политики. Исследованием проблем государства заним
10403. Проблемы генезиса и сущность государства: многообразие подходов и точек зрения 27 KB
  Проблемы генезиса и сущность государства: многообразие подходов и точек зрения. Существует ряд концепций происхождения государства. Теократическая концепция связывает происхождение государства с божьим установлением его промыслом. Согласно этой концепции мон...
10404. Правовое государство и гражданское общество 29 KB
  Правовое государство и гражданское общество. Понятие правового государства тесно связано с понятием демократии. В ст.1. гл.1 российской Конституции сказано: Российская Федерация Россия есть демократическое федеративное правовое государство с республиканской формо...
10405. Парламент и парламентаризм 37.5 KB
  Парламент и парламентаризм. Парламент англ. parliament от франц. parlemeni от parler говорить высший представительный орган власти. Впервые был образован в Англии в XIII в. как орган сословного представительства, реальное значение приобрел после буржуазных революций XVII-XVIII вв. Па
10406. Сущность, основные черты и типы демократии 30.5 KB
  Сущность основные черты и типы демократии. В переводе с греческого термин демократия означает власть народа. Полное и четкое определение понятия демократия сформулировать достаточно сложно тем не менее можно выделить ряд характерных признаков присущих всем де...
10407. Современная система международных отношений: проблемы и противоречия 37.5 KB
  Современная система международных отношений: проблемы и противоречия. Международные отношения более сложное явление чем внешняя политика Это совокупность экономических политических идеологических правовых военных информационных дипломатических и других
10408. Глобальный и региональный аспекты международной безопасности в мире 42 KB
  Глобальный и региональный аспекты международной безопасности в мире. В наши дни в условиях все возрастающей взаимозависимости и взаимосвязи государств на мировой арене становится необходимым изучение не только политических систем отдельно взятых государств но и м...
10409. Понятие национального интереса. Приоритеты внутренней и внешней политики РФ. 40 KB
  Понятие национального интереса. Приоритеты внутренней и внешней политики РФ. Современный мир характеризуется переходом к многополярному мироустройству. Растет многообразие политического экономического и культурного развития стран идет поиск на национальном и ре...