17560

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

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

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

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

Украинкский

2013-07-04

111.5 KB

13 чел.

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


 

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

52381. Будова речовини. Атоми та молекули. Взаємодія молекул. Явище дифузії 74 KB
  Мета: вдосконалити уявлення та знання учнів про атоми та молекули та взаємодію; сформувати знання учнів про явище дифузії та дослідити залежність швидкості процесу дифузії від температури; формувати в учнів науковий світогляд інтерес до фізики розвивати уяву учнів спонукати їх до самовдосконалення та самореалізації. Учитель фізики. Формування нових знань Учитель фізики. Учитель фізики.
52382. Розробка бінарного уроку на тему: «Вплив податкової системи на формування державного бюджету» 534 KB
  Згідно даних динаміки доходів Держбюджету України за 2003-2010 роки найбільшим джерелом доходів держбюджету є податок на додану вартість. Другим за величиною джерелом надходжень до бюджету є податок на прибуток підприємств. Вплив держбюджету на розвиток економіки Підприємство сплачує до дохідної частини держбюджету три основних види податків: акцизний збір податок на додану вартість податок на прибуток. Є ціле розмаїття податків про яких багато хто навіть і не чули 1 ведучий – Податок на...
52383. Сімейний бюджет. Доходи і витрати сім’ї 138 KB
  Доходи і витрати сім’ї. Мета: поглибити знання про доходи сім’ї як джерело збільшення її багатства; види доходів витрати обов’язкові платежі бюджет родини; вчити планувати бюджет родини раціонально розраховувати витрати і співставляти їх з доходами; усвідомити свою роль у формуванні сімейного бюджету; виховати грамотного споживача та дбайливого господаря. Основні поняття: доходи витрати бюджет сім’ї збалансований бюджет надлишковий бюджет дефіцитний бюджет....
52384. Відбитки готових природних форм (листя, трава). Композиція «Букет осіннього листя у вазі» 156.5 KB
  Актуалізація опорних знань Читання загадки вчителем Скажіть про яку пору року говориться в загадці Загадка Дрібненький дощик сумно плаче І листячко жовтогаряче З дерев повільно опадає Яка пора це наступає Осінь Чим вам подобається осінь А чи любите ви збирати листочки А що з ними можна зробити скласти букет зробити віночок ІІІ. Робота над темою уроку Вступна бесіда Ось і прийшла золота осінь. додаток 1 Вирушаючи з вами на осінню прогулянку до лісу ми уважно...
52385. Полуфабрикаты 294.5 KB
  В зависимости от источников образования и целевого назначения имущество организаций разделяют на собственное собственный капитал и заемная. Собственный капитал это вложения собственников и прибыль накопленная за время деятельности организации. Собственный капитал.Заемный капитал.
52387. Сценарий праздника “Прощанье с букварем” 65.5 KB
  Учитель. Дорогие гости! Сегодня мы проводим традиционный праздник в первом классе – Праздник Букваря. Говорят, Азбука – к мудрости ступенька. Вот вы и одолели самую трудную, самую важную первую ступеньку на пути к знаниям! Много праздников прекрасных На листках календаря, А меж ними тоже праздник Школьный – праздник Букваря.
52388. Праздник «Прощай, Букварик» 101.5 KB
  Многие из вас не умели читать и писать знали только некоторые буквы. Мы при расставании скажем на прощанье: Тебе за всё спасибо наш дорогой Букварь Буквы мы узнали слоги прочитали И сложили в слоги целые слова После в предложенье. Вдруг на удивленье сразу получилось Родина моя А потом и мама та что моет раму Дети в мяч играют Речка небо лес А ещё в программе прочитали сами Буквы на экране Поле из чудес. Напишу в тетради не оценки ради Буквы алфавита и пример решу.
52389. Прощание с Букварём 60.5 KB
  Букварь Книга для чтения. Плакат: Спасибо тебе Букварь Модель золотого ключика Диалог между мальчиком и девочкой В зале у нас суматоха и шум шёпот движения споры. Мы закончили первую школьную книгу букварь. А научил Вас читать и писать наш умный интересный и добрый друг букварь.