Практическая работа №6
Массивы структур и массивы строк 1. Цель работы: 1. Получить практические навыки работы с динамическими строковыми данными. 2. Получить практические навыки работы со структурами. 3. Получить практические навыки организации динамических массивов с элементами сложной структуры. Теоретические сведения Структуры Структура – это объединенное в единое целое множество поименованных элементов данных. Элементы структуры (поля) могут быть различного типа, они все должны иметь различные имена.
struct Date //определение структуры { int day; int month; int year; };
Date birthday; //переменная типа Date Для переменных одного и того же структурного типа определена операция присваивания. При этом происходит поэлементное копирование. Доступ к элементам структур обеспечивается с помощью уточненных имен: имя_структуры.имя_элемента
//присваивание значений полям переменной birthday birthday.day=11; birthday.month=3; birthday.year=1993; Date Data; // присваивание значения переменной birthday переменной Data Data=birthday; Из элементов структурного типа можно организовывать массивы также как из элементов стандартных типов.
Date mas[15]; //массив структур
//ввод значений массива for(int i=0;i<15;i++) { cout<<”\nEnter day:”;cin>>mas[i].day; cout<<”\nEnter month:”;cin>>mas[i].month; cout<<”\nEnter year:”;cin>>mas[i].year; }
Постановка задачи 1. Сформировать динамический массив из элементов структурного типа. Структурный тип определен в варианте. 2. Распечатать сформированный массив. 3. Выполнить поиск элементов в массиве, удовлетворяющих заданному в варианте условию и сформировать из них новый массив. 4. Распечатать полученный массив. 5. Сформировать динамический массив, состоящий из динамических строк. 6. Распечатать сформированный массив. 7. Выполнить обработку этого массива. 8. Распечатать полученный массив. Варианты
Методические указания 1. Для выделения памяти под массивы использовать операцию new, для удаления массивов из памяти – операцию delete. 2. Для формирования и печати структур написать отдельные функции: person make_person() { int Age; char Name[20]; cout<<"Name?"; cin>>Name; cout<<"Age?"; cin>>Age; person p; p.name=new char[strlen(Name)+1]; strcpy(p.name,Name); p.age=Age; return p; } void print_person(person p) { cout<<"\nName: "<<p.name<<"\t"<<"Age: "<<p.age; } 3. Для выделения памяти, заполнения массивов, поиска заданных элементов написать отдельные функции. В функции main() должны быть размещены только описания переменных и обращения к соответствующим функциям. 5. Если в массиве отсутствуют элементы, соответствующие критерию поиска, то должно быть выведено сообщение о том, что требуемые элементы не найдены. 6. При удалении строк предусмотреть ситуации, в которых будет выполняться попытка удаления строки из пустого массива или количество удаляемых элементов будет превышать количество имеющихся строк. В этом случае должно быть выведено сообщение об ошибке.
Содержание отчета
Популярное: Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы... Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней... Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (837)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |