
C# Описать класс, реализующий счетчик, который может увеличивать или уменьшать свое значение на
единицу. Предусмотрите инициализацию счетчика значениями по умолчанию (создать конструктор без параметров) и произвольными значениями. Счетчик имеет два метода: увеличения и уменьшения, - и свойство, позволяющее получить его текущее состояние. По мимо этого у счетчика есть диапазон, в котором он может увеличивать или уменьшать значения. Например, если диапазон от 0 до 10, то «стрелка счетчика» или нынешнее состояние счетчика будет от 0 до 10 (например, 5). Если стрелка счетчика будет на значении 10, а мы вызовем метод увеличения на 1, то ничего не произойдет. Стрелка так же останется на значении 10. Напишите программу, демонстрирующую все разработанные элементы класса.

Ответы на вопрос

using System;
internal class Program {
private static void Main() {
Console.WriteLine("Введите минимум для счетчика");
var min = int.Parse(Console.ReadLine() ?? throw new InvalidOperationException());
Console.WriteLine("Введите максимум для счетчика");
var max = int.Parse(Console.ReadLine() ?? throw new InvalidOperationException());
Console.WriteLine("Введите значение для счетчика");
var v = int.Parse(Console.ReadLine() ?? throw new InvalidOperationException());
var counter = new Counter(max, min, v);
Console.WriteLine("Введите + для увеличение и - для уменьшения, иное для выхода");
do {
var c = Console.ReadKey();
if (c.KeyChar == '+') counter.Increase();
else if (c.KeyChar == '-') counter.Decrease();
else break;
Console.WriteLine($" => {counter.Value}");
} while (true);
Console.ReadKey();
}
}
public class Counter {
public readonly int Maximum;
public readonly int Minimum;
public int Value { private set; get; }
public Counter(int maximum, int minimum, int counter) {
this.Maximum = maximum;
this.Minimum = minimum;
counter = Math.Min(this.Maximum, counter);
counter = Math.Max(this.Minimum, counter);
this.Value = counter;
}
private Counter() {
this.Maximum = 10;
this.Minimum = 0;
this.Value = 5;
}
public void Increase() {
var value = this.Value + 1;
if (value > this.Maximum || value < this.Minimum)
return;
this.Value++;
}
public void Decrease() {
var value = this.Value - 1;
if (value > this.Maximum || value < this.Minimum)
return;
this.Value--;
}
}




Для реализации описанного счетчика в C#, создадим класс Counter
, который будет содержать поля для текущего значения, минимального и максимального значений. В классе опишем конструкторы для инициализации значениями по умолчанию и произвольными значениями, методы для увеличения и уменьшения значения с проверкой находится ли значение в допустимом диапазоне, и свойство для получения текущего состояния счетчика.
csharpusing System;
class Counter
{
private int minValue;
private int maxValue;
private int currentValue;
// Конструктор без параметров (значения по умолчанию: от 0 до 10)
public Counter()
{
minValue = 0;
maxValue = 10;
currentValue = minValue;
}
// Конструктор с произвольными значениями диапазона
public Counter(int min, int max)
{
minValue = min;
maxValue = max;
currentValue = minValue;
}
// Метод для увеличения значения счетчика на единицу
public void Increment()
{
if (currentValue < maxValue)
{
currentValue++;
}
}
// Метод для уменьшения значения счетчика на единицу
public void Decrement()
{
if (currentValue > minValue)
{
currentValue--;
}
}
// Свойство для получения текущего состояния счетчика
public int Value
{
get { return currentValue; }
}
}
class Program
{
static void Main()
{
// Создаем счетчик со значениями по умолчанию
Counter defaultCounter = new Counter();
Console.WriteLine("Счетчик со значениями по умолчанию:");
Console.WriteLine("Текущее значение: " + defaultCounter.Value);
// Увеличиваем значение на 2 раза
defaultCounter.Increment();
defaultCounter.Increment();
Console.WriteLine("Текущее значение после увеличения на 2: " + defaultCounter.Value);
// Уменьшаем значение на 1
defaultCounter.Decrement();
Console.WriteLine("Текущее значение после уменьшения на 1: " + defaultCounter.Value);
// Создаем счетчик с произвольными значениями диапазона (от -5 до 5)
Counter customCounter = new Counter(-5, 5);
Console.WriteLine("\nСчетчик с произвольными значениями диапазона:");
Console.WriteLine("Текущее значение: " + customCounter.Value);
// Пытаемся увеличить значение за пределы диапазона
for (int i = 0; i < 10; i++)
{
customCounter.Increment();
Console.WriteLine("Текущее значение после увеличения: " + customCounter.Value);
}
// Пытаемся уменьшить значение за пределы диапазона
for (int i = 0; i < 10; i++)
{
customCounter.Decrement();
Console.WriteLine("Текущее значение после уменьшения: " + customCounter.Value);
}
}
}
В приведенной программе создаются два экземпляра счетчика: один с диапазоном от 0 до 10 (значения по умолчанию), и второй с произвольными значениями диапазона от -5 до 5. Затем, производятся операции увеличения и уменьшения значения счетчиков, с учетом ограничений диапазона, и выводятся результаты в консоль.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili