Класс для работы с восьмеричным числом, хранящимся в виде строки символов - C#

Узнай цену своей работы

Формулировка задачи:

Создать класс для работы с восьмеричным числом, хранящимся в виде строки символов. Реализовать операции присваивания, сравнения, преобразование в десятичное число, форматный вывод, доступ к заданной цифре числа по индексу. Составить программу для тестирования класса. Если кому-то несложно или кто-нибудь знает, как осуществить подобное, прошу помочь, буду очень благодарен. Уже не знаю, к кому обратиться, надеюсь на понимание. Вот то, что уже получилось:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication16
{
    class Program
    {
        static void Main(string[] args)
        {
            VosemNumber bNum1;
            VosemNumber bNum2;
            VosemNumber bNum3;
 
            //Обработка исключений
            try
            {
                bNum1 = new VosemNumber("132");
                bNum2 = new VosemNumber("152");
                bNum3 = new VosemNumber("0");
                
            }
            catch (FormatException ex)
            {
                Console.WriteLine(ex.Message);
                Console.ReadLine();
                return;
            }
            
            Console.WriteLine("Первый Элемент: {0:d1}", bNum1);
            Console.WriteLine("Второй Элемент: {0:d1}", bNum2);
            Console.WriteLine("Третий элемент: {0:d1}", bNum3);

            //Сравнение
            Console.WriteLine(bNum1.Equals(bNum2));
            
        }
    }
    public class VosemNumber
    {
        //Внутреннее значение числа
        private int vNumber;
 
        //Конструктор с проверкой формата параметра
        public VosemNumber(string bNumber)
        {
            bool res = bNumber.ToCharArray().Any(n => (n > '7'));
            if (res)
                throw new FormatException("Введено не восьмеричное число!!");
 
            vNumber = Convert.ToInt32(bNumber, 8);
        }
 
        //Перегрузка Equals
        public override bool Equals(object obj)
        {
            if (obj is VosemNumber)
            {
                if (this.ToString() == ((VosemNumber)obj).ToString())
                {
                    Console.WriteLine("Элементы 1 и 2 эквивалентны");
                    return true;
                }
            }
            Console.WriteLine("Элементы 1 и 2 неэквивалентны");
            return false;
        }
        //Перегрузка GetHashCode
        public override int GetHashCode()
        {
            return this.ToString().GetHashCode();
        }
        //Перегрузка ToString()
        public override string ToString()
        {
            return Convert.ToString(vNumber, 8);
        }
    }
}

Решение задачи: «Класс для работы с восьмеричным числом, хранящимся в виде строки символов»

textual
Листинг программы
Console.WriteLine("a = {0}", a);
Console.WriteLine("b = {0}", b);
Console.WriteLine("First digit from b = {0}", b[0]);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.833 из 5
Похожие ответы