adminv15
Ominide
2 min
Vota

Concetti Chiave

  • Il garage offre un costo minimo di 2,00 per le prime tre ore di parcheggio.
  • Ogni ora o frazione oltre le tre iniziali costa un extra di 0,50.
  • L'addebito massimo per un periodo di 24 ore è di 10,00.
  • Non è previsto che le auto restino parcheggiate per più di 24 ore consecutive.
  • Il calcolo degli addebiti utilizza una funzione che aggiunge costi extra per le ore aggiuntive e limita l'addebito massimo.

Gestione garage


/*
 * Un garage addebita un importo minimo di $2,00 per un parcheggio
 * fino a tre ore.
 * Il garage addebita un'addizionale di $0,50 per ogni ora o frazione
 * di essa che ecceda le tre di base. L'addebito massimo per ogni dato 
 * periodo di 24 ore è $10,00. 
 * Assumete che nessuna auto parcheggi per più di 24 ore per volta. 
 * Scrivete un programma che calcoli e visualizzi gli addebiti 
 * per ognuno dei tre clienti che hanno parcheggiato le proprie 
 * auto in questo garage ieri. 
 * Dovrete immettere le ore di parcheggio per ogni cliente. 
 * Il vostro programma dovrà visualizzare i risultati in un formato 
 * tabulare ordinato e dovrà calcolare e visualizzare il totale delle 
 * ricevute di ieri. Il programma dovrà utilizzare la funzione 
 * calculateCharges per determinare l'addebito di ogni cliente. 
 * I vostri risultati dovranno apparire nel seguente formato:
 * 
 * Car Hours Charge 
 * 1 1.5 2.00 
 * 2 4.0 2.50 
 * 3 24.0 10.00 
 * TOTAL 29.5 14.50 
**/ 
#include <math.h>
#include <stdio.h>

float calculateCharges(float);

int main(void) {
    float hours1, hours2, hours3, hoursTotal = 0;
    float charge1, charge2, charge3, chargesTotal;

    printf("Enter hours for car 1: ");
    scanf("%f", &hours1);
    hoursTotal += hours1;
    charge1 = calculateCharges(hours1);

    printf("Enter hours for car 2: ");
    scanf("%f", &hours2);
    hoursTotal += hours2;
    charge2 = calculateCharges(hours2);

    printf("Enter hours for car 3: ");
    scanf("%f", &hours3);
    hoursTotal += hours3;
    charge3 = calculateCharges(hours3);

    printf("\n%-8s%8s%8s\n", "Car", "Hours", "Charge");
    printf("%-8d%8.2f%8.2f\n", 1, hours1, charge1);
    printf("%-8d%8.2f%8.2f\n", 2, hours2, charge2);
    printf("%-8d%8.2f%8.2f\n", 3, hours3, charge3);

    chargesTotal = charge1 + charge2 + charge3;
    printf("%-8s%8.2f%8.2f\n\n", "TOTAL", hoursTotal, chargesTotal);

    return 0;
}

float calculateCharges(float _hours) {
    float charges = 2.00; /* fixed */
    
    if (_hours > 3.00) { /* more than 3 hours */
        charges += 0.50 * ceil(_hours - 3.00);
    }
    
    if (charges > 10.00) {
        charges = 10.00;
    }
    
    return charges;
}

Domande da interrogazione

  1. Qual è la tariffa minima per il parcheggio nel garage?
  2. La tariffa minima per il parcheggio fino a tre ore è di $2,00.

  3. Come viene calcolato l'addebito per le ore di parcheggio che superano le tre ore?
  4. Per ogni ora o frazione di essa che eccede le tre ore di base, viene addebitato un costo aggiuntivo di $0,50.

  5. Qual è l'addebito massimo per un periodo di 24 ore?
  6. L'addebito massimo per ogni periodo di 24 ore è di $10,00.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community