Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.01.2015, 16:59   #1
SnowFire
Новичок
Джуниор
 
Регистрация: 13.01.2015
Сообщений: 1
По умолчанию C# - класс восьмеричное число

Прошу помощи, не получается написать программу на 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);
        }
    }
}
SnowFire вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
класс строка -число в восьмиричной системе счисления (С++) Yuliyasharashkina Помощь студентам 1 10.12.2014 22:38
Дано трехзначное число. Если в сумме его цифр присутствует число 7,то число записать в зеркальном виде ( Паскаль ) Эля777 Помощь студентам 5 22.04.2013 23:23
Класс запускает поток, который заполняет этот класс. Обмен класс <=> поток. Человек_Борща Общие вопросы Delphi 8 27.02.2012 23:24
класс «дробное число» RodionL3 Общие вопросы C/C++ 5 24.04.2010 12:44
класс «дробное число»(С++) RodionL3 Помощь студентам 2 22.04.2010 21:30