Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
387.doc
Скачиваний:
11
Добавлен:
30.04.2022
Размер:
3.51 Mб
Скачать

Структуры

Структуры являются аналогом классов, но в отличие от них являются типом значения. То есть, значения типа структура передаются по значению, а не по ссылке.

Для описания структур используется ключевое слово struct

struct <имяТипа>

{

<объявлениеЧлена>

}

Объявление каждого члена имеет следующий вид

<доступ> <тип> <имя>;

Чтобы код, обращающийся к структуре, имел доступ к ее полям, в разделе <доступ> следует писать ключевое слово public например,

struct route

{

public ort direct;

public double dist;

}

После описания типа route можно объявлять переменные этого типа

route myRoute1, myRoute2;

Для получения доступа к отдельным полям этой переменной используется точка:

myRoute1.direct = ort.norden;

myRoute1.dist = 5.67;

Пример:

using System;

namespace ConsoleApplication3

{

enum ort : byte

{

norden=1,

suden,

osten,

westen

}

struct route

{

public ort direct;

public double dist;

}

class Class1

{

static void Main(string[] args)

{

route myRoute; int myDirect =-1; double myDist;

Console.WriteLine("1) Norden\n2) Suden\n3) Osten\n4) Westen");

do

{

Console.WriteLine("Выбери направление");

myDirect=Convert.ToInt32(Console.ReadLine());

}

while( (myDirect <1) || (myDirect>4));

Console.WriteLine("Введите расстояние");

myDist=Convert.ToDouble(Console.ReadLine());

myRoute.dist=myDist;

myRoute.direct=(ort)myDirect;

Console.WriteLine("Мой маршрут направлен на {0} и его" +

" протяженность {1} км", myRoute.direct, myRoute.dist);

} } }

Рис. 23. Результаты обработки структуры

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

1. Как объявить перечисление?

2. Чем простая переменная от перечисления?

3. Какие типы можно использовать в качестве базового для перечисления?

4. Что представляет собой структура?

5. Как обратиться к полю структуры?

6. Является ли структура ссылочным типом?

7. Может ли членом структуры быть функция?

Содержание и порядок выполнения работы

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

Вариант 1

Описать структуру с именем BOOK, содержащую следующие поля:

- автор;

- название книги;

- жанр (тип – перечисление);

- количество страниц;

- цена;

- категория (тип – перечисление);

- год издания.

Написать программу, выполняющую следующие действия:

- инициализацию данных в массив, состоящий из 12 структур типа BOOK;

- сортировку записей по жанру;

- сортировку по цене;

- вывод записей в обратном (сортировке) порядке;

- удаление из массива записей заданной категории;

- вывод на дисплей всех книг, которые были изданы до 2000 года. Если таковых нет, вывести соответствующее сообщение.

Вариант 2

Описать структуру с именем FILM, содержащую следующие поля:

- название;

- режиссер;

- жанр (перечисление);

- продолжительность;

- носитель (тип – перечисление);

- фамилии актеров (тип - массив);

- сборы в 5 странах (тип – массив).

Сведения о режиссере в свою очередь представляет структуру с именем AUTOR со следующими полями:

- фамилия;

- страна, где работает;

- страна, где родился;

- возраст;

- список наиболее известных фильмов.

Написать программу, выполняющую следующие действия:

- инициализацию данных в массив, состоящий из десяти элементов типа FILM;

- вывод на экран информации о режиссере фильма, название которой введено с клавиатуры;

- сортировку по названию фильма;

- вывод фильмов заданного жанра;

- создание нового массива фильмов, имеющих самые низкие сборы;

- вывод фильмов, где снимался конкретный артист.

Вариант 3

Описать структуру с именем CKLAD, содержащую следующие поля:

- название товара;

- категория товара (тип – перечисление);

- оптовая цена;

- торговая наценка в процентах (тип – перечисление);

- объем партии товара;

- дата поступления товара на склад (тип – структура).

Написать программу, выполняющую следующие действия:

- инициализацию данных в массив, состоящий из 12 структур типа CKLAD;

- сортировку записей по категориям;

- сортировку записей по объему партий;

- формирование нового массива заданной категории;

- вывод на дисплей информации о товарах, которые поступили на склад за последние 30 дней. Если таковых нет, вывести соответствующее сообщение.

Вариант 4

Описать структуру с именем AVTO, содержащую следующие поля:

- сведения об автомобиле;

- фамилии владельцев (тип – массив).

Сведения об автомобиле в свою очередь представляет структуру с именем AVTOMOBIL со следующими полями:

- марка (тип – перечисление);

- номер;

- год выпуска;

- цена.

Написать программу, выполняющую следующие действия:

- инициализацию данных в массив, состоящий из 10 элементов типа AVTO;

- сортировку по марке;

- сортировку по количеству владельцев;

- формирование нового массива автомобилей, имеющих только 1 владельца;

- вывод на экран информации об автомобилях, цена которых не более 70000;

- вывести на экран фамилии владельцев, номера машин которых содержат в себе повторяющиеся цифры.

Если таковых нет, выдать на дисплей соответствующее сообщение.

Вариант 5

Описать структуру с именем STUDENT, содержащую следующие поля:

- фамилия и инициалы;

- номер зачетной книжки;

- факультет (тип – перечисление);

- номер группы;

- адрес;

- успеваемость (массив из пяти элементов).

