Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Лабораторная работа по "Объектно-ориентированному программированию"

Автор:   •  Ноябрь 6, 2025  •  Лабораторная работа  •  3,537 Слов (15 Страниц)  •  41 Просмотры

Страница 1 из 15

ВОРОНЕЖСКИЙ ИНСТИТУТ ВЫСОКИХ ТЕХНОЛОГИЙ – АННО ВО

ЛАБОРАТОРНАЯ РАБОТА №1

по дисциплине «ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ»

Студента группы

_________

                                                                                                                                                                                                           (подпись)

                                                               Проверил:

_________                                                                                                                                                                                                                               (подпись)

Дата «__»_______2025г.

ВОРОНЕЖ 2025

Цель работы:

Изучить принципы написания программ с использованием наследования классов на языке C# с графическим интерфейсом Windows Forms.

Выполнение работы:

1. Создание проекта в Microsoft Visual Studio

  1. Запустим Visual Studio.
  2. Создадим новый проект:
  • Выберем «Создать новый проект».
  • Найдем шаблон «Приложение Windows Forms (.NET Framework) для C#».
  • Назовем проект, "LabWork_ShipHierarchy" и нажмем «Создать».

[pic 1]

2. Создание иерархии классов

2.1. Создание базового класса и производных

Добавление нового класса:

  1. В обозревателе решений (Solution Explorer) щёлкнем правой кнопкой мыши по проекту.
  2. Выберем «Добавить» → «Новый элемент…».
  3. Выберем «Класс» и назовем её "Ship.cs".

Реализация базового класса "Ship":

using System;

namespace LabWork_ShipHierarchy

{

    // Базовый класс "Корабль"

    public class Ship

    {

        // Свойства для имени и года постройки

        public string Name { get; set; }

        public int YearBuilt { get; set; }

        // Конструктор по умолчанию

        public Ship()

        {

            Name = "Unknown";

            YearBuilt = 0;

        }

        // Конструктор с параметрами

        public Ship(string name, int yearBuilt)

        {

            Name = name;

            YearBuilt = yearBuilt;

        }

        // Методы, описывающие поведение объекта

        public virtual void Sail()

        {

            Console.WriteLine($"{Name} плывет.");

        }

        public virtual void DisplayInfo()

        {

            Console.WriteLine($"Корабль: {Name}, Год постройки: {YearBuilt}");

        }

        public virtual string GetShipType()

        {

            return "Корабль";

        }

        // Переопределение Equals: объекты считаются равными, если равны их поля

        public override bool Equals(object obj)

        {

            if (obj == null || this.GetType() != obj.GetType())

                return false;

            Ship other = obj as Ship;

            return this.Name == other.Name && this.YearBuilt == other.YearBuilt;

        }

        // Переопределение GetHashCode

        public override int GetHashCode()

        {

            return (Name, YearBuilt).GetHashCode();

        }

        // Переопределение ToString для удобного вывода информации

        public override string ToString()

        {

            return $"Тип: {GetShipType()}, Название: {Name}, Год: {YearBuilt}";

        }

    }

}

[pic 2]

2.2. Производные классы

Класс Steamboat (Пароход)

using System;

namespace LabWork_ShipHierarchy

{

    // Производный класс "Пароход"

    public class Steamboat : Ship

    {

        // Дополнительное свойство – мощность двигателя

        public double EnginePower { get; set; }

        // Конструктор по умолчанию

        public Steamboat() : base()

        {

            EnginePower = 0.0;

        }

        // Конструктор с параметрами

        public Steamboat(string name, int yearBuilt, double enginePower) : base(name, yearBuilt)

        {

            EnginePower = enginePower;

...

Скачать:   txt (15.5 Kb)   pdf (1.1 Mb)   docx (1.1 Mb)  
Продолжить читать еще 14 страниц(ы) »
Доступно только на Essays.club