Студопедия

КАТЕГОРИИ:

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


МАССИВЫ СТРУКТУР И МАССИВЫ СТРОК




Цель работы :

1. Получить практические навыки работы с динамическими строковыми данными.

2. Получить практические навыки работы со структурами.

3. Получить практические навыки организации динамических массивов с элементами сложной структуры.

 

Задание:

1. Сформировать динамический массив из элементов структурного типа. Структурный тип определен в варианте.

2. Распечатать сформированный массив.

3. Выполнить поиск элементов в массиве, удовлетворяющих заданному в варианте условию и сформировать из них новый массив.

4. Распечатать полученный массив.

5. Сформировать динамический массив, состоящий из динамических строк.

6. Распечатать сформированный массив.

7. Выполнить обработку этого массива.

8. Распечатать полученный массив.

 

Длительность:4 часа.

Теоретические основы:

Структура – это объединенное в единое целое множество поименованных элементов данных. Элементы структуры (поля) могут быть различного типа, они все должны иметь различные имена.

 

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;

}

 

Задания по вариантам к лабораторной работе №10:

№ варианта Структура Критерий для поиска в массиве структур Задание для обработки массива строк
struct person { char*name; char *adres; int age; }; Имена начинаются на букву ‘A’ Добавить строку с заданным номером
struct date { int day; char*month; int year; }; Даты с летними месяцами Удалить строку с заданным номером
struct student { char*name; int kurs; float rating }; Студенты первого курса Добавить строку в конец массива
struct employee { char*name; float salary; int stage }; Сотрудники со стажем больше 10 лет Удалить строку из конца матрицы
struct pupil { char*name; int age; float rating }; Ученики со средним баллом больше 4 Добавить строку в начало массива
struct person { char*name; int age; }; Возраст больше 25 лет Удалить строку из начала массива
struct date { int day; char*month; int year; }; Даты после 2000 года Добавить К строк в конец массива
struct student { char*name; int kurs; float rating }; Студенты, у которых рейтинг меньше 3 Удалить К строк из конца матрицы
struct employee { char*name; float salary; int stage }; Сотрудники, у которых имя начинается на букву ‘Л’ Добавить К строк в начало массива
struct pupil { char*name; int age; float rating }; Ученики, у которых фамилия “Иванов” Удалить К строк из начала массива
struct person { char*name; int age; }; Возраст меньше 18 Удалить строку с номером К
struct date { int day; char*month; int year; }; Дата принадлежит первой декаде месяца Добавить строку с номером К
struct student { char*name; int kurs; float rating }; Студены пятого курса Удалить строки, начиная со строки К1 и до строки К2
struct employee { char*name; float salary; int stage }; Сотрудники со стажем меньше 3 лет Добавить строки, начиная со строки К1 и до строки К2
struct pupil { char*name; int age; float rating }; Ученики со средним баллом равным 4.5 Удалить все строки, которые начинаются на букву ‘F’
struct person { char*name; int age; }; Имена начинаются на букву ‘A’ Удалить все четные строки
struct date { int day; char*month; int year; }; Даты с зимними месяцами Удалить все строки, в которых есть хотя бы одна цифра
struct student { char*name; int kurs; float rating }; Студенты первого курса у которых рейтинг меньше 3 Удалить все столбцы, в которых есть хотя бы одна буква ‘A’
struct employee { char*name; float salary; int stage }; Сотрудники со стажем больше 10 лет и заработной платой больше 15000 Удалить самую длинную строку массива
struct pupil { char*name; int age; float rating }; Ученики 13 лет со средним баллом больше 4 Добавить строки после каждой четной строки массива
struct person { char*name; int age; }; Возраст больше 25 лет и фамилия начинается на букву ‘C’ Удалить каждую нечетного строку массива
struct date { int day; char*month; int year; }; Зимние даты после 2000 года Добавить К строк, начиная со строки с номером N
struct student { char*name; int kurs; float rating }; Студенты 1 и 2 курса, у которых рейтинг меньше 3 Удалить К строк, начиная со строки с номером N
struct employee { char*name; float salary; int stage }; Сотрудники, у которых имя начинается на букву ‘Л’ и заработная плата меньше 6000 Добавить строку после самой длинной строки массива
struct pupil { char*name; int age; float rating }; Ученики, у которых фамилия “Иванов” и рейтинг больше 4 Добавить строку после самой короткой строки массива

 

Требования к отчёту по лабораторной работе:

1. оформить отчет по соответствующим требованиям (титульный лист)

2. сформулировать цель работы

3. задание;

4. схема алгоритм программы;

5. текст программы;

6. выводы по результатам выполнения лабораторной работы;

7. список используемой литературы (обязательно из электронной библиотеки).

 


Поделиться:

Дата добавления: 2015-02-09; просмотров: 129; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты