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

Описать класс «аудитория», содержащий сведения о длине и ширине, высоте потолков и количестве компьютеров в аудитории

30.11.2013, 05:35. Показов 3038. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Объясните пожалуйста, как это сделать:

Описать класс «аудитория», содержащий сведения о длине и ширине, высоте потолков и количестве компьютеров в аудитории. Предусмотреть инициализацию с проверкой допустимости значений полей. Описать методы вычисления площади и объема аудитории и выдачи сообщения выполняются ли санитарные нормы (площадь на 1 компьютер должна быть не менее 6 м2). В случае недопустимых значений полей выбрасываются исключения.


Разрабатываемый класс должен содержать следующие элементы:
скрытые и открытые поля, конструкторы без параметров и с параметрами (имена некоторых полей должны совпадать с идентификаторами параметров), методы и свойства. Методы и свойства должны обеспечивать непротиворечивый и удобный интерфейс класса.
В программе должна выполняться проверка всех разработанных элементов класса, вывод состояния объекта.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.11.2013, 05:35
Ответы с готовыми решениями:

Описать класс «комната», содержащий сведения о метраже, высоте потолков и количестве окон
Объясните пожалуйста, как такое вообще делать: Описать класс «комната», содержащий сведения о метраже, высоте потолков и количестве...

Описать класс «комната», содержащий сведения о метраже, высоте потолков и количестве окон
Описать класс «комната», содержащий сведения о метраже, высоте потолков и количестве окон. Предусмотреть инициализацию с проверкой...

Описать класс "здание", содержащий сведения о количестве подъездов и этажей, и количестве квартир на этаже
Необходимо создать проект, в котором описать класс «здание», содержащий сведения о количестве подъездов и этажей, и количестве квартир на...

10
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
30.11.2013, 07:32
Vlad0off, а с чем сложности? Создать класс с нужными полями и конструкторами. Методы - математика 5 класса, рассчет площади прямоугольника.
0
5 / 5 / 5
Регистрация: 23.05.2013
Сообщений: 62
30.11.2013, 07:42  [ТС]
Вот наработки:
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace room_properties_class
{   
    class Room
    {
       
        public double dlina;
        public double shirina;
        public double visota;
        public int computers;
 
        
        public void plosh()
        {
            double pl = dlina * shirina;
            Console.WriteLine("Площадь комнаты: " + pl + " кв.м.");
        }
 
        
        public void objem()
        {
            double obj = dlina * shirina * visota;
            Console.WriteLine("Обьем комнаты: " + obj + " куб.м.");
        }
    
        public void sn()
        {
         double   sn = (dlina * shirina) / (computers * 6);
         if (sn > 1) Console.WriteLine("санитарные нормы выполняются"); else Console.WriteLine("санитарные нормы не выполняются");
        }
    }
    class Program
    {
       
        
 
        static void Main()
        {
            
            Room myRo = new Room();
 
            Console.WriteLine("Введите длину комнаты: ");
            myRo.dlina = Convert.ToDouble(Console.ReadLine());
 
            Console.WriteLine("Введите ширину комнаты: ");
            myRo.shirina = Convert.ToDouble(Console.ReadLine());
 
            Console.WriteLine("Введите высоту комнаты: ");
            myRo.visota = Convert.ToDouble(Console.ReadLine());
 
            Console.WriteLine("Количество компьютеров: ");
            myRo.computers = Convert.ToInt16(Console.ReadLine());
            myRo.sn();
            myRo.plosh();
            myRo.objem();
            Console.WriteLine("Количество компьютеров: " + myRo.computers);
            Console.ReadLine();
 
        }
    }
}
Но в программе нет закрытых полей, конструкторов с параметрами.
Случай недопустимых значений полей должны выбрасываться исключения - это вообще не понимаю, что за...
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
30.11.2013, 07:51
Vlad0off, ну самое первое - использовать английский. Не dlina, а length, не shirina, а width, и так далее.

Дальше. Закрытыми можно сделать длину, ширину и высоту, а computers можно не проверять, если заменить на uint тип. А закрытые поля можно сделать так, на примере длины

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        private double _length;
 
        public double Length
        {
            get
            {
                return _length;
            }
            set
            {
                if (value < 0)
                    throw new ArgumentOutOfRangeException("value", "Параметр не может быть отрицательным!");
                _length = value;
            }
        }
если пытаемся задать отрицательную длину помещения, то выбрасываем исключение.

про исключения читаем здесь: http://ru.wikipedia.org/wiki/%... 0%B8%D0%B9

и здесь:
http://msdn.microsoft.com/ru-r... 10%29.aspx

Пока осваивайте это, переходите на английский и все такое (ne objem, а volume) и так далее.

