Краткие теоретические сведения 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Краткие теоретические сведения



 

В языке моделирования UML классы представляются с помощью диаграммы классов, которая играет центральную роль в объектно-ориентированном моделировании программных систем.

Диаграмма классов –этодиаграмма, предназначенная для представления модели статической структуры программной системы
в терминологии классов объектно-ориентированного программи-рования.

Диаграмма классов представляет собой граф, вершинами которого являются классы системы, связанные различными типами структурных отношений.

Класс на диаграмме изображается в виде прямоугольника, который может быть разделен горизонтальными линиями на секции (рис. 2.1).

 

         
Имя класса
   

 


        а                                   б                                               в

Рис. 2.1. Варианты изображения класса в языке UML:

а – для начального этапа разработки диаграммы классов; б – при уточнении

значений свойств объектов класса; в – для конечного этапа разработки диаграммы

Имя класса представляет собой строку текста, которая используется в качестве его идентификатора  и поэтому должна быть уникальной в пределах модели системы.

Атрибут класса служит для представления отдельной структурной характеристики или свойства, которые являются общими для всех объектов данного класса.

Операция класса – это сущность, определяющая действие, которое может быть выполнено представителем класса.

Для обозначения признаков видимости элементов класса могут использоваться следующие символы: + (public, т. е. общедоступный); # (protected, т. е. защищенный); (private, т. е. закрытый).

Среда разработки Visual Studio позволяет создавать диаграммы классов, на которых отражаются их поля, методы и отношения наследования.

Чтобы создать диаграмму классов в главном меню среды, откройте раздел Проект и выберите пункт Добавить новый элемент….
В появившемся диалоговом окне выбора шаблонов объектов, которые можно добавить в проект, нужно выбрать шаблон Схема классов, задать имя для диаграммы и нажать кнопку Добавить. Файл с диаграммой классов будет добавлен в проект, а имя этого класса появится во вкладке Обозреватель решений (рис. 2.2).

 

.

 

Рис. 2.2. Отображение в окне обозревателя

решений файла Class D iag ram. cd

диаграммы классов

 

Добавить на диаграмму существующий класс можно, переместив его из окна обозревателя решений на рабочее поле диаграммы. Пример изображения на UML -диаграмме классов Program
и Vector2d, в котором для построения диаграммы использована среда Visul Studio 2010, приведен на рис. 2.3.

Рис. 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. Какие особенности имеет использование полей класса,
в объявлении которых использовано служебное слово static?

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 с.)