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

Разработать классы "Переговорное устройство", "Телефон", "Мобильный телефон"

02.07.2016, 14:27. Показов 3565. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Разработать 3 класса:

Переговорное устройство (Communicator)

Закрытые переменные

Текст полученного сообщения

Методы

Конструктор без параметра

Закрытый метод Receive с параметром-строкой - получение телефоном

сообщения

Открытый метод Send с параметрами - коммуникатор и сообщение -

передача сообщения указанному коммуникатору

Свойство ReceivedMessage для доступа по чтению к тексту полученного

сообщения

Телефон (Phone) - производный от Communicator

Закрытые переменные

Телефон, с которым данный телефон находится на связи (null - нет связи)

Методы

Конструктор без параметров

Открытый метод Connect с параметром-телефоном - устанавливает связь с

заданным телефоном.

Открытый метод Send с параметром-строкой - передает сообщение

телефону на связи или порождает ошибку, если телефона на связи нет

Открытый метод Drop без параметров - прекращает связь с телефоном

Мобильный телефон (Mobile) - производный от Phone

Закрытые переменные

Величина текущего счета (вещественное число)

Стоимость одного переданного символа (вещественное число)

Методы

Конструктор с параметрами для переменных класса.

Метод Send с параметром-строкой осуществляет передачу строки телефону

на связи и уменьшающий текущий счет на стоимость передачи сообщения.

Если денег на счету недостаточно для передачи сообщения, генерируется

ошибка.


В Main

Создать по два объекта каждого класса.

Продемонстрировать передачу сообщения одного коммуникатора другому.

Продемонстрировать успешную передачу сообщения одного телефона

другому.

Продемонстрировать неудачную передачу сообщения одного телефона

другому после разрыва связи.

Продемонстрировать неудачную передачу сообщения одного мобильного

телефона другому при передаче достаточно длинного сообщения.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.07.2016, 14:27
Ответы с готовыми решениями:

Класс мобильный телефон. Добавить проверку на существование цены телефона введеной пользователем
надо сделать проверку, чтобы если пользователь вводил цену телефона которой нет, и программа выдавала соответсвенно сообщение:" что...

Поддерживает ли мобильный телефон цветные изображения
Требуется узнать - поддерживает ли мобильный телефон цветные изображения(посредством HTTP_ACCEPT или еще как-то...). К примеру я хочу...

Отладка приложения через телефон. Телефон не определяется, как устройство для разработки
Доброго времени суток, друзья! Андроидом занимался где-то в последний раз годик назад, составляя простые программки в стиле фонарика....

3
38 / 38 / 52
Регистрация: 03.02.2016
Сообщений: 99
04.07.2016, 13:28
class Communicator
Кликните здесь для просмотра всего текста

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
public class Communicator
    {
        private string _textmessage;
 
        private Communicator _communicator;
 
        public string ReceivedMessage
        {
            get
            {
                if (_textmessage != null)
                    return _textmessage;
                else
                    return "No message text";
            }
        }
        public Communicator() {}
        private void Receive(string textmessage)
        {         
            Console.WriteLine(textmessage);
        }
        public void Send(Communicator communicator, string textmessage)
        {
            _communicator = communicator;
            _textmessage = textmessage;
            Receive(textmessage);
        }
    }


class Phone
Кликните здесь для просмотра всего текста

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 public class Phone : Communicator
    {
        private Phone _phone;
 
        public Phone() { }
 
        public void Connect(Phone phone)
        {
            _phone = phone;
        }
        public virtual void Send(string textmessage)
        {
            Console.WriteLine(_phone == null ? "Error, no phone" : textmessage);
        }
 
        public void Drop()
        {
            _phone = null;
        }
    }


class Mobile
Кликните здесь для просмотра всего текста

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
 public class Mobile : Phone
    {
        private int _valueAccount;
        private int _costOneSymbol;
 
        public Mobile(int valueAccount, int costOneSymbol)
        {
            _valueAccount = valueAccount;
            _costOneSymbol = costOneSymbol;
        }
        public override void Send(string textMessage)
        {
            for (int i = 0; i < textMessage.Length - 1; i++)
            {
                if (_valueAccount > _costOneSymbol)
                {
                    _valueAccount -= _costOneSymbol;
                }
                else
                {
                    Console.WriteLine("Insufficient funds in the account");
                    return;
                }
            }
            Console.WriteLine(textMessage);
        }
    }


Main
Кликните здесь для просмотра всего текста

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
static void Main(string[] args)
        {
            Communicator cm1 = new Communicator();
            Communicator cm2 = new Communicator();
 
            cm1.Send(cm2,"Hello, i'm message text for communicator"); // true
        
 
            Phone p1 = new Phone();
            Phone p2 = new Phone();
 
            p1.Connect(p2);
            p1.Send("Hello, i'm message text for phone"); // true
 
            p1.Drop();
            p1.Send("Hello, i'm message text for phone"); // false
 
            Mobile m1 = new Mobile(1000,5);
            Mobile m2 = new Mobile(15,5);
           
            m1.Send("Hello, i'm message text for mobile"); // true
            m2.Send("Hello, i'm message text for mobile"); //false
          
            Console.ReadLine();
        }
0
0 / 0 / 0
Регистрация: 13.06.2016
Сообщений: 12
07.07.2016, 00:17  [ТС]
Как это сделать в Windows Forms?
0
158 / 187 / 48
Регистрация: 25.11.2013
Сообщений: 978
07.07.2016, 03:40
Здраствуйте. Я, Кирилл. Хотел бы чтобы вы сделали игру, 3Д-экшон суть такова... Пользователь может играть лесными эльфами, охраной дворца и злодеем. И если пользователь играет эльфами то эльфы в лесу, домики деревяные набигают солдаты дворца и злодеи. Можно грабить корованы... И эльфу раз лесные то сделать так что там густой лес...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.07.2016, 03:40
Помогаю со студенческими работами здесь

Мобильный телефон
Самсунг очень нагревается

Услуга за мобильный телефон
Описать заданный класс в отдельном модуле. Все поля класса – закрытые. Вычисляемые поля оказаны курсивом. Создать 2 конструктора для...

Gongkai - мобильный телефон за $12
В китайском торговом центре Mingtong Digital был обнаружен крайне любопытный телефон. Первое, что бросается в глаза - это его цена равная...

Слайдеры и мобильный телефон
Перелопатил кучу слайдеров под joomla 3. Правильно я понял что слайдеры на javascript не будут работать на мобильных телефонах? У меня на...

Прямоугольный мобильный телефон
Подскажите, а есть ли идеально прямоугольные телефоны? Без закруглений? Обычная звонилка подойдет


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
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 с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru