- •Введение
- •Контрольная работа № 1 разработка приложений в microsoft visual studio 2008
- •Теоретические сведения Интерфейс Microsoft Visual Studio 2008
- •Создание консольного приложения
- •Построение xml-отчета по выполненному проекту
- •Создание приложения Windows Forms
- •Контрольные вопросы
- •Содержание и порядок выполнения работы
- •Контрольная работа № 2
- •Теоретические сведения Структура программы. Переменные и выражения
- •Литеральные константы
- •Операции и их старшинство
- •Операторы c#
- •If(выражение1) if(выражение2) if(выражение3) ...
- •Контрольные вопросы
- •Содержание и порядок выполнения работы
- •Примеры решения задач
- •Контрольная работа № 3 техника работы с массивами. Процедуры и функции
- •Теоретические сведения
- •Базовый класс для массивов
- •Процедуры и функции
- •Синтаксис методов
- •Формальные и фактические аргументы
- •Соответствие формальных и фактических аргументов
- •Функции с побочным эффектом
- •Функция Main()
- •Контрольные вопросы
- •Содержание и порядок выполнения работы
- •Примеры решения задач
- •Контрольная работа № 4 перечисления и структуры
- •Теоретические сведения
- •Базовый класс перечислений - System.Enum
- •Структуры
- •Контрольные вопросы
- •Содержание и порядок выполнения работы
- •Пример решения задачи
- •Контрольная работа № 5 обработка символов и строк
- •Теоретические сведения
- •Контрольные вопросы
- •Содержание и порядок выполнения работы
- •Примеры решения задачи
- •Контрольная работа № 6 проектирование классов. Составление программ с использованием ооп
- •Теоретические сведения
- •Контрольные вопросы
- •Содержание и порядок выполнения работы
- •Пример решения задачи
- •Заключение
- •Библиографический список
- •Оглавление
- •394026 Воронеж, Московский просп., 14
Структуры
Структуры являются аналогом классов, но в отличие от них являются типом значения. То есть, значения типа структура передаются по значению, а не по ссылке.
Для описания структур используется ключевое слово 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;
- вывод на экран информации о стране, название которой введено с клавиатуры;
- ввести с клавиатуры денежную сумму и для каждой страны перевести в долларовый эквивалент.