06. Store Boxes | Objects and Classes | PHP
Задача 06. Store Boxes - https://judge.softuni.bg/Contests/Practice/Index/1221#5
Как се сортира лист от обекти? Някой може ли да обясни... Задачата съм я решил малко по различно, вместо с 2 класа с 1, понеже видях единия клас за излишен, но да... Стигам до сортировката и не мога да я измисля.
<?php
class StoreBox
{
private $serialNumber;
private $itemName;
private $itemQuantity;
private $itemPrice;
private $boxPrice;
public function __construct($serialNumber, $itemName, $itemQuantity, $itemPrice, $boxPrice) {
$this->serialNumber = $serialNumber;
$this->itemName = $itemName;
$this->itemQuantity = $itemQuantity;
$this->itemPrice = $itemPrice;
$this->boxPrice = $boxPrice;
}
public function getSerialNumber()
{
return $this->serialNumber;
}
public function getItemName()
{
return $this->itemName;
}
public function getItemQuantity()
{
return $this->itemQuantity;
}
public function getItemPrice()
{
return $this->itemPrice;
}
public function getBoxPrice()
{
return $this->boxPrice;
}
}
$storeBoxList = [];
while (true) {
$input = readline();
if ($input == "end") { break; }
$inputArr = explode(" ", $input);
$serialNumber = $inputArr[0];
$itemName = $inputArr[1];
$itemQuantity = $inputArr[2];
$itemPrice = $inputArr[3];
$boxPrice = $itemQuantity * $itemPrice;
$storeBox = new StoreBox($serialNumber, $itemName, $itemQuantity, $itemPrice, $boxPrice);
$storeBoxList[] = $storeBox;
}
var_dump($storeBoxList);
?>
Ето от мене едно 100/100
using System;
using System.Collections.Generic;
using System.Linq;
namespace ConsoleApp1
{
class Box
{
public string SerialNumber { get; set; }
public string Item { get; set; }
public int quantity { get; set; }
public decimal PriceBox { get; set; }
public decimal TotalPrice { get; set; }
}
class Program
{
static void Main(string[] args)
{
List<Box> boxes = new List<Box>();
string line = Console.ReadLine();
while (line != "end")
{
string[] data = line.Split();
string serialNumber = data[0];
string itemName = data[1];
int itemQuantity = int.Parse(data[2]);
decimal itemPrice = decimal.Parse(data[3]);
Box box = new Box();
box.SerialNumber = serialNumber;
box.Item = itemName;
box.quantity = itemQuantity;
box.PriceBox = itemPrice;
box.TotalPrice = itemQuantity * itemPrice;
boxes.Add(box);
line = Console.ReadLine();
}
List<Box> sortedBox = boxes.OrderByDescending(boxes => boxes.TotalPrice).ToList();
foreach (Box box in sortedBox)
{
Console.WriteLine($"{box.SerialNumber}");
Console.WriteLine($"-- {box.Item} - ${box.PriceBox:f2}: {box.quantity}");
Console.WriteLine($"-- ${box.TotalPrice:f2}");
}
}
}
}