Структуры, объединения, перечисления в C++

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

Структуры, объединения, перечисления в C++

1. Цель работы

Целью лабораторной работы является получение практических навыков в программировании структур , объединений и перечислений.

2. Темы для предварительной проработки

· работа с оператором цикла for;

· работа с оператором условия if;

· одномерные массивы;

· двумерные массивы.

3.Теоретический материал

3.1 Структуры в C++

Объявление структуры

· переменная любого допустимого типа; · битовое поле; · функция;

Выделение памяти

· память под все элементы структуры выделяется последовательно для каждого элемента; · для битовых полей память выделяется, начиная с младших разрядов; · память, выделяемая под битовые поля, кратна байту;

Доступ к элементам структуры

Для обращения к отдельным элементам структуры используются операторы: . и ->. Доступ к элементам структуры может иметь следующее формальное описание: переменная_структурного_типа.элемент_структуры=значение;

Передача структур в качестве параметров

Передача параметров может выполняться: · по ссылке или указателю; · по значению.

3.2 Объединения

Использование объединений значительно экономит память, выделяемую под объекты. При создании переменной типа объединение память под все элементы объединения… Так, компилятор C++ выделит 4 байта под следующее объединение:

3.3 Перечисления

Перечисление задает для каждого мнемонического названия в указываемом множестве свой индекс. Перечисление может иметь следующее формальное описание:  

3.4.Сортировка массива по возрастанию (метод пузырька)

Основная идея сортировки (например, по возрастанию) методом пузырька очень простая. Предположим, что у нас N элементов в массиве и индекс каждого элемента лежит в промежутке от 1 до N.

Первый шаг сортировки методом пузырька

2. Сравниваем второй и третий элементы массива. Если второй элемент больше, чем третий, то меняем их местами. 3. ... 4. Сравниваем предпоследний (N-1) и последний (N) элементы массива. Если предпоследний элемент больше, чем последний,…

Второй шаг сортировки методом пузырька

2. Сравниваем второй и третий элементы массива. Если второй элемент больше, чем третий, то меняем их местами. 3. ... 4. Сравниваем элемент N-2 и элемент N-1 массива. Если (N-2)-й элемент больше, чем элемент N-1, то меняем их…

Последующие шаги сортировки методом пузырька

После завершения последнего шага наш массив будет отсортирован по возрастанию. /****************************************************************** Процедура для сортировки массива методом пузырька

3.5. Функции работы со строками

Для облегчения работы со строками в стандартной библиотеки С <string.h> есть несколько специальных функций. Например, для копирования одной… char a[30]; //выделяет память для строки их 29 символов strcpy (a, ”This is a text.”) //копирует строковый литерал в символьный массив

4. Задания для выполнения

 

№ ВАРИАНТА ЗАДАНИЕ
Вариант 1 Создайте структуры, содержащую информацию о студентах группы. Включите в нее: фамилию, имя, отчество, возраст и основной изучаемый иностранный язык нескольких студентов. Найдите самого молодого студента.  
Вариант 2 Создайте структуры, содержащую информацию о студентах группы. Включите в нее: фамилию, имя, отчество, возраст и основной изучаемый иностранный язык нескольких студентов. Найдите самого старшего студента.  
Вариант 3 Создайте структуры, содержащую информацию об адресах студентов группы. Включите в нее: фамилию, город, улицу, дом и квартиру проживания. Упорядочите студентов в порядке возрастания номера дома.  
Вариант 4 Создайте структуры, содержащую информацию об адресах студентов группы. Включите в нее: фамилию, город, улицу, дом и квартиру проживания. Упорядочите студентов в порядке убывания номеров квартиры.  
Вариант 5 Создайте структуры, содержащую информацию о студентах группы. Включите в нее: фамилию, имя, отчество, возраст и основной изучаемый иностранный язык нескольких студентов. Упорядочите студентов по алфавиту имен.  
Вариант 6 Создайте структуру, содержащую информацию о студентах группы. В структуру включите: фамилию, имя, отчество, номер зачетной книжки. Упорядочите студентов по номерам зачетной книжки.  
Вариант 7 Создайте структуру, содержащую информацию о студентах группы. В структуру включите: фамилию, имя, отчество, номер зачетной книжки, средний бал по итогам семестра. Определите студента с максимальным средним балом.  
Вариант 8 Создайте структуру, содержащую информацию о студентах группы. В структуру включите: фамилию, имя, отчество, номер зачетной книжки, средний бал по итогам семестра. Определите студента с минимальным средним балом.  
Вариант 9 Создайте структуру, содержащую информацию о студентах группы. В структуру включите: фамилию, имя, отчество, номер зачетной книжки, средний бал по итогам семестра. Упорядочите студентов в порядке возрастания среднего бала.  
Вариант 10 Создайте структуру, содержащую информацию о студентах группы. В структуру включите: фамилию, имя, отчество, номер зачетной книжки, средний бал по итогам семестра. Упорядочите студентов в порядке убывания среднего бала.

 

5. Разработка текста программы

Ниже приведен пример программы где создана структура с определенными полями и происходит сортировка по полю возраст.   #include <vcl.h>