06. Store Boxes- Objects and Classes Lab - C# Fundamentals
Здравейте,
Бихте ли ми помогнали със задачата.
Предварително благодаря!
Това е кода ми: https://pastebin.com/vh8ZQDuP
Така гърмят zero тестовете: https://ibb.co/grw3bDh
Ето го условието:
Define a class Item, which contains these properties: Name and Price.
Define a class Box, which contains these properties: Serial Number, Item, Item Quantity and Price for a Box.
Until you receive "end", you will be receiving data in the following format: {Serial Number} {Item Name} {Item Quantity} {itemPrice}
The Price of one box has to be calculated: itemQuantity * itemPrice.
Print all the boxes, ordered descending by price for a box, in the following format:
{boxSerialNumber}
-- {boxItemName} – ${boxItemPrice}: {boxItemQuantity}
-- ${boxPrice}
The price should be formatted to the 2nd digit after the decimal separator.
Examples
Input |
Output |
19861519 Dove 15 2.50 86757035 Butter 7 3.20 39393891 Orbit 16 1.60 37741865 Samsung 10 1000 end |
37741865 -- Samsung - $1000.00: 10 -- $10000.00 19861519 -- Dove - $2.50: 15 -- $37.50 39393891 -- Orbit - $1.60: 16 -- $25.60 86757035 -- Butter - $3.20: 7 -- $22.40 |
48760766 Alcatel 8 100 97617240 Intel 2 500 83840873 Milka 20 2.75 35056501 SneakersXL 15 1.50 end |
97617240 -- Intel - $500.00: 2 -- $1000.00 48760766 -- Alcatel - $100.00: 8 -- $800.00 83840873 -- Milka - $2.75: 20 -- $55.00 35056501 -- SneakersXL - $1.50: 15 -- $22.50 |
Поправил съм го, вече е видим!
Здравейте, мисля, че видях къде е проблема.
В началото още в инпута е дадена цената за един item- double itemPrice = double.Parse(inputArr[3]); Впоследствие вие не създавате въпросния item по зададеното в инпута име и цена, а изчислявате за него отделна цена- Price = itemPrice * itemQuantity , но това е цената на целия Box- The Price of one box has to be calculated: itemQuantity * itemPrice.
Следователно когато по дадения клас вие създавате един item, трябва да си включите първоначалната цена, която получавате наготово в инпута- ред 20. И вече когато създавате Box вие ще преизчислите цената на целия Box, като използвате количеството на itemes умножено по тяхната цена. Точно това сте и задали в класа на Box- public double PriceForABox { get; set; }
Ще Ви бъде много лесно да създавате обекти по класа item или Box, ако първоначално си създадете констуктор в самите класове. (ctor + tab tab и автоматично ще се създаде, като ще му подадете съответните елементи, които отговарят на пропъртитата). И вече в мейн много лесно ще създадете самите обекти, като вече е лесно да се ориентирате:
var newItem= new item( itemName, itemPrice); // създаваме си нов item, както сме го дефинирали в класа и конструктора му
var priceForABox= itemQuantity*itemPrice; // намираме цената на box
var newBox= new Box(serialNumber, newItem, itemQuantity, priceForABox); // създаваме си нов box
И този новия box ще го добавим вече в листа, който ще ни пази всичките boxes.
Един съвет- добре е винаги, когато държим цени да използваме decimal.
Не съм много уверена за въпросната задача, но тествайте я.
Поздрави!