1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| import io.StdIn
import scala.collection.mutable.ArrayBuffer
object TP1 {
def main(args: Array[String]): Unit = {
var prix:BigDecimal = 0.0 // prix du ticket
var rabais = " " // demi-tarif ou plein-tarif
var zone = " "
var PièceInsérée:BigDecimal = 0.0 // ce qu'on a inséré dans la machine
var prixAPayer:BigDecimal = 0.0 // ce qui reste à payer après avoir introduit qq pièces
var cancel = " "
var prixpayé = 0
// Boucle pour sélectionner zone
do {
print("Sélectionner la zone tarifaire pour votre trajet. \n1. Taper: zone centre \n2. Taper: zone centre étendu \n3. Taper: zone agglo\n ")
zone = StdIn.readLine()
} while ((zone != "zone centre") && (zone != "zone centre étendu") && (zone != "zone agglo"));
if (zone == "zone centre") prix = 4 else if (zone == "zone centre étendu") prix = 5 else if(zone == "zone agglo") prix = 8
// Boucle pour demi-tarif
do {
println("Souhaitez-vous le demi-tarif ? \nTaper : demi-tarif ou plein tarif ")
rabais = StdIn.readLine()
} while ((rabais != "demi-tarif") && (rabais != "plein tarif"))
if (rabais == "demi-tarif") prix = prix/2
println("Prix de votre billet: " +prix + "CHF")
while (prix>0){
println("Accepte uniquement les pièces de 0.10CHF, 0.20CHF, 0.50CHF, 1.00CHF, 2.00CHF et 5.00 CHF \nSaisissez le montant de la pièce que vous insérez.")
PièceInsérée = StdIn.readDouble()
val monnaie = Array(0.1, 0.2, 0.5, 1, 2, 5)
var x=0
var pasUnePiece =0
for (x<-monnaie) if(PièceInsérée !=x) pasUnePiece = pasUnePiece+1 //
// println(pasUnePiece)
if(pasUnePiece==monnaie.length) println ("Insérer une pièce valable") else {
prixAPayer = prix-PièceInsérée
prix = prixAPayer
if (prixAPayer>0) println("Il reste " + prixAPayer.abs + " CHF à payer") else {
println("Il reste 0 CHF à payer")
prix = prixAPayer
// Boucle pour cancel
do {
println("Souhaitez-vous le annuler l'achat ? \nTaper : Oui ou Non")
cancel = StdIn.readLine()
} while ((cancel != "Oui") && (cancel != "Non"))
}
}
}
}
} |
Partager