0 / 0 / 0
Регистрация: 14.02.2017
Сообщений: 7
1

Описать производный класс цилиндр

30.05.2017, 15:52. Показов 4089. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите написать программу
Описать производный класс цилиндр, добавив в него поле «высота» и методы: нахождения объема цилиндра и площади поверхности. В классе реализовать операции равно, не равно, больше, меньше (сравнение проводить по величине объема).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.05.2017, 15:52
Ответы с готовыми решениями:

Описать базовый класс колоды карт и производный класс пасьянс
Здраствуйте! товарищи-программисты, помогите пожалуйста со следующим заданием: Создать колоду...

Класс: Дописать производный класс, дополняющий базовый и содержащий минимум 2 функции-члена...
Составьте программу на языке С#, которая должна содержать: 1) базовый класс в соответствии с...

Абстрактный класс «Хранилище» и производный класс «Библиотека»
Помогите, пожалуйста, с задачкой: Требуется реализовать абстрактный класс “Хранилище”,...

Класс Tovar и производный класс Shop
Помогите пожалуйста сделать задание, т.к понятия не имею как это реализовать Класс Tovar включает...

3
75 / 75 / 96
Регистрация: 29.09.2012
Сообщений: 232
30.05.2017, 17:26 2
Не совсем понятно как искать объем и площадь без радиуса. Реализовать просто операции или они должны быть перегружены?
0
0 / 0 / 0
Регистрация: 14.02.2017
Сообщений: 7
30.05.2017, 18:12  [ТС] 3
Да, они должны быть перегружены

Добавлено через 38 минут
Код как бы сам есть, но я не уверен, что нужно создавать класс круг, хотя по идеи он должен быть вроде как?)
Кликните здесь для просмотра всего текста
using System;

namespace Program1
{

// Класс Окружность.
class Circle
{
// Поля класса: координаты центра и радиус.
private double _x0, _y0, _radius;

// Определяем методы доступа к полям.
public double x0
{
get
{
return _x0;
}
set
{
_x0 = value;
}
}
public double y0
{
get
{
return _y0;
}
set
{
_y0 = value;
}
}
public double radius
{
get
{
return _radius;
}
set
{
_radius = value;
}
}

// Конструктор по умолчанию. Создает окружность с единичным радиусом с центром в точке (0; 0).
public Circle()
// Вызываем конструктор с 1м параметром.
: this(1)
{
}

// Конструктор с 1м параметром. Создает окружность с заданным радиусом с центром в точке (0; 0).
public Circle(double r)
// Вызываем конструктор с 3мя параметрами.
: this(0, 0, r)
{
}

// Конструктор 3мя параметрами. Создает окружность с заданным радиусом и центром.
public Circle(double x, double y, double r)
{
x0 = x;
y0 = y;
radius = r;
}

// Метод, вычисляющий длину окружности.
public double getLength()
{
return 2 * Math.PI * radius;
}

// Метод, вычисляющий площадь круга.
public double getSquare()
{
return Math.PI * radius * radius;
}

// Метод вывода на экран.
public virtual void print()
{
Console.WriteLine("R = {0}; x = {1}, y = {2}, S = {3}, P = {4}", radius, x0, y0, getSquare(), getLength());
}
}

// Класс Цилиндр, производный от Окружности.
class Cylinder : Circle
{
// Высота.
private double height;

// Конструктор по умолчанию. Создает цилиндр с единичным радиусом и высотой с центром в точке (0; 0).
public Cylinder()
// Вызываем конструктор с 1м параметром.
: this(1, 1)
{
}

// Конструктор с 2мя параметрами. Создает цилиндр с заданным радиусом и высотой с центром в точке (0; 0).
public Cylinder(double r, double h)
// Вызываем конструктор с 3мя параметрами.
: this(0, 0, r, h)
{
}

// Конструктор 4мя параметрами. Создает цилиндр с заданным радиусом, высотой и центром.
public Cylinder(double x, double y, double r, double h)
// Вызываем конструктор базового класса.
: base(x, y, r)
{
height = h;
}

// Метод, вычисляющий объем цилиндра.
public double getVolume()
{
return getSquare() * height;
}

// Метод, вычисляющий площадь поверхности цилиндра.
public double getSurfaceSquare()
{
return getSquare() * height;
}

// Перегрузка оператора "равно".
public static bool operator ==(Cylinder c1, Cylinder c2)
{
return c1.getVolume() == c2.getVolume();
}

// Перегрузка оператора "не равно".
public static bool operator !=(Cylinder c1, Cylinder c2)
{
return c1.getVolume() != c2.getVolume();
}

// Перегрузка оператора "больше".
public static bool operator >(Cylinder c1, Cylinder c2)
{
return c1.getVolume() > c2.getVolume();
}

// Перегрузка оператора "меньше".
public static bool operator <(Cylinder c1, Cylinder c2)
{
return c1.getVolume() < c2.getVolume();
}

public virtual void print()
{
Console.WriteLine("R = {0}; H = {1}; x = {2}, y = {3}, S = {4}, V = {5}", radius, height, x0, y0, getSurfaceSquare(), getVolume());
}
}

class Program
{
static void Main(string[] args)
{
// Создаем окружность помощью коструктора по умолчанию.
Circle circle1 = new Circle();
circle1.print();

// Создаем окружность помощью коструктора с одним параметром.
Circle circle2 = new Circle(2);
circle2.print();

// Создаем окружность помощью коструктора тремя параметрами.
Circle circle3 = new Circle(2, -3, 1);
circle3.print();

// Создаем цилиндр помощью коструктора по умолчанию.
Cylinder cylinder1 = new Cylinder();
Console.Write("Cylinder 1: ");
cylinder1.print();

// Создаем цилиндр помощью коструктора с 2мя параметрами.
Cylinder cylinder2 = new Cylinder(2, 3);
Console.Write("Cylinder 2: ");
cylinder2.print();

// Создаем цилиндр помощью коструктора с 4мя параметрами.
Cylinder cylinder3 = new Cylinder(-3, 8, 2, 3);
Console.Write("Cylinder 3: ");
cylinder3.print();

// С помощью перегруженных операторов сравнения сравниваем цилиндры.
Console.WriteLine("Cylinder 1 = Cylinder 2: {0}", cylinder1 == cylinder2);
Console.WriteLine("Cylinder 1 = Cylinder 3: {0}", cylinder1 == cylinder3);
Console.WriteLine("Cylinder 1 > Cylinder 2: {0}", cylinder1 > cylinder2);
Console.WriteLine("Cylinder 1 < Cylinder 2: {0}", cylinder1 < cylinder2);

Console.Read();
}
}
}
0
75 / 75 / 96
Регистрация: 29.09.2012
Сообщений: 232
30.05.2017, 18:15 4
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
using System;
 
