Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
1 / 1 / 0
Регистрация: 14.02.2013
Сообщений: 32

класс и потомственные классы

20.02.2013, 22:19. Показов 1078. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
доброго времени суток!
подскажите пожалуйста,как чтобы после ввода сторон в консоли выводились все результаты сторон и какой это треугольник?

здесь основной класс:
Кликните здесь для просмотра всего текста
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
namespace ConsoleApplication1
{
    class Triangle
    {
        public double a, b, c;
        public double perimetr;
        public double square;
        public double halfper;
 
 
        public double A
        {
            get
            {
                return a;
            }
            set
            {
                a = value;
            }
        }
 
        public double B
        {
            get
            {
                return b;
            }
            set
            {
                b = value;
            }
        }
 
        public double C
        {
            get
            {
                return c;
            }
            set
            {
                c = value;
            }
        }
 
        public bool isTriangle
        {
            get
            {
                if (a + b > c && a + c > b && b + c > a)
                {
                    return true;
                }
                Console.WriteLine("Стороны введены неправильно!");
                return false;
            }
 
        }
        public Triangle(int a_, int b_, int c_)
        {
            //проверка на положительность сторон треугольника
            isCorrect(a_, b_, c_);
            A = a_;
            B = b_;
            C = c_;
        }
 
        //периметр
        public double Perimetr()
        {
            perimetr = a + b + c;
            return perimetr;
        }
        //площадь
        public double Square()
        {
            // по формуле Геррона
            halfper = perimetr / 2.0;
            square = Math.Sqrt(halfper * (halfper - a) * (halfper - b)
                * (halfper - c));
           return square;
        }
 
        
        //положительность сторон
        static void isCorrect(int a, int b, int c)
        {
            if (a < 0 || b < 0 || c < 0)
                throw new Exception("Вы ввели отрицательные стороны!");
        }
 
        //перевод в строку
        public override string ToString()
        {
            return "Стороны: " + "a: " + A + " b: " + B + " c: " + C;
            //+вывод всех результатов(площадь,высота,медиана и т.д.) 
            
        }
    }
}


плюс нужно было написать несколько потомственных классов.вот что вышло:
Кликните здесь для просмотра всего текста
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
class rectangular_triangle: Triangle
    {
        public double bisectrix;
        public double visota;
        public double Bisectrix() //вычисление биссектрисы, исходящей из прямого угла
        {
            bisectrix = Math.Sqrt(2)*a*b/(a+b);
            return bisectrix;
        }
        public double Visota() //вычисление высоты, исходящей из прямого угла
        {
            visota = a * b / c;
            return visota;
        }
 
    }
 
class equilateral_triangle : Triangle
    {
        public double radVpisOkr;
        public double radopisOkr;
        public double visota;
        public double RadVpisOkr() //вычисление радиуса впис.окружности
        {
            radVpisOkr = Math.Sqrt(3) * a / 6;
            return radVpisOkr;
        }
        public double RadOpisOkr() //вычисление радиуса опис.окружности
        {
            radopisOkr = Math.Sqrt(3) * a / 3;
            return radopisOkr;
        }
        public double Visota() //вычисление высоты, исходящей из прямого угла
        {
            visota = Math.Sqrt(3)*a / 2;
            return visota;
        }
    }


заранее спасибо!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.02.2013, 22:19
Ответы с готовыми решениями:

Класс: Создать базовый класс «работник фирмы» и производные классы «стажер», «руководящий сотрудник», «директор»...
Всем привет, помогите пожалуйста, я уже всю голову сломал, не знаю как решить ее... Создать базовый класс «работник фирмы» и...

Классы и наследование (Создать класс 3D фигура, и производные классы шар, конус, цилиндр и куб. Создать функцию вычисления объёма.)
Уважаевые, помогите написать прожку на экзамене: Создать класс 3D фигура, и производные классы шар, конус, цилиндр и куб. Создать функцию...

Динамические массивы структур;Классы. Класс массивы структур;Классы. Класс динамического массива структур.
Здраствуйте.Помогите с практичкой мое задание 4.3. Строка таблицы данных содержит следующую информацию о владельцах авто: ф.и.о....

3
 Аватар для ITL
284 / 255 / 73
Регистрация: 17.07.2012
Сообщений: 618
20.02.2013, 23:02
А для вывода всех сторон у вас есть метод ToString. Вообще по-хорошему весь класс бы переделать.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public Triangle(int a_, int b_, int c_)
        {
            //проверка на положительность сторон треугольника
            isCorrect(a_, b_, c_);
            A = a_;
            B = b_;
            C = c_;
            Typeoftriangle();
        }
 
        private void Typeoftriangle()
        {
            if (A == B && B == C)
                Console.WriteLine("Равносторонний треугольник");
            else if (A != B && B != C)
                Console.WriteLine("Разносторонний треугольник");
            else
                Console.WriteLine("Равнобедренный треугольник");
        }
1
1 / 1 / 0
Регистрация: 14.02.2013
Сообщений: 32
21.02.2013, 11:49  [ТС]
почему то когда в ToString пытаюсь выводить площадь и прочее,компилятор ругается...и всегда разные ошибки на одинаковый вывод.

Добавлено через 1 минуту
ITL, спасибо кстати))

Добавлено через 2 часа 13 минут
ITL, а можно еще вопрос:при наследовании нужно прописывать конструктор?как это можно сделать?
0
 Аватар для ITL
284 / 255 / 73
Регистрация: 17.07.2012
Сообщений: 618
21.02.2013, 12:13
Цитата Сообщение от ariadna44 Посмотреть сообщение
почему то когда в ToString пытаюсь выводить площадь и прочее,компилятор ругается...и всегда разные ошибки на одинаковый вывод.
Вот мой вариант, немного переделанный.
Кликните здесь для просмотра всего текста
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
using System;
using System.Collections.Generic;
using System.Linq;
 
namespace ConsoleApplication1
{
    public class Program
    {
        public static void Main()
        {
            var triangl = new Triangle(19, 11, 12);
            Console.WriteLine(triangl);
            Console.ReadKey();
        }
    }
 
    class Triangle
    {
        public int A { get; private set; }
        public int B { get; private set; }
        public int C { get; private set; }
        public double Perimetr { get; private set; }
        public double Square { get; private set; }
        public double Halfper { get; private set; }
        public bool IsTriangle { get; private set; }
 
        public Triangle(int a, int b, int c)
        {    
            //проверка на положительность сторон треугольника
            IsCorrect(a, b, c);       
            A = a;
            B = b;
            C = c;    
            Typeoftriangle();
            CalcPerimetr();
            CalcSquare();
        }
 
        //периметр
        private void CalcPerimetr()
        {
            Perimetr = A + B + C;
        }
        //площадь
        private void CalcSquare()
        {
            // по формуле Геррона
            Halfper = Perimetr / 2.0;
            Square = Math.Sqrt(Halfper * (Halfper - A) * (Halfper - B)
                * (Halfper - C));
        }
 
        private void Typeoftriangle()
        {
            if (A == B && B == C)
                Console.WriteLine("Равносторонний треугольник");
            else if (A != B && B != C)
                Console.WriteLine("Разносторонний треугольник");
            else
                Console.WriteLine("Равнобедренный треугольник");
        }
 
        //положительность сторон
        private void IsCorrect(int a, int b, int c)
        {
            if (a < 0 || b < 0 || c < 0)
                throw new Exception("Вы ввели отрицательные стороны!");
            if (a + b > c && a + c > b && b + c > a)
            {
                IsTriangle = true;
            }
            else
            {
                Console.WriteLine("Стороны введены неправильно!");
                IsTriangle = false;
            }               
        }
 
        //перевод в строку
        public override string ToString()
        {
            if(IsTriangle)
                return "Стороны: " + "A: " + A + " B: " + B + " C: " + C +
                       "\nПлощадь: " + Square+ "\nПериметр: " + Perimetr;
            //+вывод всех результатов(площадь,высота,медиана и т.д.) 
            return null;
        }
    }
}


И насчет наследия конструктора:
C#
1
public equilateral_triangle(int a, int b, int c) : base(a,b,c) { }
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.02.2013, 12:13
Помогаю со студенческими работами здесь

Создать класс - данные - абстрактный базовый класс. Создать производные классы
Всем привет! У меня вот такая проблема.... Создать класс - данные - абстрактный базовый класс. Создать производные классы - данные типа...

Класс создающий классы
Есть задание, мне нужно создать класс который будет создвать классы лишь по их атрибутеам. Мне бы хотя бы пример класса который создает...

Родительские классы и дочерний класс
Доброе утро. Немогли бы вы помочь мне с созданием родительского класса &quot;прямоугольник&quot; и подключить к нему дочерний класс...

Классы в С#: Описать класс «Книга»
Помогите сделать программу, сама не понимаю ничего! Описать класс «Книга». Класс должен включать в себя следующие поля (свойства): ...

Классы: написать класс часов
Требуется написать класс часов. Возник вопрос с функцией ввода. Как лучше её писать: 1.считывать любой ввод и при неверном вводу...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru