1) Создать базовый класс с тремя целыми полями. Разработать два конструктора: первый – без параметров – заполняет поля случайными данными; второй – с тремя параметрами – конструктор копирования. Разработать метод: вывода полей.
2) Класс "Прямоугольный параллелепипед". Наследует базовый класс. Поля обозначают длину и ширину основания, высоту. Реализовать соответствующие конструкторы. Методы: а) объём; б) площадь полной поверхности; в) выбор из двух параллелепипедов параллелепипеда с наибольшим объёмом.
C#
Базовые классы C# Нужен код такой большой
using System;
namespace Answer {
class Program {
static void Main() {
var a = new Parallelepiped();
var b = new Parallelepiped(4, 7, 5);
Console.WriteLine("Первый: случайная инициализация:");
a.OutputtingFieldValues();
Console.WriteLine("Второй: заданная инициализация:");
b.OutputtingFieldValues();
if (a > b) Console.WriteLine("Объём первого больше второго");
else if (b > a) Console.WriteLine("Объём второго больше первого");
else Console.WriteLine("Объёмы равны");
Console.ReadKey();
}
}
public class Base {
protected int a;
protected int b;
protected int c;
public Base() {
var rand = new Random();
a = rand.Next(2, 10);
b = rand.Next(2, 10);
c = rand.Next(2, 10);
}
public Base(int a, int b, int c) {
this.a = a;
this.b = b;
this.c = c;
}
virtual public void OutputtingFieldValues() {
Console.WriteLine($"{a} {b} {c}");
}
}
public class Parallelepiped : Base {
public Parallelepiped() { }
public Parallelepiped(int a, int b, int c) : base(a, b, c) { }
public override void OutputtingFieldValues() {
Console.WriteLine($"Длина: {a,3}\nШирина: {b,2}\nВысота: {c,2}");
}
public int Volume() {
return a * b * c;
}
public int Area() {
return 2 * (a * b + b * c + a * c);
}
public static bool operator <(Parallelepiped a, Parallelepiped b) {
return a.Volume() < b.Volume();
}
public static bool operator >(Parallelepiped a, Parallelepiped b) {
return a.Volume() > b.Volume();
}
}
}
namespace Answer {
class Program {
static void Main() {
var a = new Parallelepiped();
var b = new Parallelepiped(4, 7, 5);
Console.WriteLine("Первый: случайная инициализация:");
a.OutputtingFieldValues();
Console.WriteLine("Второй: заданная инициализация:");
b.OutputtingFieldValues();
if (a > b) Console.WriteLine("Объём первого больше второго");
else if (b > a) Console.WriteLine("Объём второго больше первого");
else Console.WriteLine("Объёмы равны");
Console.ReadKey();
}
}
public class Base {
protected int a;
protected int b;
protected int c;
public Base() {
var rand = new Random();
a = rand.Next(2, 10);
b = rand.Next(2, 10);
c = rand.Next(2, 10);
}
public Base(int a, int b, int c) {
this.a = a;
this.b = b;
this.c = c;
}
virtual public void OutputtingFieldValues() {
Console.WriteLine($"{a} {b} {c}");
}
}
public class Parallelepiped : Base {
public Parallelepiped() { }
public Parallelepiped(int a, int b, int c) : base(a, b, c) { }
public override void OutputtingFieldValues() {
Console.WriteLine($"Длина: {a,3}\nШирина: {b,2}\nВысота: {c,2}");
}
public int Volume() {
return a * b * c;
}
public int Area() {
return 2 * (a * b + b * c + a * c);
}
public static bool operator <(Parallelepiped a, Parallelepiped b) {
return a.Volume() < b.Volume();
}
public static bool operator >(Parallelepiped a, Parallelepiped b) {
return a.Volume() > b.Volume();
}
}
}
Андрей Лущан
Volume и Area он не хочет считать, вроде. Или это надо как-то отдельно сделать..
Похожие вопросы
- Зачем в C# нужны типы данных?
- (c#) Нужна помощь в работе со строками. (лучше если будет не само решение, а объяснение, спасибо)
- Зачем разбивать код в C# на отдельные классы?
- Помогите с кодом C#!!
- Помогите исправить код на C#
- Почему C# относится к компилируемым языкам, компиляция это перевод всего кода в машинный, а C# переводится в байт код
- C#: помогите, пожалуйста, исправить код
- C# создание экземпляра класса с вложенным классом
- C# Помогите решить задачу! Нужен полный код!
- DI C# как понять? Что это такое? Как в коде писать? Простыми словами обьясните зависимости эти А то везде сложно пишут