Transport Application – Christmas Parcel Delivery Calculator

Test Case

1.Algorithm:

Save Time On Research and Writing
Hire a Pro to Write You a 100% Plagiarism-Free Paper.
Get My Paper

Step 1: Initialize the variable to store the data

Step 2: Display the Welcome message

Step 3: Display the Menu

Step 4: Get the menu option from the user

Save Time On Research and Writing
Hire a Pro to Write You a 100% Plagiarism-Free Paper.
Get My Paper

Step 5: If the User Selects Setup Cost Per KM option perform step 6 and 7 else move to Step 10

Step 6: Get the costs per km for a package to be sent for 100KM or less distance from the User

Step 7: Get the costs per km for a package to be sent for over 100KM distance from the User

Step 8: Display the details entered by the user

Step 9: Go to Step 3

Step 10: If the User Selects Enter Parcel option perform step 11 to 17 else move to Step 18

Step 11: Get the receiver name of the package from the User

Step 12: Get the weight of the package from the User

Step 13: Get whether the insurance is required for the package from the User

Step 14: Get the number of KMs the package wants to travel from the User

Step 15: Display the details entered by the user

Step 16: Compute the delivery date of the package

Step 17: Go to Step 3

Step 17: If the User Selects Display Parcel Delivery Costs option perform step 18 to 23 else move to Step 24

Step 18: Compute the transportation cost by multiplying the distance and its corresponding cost

Step 19: Determine the insurance cost if the insurance is required for the package

Step 20: Compute the total cost i.e. transportation cost + insurance cost

Step 21: Display the cost details

Step 22: Display the delivery date of the package

Step 23: Go to Step 3

Step 24: If the user select the Exit System option perform step 25 else go to step 27

Step 25: Display the Exit message to the user

Step 26: Terminate the program execution

Step 27: If the user enters none of the option; Display the message of invalid choice and Go to Step 3

2.Program:

package transportapplication;

 import java.text.DateFormat;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

import java.util.Scanner;

 public class TransportApplication {

    public static void main(String[] args) {

        Scanner sc=new Scanner(System.in);

        // Display the header message

        for(int i=0;i<40;i++) {

            System.out.print(“-+”);

        }

        System.out.println();

        for(int i=0;i<10;i++) {

            System.out.print(”  “);

        }

        System.out.println(“FEDERATION UNIVERSITY AUSTRALIA – MT HELEN”);

        System.out.println(“”);

Expected Result

        for(int i=0;i<10;i++) {

            System.out.print(”  “);

        }

        System.out.println(“Christmas Parcel Delivery Calculator”);

        System.out.println();

        System.out.println(”  Developed by Arslan Ahmed, Student ID: 30338159 for ITECH1000 Summer 2017″);

        System.out.println();        

        for(int i=0;i<40;i++) {

            System.out.print(“-+”);

        }

        System.out.println();

        boolean loop=true;

        // variable to store the data

        float costLessThan100=0, costOver100=0;

        String receiversName=””;

        float parcelWeight=0;

        String insurenceRequired=””;

        int distance=0;

        float INSURENCE_PARAMETER=(float) 0.53;

        //date to store the current time

        Date deliveryDate=new Date();

        // format in which date should be displayed

        DateFormat dateFormat = new SimpleDateFormat(“EEE MMM dd HH:mm:ss z yyyy”);

          while(loop)

        {

            //display the menu

            displayMenu();

            //get the choice from the user

            int choice=sc.nextInt();           

            switch(choice)

            {

                case i:

                    // When Setup Cost Per KM is selected

                    System.out.print(“Enter how much it costs per km for a package to be sent 100KM or less: $ “);

                    costLessThan100=sc.nextFloat();// receive costs per km of the package sent 100KM or less

                    System.out.print(“Enter how much it costs per km for a package to be sent over 100KM: $ “);

                    costOver100=sc.nextFloat();// receive costs per km of the package sent over 100KM

                    System.out.println();

                    //display the cost of the package per km

                    System.out.println(“The cost for a parcel to be sent 100km or less is $”+costLessThan100+” per km.”);

                    System.out.println(“The cost for a parcel to be sent more than 100km is $”+costOver100+” per km”);

                    break;

                case ii:

                    // When Enter Parcel is selected

                    System.out.print(“Enter receivers name: “);

                    receiversName=sc.next();//receive the receivers name of the package

                    System.out.print(“Enter weight of parcel: “);

                    parcelWeight=sc.nextFloat();//receive the weight of the package

                    System.out.print(“Do you want insurance (Y or N)? “);

                    insurenceRequired =sc.next();//receive the insurance status of the package

                    System.out.print(“How far do you want to send the parcel (km)? “);

                    distance=sc.nextInt();//receive the number of km the package must be sent

                    System.out.println();

                    //display the parcel package information

                    System.out.println(“You have entered the following details:”);

                    System.out.println(“Receivers Name: “+ receiversName);

                    System.out.println(“Parcel Weight: “+ parcelWeight  );

                    System.out.println(“Insurance: “+ (insurenceRequired.equals(“Y”)?”true”:”false”) );

                    System.out.println(“KM to be sent: “+ distance);                   

                    //calculate the delivery date of the package from the distance

                    deliveryDate=getDeliveryDate(distance);                   

                    break;

                case iii:

                    // when Display Parcel Delivery Costs is selected

                    System.out.println(“ntt+++++ Calculating Costs +++++”);

                    float transportationCost=0;

                    //calculate the transportationCost based on the distance the parcel requires to travel

                    if(distance<=100) {

                        transportationCost=distance*costLessThan100;

                    } else {

                        transportationCost=distance*costOver100;

                    }

                    float insurenceCost=0;

                    //calculate the insurence cost based on the insurence requirement of the package

                    if(insurenceRequired.equals(“Y”)) {

                        insurenceCost=parcelWeight*INSURENCE_PARAMETER;

                    }

                    // calculate the total cost of the package

                    float totalCost=transportationCost+insurenceCost;

                    // display the cost details

                    System.out.println(“ttTransportation Costs: “+Math.round(transportationCost*100.0)/100.0);

                    System.out.println(“ttInsurance Costs: “+ Math.round(insurenceCost*100.0)/100.0);

                    System.out.println(“ttTotal Costs: “+Math.round(totalCost*100.0)/100.0);

                    System.out.println(“nttThe parcel will arrive at: “+dateFormat.format(deliveryDate));

                    System.out.println(“tt+++++++++++++++++++++++++++++”);

                    break;

                case iv:

                    // When Exit System is selected

                    System.out.println(“nThank you for using this calculator!”);

                    loop=false;//set loop to false to stop the loop

                    break;

                default:                

                    System.out.println(“Invalid Choice- Please enter the correct choice”);

                    break;

            }

        }

    }

    private static void displayMenu() {

        System.out.println(“nMain Menu”);

        System.out.println(“1. Setup Cost Per KM”);

        System.out.println(“2. Enter Parcel”);

        System.out.println(“3. Display Parcel Delivery Costs”);      

        System.out.println(“4. Exit System “);

    }

    private static Date getDeliveryDate(int distance) {

        /*

        Compute the delivery date by considering it takes 1 day to travel 10Km

        */

        Date date = new Date();

        Calendar calendar = Calendar.getInstance();

        calendar.setTime(date);

        calendar.add(Calendar.DATE, distance/10);

        return calendar.getTime();

    }

}

Output:

                                                               

                                                                   

3.Testing Base Requirement:

Test Case

Expected Result

Actual Result

The user selects the menu option: Setup Cost Per KM

The user is prompted to enter the travel cost (per KM) for a package sent under 100KM and sent over 100KM

Enter how much it costs per km for a package to be sent 100KM or less: $ 0.59

Enter how much it costs per km for a package to be sent over 100KM: $ 0.86

The user selects the menu option: Enter Parcel

The user is prompted to enter the receivers name, the weight of the parcel, if they want insurance and how far the parcel is to be sent

Enter receivers name: Greg

Enter weight of parcel: 100

Do you want insurance (Y or N)? Y

How far do you want to send the parcel (km)? 512

The user selects the menu option: Display Parcel Delivery Costs

Displays calculation of the transportation, insurance and total costs

Transportation Costs: 440.32

Insurance Costs: 53.0

Total Costs: 493.32

The user selects the menu option: Exit System

Quit the program with a message to the user

The program terminates with the message

Thank you for using this calculator!

The user selects the menu option: Not of the above choice

Displays the message

Invalid Choice- Please enter the correct choice

Testing Standard Requirement:

Test Case

Expected Result

Actual Result

Modularity

Modularize the code

The code is modularized with two function displayMenu() and getDeliveryDate()

Comment

The code is commented

Adding Magic Numbers

float INSURENCE_PARAMETER=(float) 0.53;

Testing Advance Requirement:

Test Case

Expected Result

Actual Result

The user selects the menu option: Display Parcel Delivery Costs

Displays when the parcel will arrive

Transportation Costs: 440.32

Insurance Costs: 53.0

Total Costs: 493.32

The parcel will arrive at: Sat Feb 24 19:30:26 EST 2018

Calculate your order
Pages (275 words)
Standard price: $0.00
Client Reviews
4.9
Sitejabber
4.6
Trustpilot
4.8
Our Guarantees
100% Confidentiality
Information about customers is confidential and never disclosed to third parties.
Original Writing
We complete all papers from scratch. You can get a plagiarism report.
Timely Delivery
No missed deadlines – 97% of assignments are completed in time.
Money Back
If you're confident that a writer didn't follow your order details, ask for a refund.

Calculate the price of your order

You will get a personal manager and a discount.
We'll send you the first draft for approval by at
Total price:
$0.00
Power up Your Academic Success with the
Team of Professionals. We’ve Got Your Back.
Power up Your Study Success with Experts We’ve Got Your Back.