The links below explain and instruct how the assignment can be done.
This allocation is 95 percent complete, and only 5 percent less complete.
I have completed 95% of the code, and I attached my java. Java in the third file class
This job doesn't take too long to complete, expect to only take between 30 minutes and an hour.
You only need to program 20-30 lines of code
https://docs.google.com/document/d/16shhVVQHGoXBPN4HVEK3_xmRQN50SvdWlldbudewsyk/edit?usp=sharing
The deadline for this project is 23:59 this evening
I uploaded my completed homework (the third uploaded file. Zip), only 5% can complete the project
# # # THIS IS A COMMENT (LINE). SKIP ALL COMMENTS, AND DON'T THROW AN EXCEPTION ON A COMMENT LINE # # SKIP ALL INVALID (BAD) COURSE ENTRIES AS WELL # CMSC100 21556 2 Distance-Learning Janet E. Joy # # # A VALID COURSE ENTRY MUST CONSIST of ID, CRN, CREDITS, ROOM and INSTRUCTOR IN THIS ORDER, WITH 1+ SPACES BETWEEN VALUES CMSC100 22344 2 SW217 Gloria E. Barron CMSC100 22974 2 Distance-Learning Janet E. Joy CMSC110 21561 3 SC451 Rabiha J. Kayed CMSC110 20484 3 HT300 Madhvi A. Shah CMSC110 23363 3 SC451 Sascha Simkanich CMSC110 21565 3 Distance-Learning Janet E. Joy CMSC110 21564 3 SC451 Behzad Maghami CMSC110 21560 3 SC450 Behzad Maghami # # THE FOLLOWING IS AN INVALID ENTRY - MISSING (COURSE) ID | EXCECPTION SHOULD BE RAISED FOR ANY INVALID ENTRY 21560 3 SC450 Behzad Maghami # # THE FOLLOWING IS AN INVALID ENTRY - MISSING CRN CMSC110 21560 3 SC450 Behzad Maghami # # THE FOLLOWING IS AN INVALID ENTRY - BAD CREDIT HOURS CMSC110 21560 -3 SC450 Behzad Maghami Computer Science I / CMSC203 Project 4 | Course Database You will need to design, implement and test a “database” application managing MC courses. The program must be able to (1) process course information stored in a file, and (2) to accept courses (one course at a time) entered using the provided GUI. Academic Honesty Policy – Do your own work. Each project submission will be compared against other submissions from current and previous semesters. Good Faith Attempt (GFA) – Your submission must successfully pass all of the provided JUnit test cases. In general, they are files that end with _test.java or _GFA_test.java. In addition, be sure to - · INCLUDE your name as the author on every Java file that you are creating · Capture screenshots of your successful JUnit runs in your write-up Otherwise, your project won’t satisfy the GFA requirement Specifications Data Element – CourseDBElement (CDE) · CourseDBElement consists of five attributes: · Course ID (String) // Must start with CMSC · CRN (int) · Number of credits (int) · Room number (String) · Instructor name (String) · CourseDBElement implements Comparable · referred to as a CDE in this write-up Data Structure - CourseDBStructure (CDS) · Implements the data structure as specified by the CourseDBStructureInterface. Review comments of the interface to figure out how to set the length of the hash table · The hash table is an array of linked lists of CourseDBElements (buckets / chaining) · Each CDE will have a hash code that comes from the CRN, since the CRN is unique for courses. Note that the CRN is an int, and the tests require the hashcode of a string, so you will need to coerce it to a String, and take the hash code of the resulting string · The add method will take a CourseDBElement and add it to the data structure. If a linked list at the relevant hash code doesn’t exist, create a LinkedList with the first element being the CDE and add it to the HashTable. If the LinkedList already exists, add the CDE to the existing list · Two constructors for the CDS will be required, one that takes in an integer that is the estimated number of courses, the other is used for testing purposes · Number of credits (of any course) must be between 1 and 4 (credit hours) · CRN MUST BE a unique positive number in the database (Think about your MC courses) Review the courses.txt file to learn more about the course format Data Manager – CourseDBManager (CDM) · Implements the CourseDBManagerInterface as specified · Allows user to read courses from a file or to enter the data by hand. It uses an Alert to print out the database elements. The input is read from a file or read from the text fields and is added to the data structure through the add method. The add method uses the CDS add method · Performs data validations and don’t accept any bad data into the Database · Save all invalid and bad entries to a file named, invalid_entries.txt Exception Handling · IOException – created and thrown when user selects an input file cannot be read, or attempting to retrieve a CDE that does not exist in the DB · When processing a file, a comment line, starting with the # sign, should be ignored (Just like one in a Java file). However, DON’T consider them as invalid entries GUI (Provided) · User will only create a course database after they have processed an input file or entered one or more sets of attributes · Buttons and text fields are grayed out if they are not relevant at the current time · A FileChooser is used to select the input and output files · Inform the user if there is an error with the input file · Use exception handling for the validity of the files · A way is provided for the user to “clear” the text fields · A way is provided for the user to select a CRN and retrieve the corresponding course Testing and Student JUnit Test Cases · Test cases and test results (See Project Rubric) · Test your project with 4 other test cases that you have created. You need to ensure that your project is working correctly · Capture your test runs (actual vs. expected results) in your write-up. It’s to demonstrate that that you have attempted to test your project. A 28% deduction will be imposed to any project that did not capture their test cases and respective test results in the write-up · In addition, your submission will be tested against an additional set of private test cases · Testing is very important · You should not need to modify any of the provided Java files other than the referenced package names, such as package abc. Confirm with your instructor first, if you feel like a change is needed Programming Concepts This project utilizes the following concepts: · Hash table · Linked list · Hash code · Buckets / chaining · File processing using the FileChooser Write-up & Submission Requirements Review the provided rubric to understand the project expectations, including documentation, CMSC204 and programming requirements. Each project submission MUST include your working Java code and a write-up. For Project 1, a sample write-up has been provided. Your write-up, at a minimum, needs to address - · Approach, design & algorithm · DO NOT start coding your project immediately! Come up with a high level design first. Complete this step first, then write your code · Break the project into smallest modules where applicable · Each student is welcome to expand on the design. If your project includes “above and beyond” features, clearly articulate them in your write-up. Potential extra credit could be earned if that is the case · Test plan & test cases · What test cases did you run? · I want to understanding your “thinking,” and you need to be sure that your project works! · For each test case, specify the expected vs. actual outputs · Capture several test runs as screenshots, as you run your test cases · I will attempt to break your code (with reasonable test cases) · Highlight your learning experience and lessons learned · I am very interested to learn about what you have done, how you did, etc. · Discuss your additional enhancement · What did you do? · Any assumptions that you are making for this project · Anything else that you want to share Each student must submit one compressed (.zip) file back to the Assignment (link) with the following: · Source code (.java files) · Write-up (a Word or PDF file) · Name your compressed file as
_project_x · where x is the project number and your last name (e.g., Thai_Project_1.zip) · Review provided instructions on how to submit the project carefully (don’t assume anything) · I can only grade what’s being submitted. Double check your submission · I MUST BE able to compile, run and test every submitted project on my computer using a set of test cases. Just as important, I will READ your write-up first Not clear? That’s okay, but do ask your questions. “I did not know” or “I did not understand” is not good enough. Start working on each project immediately so that we can discuss any concerns or questions you have. Sample Test Cases & Outputs (Consider them as examples only) There will be two ways to create a course database. The first requires a document to be read from an input file. The second reads the input from five text fields. Once there is data in the database, the GetCourse button will be enabled to allow you to see the data. See the example below. Example of creating a Course database from an input file Select the input file button and navigate to the file. Use ShowDB button to display the CDEs that were read: Example of Creating a CDE from text fields. First select the other radio button, then fill in the textfields, then select the “Add to DB” button. Select the Show DB button to see the resulting CDEs. Example of retrieving a CDE. First select the GetCourse button. Three components at the bottom of the screen will become enabled. Then fill in the CRN and select the FindCourse button to find the applicable course from the database.