Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Float sum;






};

Здесь ELEM -имя структуры; num, name и sum – элементы структуры и их типы. В качестве элементов структуры могут быть также использованы имена других структур.

При описании структуры используется имя шаблона. Могут быть описаны отдельные структуры, массивы структур, а также указатели на структуры и массивы указателей. Примеры описаний:

struct ELEM st; // структура

struct ELEM sm[10]; // массив структур

struct ELEM *sp; // указатель на структуру

struct ELEM *spm[10]; // массив указателей на структуры

Для обращения к элементу структуры исполняется операция «.», например:

st.num = 2;

sm[3].sum = 3.3;

scanf («%s», & sp.name);

Для обращения к элементу структуры, адресуемой указателем, используется операция «->», например:

sp-> num = 2;

spm[3]-> sum = 3.3;

spm-> name = ’R’;

3. Методические указания.

При написании программы следует использовать статические массивы структур или указателей на структуры. Размерности массивов – 3-4. Для динамического выделения памяти используйте функцию malloc(). Для определения размера структуры в байтах удобно использовать операцию sizeof(), возвращающую целую константу:

struct ELEM *sp;

sp = malloc(sizeof(structELEM));

При выполнении п. 4.2. потребуется выполнять операцию перестановки элементов массива. Для этого необходимо описать дополнительный указатель на структуру. Можно также использовать вспомогательный массив указателей.

Ввод данных выполнить с помощью функций scanf().

4. Порядок выполнения работы

4.1. Написать программу, работающую с базой данных в виде массива структур и выполняющую последовательный ввод данных в массив и последующую распечатку его содержимого. Состав структуры приведен в табл. 5.1. Типы данных выбрать самостоятельно.

4.2. Переписать программу п.4.1, используя массив указателей на структуры и динамическое выделение памяти. Выполнить сортировку массива. Способ сортировки массива приведен в табл. 5.1.

 

Таблица 5.1

Вари ант Структура данных Задание п. 4.2.
  Фамилия Год рождения Номер отдела Оклад Расположить записи в массиве в порядке возрастания (по году рождения)
  Название детали Год выпуска Стоимость Количество Расположить записи в массиве в порядке возрастания стоимости
  Название книги Год издания Количество страниц Стоимость Расположить записи в массиве в алфавитном порядке (по названию)
  Фамилия Дата рождения Телефон Сумма долга Все записи с суммой долга, не равной 0, разместить в начале массива
  Название покупки Дата приобретения Стоимость Количество Сгруппировать все записи по месяцам приобретения
Вари ант Структура данных Задание п. 4.2.
  Название команды Игры Очки Сумма призового фонда Расположить записи в порядке возрастания по сумме призового фонда
  Фамилия Группа Номер в списке Стипендия Расположить записи в порядке возрастания номера в списке
  Название маршрута Протяженность Количество остановок Стоимость путевки Расположить записи в порядке убывания стоимости
  Фамилия спортсмена Вид спорта Количество медалей Призовой фонд Расположить в алфавитном порядке записи с ненулевым количеством медалей
  Название детали Количество Вес Адрес поставщика Расположить записи в порядке убывания количества деталей, с весом больше заданного.
  Фамилия Группа Место прохождения практики Оценка Расположить записи в массиве в порядке убывания оценки
  Гос. номер Марка/модель автомобиля Фамилия владельца Дата угона автомобиля Расположить записи в массиве в порядке возрастания даты угона
  Наименование товара Наименование заказчика Количество заказанного товара Фамилия менеджера Расположить записи в массиве в алфавитном порядке по наименованию заказчика
  Номер рейса Дата вылета Фамилия пассажира Номер кассы   Расположить записи в массиве в порядке возрастания номера кассы
Вари ант Структура данных Задание п. 4.2.
  Район города Количество комнат в квартире Площадь квартиры Цена квартиры Расположить записи в массиве в порядке возрастания количества комнат
  Фамилия студента Группа Наименование дисциплины Оценка Расположить записи в массиве в порядке убывания оценки
  Фамилия преподавателя Наименование дисциплины Номер курса Аудитория Расположить записи в массиве в алфавитном порядке по фамилии преподавателя
  Учетная запись пользователя Буква диска Дисковая квота пользователя Объем занятого дискового пространства Расположить записи в массиве в алфавитном порядке по учетной записи пользователя
  Название книги Издательство Цена книги Количество книг Расположить записи в массиве в алфавитном порядке по названию издательства
  Наименование микросхемы Тип корпуса Наименование изготовителя Цена Расположить записи в массиве в порядке возрастания цены

 

5. Содержание отчета

5.1. Задание.

5.2. Листинги программ по пп. 4.1 и 4.2.

5.3. Тестовый пример.

 

6. Контрольные вопросы

6.1. Правила описания структур.

6.2. Операции, используемые для выделения элементов структур.

6.3. Выделение элементов структур, адресуемых указателем.

6.4. Назначение функции malloc().

6.5. Отличие calloc() от malloc().

6.6. Правила инициализации структур при описании.

6.7. Особенности выделения памяти под структуры.

6.8. Назначение функций realloc() и free().

6.9. Как передать структуру в функцию?

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.