Професионална програма
Loading...
+ Нов въпрос
vdzhambazova avatar vdzhambazova 6 Точки

[Inheritance - C# OOP June] Problem 2. Book Shop - проблем с валидиране на Author

Здравейте, някой може ли да ми предложи някакъв по-лесен и четим начин за валидидане на Author, защото моят начин ми се струва доста измислен.

Благодаря предварително:) 

http://pastebin.com/MQXSkvZq

 

 

 

Тагове:
0
C# OOP Basics 04/07/2016 17:02:12
vancho avatar vancho 430 Точки
Best Answer

Направи един сплит на стринга по спейс и една if проверка, ако дължината на масива е по-голяма от 1, тогава проверявай второто име от сплита. Да ли не е null на първо място, празен стринг и тогава за число.

-1
04/07/2016 17:19:32
vdzhambazova avatar vdzhambazova 6 Точки

Благодаря, явно няма по-прост начин :)

0
plamen83 avatar plamen83 4 Точки

ne e li po pravilno da setnem cenata na GoldenEditionBook :

    public override decimal Price {protected set => base.Price = value * 1.3m; }

otkolkoto da pazim gre6na cena v poleto?

 

0
13/08/2018 15:46:10
Filkolev avatar Filkolev 4485 Точки

Предполагам, че може да се ползва някакъв прост регулярен израз. Упражнявали ли сте регекси? Какво е условието за валидни данни?

0
vdzhambazova avatar vdzhambazova 6 Точки

Условието е: Тhe author’s second name shouldnt start with a digit.

Упражнявали сме ама не се сетих как мога да го вмъкна в setter-a

0
Filkolev avatar Filkolev 4485 Точки

За да се ползват регулярни изрази е важно да има пълна яснота какво точно се търси. Да не започва с цифра е лесно: [^\d].*

Но трябва да се види какви символи са позволени и какви не, за да се състави верен израз.

0
vancho avatar vancho 430 Точки

Иначе аз съм го направил с регекс, ама не мисла, че по-просто.

-1
krasi_beck avatar krasi_beck 3 Точки

public string Author
        {
            get
            {
                return this.author;
            }
            set
            {
                var split = value.Split();
                if (split.Length == 1)
                {
                    if (char.IsNumber(split[0][0]))
                    {
                        throw new ArgumentException("Author not valid!");
                    }
                }
                else
                {
                    if (char.IsNumber(split[1][0]))
                    {
                        throw new ArgumentException("Author not valid!");
                    }
                }
                this.author = value;
            }

0
nick.genov avatar nick.genov 104 Точки

Здравейте,

Ще използвам темата, за да задам и аз един въпрос за същата задача. Това е решението ми:

http://pastebin.com/T1kaT13c

 

Условието е леко омазано (джава код в примерите, подредбата на аргументите в условието и в кода за мейн метода, уж предоставеният валиден код за override ToString трябва да се модифицира, за да излезе втория нулев тест - който тест го има само в Judge, и други).

Тъй като съм онлайн и не присъствам на упражненията на живо, подозирам, че има някакви други указания за успешно решение, освен описаните в условието.

Та въпроса е - какво не е изпълнено в моето решение?

0
05/07/2016 11:46:23
Ivailo_Kodov avatar Ivailo_Kodov 97 Точки

Това е от мен .. аз това измислих като най-пестеливо :))

public string Author
  set
  {
  var name = value.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
  if (name.Length > 1 && char.IsDigit(name[1][0]))
  {
  throw new ArgumentException("Author not valid!");
  }
1
mrfreeman avatar mrfreeman 11 Точки

С помощта на коментарите в тази тема успях да добутам задачата до 80/100 като на първия тест излиза Runtime error. Смених типа на "price" да бъде decimal, пак същото

 

ето го кода ако някой забележи къде е пропуска: https://pastebin.com/rWRhcnQb

 

Edit: След първия catch блок добвям

            catch (Exception)
            {
                Console.WriteLine("Title not valid!");//?
            }

и изкарва 100/100 но пак не можах да разбера какъв е проблема с валидацията на Title. В условието се казва единствено, че дължината не трябва да е по-малко от 3 символа.

0
14/04/2017 13:00:52
HristoGrigorov avatar HristoGrigorov 8 Точки

Някой знае ли инпута за втория тест, че ми гърми с грешка при компилиране. Пробвах доста тестове но така и не уцелих инпут, който да гърми при компилирането. Явно бъркам някъде но съ зациклил и не виждам къде. А ето го и кода ми:  https://pastebin.com/ZvUX5kCu

0