Browse Source

Initial commit of sources

master
kammerer 2 years ago
commit
7e5e390b8f
4 changed files with 155 additions and 0 deletions
  1. 49
    0
      VideoStore/src/Application.java
  2. 62
    0
      VideoStore/src/Customer.java
  3. 26
    0
      VideoStore/src/Movie.java
  4. 18
    0
      VideoStore/src/Rental.java

+ 49
- 0
VideoStore/src/Application.java View File

@@ -0,0 +1,49 @@
import java.util.ArrayList;

public class Application {

public static void main( String[] args ) {
Application app = new Application();
app.init();
app.run();
app.done();
}

public void init() {
System.out.println( "initializing application" );

movies.add( new Movie("Regular_Movie_1 ", Movie.REGULAR ) );
movies.add( new Movie("Regular_Movie_2 ", Movie.REGULAR ) );
movies.add( new Movie("Children_Movie_1 ", Movie.CHILDRENS ) );
movies.add( new Movie("Children_Movie_2 ", Movie.CHILDRENS ) );
movies.add( new Movie("NewRelease_Movie_1", Movie.NEW_RELEASE ) );
movies.add( new Movie("NewRelease_Movie_2", Movie.NEW_RELEASE ) );


customers.add( new Customer( "Customer_A" ) );
customers.add( new Customer( "Customer_B" ) );
customers.add( new Customer( "Customer_C" ) );
}

public void run() {
System.out.println( "application is running" );

Customer customer_1 = customers.get( 0 );

customer_1.addRental( new Rental( movies.get( 0 ), 2 ) );
customer_1.addRental( new Rental( movies.get( 1 ), 3 ) );
customer_1.addRental( new Rental( movies.get( 2 ), 3 ) );
customer_1.addRental( new Rental( movies.get( 3 ), 4 ) );
customer_1.addRental( new Rental( movies.get( 4 ), 3 ) );
customer_1.addRental( new Rental( movies.get( 5 ), 4 ) );
String statement = customer_1.statement();
System.out.println( statement );
}

public void done() {
System.out.println( "application finished" );
}

private final ArrayList<Movie> movies = new ArrayList<>();
private final ArrayList<Customer> customers = new ArrayList<>();
}

+ 62
- 0
VideoStore/src/Customer.java View File

@@ -0,0 +1,62 @@
import java.util.ArrayList;

public class Customer {

private final String name;
private final ArrayList<Rental> rentals = new ArrayList<>();

public Customer( String name ) {
this.name = name;
}

public void addRental( Rental arg ) {
rentals.add( arg );
}

public String getName() {
return name;
}

public String statement() {
double totalAmount = 0;
int frequentRenterPoints = 0;

String result = "Rental Record for " + getName() + "\n";
for( Rental curRental : rentals ) {
double thisAmount = 0;

// determine amounts for each line
switch( curRental.getMovie().getPriceCode() ) {
case Movie.REGULAR:
thisAmount += 2;
if( curRental.getDaysRented() > 2 )
thisAmount += ( curRental.getDaysRented() - 2 ) * 1.5;
break;
case Movie.NEW_RELEASE:
thisAmount += curRental.getDaysRented() * 3;
break;
case Movie.CHILDRENS:
thisAmount += 1.5;
if( curRental.getDaysRented() > 3 )
thisAmount += ( curRental.getDaysRented() - 3 ) * 1.5;
break;

}
totalAmount += thisAmount;

// add frequent renter points
frequentRenterPoints++;
// add bonus for a two day new release rental
if( ( curRental.getMovie().getPriceCode() == Movie.NEW_RELEASE ) && curRental.getDaysRented() > 1 )
frequentRenterPoints++;

// show figures for this rental
result += "\t" + curRental.getMovie().getTitle() + "\t days rented: " + curRental.getDaysRented() + " = " + String.valueOf( thisAmount ) + "\n";

}
// add footer lines
result += "Amount owed is " + String.valueOf( totalAmount ) + "\n";
result += "You earned " + String.valueOf( frequentRenterPoints ) + " frequent renter points";
return result;
}
}

+ 26
- 0
VideoStore/src/Movie.java View File

@@ -0,0 +1,26 @@
public class Movie {

public static final int CHILDRENS = 2;
public static final int REGULAR = 0;
public static final int NEW_RELEASE = 1;

private final String title;
private int priceCode;

public Movie( String title, int priceCode ) {
this.title = title;
this.priceCode = priceCode;
}

public String getTitle() {
return title;
}

public int getPriceCode() {
return priceCode;
}

public void setPriceCode( int priceCode ) {
this.priceCode = priceCode;
}
}

+ 18
- 0
VideoStore/src/Rental.java View File

@@ -0,0 +1,18 @@
public class Rental {

private final Movie movie;
private final int daysRented;

public Rental( Movie movie, int daysRented ) {
this.movie = movie;
this.daysRented = daysRented;
}

public Movie getMovie() {
return movie;
}

public int getDaysRented() {
return daysRented;
}
}

Loading…
Cancel
Save