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

Написать класс "комната", описывающий комнату учебного корпуса

08.06.2015, 21:30. Показов 1522. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Господа , помогите разобраться с заданием

Написать класс «комната», описывающий комнату учебного корпуса. Комнат может быть
учебной (аудитория, лаборатория, спорт зал) и служебной (кладовка, кабинет и др.) В
комнате может помещаться m человек. Если делается попытка использовать комнату не по
назначению (например, провести занятие в кладовке) или поместить туда слишком большое
количество людей, то выдается сообщение об ошибке, а в вызывающую программу
возвращается код ошибки. Используя объекты данного класса, написать программу, которая
позволяет распределять аудитории при составлении расписания (10 аудиторий, 5 пар в день).


если с первой частью что-то еще могу предположить , то дальше уж совсем печалка
подтолкните , пожалуйса )
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.06.2015, 21:30
Ответы с готовыми решениями:

Описать класс "Аудитория": наименование учебного корпуса, номер аудитории, количество мест
Аудитории: наименование учебного корпуса, номер аудитории, количество мест. Дополнить вывод данных...

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

Написать класс, описывающий дерево
Хочется понять, как написать простейший класс, описывающий дерево. Компилирует данный код, но...

Написать класс, описывающий треугольник
Написать класс, описывающий треугольник со сторонами a, b, c, и позволяющий осуществить расчет его...

9
1150 / 742 / 483
Регистрация: 21.01.2014
Сообщений: 1,903
08.06.2015, 22:25 2
Цитата Сообщение от Anklpmr Посмотреть сообщение
если с первой частью что-то еще могу предположить
Давайте, будет с чем работать.
0
0 / 0 / 0
Регистрация: 25.05.2015
Сообщений: 9
08.06.2015, 22:48  [ТС] 3
пока показывать нечего
только создал помещения

все таки я слабо представляю что делать дальше )))
думал воткнуть к каждой комнате True/false в случае если она учебная/не учебная
но что-то не тыкается при заполнении объекта

сори я в С# поока полный нуб

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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Komanata
{
    class Komnata
    {
        public int Area;
        public int Occupants;
       
        public int AreaOerOerson()
        {
            return Area / Occupants;
        }
    }
 
    class Building {
       static void Main(string[] args)
        {
           Komnata auditoria = new Komnata();
           Komnata labaratoria = new Komnata();
           Komnata sport_zal = new Komnata();
           Komnata kabinet = new Komnata();
           Komnata sklad = new Komnata();
 
           auditoria.Area = 40;
           auditoria.Occupants = 25;
           labaratoria.Area = 50 ;
           labaratoria.Occupants = 20;
           sport_zal.Area = 400;
           sport_zal.Occupants = 50;
           kabinet.Area = 20;
           kabinet.Occupants = 5;
           sklad.Area = 10;
           sklad.Occupants = 2;
        }
    }
}
0
141 / 117 / 26
Регистрация: 07.12.2014
Сообщений: 371
08.06.2015, 23:11 4
Anklpmr, ну это мягко говоря не укладывается в смысл задания.Главная идея, как я понимаю, чтобы вы создали от класса комнаты наследников, которые представляют из себя конкретные типы комнат.Как вы собираетесь в вашем текущем коде определять тип комнаты?)
0
0 / 0 / 0
Регистрация: 25.05.2015
Сообщений: 9
09.06.2015, 09:59  [ТС] 5
таки да
я тупо нарисовал комнаты xD
видимо , я сегодня перегрелся , попробую завтра утром накалякать

далеко не пропадайте )

Добавлено через 10 часов 41 минуту
пиля ... что-то я не представляю как разбить комнаты по типам *_*
0
141 / 117 / 26
Регистрация: 07.12.2014
Сообщений: 371
09.06.2015, 18:01 6
Anklpmr, эм.Может быть наследованием?)
0
3 / 3 / 1
Регистрация: 25.03.2014
Сообщений: 45
09.06.2015, 18:41 7
Лучший ответ Сообщение было отмечено Anklpmr как решение

Решение

C#
1
2
3
4
5
6
7
8
9
10
11
12
public class ACTION
    {
        public List<string> AvailableAreas { get; set; }  // Список доступных помещей для действия.
        public int RequiredPeople { get; set; }           //  Необходимое количество человек
 
        // Далее все остальные свойста на ваше усмотрение.
 
        public ACTION()
        {
            AvailableAreas = new List<string>();
        }
    }
C#
1
2
3
4
5
6
7
public class KOMNATA
    {
        public string ID { get; set; } // Тип комнаты, который вам нужен 
        public int MaxPeople { get; set; } // Максимальное количество людей, которое может в ней поместиться
 
        // Далее все остальные свойста на ваше усмотрение.
    }
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
static void Main(string[] args)
        {
            KOMNATA sportzal = new KOMNATA();
 
            sportzal.ID = "sportzal";
            sportzal.MaxPeople = 30;
 
            ACTION fizra = new ACTION();
 
            fizra.AvailableAreas.Add("sportzal");
            fizra.RequiredPeople = 30;
 
            if (fizra.AvailableAreas.Contains(sportzal.ID))
            {
                if (fizra.RequiredPeople <= sportzal.MaxPeople)
                {
                    Console.WriteLine("Занятие началось");
                }
                else
                {
                    Console.WriteLine("Слишком много народу");
                }
            }
            else
            {
                Console.WriteLine("Не тот тип помещения");
            }
        }
