Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Microsoft .NET

  Все выпуски  

RFpro.ru: Microsoft .NET


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты данной рассылки

Гаряка Асмик
Статус: Профессор
Рейтинг: 6538
∙ повысить рейтинг »
Micren
Статус: Профессионал
Рейтинг: 1713
∙ повысить рейтинг »
Andrew Kovalchuk
Статус: Профессионал
Рейтинг: 779
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / Microsoft .NET : C#

Номер выпуска:201
Дата выхода:02.01.2011, 06:30
Администратор рассылки:Alexey G. Gladenyuk (Управляющий)
Подписчиков / экспертов:164 / 56
Вопросов / ответов:1 / 1

Вопрос № 181655: Здравствуйте, уважаемые эксперты! Помогите, пожалуйста, довести до ума решение задания. Первая половина (описание базового класса Строка) сделана и есть кое что из второй половины: Описать базовый класс Строка. Обязательные поля класса:


Вопрос № 181655:

Здравствуйте, уважаемые эксперты! Помогите, пожалуйста, довести до ума решение задания. Первая половина (описание базового класса Строка) сделана и есть кое что из второй половины:

Описать базовый класс Строка.
Обязательные поля класса:
∙ поле для хранения символов строки;
∙ значение типа ushort для хранения длины строки в байтах.
Реализовать обязательные методы следующего назначения:
∙ конструктор без параметров;
∙ конструктор, принимающий в качестве параметра строковый литерал;
∙ конструктор, принимающий в качестве параметра символ;
∙ метод получения длины строки;
∙ метод очистки строки (сделать строку пустой).
Описать производный от Строка класс Десятичная_строка. Строки данного класса могут содержать только символы десятичных цифр и символы – и +, задающие знак числа. Символы – или + могут находиться только в первой позиции числа, причем символ + может отсутствовать, в этом случае число считается положительным. Если в составе иници ализирующей строки будут встречены любые символы, отличные от допустимых, класс Десятичная_строка принимает нулевое значение. Содержимое данных строк рассматривается как десятичное число.
Для класса определить следующие методы:
∙ конструктор, принимающий в качестве параметра число;
∙ арифметическая разность строк;
∙ проверка на больше (по значению);
∙ проверка на меньше (по значению).

Отправлен: 27.12.2010, 20:49
Вопрос задал: verona (2-й класс)
Всего ответов: 1
Страница вопроса »


Отвечает Micren (Профессионал) :
Здравствуйте, verona!
Программа:
Код:
using System;

namespace Application
{
class MainClass
{
public static void Main (string[] args)
{
try {
// Ввод данных
DecimalString num1 = new DecimalString (inputInt ("Введите первое число(Num1):"));
DecimalString num2 = new DecimalString (inputInt ("Введите второе число(Num2):"));
// Вывод
Console.WriteLine ("Введены числа:\nNum1={0}\nNum2={1}\nРазница Num1-Num2={2}\n" +
"num1<num2={0}<{1}={3}\nnum1>num2={0}>{1}={4}",
num1, num2, (num1 - num2), (num1 < num2), (num1 > num2));
} catch (Exception ex) {
Console.WriteLine ("\nИсключение!!! {0}", ex.Message);
} finally {
Console.ReadKey ();
}

}

// Ввод числа
private static int inputInt (string msg)
{
while (true) {
Console.Write (msg);
string str = Console.ReadLine ();
if (str == null) {
throw new System.ApplicationException ("Достигнут конец файла!");
}
int result;
if (int.TryParse (str, out result)) {
return result;
}
Console.WriteLine ("Ошибочный ввод!");
}
}
}

// Класс - строка
public class String
{
// Конструкторы по условию задачи
public String ()
{
Clear ();
}
public String (string str)
{
if (System.String.IsNullOrEmpty (str)) {
str = "";
}
data = str.ToCharArray ();
length = (ushort)data.Length;
}
pub lic String (char ch)
{
length = 1;
data = new char[1];
data[0] = ch;
}
// Длина строки
public ushort Length {
get { return length; }
}
// Очистка строки
public void Clear ()
{
data = "".ToCharArray ();
length = (ushort)data.Length;
}
public override System.String ToString ()
{
return new System.String (data);
}

// Хранятся данные
protected char[] data = "".ToCharArray ();
// Длина
protected ushort length = 0;
}

// Десятичная строка
public class DecimalString : String
{
public DecimalString (int value) : base(value.ToString ())
{
}
// Оператор вычитания
public static DecimalString operator - (DecimalString left, DecimalString right)
{
return new DecimalString (int.Parse (left.ToString ()) - int.Parse (right.ToString ()));
}
// Очистка
public new void Clear ()
{
data = "0".ToCharArray ();
length = (ushort)data.Length;
}
// Операторы сравнения
public static bool operator < (DecimalString left, DecimalString right)
{
return int.Parse (left.ToString ()) < int.Parse (right.ToString ());
}
public static bool operator > (DecimalString left, DecimalString right)
{
return int.Parse (left.ToString ()) > int.Parse (right.ToString ());
}
}
}

Пример работы:
Код:
Введите первое число(Num1):aaa
Ошибочный ввод!
Введите первое число(Num1):24
Введите второе число(Num2):10
Введены числа:
Num1=24
Num2=10
Разница Num1-Num2=14num1<num2=24<10=False
num1>num2=24>10=True

Ответ отправил: Micren (Профессионал)
Ответ отправлен: 27.12.2010, 22:08
Номер ответа: 265149
Украина, Краматорск

Оценка ответа: 5

Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 265149 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:


  • Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2011, Портал RFPRO.RU, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2010.6.25 от 13.12.2010

    В избранное