Loading...
Elena123456 avatar Elena123456 235 Точки

8. Car Salesman

Колеги, днес възможното си време за решаване на задачи го посветих изцяло на тази задача. И понеже "много добре" ги разбирам класовете, ще бъда в отпуска специално заради тях. smiley  Найстина ще бъда благодарна, ако поне успея да си разреша проблема, който ми се появи в тази задача. Прегледах четири видеа, но така и не видях някъде трейнър да обяснява точно тази задача. Търсих информация и в https://stackoverflow.com/ , но за жалост всичко беше напразно за разрешаването на проблема ми и за това моля за помощ. Предварително ще отбележа, че все пак днес успях да направя поне едно работещо решение, което не мога да приема и за това се опитвам да го коригирам. Не разбирам защо трябва да проверявам в main дали някои от подадените ми стойностти е стринг или цифра за да разбера дали имам Displacement- 50 примерно или Efficiency- А+. За мен най-удачния вариант е проверката да става директно с конструктори с int или string, но след като направя конструкторите не успявам на int пропърти да сетна дефоутната стойност- "n/a". Ако примерно още първоначално направя всички пропъртите на string сетването на "n/a" е възможно, но ми се разваля смисъла на конструкторите, защото програмата няма да разбере дали искам да му подам string this.Displacement или string this.Efficiency. Дори при това положение програмата изисква от мен да изтрия единия от конструкторите, а аз искам да си ги запазя. Има ли такава възможност да се промени синтаксиса, но да се запази основната логика и самите конструктори? Ако дефултните стойности бяха int предполагам, че програмата щеше да работи коректно, но те са string.

 

public Car(string model, Engine engine)
        {
            this.Model = model;
            this.Engine = engine;
            this.Weight = "n/a";  // this is wrong, this.Weight is int
            this.Color = "n/a";
        }

 

Същия проблем имам и с конструктора за Engine, защото this.Displacement е int и не може да е равно на string "n/a".

 public Engine(string model, string power)           
        {
            this.Model = model;
            this.Power = power;
            this.Displacement = "n/a";  // this is wrong, this.Dispalacement is int
            this.Efficiency = "n/a";
        }

 

Моят опит:

клас Car- https://pastebin.com/r3qkAtSe

клас Engine- https://pastebin.com/TmhitANe

Main- https://pastebin.com/g1X9PhXb

 

Условие- Условие: https://softuni.bg/trainings/resources/officedocument/52737/defining-classes-exercise-csharp-advanced-september-2020/3007

 


 

 

 

 

 

Тагове:
0
C# Advanced 08/02/2021 23:47:08
Hvpetrow avatar Hvpetrow 11 Точки

Заповядайте едно решение и от мен  :) 

https://pastebin.com/zk6RY8Lg - Car.cs

https://pastebin.com/3zAeZGfF - Engine.cs

https://pastebin.com/6cPFMxtp - Program.cs

П.С. : С речник смятам че е по нагледно .

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.