Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний університет „Львівська політехніка”
Інститут Комп’ютерних Технологій, Автоматики та Метрології
Кафедра КСА
/
Лабораторна робота №2
з дисципліни:
«Операційні системи»
Варіант: 18
Мета роботи
Розроблення класу С# та перевантаження операцій.
Завдання
Створити клас «Автомобіль» який містить в собі: кількість коліс, масу, серійний номер, рік випуску, виробника, назву моделі, кількість циліндрів у двигуні, об’єм двигуна, кількість передач, октанове число залитого бензину, середня швидкість, максимальна швидкість руху. Обчислити: прискорення і потужність. З обмеженнями: назва моделі має містити не більше 12 символів, кількість циліндрів від 1 до 18, рік випуску не раніше 1905 та не пізніше 2018. І перевантажити операції +, *, ==.
Код програми
class Car:IDisposable
{
private System.IO.StreamWriter File;
private static int Objects = 0;
private int wheel; //Кількість колес
public int Wheel
{
get { return wheel; }
set
{
wheel = value;
File.WriteLine("Кількість колес - " + wheel.ToString());
}
}
private double mass; // Маса
public double Mass
{
get { return mass; }
set
{
mass = value;
File.WriteLine("Маса - {0} (кг)", mass);
}
}
private string serial; //Серійний номер
public string Serial
{
get { return serial; }
set
{
serial = value;
File.WriteLine("Серійний номер - " + serial);
}
}
private int year; //Рік випуску
public int Year
{
get { return year; }
set
{
if (value >= 1905 && value <= 2018) year = value; else year = 2018;
File.WriteLine("Рік випуску - " + year.ToString());
}
}
private string producer; //Виробник
public string Producer
{
get { return producer; }
set
{
producer = value;
File.WriteLine("Виробник - " + producer);
}
}
private readonly string name; //Назва моделі
public string Name
{
get { return name; }
}
private int cylinders; //Кількість циліндрів у двигуні
public int Cylinders
{
get { return cylinders; }
set
{
if (value >= 1 && value <= 18) cylinders = value; else cylinders = 1;
acceleration = cylinders * octane * speed;
File.WriteLine("Кількість циліндрів у двигуні - " + cylinders.ToString());
}
}
private double volume; //Об'єм двигуна
public double Volume
{
get { return volume; }
set
{
volume = value;
File.WriteLine("Об'єм двигуна - {0} (см^3)", volume);
power = octane * volume;
}
}
private int transfer; //Кількість передач
public int Transfer
{
get { return transfer; }
set
{
transfer = value;
File.WriteLine("Кількість передач - " + transfer.ToString());
}
}
private double octane; //Октанове число залитого бензину
public double Octane
{
get { return octane; }
set
{
octane = value;
File.WriteLine("Октанове число залитого бензину - " + octane.ToString());
acceleration = cylinders * octane * speed;
power = octane * volume;
}
}
private double speed; //Середня швидкість
public double Speed
{
get { return speed; }
set
{
speed = value;
File.WriteLine("Середня швидкість - {0} (км/год)", speed);
acceleration = cylinders * octane * speed;
}
}
private double maxSpeed; //Максимальна швидкість руху
public double MaxSpeed
{
get { return maxSpeed; }
set
{
maxSpeed = value;
File.WriteLine("Максимальна швидкість руху - {0} (км/год)", maxSpeed);
}
}
private double acceleration; //Прискорення
public double Acceleration
{
get { return acceleration; }
}
private double power; //Потужність
public double Power
{
get { return power; }
}
public Car ()
{
Objects++;
File = new System.IO.StreamWriter(Name + ".txt");
File.WriteLine("Створили нову марку машин: " + Name);
name = "Машина " + Objects.ToString();
}
public Car (string Name)
{
Objects++;
if (Name.Length <= 12) name = Name; else name = "Машина " + Objects.ToString();
File = new System.IO.StreamWriter(this.Name + ".txt");
File.WriteLine("Створили нову марку машин: " + this.Name);
}
public static Car operator *(Car A, Car B)
{
if (A.Power*A.Acceleration > B.Power*B.Acceleration)
{
A.Volume += B.Volume / 3;
B.Volume -= B.Volume / 3;
return A;
} else
{
B.Volume += A.Volume / 3;
A.Volume -= A.Volume / 3;
return B;
}
}
public static Car operator +(Car A, Car B)
{
Car C = new Car(A.Name +"-"+ B.Name);
C.Wheel = A.Wheel + B.Wheel;
C.Mass = A.Mass + B.Mass;
C.Serial = B.Serial;
C.Year = B.Year;
C.Producer = A.Producer + "-" + B.Producer;
C.Cylinders = A.Cylinders + B.Cylinders;
C.Volume = A.Volume + B.Volume;
C.Transfer = A.Transfer + B.Transfer;
if (A.Octane > B.Octane) C.Octane = A.Octane; else C.Octane = B.Octane;
C.Speed = A.Speed + B.Speed;
C.MaxSpeed = A.MaxSpeed + B.MaxSpeed;
return C;
}
public static bool operator == (Car A, Car B)
{
if (A.MaxSpeed * A.Power * A.Acceleration == B.MaxSpeed * B.Power * B.Acceleration) return true; else return false;
}
public static bool operator != (Car A, Car B)
{
return !(A == B);
}
public void Dispose()
{
File.WriteLine("Утилізація марки машин");
File.Close();
File.Dispose();
}
}
class Program
{
static void Main(string[] args)
{
using (Car A = new Car("Adam"), B = new Car("CX-5"))
{
A.Wheel = 4;
B.Wheel = 4;
A.Mass = 1135;
B.Mass = 1450;
A.Serial = "Y123456";
B.Serial = "TY165884";
A.Year = 2012;
B.Year = 2018;
A.Producer = "Opel";
B.Producer = "Mazda";
A.Cylinders = 4;
B.Cylinders = 4;
A.Volume = 1398;
B.Volume = 1997;
A.Transfer = 5;
B.Transfer = 6;
A.Octane = 95;
B.Octane = 95;
A.Speed = 90;
B.Speed = 100;
A.MaxSpeed = 180;
B.MaxSpeed = 200;
Car C = B * A;
C = A + B;
C.Dispose();
if (A == B) Console.WriteLine("A=B"); else Console.WriteLine("A!=B");
}
Console.ReadKey();
}
}
Скріншоти програми
/
/
/
/
Висновок
Отже, на цій лабораторній роботі я навчилася створювати класи С# та перевантажувати операції.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!