Как то так, остальное просто подправите под себя. Или напишите свое если вам не понравится.
Это только так кирпичики, расписание сами придумаете, но у вас все объекты одинаковые вам надо просто будет ID сравнивать, и принадлежность помещения.

Можете просто в комнате сделать список доступных действия, а в Action просто действие и сравнивать. Так наверно проще будет.
1
15 / 15 / 10
Регистрация: 09.01.2015
Сообщений: 37
09.06.2015, 19:17 8
довольно объемное задание, думаю от этого можно оттолкнуться:
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
using System;
using System.IO;
using System.Text;
using System.Timers;
using System.Windows.Forms;
using System.Drawing;
using System.Collections.Generic;
 
namespace CyberForum
{
    public enum TypeOfEvent
    {
        Educational,
        Staff
    }
 
    class Event
    {
        public int Participants { get; set; }
        public string Name { get; set; }
        public TypeOfEvent Type { get; set; }
 
        public Event(TypeOfEvent type, string name, int participants)
        {
            Participants = participants;
            Name = name;
        }
    }
 
    class Room
    {
        public int Area { get; set; }     
        public int Capacity { get; set; } // Вместительность
        public TypeOfEvent Type { get; set; }
        public Dictionary<DayOfWeek, List<Event>> Events;
        
        public int AreaPerOerson
        {
            get
            {
                return Area / Capacity;
            }
        }
 
        public Room(TypeOfEvent type, int area)
        {
            Type = type;
            Area = area;
            Events = new Dictionary<DayOfWeek, List<Event>>();
            foreach (var a in Enum.GetValues(typeof(DayOfWeek)))
            {
                Events.Add((DayOfWeek)a, new List<Event>());
            }
        }
    }
 
    static class Program
    {
        static void Main(string[] args)
        {
            List<Room> School = new List<Room>();
            Room room = new Room(TypeOfEvent.Educational, 50);
            room.Events[DayOfWeek.Monday].Add(new Event(TypeOfEvent.Educational, "MATAN", 25));
            School.Add(room);
        }
    }
}
черт, пока кодил выше уже прислали, ну ладно
1
0 / 0 / 0
Регистрация: 25.05.2015
Сообщений: 9
09.06.2015, 21:41  [ТС] 9
Во всяком случае вы мне очень помогли
понял хоть как это корректно строить

думаю дальше успешно доворочу сам :3

Спасибо , ребят
0
.NET C#,ASP.NET MVC
Эксперт .NET
594 / 507 / 224
Регистрация: 16.10.2010
Сообщений: 1,902
09.06.2015, 23:04 10
Тут можно и с наследованием поработать
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
public interface IEducational
    {
 
    }
 
    public class Room
    {
        public int Capacity { get; set; }
 
        public Room(int capacity)
        {
            Capacity = capacity; 
        }
 
    }
 
    public class Auditory: Room, IEducational
    {
        public Auditory(int capacity) : base(capacity) { }
    }
 
    public class Laboratory : Room, IEducational
    {
        public Laboratory(int capacity) : base(capacity) { }
    }
 
    public class SportRoom : Room, IEducational
    {
        public SportRoom(int capacity) : base(capacity) { }
    }
 
    public class Cabinet : Room
    {
        public Cabinet(int capacity) : base(capacity) { }
    }
 
    public class StaffRoom : Room
    {
        public StaffRoom(int capacity) : base(capacity) { }
    }
 
 
 
    class Program
    {
        static void Main(string[] args)
        {
            var studentsCount = 11;
            var room1 = new Auditory(10);
            var room2 = new Cabinet(3);
 
            if (room1 is IEducational)
            {
                if (room1.Capacity < studentsCount)
                {
                    //startSomeEvent()
                }
                else
                {
                    throw new Exception("Students count cant be more then room capacity");
                }                
            }
            else
            {
                throw new Exception("The room is not educational");
            }
            
        }
    }
0
09.06.2015, 23:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.06.2015, 23:04
Помогаю со студенческими работами здесь

Написать класс, описывающий эллипс
Здравствуйте.. необходимо написать программу... столкнулся с трудностями.. помогите кто может.....

Написать класс, описывающий посылку на почте
Пожалуйста помогите Написать класс, описывающий посылку на почте. Класс должен содержать -поля:...

Написать класс описывающий множество треугольников
Класс описывающий множество треугольников в этом классе должен быть конструктор и должны быть...

Написать класс User, описывающий человека
Написать класс User, описывающий человека (Фамилия, Имя, Отчество, Возраст). Написать программу,...

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

Создать классы, описывающий прямоугольники и класс-наследник, описывающий прямоугольные параллепипеды
Создать классы, описывающий прямоугольники. Найти площадь прямоугольника. Создать класс-наследник,...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru