package inventory; public class inventory2 { public static void main(String args []) { Inventory invent = new Inventory(); Movie dvd; dvd = new Movie("Movie1", 1, "Matrix", 2, 14.99); invent.add(dvd); dvd = new Movie("Movie2", 2, "Eastern Promises", 10, 17.99); invent.add(dvd); dvd = new Movie("Movie3", 3, "Underworld", 2, 13.99); invent.add(dvd); dvd = new Movie("Movie4", 4, "Batman Begins", 9, 18.99); invent.add(dvd); dvd = new Movie("Movie5", 5, "Knocked Up", 3, 14.99); invent.add(dvd); invent.display(); } //end main } // end class Inventory2 class DVD { private int dvdItem; private String dvdTitle; private int dvdStock; private double dvdPrice; public DVD(int item, String title, int stock, double price) { dvdItem = item; dvdTitle = title; dvdStock = stock; dvdPrice = price; } //end four-argument constructor // set DVD Item public void setDvdItem(int item) { dvdItem = item; } //end method set Dvd Item //return DVD Item public int getDvdItem() { return dvdItem; } //end method get Dvd Item //set DVD Title public void setDvdTitle(String title) { dvdTitle = title; } //end method set Dvd Title //return Dvd Title public String getDvdTitle() { return dvdTitle; } //end method get Dvd Title public void setDvdStock(int stock) { dvdStock = stock; } //end method set Dvd Stock //return dvd Stock public int getDvdStock() { return dvdStock; } //end method get Dvd Stock public void setDvdPrice(double price) { dvdPrice = price; } //end method setdvdPrice //return DVD Price public double getDvdPrice() { return dvdPrice; } //end method get Dvd Price //calculate inventory value public double value() { return dvdPrice * dvdStock; } //end method value @Override public String toString() { return String.format("item=%3d title=%-20s units=%3d price=$%6.2f value=$%7.2f", dvdItem, dvdTitle, dvdStock, dvdPrice, value()); } } //end class DVD class Movie extends DVD { private String movieTitle; public Movie(String title, int item, String dtitle, int stock, double price) { super(item, dtitle, stock, price); movieTitle = title; } @Override public double value() { double value = getDvdPrice() * getDvdStock(); value = 1.05 * value; return value; } //end method value @Override public String toString() { String s = String.format("Movie title=%-12s", movieTitle); s = s + " " + super.toString(); return s; } } // end class Movie class Inventory { private DVD[] dvds; private int count; Inventory() { dvds = new DVD[10]; count = 0; } public void add(DVD dvd) { dvds[count] = dvd; ++count; sort(); } public double entireValue() { double value = 0; for (int i = 0; i < count; i++) { value = value + dvds[i].value(); } return value; } public void sort() { for (int index = 1; index < count; index++) { DVD key = dvds[index]; int position = index; // Shift larger values to the right while (position > 0 && key.getDvdTitle().compareTo(dvds[position-1].getDvdTitle()) < 0) { dvds[position] = dvds[position-1]; position--; } dvds[position] = key; } } public void display() { System.out.println("\nThe inventory contains " + count + " DVDs\n"); for (int i = 0; i < count; i++) System.out.printf("%3d %s\n", i, dvds[i]); System.out.printf("\nThe total inventory value is $%.2f\n\n", entireValue()); } } // end class Inventory