Did your algorithm perform the correct calculations where


Assignment

The fourth programming project involves writing a program to manage a student database. The interface to the program should be a GUI that looks similar to the following:

A combo box should allow the user to select one of the four database actions shown. The database should be implemented as a HashMap, with the ID field as the key and a student record consisting of a name and major as the value. The operation should be performed when the user clicks the Process Request button. If the user attempts to insert a key that is already in the database an error message should be displayed using a JOptionPane message dialog box. If the user attempts to delete, find or update a record that is not in the database, a message should also be displayed. After each successful operation is completed a JOptionPane window should be displayed confirming the success. In the case of a successful Find request, a window should pop up containing the student's ID, name, major and current GPA. When the user selects the Update request, the following JOptionPane windows should be displayed to gather information about a course that has just been completed:

This program must consist of two classes. The first class should define the GUI and handle the database interactions. It should be hand-coded and not generated by a GUI generator. The second class named Student, should define the student record. It must have instance variables for the student name, major and two variables that are used to compute the GPA. A variable that contains the total number of credits completed and a second variable that contains the total quality points, which are the numeric value of the grade received in a course times the number of credit hours. It should not contain the student ID. The class should have the following three methods:

A constructor that is used when new student records are created. It should accept the name and major as parameters and initialize the fields that are used to compute the GPA to zero.

The second method courseCompleted should accept the course grade and credit hours and update the variables used to compute the GPA. It will be called when an Update request is made.

The third method should override toString and return a labeled string containing the student name, major and GPA.

Be sure that all instance and class variables are declared as private. Also any exceptions thrown by nonnumeric inputs should be properly handled. Finally when a student has not yet completed any course, the GPA should be displayed as 4.0.

Please submit in a Zip file:

All Java source code.

Any input file(s) if any related to this project.

Specific Requirements

A. Design

DO NOT USE A GUI GENERATOR FOR THIS ASSIGNMENT (example: NetBeans)! 10 POINT DEDUCTION IN DESIGN IF THERE IS EVIDENCE THAT GUI GENERATOR IS USED. If an application for example was developed in NetBeans, there are tell-tale signs that the GUI Generator was used. Moreover, I compile all source code personally and this also gives me a clear indication that a GUI Generator was used based on compile errors, missing class names, etc.

Modularity: Does 1 file occupy 1 class ONLY?
Modularity: Do the classes contain distinct methods that have very specific functions?
Modularity: Where applicable, did you minimize variable and method re-declarations via inheritance?

Object-Oriented Design: Does each class have the appropriate access modifier defined (example: public, private, protected)?
Object-Oriented Design: Does each variable have one setter (modifier) method and one getter (accessor) method in the class?
Object-Oriented Design: Do all variables of the class have the appropriate access modifiers defined (example: public, private, protected)?
Object-Oriented Design: Do all methods of the class have the appropriate access modifiers defined (example: public, private, protected)?
Object-Oriented Design: When developing source code, did you minimize code writing via inheritance and polymorphism?

Efficient algorithms: Did your algorithm perform the correct calculations?
Efficient algorithms: Where applicable, would a more efficient API or algorithm have been used to implement something in a better way?
Efficient algorithms: Did the program use API or algorithm based on the current reading materials of the week?

B. Functionality

Program compiles successfully. Automatic 10 points if it did not. Moreover, use Java 1.7 or earlier. Java 1.8 is not supported in my work environment.

Program fulfills all functionality/All Requirements fulfilled. The fourth programming project involves writing a program to manage a student database. I am expecting 2 classes according to project requirements. The GUI should look like this:

Database specifics:

1. At minimum, use HashMap as your database construct. This means that you have to use Insert, Delete, Find, and Update operations within the limitations of HashMap class in order to perform database operations.

2. For Extra Effort, you can use any other Collection class provided it satisfies the Insert, Delete, Find, and Update operations succinctly.

3. For Extra Effort, if you feel you are ambitious enough, you can query against an MS Access database to mimic actual database operations. However, you must include the MS Access jar file in your CLASSPATH and you must use an actual MS Access database file to perform operations.

4. If the HashMap construct is too difficult in this short period of time, you are free to use a text file or an ArrayList to mimic database operations provided it satisfies the Insert, Delete, Find, and Update operations succinctly. However, I will deduct 5 points from the Design rubrics.

5. If you wish, save all database transactions in a text file at the close of the application. This will help you develop a very comprehensive Test Plan with verifiable Test Cases indicating that you satisfied the project requirements.

Specific points for this Project based on Project specifications (1 point each):

A combo box should allow the user to select one of the four database actions shown: Insert, Delete, Find, Update.

The database should be implemented as a HashMap, with the ID field as the key and a student record consisting of a name and major as the value.

The operation should be performed when the user clicks the Process Request button.

If the user attempts to insert a key that is already in the database an error message should be displayed using a JOptionPane message dialog box.

If the user attempts to delete, find or update a record that is not in the database, a message should also be displayed.

After each successful operation is completed a JOptionPane window should be displayed confirming the success.

In the case of a successful Find request, a window should pop up containing the student's ID, name, major and current GPA.

When the user selects the Update request, the following JOptionPane windows should be displayed to gather information about a course that has just been completed (see images below list).

Class 1: should define the GUI and handle the database interactions.

Class 2: named Student, should define the student record.

Class 2: It must have instance variables for the student name, major and two variables that are used to compute the GPA: A variable that contains the total number of credits completed and a second variable that contains the total quality points, which are the numeric value of the grade received in a course times the number of credit hours.

Class 2: It should not contain the student ID.

Class 2: contains a constructor that is used when new student records are created. It should accept the name and major as parameters and initialize the fields that are used to compute the GPA to zero.

Class2: contains a second method courseCompleted that should accept the course grade and credit hours and update the variables used to compute the GPA. It will be called when an Update request is made.

Class 2: contains a third method that should override toString and return a labeled string containing the student name, major and GPA.

All Classes where applicable: Be sure that all instance and class variables are declared asprivate.

All Classes where applicable: Also any exceptions thrown by nonnumeric inputs should be properly handled.

Where applicable: Finally when a student has not yet completed any course, the GPA should be displayed as 4.0.

Program Outputted Correct Results

User interface is displayed as expected.

All user interface components work according to specifications.

Extra Effort

Please demonstrate in your documentation with the heading EXTRA EFFORT indicating where you performed EXTRA EFFORT. EXTRA EFFORT must be a technology or algorithm outside the current study.

Examples of unsuitable or inappropriate EXTRA EFFORT activities:

I added an extra variable to the class
I added an additional line of source code.
I used a Java technology from a previous Chapter.

C. Test Plan

Because of the mimicking of database operations in this project, the Test Plan is vitally important. A Good sound Test Plan with 4 Test Cases containing succinct step-by-step instructions will guarantee that your application works they way it should be. If I can follow your step-by-step instructions clearly and see valid results according to the Test Cases.

Test Plan must be defined in a commented documentation section on top of the main Java source file. Because this is a user-interface application. You must demonstrate at least 4 Test Cases that satisfies the Functionality requirements of the Project. A good example of a viable Test Case is:

Test Case 1 - Verifying Deposit of Funds.

Click on Balance button.

Verify that JOptionPane window shows displaying the amounts for Checking Account and Savings Account are 0 and 0 dollars respectively.
Click on Savings radio button.

Type in "text" in Text Field.

Click on Deposit button

Verify that error message box display saying that text is not allowed. Verify that text field screen is cleared.

Type "10" in Text field.

Click on Deposit button

Observe that screen is cleared.

Click on Balance button.

Verify that JOptionPane window shows displaying the amounts for Checking Account and Savings Account are 0 and 10 dollars respectively.

Yes, I am expecting some discussion on the limitations of the Test Plan. 2 bullet points/individual ideas minimum.

No Test Plan means 0 points for entire Test Plan section.

D. Documentation

Documentation section should be defined in a commented documentation section on top of the main Java source file.

I am expecting a Lessons Learned section in the commented documentation section with at least 2 bullet points/individual ideas.

I am expecting a Possible Improvements section in the commented documentation section with at least 2 bullet points/individual ideas.

I am expecting an Approach section in the commented documentation section with at least 2 bullet points/individual ideas.

No Documentation means 0 points for entire Documentation section.

And please can you put unique touches so it doesnt look exactly the same from others you sell or have sold please.

Solution Preview :

Prepared by a verified Expert
Programming Languages: Did your algorithm perform the correct calculations where
Reference No:- TGS01726967

Now Priced at $40 (50% Discount)

Recommended (95%)

Rated (4.7/5)