Класс для работы с восьмеричным числом, хранящимся в виде строки символов - 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]);