Programming Basics Exam - 7 May 2017 , Задача 3. Ученически лагер
Здравейте на всички, моля за малко помощ по конкретната задача. Задачата ми мина в Джъджа 90/100 , но като цяло хич не си харесвам кода и знам, че има и по-лесен начин за решение на задачата. Ако може за насоки и за решението да си го разцъкам и аз.
Ето и моя код:
import java.util.Scanner;
/**
* Created by Nico on 5/17/2017.
*/
public class SchoolCamp {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String season = scanner.nextLine();
String group = scanner.nextLine();
int students = Integer.parseInt(scanner.nextLine());
int nights = Integer.parseInt(scanner.nextLine());
if (season.equals("Spring") && group.equals("girls")){
System.out.print("Athletics ");
double nightsPrice = students * nights * 7.20;
if (students >= 50){
nightsPrice = nightsPrice - (nightsPrice * 0.50);
}else if (students >= 20 && students < 50) {
nightsPrice = nightsPrice - (nightsPrice * 0.15);
System.out.printf("%.2f lv.",nightsPrice);
}else if (students >= 10 && students < 20){
nightsPrice = nightsPrice - (nightsPrice * 0.05);
System.out.printf("%.2f lv.",nightsPrice);
}else {
System.out.printf("%.2f lv.",nightsPrice);
}
}
if (season.equals("Spring") && group.equals("boys")){
System.out.print("Tennis ");
double nightsPrice = students * nights * 7.20;
if (students >= 50){
nightsPrice = nightsPrice - (nightsPrice * 0.50);
System.out.printf("%.2f lv.",nightsPrice);
}else if (students >= 20 && students < 50) {
nightsPrice = nightsPrice - (nightsPrice * 0.15);
System.out.printf("%.2f lv.",nightsPrice);
}else if (students >= 10 && students < 20){
nightsPrice = nightsPrice - (nightsPrice * 0.05);
System.out.printf("%.2f lv.",nightsPrice);
}else {
System.out.printf("%.2f lv.",nightsPrice);
}
}
if (season.equals("Spring") && group.equals("mixed")){
System.out.print("Cycling ");
double nightsPrice = students * nights * 9.50;
if (students >= 50){
nightsPrice = nightsPrice - (nightsPrice * 0.50);
System.out.printf("%.2f lv.",nightsPrice);
}else if (students >= 20 && students < 50) {
nightsPrice = nightsPrice - (nightsPrice * 0.15);
System.out.printf("%.2f lv.",nightsPrice);
}else if (students >= 10 && students < 20){
nightsPrice = nightsPrice - (nightsPrice * 0.05);
System.out.printf("%.2f lv.",nightsPrice);
}else {
System.out.printf("%.2f lv.",nightsPrice);
}
}
if (season.equals("Winter") && group.equals("girls")){
System.out.print("Gymnastics ");
double nightsPrice = students * nights * 9.60;
if (students >= 50){
nightsPrice = nightsPrice - (nightsPrice * 0.50);
System.out.printf("%.2f lv.",nightsPrice);
}else if (students >= 20 && students < 50) {
nightsPrice = nightsPrice - (nightsPrice * 0.15);
System.out.printf("%.2f lv.",nightsPrice);
}else if (students >= 10 && students < 20){
nightsPrice = nightsPrice - (nightsPrice * 0.05);
System.out.printf("%.2f lv.",nightsPrice);
}else {
System.out.printf("%.2f lv.",nightsPrice);
}
}
if (season.equals("Winter") && group.equals("boys")){
System.out.print("Judo ");
double nightsPrice = students * nights * 9.60;
if (students >= 50){
nightsPrice = nightsPrice - (nightsPrice * 0.50);
System.out.printf("%.2f lv.",nightsPrice);
}else if (students >= 20 && students < 50) {
nightsPrice = nightsPrice - (nightsPrice * 0.15);
System.out.printf("%.2f lv.",nightsPrice);
}else if (students >= 10 && students < 20){
nightsPrice = nightsPrice - (nightsPrice * 0.05);
System.out.printf("%.2f lv.",nightsPrice);
}else {
System.out.printf("%.2f lv.",nightsPrice);
}
}
if (season.equals("Winter") && group.equals("mixed")){
System.out.print("Ski ");
double nightsPrice = students * nights * 10.0;
if (students >= 50){
nightsPrice = nightsPrice - (nightsPrice * 0.50);
System.out.printf("%.2f lv.",nightsPrice);
}else if (students >= 20 && students < 50) {
nightsPrice = nightsPrice - (nightsPrice * 0.15);
System.out.printf("%.2f lv.",nightsPrice);
}else if (students >= 10 && students < 20){
nightsPrice = nightsPrice - (nightsPrice * 0.05);
System.out.printf("%.2f lv.",nightsPrice);
}else {
System.out.printf("%.2f lv.",nightsPrice);
}
}
if (season.equals("Summer") && group.equals("girls")){
System.out.print("Volleyball ");
double nightsPrice = students * nights * 15.0;
if (students >= 50){
nightsPrice = nightsPrice - (nightsPrice * 0.50);
System.out.printf("%.2f lv.",nightsPrice);
}else if (students >= 20 && students < 50) {
nightsPrice = nightsPrice - (nightsPrice * 0.15);
System.out.printf("%.2f lv.",nightsPrice);
}else if (students >= 10 && students < 20){
nightsPrice = nightsPrice - (nightsPrice * 0.05);
System.out.printf("%.2f lv.",nightsPrice);
}else {
System.out.printf("%.2f lv.",nightsPrice);
}
}
if (season.equals("Summer") && group.equals("boys")){
System.out.print("Football ");
double nightsPrice = students * nights * 15.0;
if (students >= 50){
nightsPrice = nightsPrice - (nightsPrice * 0.50);
System.out.printf("%.2f lv.",nightsPrice);
}else if (students >= 20 && students < 50) {
nightsPrice = nightsPrice - (nightsPrice * 0.15);
System.out.printf("%.2f lv.",nightsPrice);
}else if (students >= 10 && students < 20){
nightsPrice = nightsPrice - (nightsPrice * 0.05);
System.out.printf("%.2f lv.",nightsPrice);
}else {
System.out.printf("%.2f lv.",nightsPrice);
}
}
if (season.equals("Summer") && group.equals("mixed")){
System.out.print("Swimming ");
double nightsPrice = students * nights * 20.0;
if (students >= 50){
nightsPrice = nightsPrice - (nightsPrice * 0.50);
System.out.printf("%.2f lv.",nightsPrice);
}else if (students >= 20 && students < 50) {
nightsPrice = nightsPrice - (nightsPrice * 0.15);
System.out.printf("%.2f lv.",nightsPrice);
}else if (students >= 10 && students < 20){
nightsPrice = nightsPrice - (nightsPrice * 0.05);
System.out.printf("%.2f lv.",nightsPrice);
}else {
System.out.printf("%.2f lv.",nightsPrice);
}
}
}
}
Не изглежда много добре ...
Благодаря предварително