Розроблення класу С# та перевантаження операцій

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних технологій, автоматики та метрології
Факультет:
СІ
Кафедра:
Кафедра КСА

Інформація про роботу

Рік:
2018
Тип роботи:
Лабораторна робота
Предмет:
Операційні системи телекомунікаційних мереж
Варіант:
18

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний університет „Львівська політехніка” Інститут Комп’ютерних Технологій, Автоматики та Метрології Кафедра КСА / Лабораторна робота №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(); } } Скріншоти програми / / / / Висновок Отже, на цій лабораторній роботі я навчилася створювати класи С# та перевантажувати операції.
Антиботан аватар за замовчуванням

20.04.2018 21:39

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!