Page 1 School of Engineering and Technology, University of Washington, Tacoma TCSS 342 - Data Structures Assignment 2 - Radix sort using queues Value: 5% of the course grade Due: Friday, 23 April...

1 answer below »
Do the assignment along with the extra credit + java document quotes


Page 1 School of Engineering and Technology, University of Washington, Tacoma TCSS 342 - Data Structures Assignment 2 - Radix sort using queues Value: 5% of the course grade Due: Friday, 23 April 2021, 23:59:59 Purpose: This project has a number of purposes. It is intended to provide practice with the following: • implementation of some methods of linked-based and array-based queues • use of unit tests to check code correctness • use of queues to solve a problem This project also serves to exercise your ability to use Eclipse and plugin tools to support the development of high-quality code that adheres to conventions. Program Description: Part 1 (40%): You will complete the development a singly linked implementation of a queue. A partial implementation is provided (LinkedQueue.java) which includes 4 incomplete methods which you must complete. You will also complete the development an array based implementation of a queue. A partial implementation is provided (CircularArrayQueue.java) which includes 4 incomplete methods which you must complete. Test classes with complete unit tests for LinkedQueue and CircularArrayQueue are provided. All provided unit tests should pass after you complete the methods of the LinkedQueue and CircularArrayQueue classes. Part 2 (60%): Write a program called RadixSortDemo.java to sort a queue of integers. Your program MUST have the following features: • Your program must include a public static method called ‘radixSort’which implements the radix sort algorithm described in class and shown in the Queue ADT lecture slides. The ‘radixSort’ method accepts a queue of unsorted positive integers as a parameter and returns a queue of sorted integers. The method signature must be: public static QueueADT radixSort(final QueueADT theNumbers) { NOTE: The method parameter is type QueueADT so that the method can accept either a LinkedQueue or a CircularArrayQueue. The return type is type QueueADT so that your implementation may return either a LinkedQueue or a CircularArrayQueue. • Your program must have the ability to read a text file containing unsorted positive integers entered one per line. I have provided one such file (in.txt) in the project starter code. It might be useful for you to create other (smaller? larger?) input files to use as you develop and test your code. • Your program must use your radixSort method to sort the integers into sorted order (smallest to largest). • Your program must write the sorted integers to an output file called “output.txt”, one integer per line. Do not write the output back to the input file, use a separate output file (so that you do not change the input file.) • Place your radix sort program in the 'programs' package. • Your program may be a console application or a GUI application. • Your program must provide the user a way to enter an input file name. • Your program should not import any data structures from java.util (use the provided data structures only) • It is OK to use an array to hold the 10 digit queues. You do NOT need to write unit tests for your program or for your implementation of radix sort; however, the code should adhere to course coding conventions and should be fully documented with Javadoc comments. Page 2 Part 3 (5% extra credit): For extra credit, provide a simple GUI to demonstrate the operations of the QueueADT. Place your demo code in the 'programs' package. At minimum, your GUI should allow a user to call enqueue() and dequeue(). Your GUI should display the state of the queue after each operation. I suggest that you start by using the StackDemo and StackDemoGUI classes provided in the linked stack code example provided on the week 2 materials page on Canvas. Rename the classes appropriately and make appropriate modifications to the code to provide a useful demo of the queue operations. (You do NOT have to use the StackDemo and StackDemoGUI classes. If you wish, you can develop your own GUI for this demo.) You do not need to write unit tests for your demo. Your demo will receive full credit if it meets the minimum requirements stated above, meets course coding conventions, and if the user interaction is intuitive. Getting Started: Create your Eclipse project by downloading the assignment2-project.zip file from the Assignment 2 page on Canvas and using “Refactor” to change "username” in the project name to your UWNetID. NOTE: The Eclipse plugin tools generate a few warnings about the provided starter code. You are not required to silence these warnings. You can safely ignore the warnings in the starter code. Documentation within the code: Include complete javadoc comments in your radix sort program (and in the extra credit program if you submit the extra credit). That is, include a javadoc comment for each class, field, constant, and method including those declared private. Try to emulate the style and quality of the javadoc comments in the Java API. Submission and Grading: When you have completed the program ‘export’ your project from Eclipse as an archive file and submit that file on Canvas. Also complete the executive summary and submit that on Canvas. Part of your program's score will come from its "external correctness." For part ‘A’ this is measured by running MY unit tests on your code. For part ‘B’ this is measured by using your program to sort several files of unsorted integers. Another part of your program's score will come from its "internal correctness." Internal correctness includes meaningful and systematically assigned identifier names, proper encapsulation, avoidance of redundancy, good choices of data representation, the use of javadoc on all class members, the use of non-javadoc implementation comments on particularly complex code sections, the inclusion of file header comments, and adherence to coding conventions as identified by the output of the Eclipse plugin tools. The assignment will be graded using the following breakdown : 10% executive summary, 65% external correctness, 25% internal correctness.
Answered 3 days AfterApr 20, 2021

Answer To: Page 1 School of Engineering and Technology, University of Washington, Tacoma TCSS 342 - Data...

Arun Shankar answered on Apr 22 2021
138 Votes
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here