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


 

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

28141. Европейский функционализм 44 KB
  Предметом психологии функционализм обозначает сознание и функционалистов не интересует строение сознания. Их интересуют два главных вопроса::Какова роль сознания психики в жизнедеятельности организмовУ истоков европейского функционализма стоял австрийский психолог Франц Брентано 18381917. Главной для новой психологии он считал проблему сознания. Для обозначения этого признака сознания Брентано предложил термин интенция .
28142. Американский функционализм 24 KB
  Не требует особых комментариев положение о том насколько существен для научной теории этот аспект анализа реальной работы производимой как внутри состава собственно психического акта так и в процессе его организующего воздействия на приспособление организма к среде и на активное преобразование последней. Стимул перестает быть независимым по отношению к организму и его реакции Объект становится производным от акта или функции. Дьюи выступал с резкой критикой детерминистической концепции рефлекторного акта в которой объект действия не...
28143. Методы психологии труда 173.5 KB
  ПТ пытается решить две основных макрозадачи: 1 повышение производительности и эффективности трудовой деятельности 2 гуманизация трудовой деятельности содействие развитию личности в ней. как регуляторов трудовой деятельности и их развития в деятельности. Изучение основных психических свойств субъекта трудовой деятельности и ее эффективности. Изучение проблемы мотивации трудовой деятельности.
28144. Виды и функции речи 61 KB
  Существуют различные виды речи: речь жестов и звуковая речь письменная и устная речь внутренняя и внешняя речь. Выделять виды речь можно по разным основаниям и благодаря этому подчеркиваются разные стороны речевой деятельности. В зависимости от выявленности речевой деятельности вовне различают внешнюю и внутреннюю речь. Это речь обращенная к другому человеку это речь для другого.
28145. Психологическая готовность ребенка к школьному обучению 26.85 KB
  Вопрос готовности ребёнка к школьному обучению начал решаться с перевода детей на обучение с 6ти лет. Важна задача не снабжения знаниями ребёнка а его развитие. Выделяется 3 аспекта зрелости: интеллектуальный дифференцированное восприятие концентрация внимания аналитическое мышление способность постигать основные связи между явлениями способность логического запоминания умение воспринимать образец развитие тонкой моторики и координации; эмоциональный уменьшение импульсивных реакций возможность длительное время выполнять...
28146. Концепция В. Дильтея 37 KB
  В период открытого кризиса его описательная психология как наука о духе занимала одно из центральных мест. Дильтей считал что господствовавшая психология атомистическая элементаристическая не дает адекватной картины духовной жизни человека она строится на объяснительных методах заимствованных из естествознания и как наука о личности должна быть отвергнута. Описательная психология рассматривает также развитие личности каждый этап которого определяется характерной для него ценностью все более возрастающей. Описательная психология по...
28147. Динамика становления психологической культуры у субъектов образования 73.5 KB
  Однако в психологической науке отсутствует целостное представление о данном феномене. Он выделяет следующие компоненты психологической культуры: Презентативный компонент его образует комплекс представлений о природе психики ее возможностях закономерностях функционирования; стереотипы восприятия понимания интерпретации психических феноменов в том числе индивидуальных особенностей психики. Другими авторами выделяются когнитивный процессуально деятельностный и эмоциональнооценочный компоненты психологической культуры.
28148. Уровни нравственного развития личности (по Колбергу) 128 KB
  Ребёнка любят и он это чувствует. Все потребности ребёнка быстро удовлетворяются. Ребёнок считает что мир это уютное место а люди любят ребёнка людей можно любить и им можно доверять. 2 готовность ребёнка без тревоги и гнева переносить исчезновение матери из поля зрения.
28149. Личностный смысл болезни 46 KB
  Личностный смысл болезни есть жизненное значение для субъекта обстоятельств болезни в отношении к мотивам его деятельности. Частично смысл задаётся выбранным мифом шаманские болезни особый дар блаженные в отл от просто болезней. Существует целый спектр типов личностного отношения к болезни: болезнь как враг наказание слабость способ решения жизненных проблем и др.