И да, все методы должны начинаться с большой буквы, как и публичные поля, приватные как в примере выше - с маленькой. Некоторые, как я, предпочитают также прочерк пере именем ставить в случае приватных переменных, но это уже дело вкуса. А то что выше написано - обязательно
2
5 / 5 / 5
Регистрация: 23.05.2013
Сообщений: 62
30.11.2013, 08:09  [ТС]
Хорошо, а как задать значение для вычислений для _length (он закрыт и пытаться ввести с клавиатуры значение, как я делал это раньше, бесполезно)
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
30.11.2013, 08:11
Vlad0off, через свойство Length же. А в дальнейшем и через конструктор

Добавлено через 55 секунд
И еще int =Int32, а не 16
1
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
30.11.2013, 08:25
Класс
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
    class Room
    {
 
        private double dlina;
        /// <summary>Длина комнаты </summary>
        internal double Dlina
        {
            get { return dlina; }
            set
            {
                if (value <= 0) throw new ArgumentException("Длина не может быть меньше или равна нулю");
                dlina = value;
            }
        }
        private double shirina;
 
        /// <summary>Ширина комнаты</summary>
        internal double Shirina
        {
            get { return shirina; }
            set
            {
                if (value <= 0) throw new ArgumentException("Ширина не может быть меньше или равна нулю");
                shirina = value;
            }
        }
        private double visota;
 
        /// <summary>Высота комнаты</summary>
        internal double Visota
        {
            get { return visota; }
            set
            {
                if (value <= 0) throw new ArgumentException("Высота не может быть меньше или равна нулю");
                visota = value;
            }
        }
        private uint computers;
 
        /// <summary>Количество компьютеров</summary>
        internal uint Computers
        {
            get { return computers; }
            set { computers = value; }
        }
 
        public Room() { }//Пустой конструктор
        /// <summary>
        /// Конструктор для создания нового экземпляра класса Room
        /// </summary>
        /// <param name="l">Длина комнаты</param>
        /// <param name="w">Ширина комнаты</param>
        /// <param name="h">Высота комнаты</param>
        /// <param name="comp">Количество компьютеров</param>
        public Room(double l, double w, double h, uint comp) //Конструктор с параметрами
        {
            //Если один из параметров равен нулю или отрицателен, то выбрасываем исключение
            if (l <= 0 || w <= 0 || h <= 0) throw new ArgumentException();
            dlina = l;
            shirina = w;
            visota = h;
            computers = comp;
        }
        /// <summary>Площадь комнаты</summary>
        public double Square()
        {
            return dlina * shirina;
        }
 
 
        /// <summary>Объём комнаты</summary>
        public double Volume()
        {
            return dlina * shirina * visota;
        }
 
        /// <summary>Санитарные нормы</summary>
        public bool IsComplyWithSanitaryNormes()
        {
            return (dlina * shirina) / (computers * 6) > 1;
        }
    }

Использование:
C#
1
2
3
4
5
6
7
8
9
10
11
        static void Main(string[] args)
        {
            Room room = new Room(12, 5, 3, 50);
            Console.Write("Размеры комнаты (ШхДхВ): {0}x{1}x{2}\r\n" +
                "Площадь комнаты: {3:f3} кв.м.\r\n" +
                "Объём комнаты: {4:f3} куб.м.\r\n" +
                "Количество компьютеров: {5}\r\n" +
                "Санитарные нормы {6}соблюдены.",
                room.Shirina, room.Dlina, room.Visota, room.Square(), room.Volume(),room.Computers, room.IsComplyWithSanitaryNormes() ? "" : "не ");
            Console.ReadLine();
        }
1
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
30.11.2013, 12:02
ViterAlex, мде...
2
5 / 5 / 5
Регистрация: 23.05.2013
Сообщений: 62
30.11.2013, 12:05  [ТС]
спасибо всем большое
0
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
30.11.2013, 19:09
Цитата Сообщение от Psilon Посмотреть сообщение
ViterAlex, мде...
Что-то не так? Буду признателен за конструктивные замечания
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
30.11.2013, 19:50
ViterAlex, во-первых dlina-shirina - не ок.
Во-вторых поучать новичка с XML-комментами - это жесть.
Ну а самое главное - я хотел, чтобы он постепенно, но сам это сделал... Так лучше запоминается...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.11.2013, 19:50
Помогаю со студенческими работами здесь

Описать класс дерево, содержащий сведения о названии, высоте и возрасте дерева
Описать класс дерево, содержащий сведения о названии, высоте и возрасте дерева. Предусмотреть инициализацию полей с проверкой допустимости...

Описать класс «файл», содержащий сведения об имени, дате создания и длине файла.
Уважаемые форумчане и знатоки,прошу помоч со следующим.Есть задание:Описать класс «файл», содержащий сведения об имени, дате создания и...

Описать класс "Файл", содержащий сведения об имени, дате создания, и длине файла
помогите с лабой...не могу понять и всё((( задание: описать класс &quot;файл&quot; содержащий сведения о имени файла, дате создания, и длине...

Описать класс «аудитория»
Описать класс «аудитория», содержащий сведения о длине и ширине, высоте потолков и количестве компьютеров в аудитории. Предусмотреть...

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


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru