Задание к лабораторной работе № 6




Прямой доступ к элементам

 

1) date1[5].day=10;

 

2) date1[5].year=1991;

3) strcpy (book1.title, “Война и мир”);

 

/* используя прямое обращение к элементу, присваиваем значение выбранной переменной. Текс помещается в переменную, используя функцию копирования – strcpy(); */

 

4) stud[3].birthday.month=1;

 

5) stud[3].birthday.year=1980;

 

Доступ по указателю

1) (date1+5)->day=10;

 

2) (stud+3)->birthday.month=1;

 

// Используя доступ по указателю на структуру, присваиваем значение соответствующей переменной. Указатель можно использовать и так:

3) (*(date1+5)).day=10;

 

4) (*(stud+3)).birthday.month=1;

 

Инициализация структур. При определении структурных переменных можно инициализироватьих поля. Эта возможность подобна инициализации массива и следует тем же правилами:

 

имя_шаблона имя_переменной_структуры = {значение1, значение2, ]};

 

Компилятор присваивает значение1 первой переменной в структуре, значение2 – второй переменной структуры и т.д., и тут необходимо следовать некоторым правилам:

- присваиваемые значения должны совпадать по типу с соответствующими полями структуры;

 

- можно объявлять меньшее количество присваиваемых значений, чем количество полей. Компилятор присвоит нули остальными полями структуры;

 

- список инициализации последовательно присваивает значения полям структуры, вложенных структур и массивов.

 

Пример:

 

Копирование структур-переменных. Язык С(С++) позволяет оператору присваивания копироватьзначения одной структуры-переменной в другую переменную, при условии, что обе структуры-переменные относятся к одному и тому же типу. Таким образом, единственный оператор может скопировать несколько членов данных, которые включают массивы и вложенные структуры.

 

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

 

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

 

 

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

 

В языке с++ есть специальная функция sort. Она очень гибкая и универсальная. Для подключения используйте следующую запись #include <algorithm>

Ее синтаксис:

sort(ссылка на 1 элемент массива, ссылка на элемент после массива, условие сортировки);

Условие сортировки пишется в отдельной функции. Сортировать можно все типы, даже строки!

Есть стандартная запись этой функции: sort(a,a+n), где aимя массива, nего длина. Данная запись подходит если необходимо отсортировать в порядке возрастания и массив однотипный!!!

 

Задание к лабораторной работе № 6

В отчете должны находиться:

1) Все набранные примеры.

2) программа (код и скриншот выполнения), которая решает поставленную задачу вашего варианта

3) Уметь отвечать на поставленные вопросы.

 

 

Варианты:

 

Ввести массив структур в соответствии с вариантом. Рассортировать массив в алфавитном порядке по первому полю, входящему в структуру. В программе реализовать меню:

1) Ввод массива структур;

2) Сортировка массива структур по заданному параметру;

3) Поиск в массиве структур по заданному параметру;

4) Изменение заданной структуры;

 

5) Удаление структуры из массива;

6) Вывод на экран массива структур;

7) Выход.

После каждой операции, кроме операции выхода, должно появляться это меню повторно.

 

Варианты:

 

1. Структура «Автосервис»: регистрационный номер автомобиля, марка, пробег, мастер, выполнивший ремонт, сумма ремонта.

 

2. Структура «Сотрудник»: фамилия, имя, отчество; должность; год рождения; заработная плата.

3. Структура «Государство»: название; столица; численность населения; занимаемая

площадь.

4. Структура «Человек»: фамилия, имя, отчество; домашний адрес; номер телефона;

возраст.

 

5. Структура «Читатель»: Фамилия И.О., номер читательского билета, название книги, срок возврата.

 

6. Структура «Школьник»: фамилия, имя, отчество; класс; номер телефона; оценки по предметам (математика, физика, русский язык, литература).

7. Структура «Студент»: фамилия, имя, отчество; домашний адрес; группа; рейтинг.

 

8. Структура «Покупатель»: фамилия, имя, отчество; домашний адрес; номер телефона; номер кредитной карточки.

 

9. Структура «Пациент»: фамилия, имя, отчество; домашний адрес; номер медицинской карты; номер страхового полиса.

10. Структура «Информация»: носитель; объем; название; автор.

 

11. Структура «Клиент банка»: Фамилия И.О., номер счета, сумма на счете, дата последнего изменения.

12. Структура «Склад»: наименование товара, цена, количество, процент торговой

надбавки.

 

13. Структура «Авиарейсы»: номер рейса, пункт назначения, время вылета, дата вылета, стоимость билета.

 

14. Структура «Вокзал»: номер поезда, пункт назначения, дни следования, время прибытия, время стоянки.

15. Структура «Кинотеатр»: название кинофильма, сеанс, стоимость билета, количество

зрителей.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2018-01-31 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: