Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Краткие теоретические сведения
В языке моделирования UML классы представляются с помощью диаграммы классов, которая играет центральную роль в объектно-ориентированном моделировании программных систем. Диаграмма классов –этодиаграмма, предназначенная для представления модели статической структуры программной системы Диаграмма классов представляет собой граф, вершинами которого являются классы системы, связанные различными типами структурных отношений. Класс на диаграмме изображается в виде прямоугольника, который может быть разделен горизонтальными линиями на секции (рис. 2.1).
а б в Рис. 2.1. Варианты изображения класса в языке UML: а – для начального этапа разработки диаграммы классов; б – при уточнении значений свойств объектов класса; в – для конечного этапа разработки диаграммы Имя класса представляет собой строку текста, которая используется в качестве его идентификатора и поэтому должна быть уникальной в пределах модели системы. Атрибут класса служит для представления отдельной структурной характеристики или свойства, которые являются общими для всех объектов данного класса. Операция класса – это сущность, определяющая действие, которое может быть выполнено представителем класса. Для обозначения признаков видимости элементов класса могут использоваться следующие символы: + (public, т. е. общедоступный); # (protected, т. е. защищенный); – (private, т. е. закрытый). Среда разработки Visual Studio позволяет создавать диаграммы классов, на которых отражаются их поля, методы и отношения наследования. Чтобы создать диаграмму классов в главном меню среды, откройте раздел Проект и выберите пункт Добавить новый элемент….
.
Рис. 2.2. Отображение в окне обозревателя
решений файла Class D iag ram. cd диаграммы классов
Добавить на диаграмму существующий класс можно, переместив его из окна обозревателя решений на рабочее поле диаграммы. Пример изображения на UML -диаграмме классов Program
Рис. 2.3. Диаграмма классов, созданная с помощью среды Visul Studio 2010
Диаграмма классов позволяет не только наглядно представлять классы, но и создавать и редактировать их. Чтобы создать новый класс и отобразить его на диаграмме, можно воспользоваться контекстным меню, вызвав его правой кнопкой мыши на свободном рабочем поле диаграммы. Порядок выполнения работы
1. Изучить гл. 6 «Классы и объекты языка C#» учебного пособия В. В. Вдовенко «Разработка приложений на языке C#» (Красноярск, 2010) (см. с. 115–150). 2. Изучить возможности языка UML для представления классов. 3. Разработать класс в соответствии с вариантом практического задания и создать консольное приложение. 4. Разработать UML -диаграмму классов для созданного приложения. 5. Ответить на контрольные вопросы. 6. Составить отчет в электронном виде, который должен содержать титульный лист, цель лабораторной работы, задание, ответы на контрольные вопросы, листинг программы и результаты ее работы. Контрольные вопросы и задания 1. Дайте определение класса. 2. Охарактеризуйте объект. Приведите примеры объектов. 3. Какие роли играет класс в объектно-ориентированной программе? 4. Каким образом соотносятся понятия «класс» и «объект»? 5. Перечислите принципы объектно-ориентированного программирования. 6. Дайте определение объектно-ориентированного программирования. 7. В чем состоят преимущества объектно-ориентированного программирования? 8. Дайте определение метода класса. 9. В чем состоит принцип инкапсуляции? За счет чего обеспечивается инкапсуляция? 10. В чем заключается полиморфизм объектов? 11. Какие члены класса доступны другим классам? 12. Какие варианты доступа к членам класса могут быть реализованы в программе на языке C#? 13. Дайте определение термина «конструктор». Для чего предназначен конструктор?
14. Приведите синтаксис конструктора класса в общем виде. Проиллюстрируйте его фрагментом программы на языке C#. 15. Сколько конструкторов может содержать класс языка C#? 16. Какие умолчания для конструкторов приняты в языке C#? 17. Приведите синтаксис описания класса в общем виде. Проил-люстрируйте его фрагментом программы на языке C#. 18. Какие модификаторы типа доступа вам известны? 19. Какие особенности имеет использование полей класса, 20. Приведите синтаксис описания метода класса в общем виде. 21. Каким образом можно вернуть параметры из метода? 22. Приведите синтаксис создания объекта в общем виде. Проил-люстрируйте его фрагментом программы на языке C#. 23. Какой скрытый параметр автоматически передается в любой нестатический метод класса? 24. Могут ли методы класса быть закрытыми? 25. Какое значение инициализирует поля ссылочного типа по умолчанию? 26. Каким образом в определении класса реализуется такой принцип ООП, как инкапсуляция? 27. Приведите синтаксис метода-свойства класса. 28. Объясните, что представляет собой индексатор. В каких случаях при программировании следует использовать индексаторы? 29. Какой класс называют вложенным? В каком случае использование вложенного класса может иметь смысл? 30. Назовите элементы UML -диаграммы классов. 31. Каким образом можно создать UML -диаграмму классов?
Варианты практических заданий
В предлагаемых ниже заданиях требуется определить собственный класс и написать программу, демонстрирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществлять проверку всех методов класса. Также необходимо построить UML-диаграмму классов. 1. Описать класс Процессор, содержащий сведения о марке, тактовой частоте, объеме кэша и стоимости. Предусмотреть инициализацию с проверкой допустимости значений полей. В случае недопустимых значений полей исключения выбрасываются. Записать свойства для получения состояния объекта. Написать программу, в которой создать массив объектов этого класса, заполнить его данными из текстового файла и найти в этом массиве все процессоры, марка которых соответствует значению, введенному с клавиатуры. 2. Описать класс Доставка, содержащий сведения о расстоянии, наименовании товара, дате доставки, государственном номере машины. Написать программу, в которой создать массив объектов этого класса, заполнить его данными из текстового файла и найти в этом массиве все товары, дата доставки которых соответствует заданной. 3. Описать класс Мобильный телефон, содержащий сведения 4. Описать класс Спортсмен. Определить элементы-данные класса, позволяющие хранить сведения о фамилии, имени, отчестве, дате рождения, виде спорта, разряде, количестве медалей. Написать программу, в которой создать массив объектов этого класса, заполнить его данными из текстового файла и найти в этом массиве всех спортсменов, занимающихся определенным видом спорта.
5. Описать класс Квартира,содержащий сведения о количестве комнат, этаже в доме, стоимости, районе, в котором расположена квартира. Написать программу, в которой создать массив объектов этого класса, заполнить его данными из текстового файла и найти 6. Описать класс Программное обеспечение,содержащий сведения о наименовании программного обеспечения, его типе, объеме после установки, стоимости. Написать программу, в которой создать массив объектов этого класса, заполнить его данными из текстового файла и найти в этом массиве все объекты, наименования которых соответствуют значению, введенному с клавиатуры. 7. Описать класс, содержащий информацию о почтовом адресе 8. Описать класс для представления комплексных чисел. Разработать методы-свойства для получения состояния объекта, записать методы, обеспечивающие выполнение операций сложения, вычитания и умножения комплексных чисел. 9. Описать класс для вектора, заданного координатами его концов 10. Объявить класс Book, создающий тип Книга. Определить следующие элементы-данные класса: – автор книги; – название; – год издания. Предусмотреть следующие конструкторы класса: – без параметров; – получающий параметры. Описать функции-методы класса: – определения, относится ли год издания книги к какому-либо году, значение которого передается через параметр; – определения, совпадает ли фамилия автора со значением, Написать программу, в которой создать массив объектов типа Book, заполнить его в диалоговом режиме и найти в этом массиве все книги определенного автора, например П. Нортона, изданные, скажем, после 2000 г. 11. Описать класс для представления даты. Предусмотреть возможности установки даты и изменения ее отдельных полей (года, месяца, дня) с проверкой допустимости вводимых значений. Создать методы изменения даты на заданное количество дней, месяцев и лет.
12. Описать класс для представления времени. Предусмотреть возможности установки времени и изменения его отдельных полей (часа, минуты, секунды) с проверкой допустимости вводимых значений. Создать методы изменения времени на заданное количество часов, минут и секунд. 13. Объявить класс Car, создающий тип Автомобиль. Определить следующие элементы-данные класса: – марку автомобиля; – год выпуска. Предусмотреть следующие конструкторы класса: – по умолчанию; – получающий параметры. Написать функции-методы класса: – определения, относится ли год выпуска автомобиля к какому-либо году, значение которого передается через параметр; – определения, совпадает ли название автомобиля со значением, передаваемым в виде параметра. 14. Описать класс, представляющий треугольник. Предусмотреть методы для создания объектов, вычисления площади, периметра. Описать свойства для получения состояния объекта. 15. Описать класс Научно-исследовательские разработки, 16. Объявить класс Goods, создающий тип Товар. Определить следующие элементы-данные класса: – название товара; – год производства. Предусмотреть следующие конструкторы класса: – по умолчанию; – получающий параметры. Написать функции-методы класса: – определения, относится ли год производства товара к какому-либо году, значение которого передается через параметр; – определения, совпадает ли наименование товара со значением, передаваемым в виде параметра. Написать программу, в которой создать массив объектов типа Goods, заполнить его в диалоговом режиме и найти в этом массиве все товары определенного наименования, дата производства которых соответствует, например, 1998 г. 17. Объявить класс Press, создающий тип Печатные издания. Определить элементы-данные класса: – наименование издания; – тип (газета или журнал); – тираж. Предусмотреть следующие конструкторы класса: – по умолчанию; – получающий параметры. Написать функции-методы класса: – определения, является ли печатное издание газетой или журналом; – определения всех изданий с тиражом выше определенного тиража. 18. Объявить класс Session, создающий тип Сессия. Определить следующие элементы-данные класса: – фамилия студента; – название предмета; – оценка. Предусмотреть следующие конструкторы класса: – по умолчанию; – получающий параметры. Написать функции-методы класса: – определения среднего балла студента по всем сдававшимся предметам; – определения, имеет ли студент задолженности. Написать программу, в которой создать массив объектов типа Session, заполнить его в диалоговом режиме и вывести средние баллы по всем предметам, а также фамилии студентов-задолжников.
19. Описать класс дробей рациональных чисел, являющихся отношением двух целых чисел. Предусмотреть методысложения, вычитания, умножения и деления дробей. 20. Описать класс Файл, содержащий сведения об имени, дате создания и длине файла. Предусмотреть инициализацию с проверкой допустимости значений полей. Описать метод добавления информации в конец файла и свойства для получения состояния файла. 21. Описать класс Комната, содержащий сведения о метраже, высоте потолков и количестве окон. Предусмотреть инициализацию 22. Описать класс Записная книжка. Предусмотреть возможность работы с произвольным числом записей, поиска записи по какому-либо признаку (например, по фамилии, дате рождения или номеру телефона), добавления и удаления записей, сортировки по разным полям. 23. Описать класс, представляющий квадратное уравнение вида ах 2 + b х + с = 0. Описать метод, вычисляющий решение этого уравнения и выбрасывающий исключение в случае отсутствия корней. Описать свойства для получения состояния объекта. 24. Описать класс Цветная точка. Для точки задать координаты и цвет. Цвет описать с помощью трех составляющих: красной, зеленой, синей. Предусмотреть различные методы инициализации объекта с проверкой допустимостизначений. Допустимым диапазоном для каждой составляющей является [255]. Описатьсвойства для получения состояния объекта и метод изменения цвета. 25. Описать класс Компакт-диск. Предусмотреть определение двух конструкторов: одного для инициализации данных, другого – для создания объекта умолчанию. Программа также должна содержать полное множество элементов-функций для манипулирования данными, таких как просмотр, добавление и удаление информации. 26. Описать класс для работы с записями персонала, используя следующую информацию: фамилия, должность, зарплата, дата рождения. Предусмотреть инициализацию с проверкой допустимости значений полей. Определить несколько конструкторов и полное множество функций-элементов для манипулирования элементами-данными: добавление, изменение, удаление информации, сортировку по разным полям.
Лабораторная работа 3 НАСЛЕДОВАНИЕ КЛАССОВ Цель работы: получить практические навыки реализации одной из базовых концепций ООП – концепции наследования классов. Задачи работы: – изучить средства языка С# для реализации отношения наследования между классами; – изучить возможности языка моделирования UML для представления отношений наследования между классами; – выполнить практическое задание по разработке приложения на языке С#; – разработать UML -диаграмму классов.
|
||||||||||||||||||||||||
Последнее изменение этой страницы: 2022-09-03; просмотров: 64; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.216.230.107 (0.053 с.) |