Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 9

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

Івано-Франківський національний технічний університет нафти і газу

Кафедра КСМ

ЛАБОРАТОРНА РОБОТА №6
КЛАСИ

Виконав:
студент групи ІСТ-20-1
Романюк А. М.
Перевірив:
Гарасимів Т. Г.

м. Івано-Франківськ
2024 рік
Мета роботи: навчитися створювати та працювати з класами.
Хід роботи
1 Завдання. 1. Загальне завдання. Визначити користувальницький клас в
відповідно до варіанта завдання. Додати в клас наступні конструктори: без
параметрів, з параметрами, копіювання. Визначити в класі деструктор,
компоненти-функції для перегляду і установки полів даних. Написати
демонстраційну програму, в якій створюються і руйнуються об'єкти
користувацького класу і кожен виклик конструктора і деструктора
супроводжується видачею відповідного повідомлення (який об'єкт який
конструктор або деструктор викликав). При роботі з класами користуватися
ClassWizard.
Індивідуальне завдання. Створити клас одновимірний масив цілих чисел
(вектор) з полями - кількість фактичних елементів, масив (динамічний).
Функції-члени: звернення до окремого елементу масиву, виведення масиву на
екран, поелементного додавання і віднімання зі скаляром, виведення елемента
за заданим індексом.
2. Загальне завдання. Визначте ієрархію класів (відповідно до варіанта-
виділити базовий і похідні). Реалізувати класи (самостійно задати члени-дані та
методи класу). Написати демонстраційну програму, в якій створюються об'єкти
різних класів. Визначення класів (* .h), їх реалізацію (* .cpp), демонстраційну
програму (* .cpp) помістити в окремі модулі. Нижче наведено перелік класів.
Індивідуальне завдання. Класи - республіка (вид, уряд), монархія (вид, ім'я
монарха), королівство (король), держава (назва, грошова одиниця, символіка).
1.1.1 Текст програми
using System;

public class Vector


{
private int[] array;
private int actualSize;

public Vector()
{
Console.WriteLine("Default constructor called");
this.array = new int[10];
this.actualSize = 0;
}
public Vector(int size)
{
Console.WriteLine("Parameterized constructor called");
this.array = new int[size];
this.actualSize = 0;
}

public Vector(Vector v)
{
Console.WriteLine("Copy constructor called");
this.array = new int[v.array.Length];
Array.Copy(v.array, this.array, v.array.Length);
this.actualSize = v.actualSize;
}

~Vector()
{
Console.WriteLine("Destructor called");
}

public void AddElement(int element)


{
if (actualSize < array.Length)
{
array[actualSize] = element;
actualSize++;
}
else
{
Console.WriteLine("Array is full");
}
}
public void DisplayArray()
{
for (int i = 0; i < actualSize; i++)
{
Console.Write(array[i] + " ");
}
Console.WriteLine();
}

public void AddScalar(int scalar)


{
for (int i = 0; i < actualSize; i++)
{
array[i] += scalar;
}
}

public void SubtractScalar(int scalar)


{
for (int i = 0; i < actualSize; i++)
{
array[i] -= scalar;
}
}

public int GetElement(int index)


{
if (index >= 0 && index < actualSize)
{
return array[index];
}
else
{
Console.WriteLine("Invalid index");
return -1;
}
}
}

class Program
{
static void Main(string[] args)
{
Vector v1 = new Vector();
v1.AddElement(5);
v1.AddElement(10);
v1.DisplayArray();

Vector v2 = new Vector(5);


v2.AddElement(15);
v2.AddElement(20);
v2.DisplayArray();

Vector v3 = new Vector(v2);


v3.DisplayArray();

v1.AddScalar(2);
v1.DisplayArray();

v2.SubtractScalar(2);
v2.DisplayArray();

Console.WriteLine(v3.GetElement(1));
}
}

1.1.2 Результат виконання.


Рисунок 1 – Результат виконання
1.2.1 Текст програми
using System;

public abstract class State


{
public string Name { get; set; }
public string Currency { get; set; }
public string Symbol { get; set; }

public State(string name, string currency, string symbol)


{
Name = name;
Currency = currency;
Symbol = symbol;
}

public abstract void DisplayState();


}

public class Republic : State


{
public string Type { get; set; }
public string Government { get; set; }

public Republic(string name, string currency, string


symbol, string type, string government)
: base(name, currency, symbol)
{
Type = type;
Government = government;
}

public override void DisplayState()


{
Console.WriteLine($"Republic: {Name}, Currency:
{Currency}, Symbol: {Symbol}, Type: {Type}, Government:
{Government}");
}
}

public class Monarchy : State


{
public string Type { get; set; }
public string Monarch { get; set; }

public Monarchy(string name, string currency, string


symbol, string type, string monarch)
: base(name, currency, symbol)
{
Type = type;
Monarch = monarch;
}
public override void DisplayState()
{
Console.WriteLine($"Monarchy: {Name}, Currency:
{Currency}, Symbol: {Symbol}, Type: {Type}, Monarch: {Monarch}");
}
}

public class Kingdom : Monarchy


{
public string King { get; set; }

public Kingdom(string name, string currency, string


symbol, string type, string monarch, string king)
: base(name, currency, symbol, type, monarch)
{
King = king;
}

public override void DisplayState()


{
Console.WriteLine($"Kingdom: {Name}, Currency:
{Currency}, Symbol: {Symbol}, Type: {Type}, Monarch: {Monarch},
King: {King}");
}
}

class Program
{
static void Main(string[] args)
{
Republic republic = new Republic("Ukraine", "UAH",

"🇺🇦", "Unitary", "Presidential");

republic.DisplayState();
Monarchy monarchy = new Monarchy("United Kingdom",

"GBP", "🇬🇧", "Unitary", "Queen Elizabeth II");

monarchy.DisplayState();

Kingdom kingdom = new Kingdom("Spain", "EUR", "🇪🇸",


"Unitary", "King Felipe VI", "King Felipe VI");
kingdom.DisplayState();
}}

1.2.2 Результат виконання.

Рисунок 2 – Результат виконання

Висновки. У ході виконання лабораторної роботи було розглянуто


поняття класів в мові програмування С#. Було створено дві програми:
1-ша: створює клас Vector, який представляє одновимірний масив цілих
чисел. Він має конструктори за замовчуванням, з параметрами та копіювання, а
також деструктор. Клас також має методи для додавання елементів до масиву,
відображення масиву, додавання та віднімання скаляра від кожного елемента
масиву, а також отримання елемента за заданим індексом. Кожен виклик
конструктора або деструктора супроводжується виведенням відповідного
повідомлення.
2-га: створює ієрархію класів для різних типів
держав: State, Republic, Monarchy, та Kingdom. Кожен клас має відповідні поля
даних та методи. В демонстраційній програмі створюються об’єкти кожного
класу та виводяться їх деталі.

You might also like