namespace ConsoleApplication1
{
    class Cylinder 
    {
        private double h;
        private double v;
        private double r;
        private double s;      
        public Cylinder(double H, double R)
        {
            h = H;
            r = R;
        }
        public Cylinder(double V)
        {
            v = V;
        }
        public double V()
        {
            v = Math.PI * r * r * h;                  
            return v;
        }
        public void S()
        {
            s = 2 * Math.PI * r * h;
            Console.WriteLine("Площадь поверхности цилиндра: {0}",s);
        }
        public static bool operator ==(Cylinder obj1, Cylinder obj2)
        {
            if (obj1.v == obj2.v)
            return true;
            return false;
        }
 
        public static bool operator !=(Cylinder obj1, Cylinder obj2)
        {
            if (obj1.v != obj2.v )
                return true;
            return false;
        }
 
        public static bool operator >(Cylinder obj1, Cylinder obj2)
        {
            if (obj1.v > obj2.v)
                return true;
            return false;
        }
        public static bool operator <(Cylinder obj1, Cylinder obj2)
        {
            if (obj1.v < obj2.v)
                return true;
            return false;
        }
 
        public override int GetHashCode()
        {  
            return 0;  
        }
        public override bool Equals(object o)
        {
            return true;
        }
 
    }
    class Program
    {
        static void Main()
        {
            Console.WriteLine("Введите высоту первого цилиндра");
            double H = double.Parse(Console.ReadLine());
            Console.WriteLine("Введите радиус первого цилиндра");
            double R = double.Parse(Console.ReadLine());
            Cylinder a = new Cylinder(H,R);
            Console.WriteLine("Введите высоту второго цилиндра");
            double h = double.Parse(Console.ReadLine());
            Console.WriteLine("Введите радиус второго цилиндра");
            double r = double.Parse(Console.ReadLine());
            Cylinder b = new Cylinder(h,r);
            double v = a.V();
            double v1 = b.V();
            Console.WriteLine("Объем первого цилиндра равен: {0}",v);
            a.S();
            Console.WriteLine("Объем второго цилиндра равен: {0}", v1);
            b.S();
            Cylinder z = new Cylinder(v);
            Cylinder z1 = new Cylinder(v1);
            if (z == z1)
            {
                Console.WriteLine("Равны");
            }
            if (z != z1)
            {
                Console.WriteLine("Не равны");
            }
            if (z > z1)
            {
                Console.WriteLine("Объем первого цилиндра больше второго");
            }
            if (z < z1)
            {
                Console.WriteLine("Объем второго цилиндра больше первого");
            }
                    Console.ReadKey();
        }
    } 
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.05.2017, 18:15
Помогаю со студенческими работами здесь

Создать класс BaseString (простая строка) и производный класс OctString (восьмеричная строка) (консоль)
Создать базовый класс BaseString (простая строка), содержащий поля: 1.поле для хранения символов...

Абстрактный класс и производный класс
public abstract class Izdanie { abstract public string Informantion(); //...

Создать базовый класс «цилиндр»
Добрый вечер. Я начинающих программист. И у меня возникла проблема, помогите, пожалуйста. Создать...

Создать производный класс
Можно я со своим вопросом влезу? Нельзя. Одна тема один вопрос В общем задание такое:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru