TrainCompartment.java
80 linesjava
DOWNLOAD
1// Aim: Program to perform Abstract Class operations (Train TrainCompartmentTask).
2import java.util.Scanner;
3abstract class TrainCompartmentTask {
4    protected int availableSeats;
5
6    public TrainCompartmentTask(int availableSeats) {
7        this.availableSeats = availableSeats;
8    }
9
10    public abstract void notice();
11
12    public void bookTicket(int seats) {
13        if (seats <= availableSeats) {
14            availableSeats -= seats;
15            System.out.println(seats + " seats booked successfully.");
16        } else {
17            System.out.println("Not enough seats available.");
18        }
19    }
20}
21
22class FirstClass extends TrainCompartmentTask {
23
24    public FirstClass(int availableSeats) {
25        super(availableSeats);
26    }
27
28    public void notice() {
29        System.out.println("First Class TrainCompartmentTask: " + availableSeats + " seats available.");
30    }
31}
32
33class GeneralClass extends TrainCompartmentTask {
34
35    public GeneralClass(int availableSeats) {
36        super(availableSeats);
37    }
38
39    public void notice() {
40        System.out.println("General Class TrainCompartmentTask: " + availableSeats + " seats available.");
41    }
42}
43
44public class TrainCompartment {
45    public static void main(String[] args) {
46        Scanner sc = new Scanner(System.in);
47
48        FirstClass firstClass = new FirstClass(50);
49        GeneralClass generalClass = new GeneralClass(100);
50
51        firstClass.notice();
52        generalClass.notice();
53
54        while(true){
55            System.out.println("Choose an option: 1. Book First Class Ticket 2. Book General Class Ticket 3. show available seats 4. Exit");
56            int choice = sc.nextInt();
57            switch (choice) {
58                case 1:
59                    System.out.println("Enter number of seats to book:");
60                    int firstClassSeats = sc.nextInt();
61                    firstClass.bookTicket(firstClassSeats);
62                    break;
63                case 2:
64                    System.out.println("Enter number of seats to book:");
65                    int generalClassSeats = sc.nextInt();
66                    generalClass.bookTicket(generalClassSeats);
67                    break;
68                case 3:
69                    firstClass.notice();
70                    generalClass.notice();
71                    break;
72                case 4:
73                    System.exit(0);
74                    sc.close();
75                default:
76                    System.out.println("Invalid choice.");
77            }
78        } 
79    }
80}