Write some Software

Assignment 8.02: Programming (Extra Credit)

Attached Files:

File [url removed, login to view] (819 B)

In this assignment you will be implementing a linked list and a message queue.

Q1: Create a class called LibraryBook that contains the attributes of a library book, such as author, title, and year, as well as getters and a toString() method. See the UML diagrams below. Create a class called LibraryBookList, which is a linked structure that contains and manages LibraryBook objects. Create a Node class that contains each piece of data and points to the next node. Implement the add(), contains(), get(), remove(), getSize() and isEmpty() methods. The add() method needs to add books to the list and shift the element currently at a specified position in the list and add subsequent elements to the right (add one to their indices), contains() checks to see whether a particular LibraryBook exists in the list and returns true if it is in the list, and returns false if it is not in the list, get() retrieves a particular book in the list based on the index, remove() deletes the element at the specified position of the linked list and shifts the indices behind the removed book, getSize() returns the size of the bookList, and isEmpty() checks to see if the list is empty and if it is it returns true (if it is not empty, return false).

In your LibraryBookList class, using the Java sorting API, keep the books in alphabetical order by title. Refer to the Collections or Arrays classes for useful methods: [url removed, login to view] [url removed, login to view]

Note: You should not use Java's builtin list support (e.g., LinkedList, ArrayList). You must implement the linked data structure yourself from scratch. [25 points]

LibraryBook UML diagram

Q2: Make a driver class called LibraryMain. Create a LibraryBookList and add 4 LibraryBooks to the list, then remove the second and third books from the list. Check if the LibraryBookList is empty. Get the size of the LibraryBookList. Your output should match the output below: [5 points]

Sample output:


Q3: Create a message queue that manages and incoming phone calls and messages in an answering machine. See [url removed, login to view] for a starting place and a description of the methods required in the message queue. Create a Message class that implements Comparable and contains the name of the caller, the date they called, the time, and the length of the call in seconds (as an integer). Make getters and a compareTo method that passes in another Message and compares the length of the messages. This method should compare the length of the two messages and return -1 if the first message is shorter than the second message, 0 if the length of the messages is equal, and 1 if the first message is longer than the second message.

All phone messages are enqueued into the message queue. The highest priority message in a message queue is the message with the shortest length. When dequeueing, your message queue should return the highest priority message, not follow the typical queue FIFO order. Messages should be removed from the queue when the phone call is returned.

In your driver class, create three Message objects and add them to a message queue. Enqueue the messages in an incorrect order (e.g. in ascending order by first name, date, or time). Print out the messages and call the dequeue() method. Note that you may not import any packages. See sample output below: [20 points]

Sample output:


Skills: PHP, Software Architecture

See more: write location based software, can write location based software, software write protection, free software write book, write web based interface administration linux, software write book, commission based salesman job description, outside commission based sales job description, commission based sales job description, transform windows software solution web based solution, type script used write browser based games, can software develop text based mmorpg, software write protect software, software write technical manual, document management software india sharepoint based

About the Employer:
( 1 review ) Los Gatos, United States

Project ID: #11708571

Awarded to:


Hi - I am a professional Java Programmer- I have taken multiple courses on Data Structures, so this is right up my alley! - I've been programming in Java since last 5 years. I contribute to open source Java projects. Y More

$15 USD in 1 day
(53 Reviews)

3 freelancers are bidding on average $38 for this job


Hi, i have a lot of experience in java programming. i can easily complete this task for you. we can have a chat. thanks

$50 USD in 1 day
(11 Reviews)
$50 USD in 1 day
(0 Reviews)