0% found this document useful (0 votes)
16 views9 pages

Lab 6 C#

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views9 pages

Lab 6 C#

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 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()
{
[Link]("Default constructor called");
[Link] = new int[10];
[Link] = 0;
}
public Vector(int size)
{
[Link]("Parameterized constructor called");
[Link] = new int[size];
[Link] = 0;
}

public Vector(Vector v)
{
[Link]("Copy constructor called");
[Link] = new int[[Link]];
[Link]([Link], [Link], [Link]);
[Link] = [Link];
}

~Vector()
{
[Link]("Destructor called");
}

public void AddElement(int element)


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

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
{
[Link]("Invalid index");
return -1;
}
}
}

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

Vector v2 = new Vector(5);


[Link](15);
[Link](20);
[Link]();

Vector v3 = new Vector(v2);


[Link]();

[Link](2);
[Link]();

[Link](2);
[Link]();

[Link]([Link](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()


{
[Link]($"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()
{
[Link]($"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()


{
[Link]($"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");

[Link]();
Monarchy monarchy = new Monarchy("United Kingdom",

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

[Link]();

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


"Unitary", "King Felipe VI", "King Felipe VI");
[Link]();
}}

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

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

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


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

You might also like