Софтуерно Инженерство
Loading...
+ Нов въпрос
AsyaD avatar AsyaD 0 Точки

Report System #java

Здравейте, колеги! Не откривам къде и как греша. Judge ми дава 70т. Ето условието, както и кода ми:

https://pastebin.com/8TwWjWjb

1.Система за отчет

На благотворително събитие плащанията за закупените продукти винаги се редуват: плащане в брой и плащане с карта. Установени са следните правила за заплащане:

  • Ако продуктът надвишава 100лв., за него не може да се плати в брой
  • Ако продуктът е на цена под 10лв., за него не може да се плати с кредитна карта

Програмата приключва или след като получим команда "End" или след като средствата бъдат събрани.

Вход

От конзолата се четат:

  • Сумата, която се очаква да бъде събрана от продажбите - цяло число в интервала [1 ... 10000]

На всеки следващ ред, до получаване на командата "End" или докато не се съберат нужните средства: цените на предметите, които ще бъдат закупени - цяло число в интервала [1 ... 500]

Изход

На конзолата да се отпечата:

  • При успешна транзакция: "Product sold!"
  • При неуспешна транзакция: "Error in transaction!"
  • Ако сумата на всички закупени продукти надвиши или достигне очакваната сума, програмата трябва да приключи и на конзолата да се изпишат два реда:
  • "Average CS: {средно плащане в кеш на човек}"
  • "Average CC: {средно плащане с карта на човек}"

              Плащанията трябва да бъдат форматирани до втората цифра след десетичния знак.

  • При получаване на команда "End", да се изпише един ред:
  • "Failed to collect required money for charity."

Примерен вход и изход

Вход

Изход

Обяснения

500

120

8

63

256

78

317

Error in transaction!

Error in transaction!

Product sold!

Product sold!

Product sold!

Product sold!

Average CS: 70.50

Average CC: 286.50

По условие се редуват първо в брой плащане, след това чрез кредитна карта

120 >= 100 транзакцията се отхвърля 8 <= 10 транзакцията се отхвърля 63 <= 100 => транзакцията е успешна. 256 >= 10 => транзакцията е успешна. 78 <= 100 =>  транзакцията е успешна. 317 >= 10 => транзакцията е успешна. Обща събрана сума => 63 + 256 + 78 + 317 = 714;  714 >= 500 =>   Обща сума в брой => 63 + 78 = 141 Средно в брой => 141 / 2 = 70.50 Общо кредитни карти => 256 + 317 = 573 Средно кредитни карти => 573 / 2 = 286.50

600

86

150

98

227

End

 

Product sold!

Product sold!

Product sold!

Product sold!

Failed to collect required money for charity.

86 <= 100 => транзакцията е успешна. 150 >= 10 => транзакцията е успешна. 98 <= 100 => транзакцията е успешна. 227 >= 10 => транзакцията е успешна. Четем от конзолата команда "End". Проверка, дали е достатъчна сумата => 86 + 150 + 98 + 227 = 561;  561 <= 600 => печатаме, че сумата не е била събрана.

Тагове:
Yozlem avatar Yozlem 1 Точки

Ето едно примерно решение 100/100:

https://pastebin.com/dzv89Bth

Не получаваш пълен брой точки, може би заради липсата на брояч за successful card/ cash transactions.

При намиране на average cash, изпозвам следните формули:  

cashPayment *1.0 / successfulCashTransactions;

cardPayment *1.0/ successfulCardTransactions;

0