Написать программу, выполняющую следующие действия:

- инициализацию данных в массив, состоящий из 12 структур типа STUDENT;

- сортировку записей по факультетам;

- сортировку по группам;

- формирование нового массива – отличников;

- удаление из исходного массива двоечников;

- вывод студентов, имеющих оценки 3 и 4. Если таковых нет, вывести соответствующее сообщение

Вариант 6

Описать структуру с именем STRANA, содержащую следующие поля:

- сведения о стране (тип – структура);

- континент (тип – перечисление);

- число жителей;

- площадь страны.

Сведения о стране в свою очередь представляет структуру с именем SVED со следующими полями:

- название страны;

- государственный язык (тип - массив);

- столица;

- денежная единица.

Написать программу, выполняющую следующие действия:

- инициализацию данных в массив, состоящий из десяти элементов типа STRANA;

- сортировку по плотности населения;

- формирование нового массива из стран, где более 1 гос. языков;

- вывод на экран информации о стране, название которой введено с клавиатуры.

Вариант 7

Описать структуру с именем NОТЕ, содержащую следующие поля:

- фамилия, имя;

- пол (тип – перечисление);

- номер телефона;

- категория знакомства (тип – перечисления)

- день рождения (структура).

Написать программу, выполняющую следующие действия:

- инициализацию данных в массив, состоящий из 14 элементов типа NOTE;

- сортировку записей по датам дней рождения;

- сортировку по номеру телефона;

- создание нового массива родственников;

- вывод на экран информации о человеке, номер телефона которого введен с клавиатуры.

Если такого нет, выдать па дисплей соответствующее сообщение.

Вариант 8

Описать структуру с именем PRODUCT, содержащую следующие поля:

- название товара;

- категория (тип – перечисление);

- оптовая цена;

- торговая наценка в процентах;

- объем партии товара;

- дата поступления товара на склад (тип – структура).

Написать программу, выполняющую следующие действия:

- инициализацию данных массива, состоящего из 10 структур PRODUCT;

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

- вывести массив в обратном порядке;

- удалить записи из массива по заданной категории;

- вывод на дисплей информации о товарах, которые поступили на склад за последние 5 дней. Если таковых нет, вывести соответствующее сообщение.

Вариант 9

Описать структуру с именем ELEMENT, содержащую следующие поля:

- порядковый номер;

- название элемента;

- группа (тип – перечисление);

- атомный вес.

Написать программу, выполняющую следующие действия:

- инициализацию данных в массиве, состоящем из 10 структур типа ELEMENT;

- сортировку записей по возрастанию порядкового атомного веса;

- вывод записей в обратном порядке;

- создание нового массива записей по заданной группе;

- вывод на дисплей всех элементов и их атомного веса, порядковые номера которых кратны двум.

Если элементов нет, вывести соответствующее сообщение.

Вариант 10

Описать структуру с именем AIRPORT, содержащую следующие поля:

- название пункта назначения рейса;

- номер рейса;

- класс (тип – перечисление);

- время отправления;

- тип самолета (тип – перечисление);

- промежуточные посадки (тип - массив).

Написать программу, выполняющую следующие действия:

- инициализацию данных в массив, состоящий из десяти элементов типа AIROPORT;

- отсортировать записи по возрастанию времени отправления;

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

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

Вариант 11

Описать структуру с именем PAZIENT, содержащую следующие поля:

- фамилия;

- пол (тип – перечисление);

- дата рождения (тип – структура);

- номер медицинской карты;

- группа крови (тип – перечисление);

- даты обращения (тип – массив структур);

- образование (тип – перечисление).

Написать программу, выполняющую следующие действия:

- инициализацию данных в массив, состоящий из 7 элементов типа PAZIENT;

- сортировку записей по году рождения;

- сортировку записей по номерам карт;

- вывод в обратном порядке;

- удаление повторяющихся записей,

- формирование нового массива записей, для которых образование – заданное значение;

-вывод на экран фамилий пациентов и номеров медицинских карт, группа крови которых 1 и 2. Если таких пациентов нет, выдать на дисплей соответствующее сообщение.

Вариант 12

Описать структуру с именем STUDENT, содержащую следующие поля:

- фамилия и инициалы;

- факультет (тип – перечисление);

- номер группы;

- успеваемость (массив из пяти элементов).

Написать программу, выполняющую следующие действия:

- заполнение данными массива, состоящего из восьми структур типа STUDENT;

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

- вывод записей в обратном порядке;

- вывод на дисплей фамилий и номеров групп для всех студентов, имеющих оценки 3 и 4. Если таких записей нет, то вывести соответствующее сообщение

Вариант 13

Описать структуру с именем GOSUDARSTVO, содержащую следующие поля:

- сведения о стране;

- число жителей;

- предпочтения по валюте (тип – перечисление);

- курс национальной валюты относительно предпочитаемой.

Сведения о стране в свою очередь представляет структуру с именем STRANA со следующими полями:

- название страны;

- государственные языки (массив);

- столица;

- денежная единица.

Написать программу, выполняющую следующие действия:

- ввод с клавиатуры данных в массив, состоящий из десяти элементов типа GOSUDARSTVO;

- вывод на экран информации о стране, название которой введено с клавиатуры;

- ввести с клавиатуры денежную сумму и для каждой страны перевести в долларовый эквивалент.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]