Структуры
Структура для описания точки на плоскости:
Структура для описания даты:
Структура для описания книги:
Структура, описывающая студента, поступившего в ВУЗ по результатам ЦТ:
Описание переменных типа структура.
Инициализация структуры:
Обращение к полям структуры:
Описание структуры для хранения отрезка, концы которого являются точками:
Использование:
316.50K
Category: programmingprogramming

Структуры_1-

1. Структуры

ПРОГРАММИРОВАНИЕ НА С++

2.

Структуры
Структура - это набор из одной или более
переменных, возможно различных типов,
сгруппированных под одним именем для
удобства обработки.

3.

Структура
представляет собой сложный тип данных,
составленный из простых типов,
позволяющий использовать группу
связанных между собой данных как единое
целое.
Отдельный элемент структур называют
полем.

4.

Структуры
Дата состоит из нескольких частей таких,
как:
• день,
• месяц,
• год,
• возможно, день недели
• имя месяца.

5.

Структуры
Эти пять переменных можно объединить в
одну структуру вида:
struct date
{
int day;
int month;
int year;
int week_day;
char mon_name[4];
}

6.

Структуры
Теперь можно объявлять переменные типа
date:
struct date x, y;
или просто
date x, y;

7.

Общая форма объявления структуры:
struct имя_типа
{
тип_1 элемент_1;
тип_2 элемент_2;

тип_n элемент_n;
};

8. Структура для описания точки на плоскости:

struct tchk
{
double x, y;
};

9. Структура для описания даты:

struct date
{
int d, m, g;
};

10. Структура для описания книги:

struct kniga
{
string avt, nazv;
int str, god;
};

11. Структура, описывающая студента, поступившего в ВУЗ по результатам ЦТ:

struct student
{
string fam, gorod;
int god_r;
В данном примере для каждого студента
хранится его фамилия (fam), город из
которого он приехал (gorod), год
рождения (god_r). В векторе
otm хранятся три отметки, полученные на
ЦТ, поле sr_bal предназначено для
хранения среднего балла аттестата.
vector <int> otm = vector<int>(3);
int sr_bal;
};

12. Описание переменных типа структура.

Описание переменных типа структура.
Здесь описаны
tchk A, B;
переменные А и В типа tchk (две
точки); переменные d1 и d2 типа date
date d1, d2;
(две даты); переменная K типа kniga и
переменная gruppa, являющаяся
массивом, содержащим описание для 30
kniga K;
студентов.
vector <student> gruppa (30);

13. Инициализация структуры:

A = {3.2, -4.1};
K = {"Н.Я.Виленкин",
"Комбинаторика", 400, 2013};
Точка А имеет координаты (3.2; -4.1): книга K —
«Комбинаторика», автор — Н. Я. Виленкин, в ней
400 страниц, издана в 2013 г.

14. Обращение к полям структуры:

B.x = 1; B.y = -1;
cin >> d1.d >> d1.m >> d1.g;
if (K.str > 100)…;
cout << gruppa[2].otm[1]

15. Описание структуры для хранения отрезка, концы которого являются точками:

struct otrezok
{
tchk beg, en;
};
Использование:
otrezok AB;
AB.beg.x = 0;
AB.beg.y = 0;
AB.en.x = 2;
AB.en.y = -3;
ИЛИ
tchk A = {0,0}, B = {2, -3};
otrezok AB = {A, B};

16. Использование:

otrezok AB;
AB.beg.x = 0;
AB.beg.y = 0;
AB.en.x = 2;
AB.en.y = -3;
tchk A = {0,0},
B = {2, -3};
otrezok
AB = {A, B};

17.

Структуры
Обращение
структуры:
к
отдельному
элементу
x.day = 22;
x.month = 1;
cout << x.day << "." << x.month;

18.

Структуры
Структуры можно присваивать:
y = x;

19.

Структуры
Но нельзя сравнивать:
if (x==y) cout << "*";

20.

Структуры
Структуры могут быть вложенными –
карточка ученика может выглядеть так:
struct pupil
{
char name[20];
char address[50];
date birthdate;
float sb;
};
// имя
// адрес
// дата рождения
// средний балл

21.

Структуры
Если мы определим Ivan как
pupil Ivan;
то
Ivan.birthdate.month
будет ссылаться на месяц рождения.

22.

Структуры
Массив структур:
pupil Class [20];
Class[3].sb = 8.9;
Class[3].birthdate.day = 22;

23.

Структуры
Указатель
на
структуру
аналогичен
указателю на любой другой тип данных.

24.

Структуры
pupil *pp = class;
pp++; // сдвиг на 1 элемент массива
// обращение к массиву по указателю
cout << (*pp). birthdate.month;
// то же самое, но короче и нагляднее
cout << pp-> birthdate.month;
English     Русский Rules