Contoh Program Java Mesin Tiket
Program java : mesin tiket ini merupakan program sederhana tentang penggunaan OOP dan sifat2 nya.Disini saya mencontohkan bagaimana penggunaan try catch dalam java,penggunaan constructor dan juga contoh perulangan dan percabangan sederhana.Terdapat dua class disini,class ticketing untuk perhitungan penyimpanan jumlah tiket balance dll,dan juga machineticket yang memuat method main untuk menjalankan program
Dibawah ini merupakan Code lengkap nya.
Dibawah ini merupakan Code lengkap nya.
/**
* Class to save balance,ticket price and total amount of money the machine collected
*
* @author Adhityairvan
* @version 0.1
*/
public class Ticketing
{
private int price,balance,total;
public Ticketing ( int pricing )
{
price = pricing;
balance = 0;
total = 0;
//Constructor method
}
public int getTotal ()
{
return total;//return the total ticket sold
}
public int getBalance ()
{
return balance;//return the balance on the mchine
}
public int getPrice ()
{
return price;//return the price of 1 ticket
}
public void insertMoney (int amount)
{
balance = balance + amount;//method when inserting money
}
public void buyTicket (int howmany)
{
if ( howmany * price > balance )
{
throw new IllegalArgumentException ( "Not enough Balance in your account!" );
//exception if the balance is not enough for buying ticket
}
else
{
printTicket(howmany);
balance = balance - (howmany * price);
total = total + (howmany * price);
}
}
private void printTicket( int howmany )
{
for ( int i = 0 ; i < howmany ; i++ )
{
System.out.printf ("## TICKET ##\n");
}
//simulates printing ticket
}
}
/**
* Main class to implement ticketing class
*
* @author Adhityairvan
* @version 0.1
*/
import java.util.Scanner;
public class MachineTicket
{
public static int main()
{
int menu,money,ammount;
Ticketing machine1 = new Ticketing ( 1500 );
//Default price of 1 ticket
Scanner scanf = new Scanner ( System.in );
printf( "Harga ticket adalah Rp 1.500,-" );
while (true)
{
printf("1.Input money\n2.Buy Ticket\n3.Check balance\n4.Exit\n");
menu = scanf.nextInt();
switch(menu)
{
case 1:
printf("Insert your money");
money = scanf.nextInt();
machine1.insertMoney(money);//insert money
break;
case 2:
printf("Enter the ammount of ticket you want");
ammount = scanf.nextInt();
try
{
machine1.buyTicket ( ammount );
}
catch ( IllegalArgumentException e )
{
System.out.printf( " \nError ! %s\n ",e.getMessage() );
}//use try and catch to catch error if balance is not suficient
break;
case 3:
System.out.printf( "Your Balance : %02d\n",machine1.getBalance() );
//print the balance
break;
case 4:
return 0;
case 9:
System.out.printf("Total Amount in this machine is %02d\n",machine1.getTotal() );
//print total sold ticket
break;
}
}
}
private static void printf ( String a )
{
System.out.printf( "%s\n" , a);//just extra method to shorten println
}
}

0 comments: