The programming assignment is to be turned in as a hardcopy to include the source code & screenshots of the input/output AND zipped in BB Assignment PROGRAMMING ASSIGNMENT 3 as “Programming Assignment 3.zip” in the first ten minutes of the due date class.
A data file will be given to you in class for Acceptance Testing.
Assume the name “Programming Assignment 3 Data.txt”.
The hardcopy must contain the following statement and must be signed by the student.
I the undersigned declare that the project material, which I now submit, is my own work. Any assistance received by way of borrowing from the work of others has been cited and acknowledged within the work. I make this declaration in the knowledge that a breach of the rules pertaining to project submission may carry serious consequences.
Signature ___________________
This is the only page you need to turn in as hardcopy.
Hash Table - Chaining Array based Buckets for Hospital Employees ProgrammingAssignment3 APPLICATION
OOA, OOD, and OO Implement in JAVA:
The requirements from Programming Assignment 1 stand. You just need to use a hash table Class as a data structure for the Hospital Employees. It will associate names (which are unique) key to hospital employee information. Therefore, the name is a key field and the hospital employee information “is” the value field.
You must design your OWN HashTable – Chaining Array based Buckets XYHashTableInterface & XYHashTable (where X first initial of FirstName and Y first initial of LastName), please also use hashTable for the object of Class XYHashTable.
REUSE your Programming Assignment 1 XYAListInterface & XYAList Class as the Array based Buckets.
The Hash Function to be used for key (name) calculates a hash_index using the following formula:
hashVal = 37* hashVal + key[i]
To make it easier to “see” the contents of the hashTable after reading the hospital employees from the data file, “Programming Assignment 3 Data.txt” or after changes such as add employee and delete employee take place, you need to display the contents of the hashTable (hashTable index, key and the ArrayList of values. To make it easy to display your hashTable must be of size 7.
In addition, add the search for hospital employee based on name, and display all of that employee’s information.
Create a ProgrammingAssignment3.java that contains the main method.
You cannot use any DATA STRUCTURES JCL classes!
One class per .java file! Must use MVC Design Pattern.
Each .java file must have these 4 lines of comments (you will lose 5 points if not):
// COSC 2320 Summer 2015
// Name:
// Programming Assignment 3
// This is my own work; I will not post
NOTE: The UML documents for Programming Assignment 1 have 11 pages. I made a copy of them, renamed 1 to 3, and then added the new Programming Assignment 3 requirements as pages 12 and 13.
You could also REUSE your Programming Assignment 1 UML Models (11 pages, last line number 117) by copying, renaming, and then adding pages 12 and 13. Then you can add the new Use Cases and Classes to it (I assume that you will improve these models before you add the new stuff).
Your (and mine) UML Models for Programming Assignment 3 must have 13 pages, last line number is 145.
http://cristobal.baray.com/indiana/projects/mvc.html
MVC Introduction
The main idea behind design patterns is to extract the high level interactions between objects and reuse their behaviors from application to application. They were inspired by an architect, Christopher Alexander, discussing the way that architectural design has patterns of its own:
Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice.
A Timeless Way of Building
In theory this sounds great, but I've found in practice it takes some getting used to. Admittedly, it might take longer for me cause I'm a (reforming?) guerrilla programmer (the error in my ways has caught up with me and I'm taking steps towards programming for people - not computers). Sure, I've found that the design patterns are useful, but their advantage is not only in creating re-usable, easy to understand code - but, more importantly in helping me clarify the way that I think about programs. I find this second advantage much more substantial.
Writing code is usually the easy part - the hard part is figuring out exactly what code to write. Time spent carefully thinking about the code to write will save enormous amounts of time and effort when it comes to actually writing the code. Still, many people don't always work that way - myself included. Design patterns are helping me shape the way I parse a problem, which leads to helping me break up the problem into objects and modules. The Model View Controller pattern has probably changed my style and efficiency the most. It has lead to new ways of writing entire applications, constantly improving my applications in usability. Yet, while I was learning about the pattern, I was surprised at how hard it was to find information about it (some of the more useful bits of info I found are included in my references page - though Head First has become my favorite learning tool).
So, I decided to add a couple of pages about the pattern myself. I want to share some info about the pattern that I've found so useful but seems to get so little press. And I figured it would also clarify it even more in my own head. One little disclaimer - you might notice differences between what I present and what others present. The differences are representative of our styles I suppose - because I've made adjustments along the way and have changed things. I've tried to mention these areas when they pop up.
The MVC pattern is surprisingly simple, yet incredibly useful. Essentially, the pattern forces one to think of the application in terms of these three modules -
? Model(s) Class(es): The core of the application. This maintains the state and data that the application represents. When significant changes occur in the model, it updates all of its views
? Controller(s) Class(es): The user interface presented to the user to manipulate the application.
? Typically the UCs become methods in the Controller for that User (Actor).
? View(s) Class(es): The user interface which displays information about the model to the user. Any object that needs information about the model needs to be a registered view with the model.
1. OOA/OOD
You need to do TEXTUAL ANALYSIS ON THE REQUIREMENTS all using Microsoft Word AND TURN THAT IN TOGETHER WITH YOUR UML MODELS! See the two WORD documents attached to the Programming Assignment 3 OOA/OOD (MUST use WORD; MUST use the MVC Design Pattern).
(WITHOUT OOA/OOD YOU WILL LOSE 20 POINTS, and IF ALSO NOT MVC YOU WILL LOSE 30 POINTS!)
2. Use JAVA to OO Implement it (NetBeans 6.9.1 ONLY).
PLEASE NOTE THE DUE DATE!
A data file will be provided to you at the Acceptance Testing phase. The name that you are required to use is “Programming Assignment 3 Data.txt”.
DO NOT TURN IN THE PAGES in YELLOW, only the first PAGE.
COSC 2320