COIT20256 Data Structures and Algorithms Assignment

Assignment Help Data Structure & Algorithms
Reference no: EM133051627

COIT20256 Data Structures and Algorithms - Central Queensland University,

1. Objectives

The purpose of this assessment item is to assess your skills attributable to the following learning outcomes and your achievement of the expected graduate attributes of advanced level communication, knowledge, cognitive, technical, and creative skills, and self- management.
- Design and implement appropriate data structures for application development
- Analyse, develop and implement software solutions with the focus on data structures and algorithms
- Apply classes, inheritance, polymorphism, and exception handling

2. Assessment task
Your task in this assessment is to analyse the given problem, model, and design the required data structures using UML class diagrams. You will be implementing the software solution, applying efficient algorithms, inheritance, polymorphism, and exception handling. The topics required for this assessment task are from Weeks 1-5. Your Java Application should have an interactive Graphical User Interface (GUI) using JavaFX GUI components. You should also write a report, as specified in this document, demonstrating your conceptual knowledge. You will be required to use the topics learnt in the pre-requisite unit Introduction To Programming.

Problem
The Australian government and many other governments around the world are grappling with the problem of preventing and reducing the health problems caused by the pandemic of COVID 19. The main goal is to vaccinate the population. In Australia different state and territory governments are setting up mass vaccination hubs.

A mass vaccination hub will have administration staff to register potential vaccine recipients and medical staff to verify recipient details and administer the vaccination. There is an urgency in setting up and commencing the operation of these mass vaccination centers. A software system to register recipients, record both admin and medical staff, and enable verification of the recipients and record vaccination details are essential requirements for these vaccination centers.

CQUniversity is actively involved in social innovation practices and engages in the design and development of social enterprise systems as a member of the Ashoka U ‘change maker' drive. Due to this reputation CQuniversity is invited to create a software system named Mass Vaccination Management System (MVMS) at free of cost. Therefore, the social innovation Directorate of the university approached the Discipline Leader of Software Design and Development to initiate a prototype development of MVMS. The Discipline Leader decided to involve the students from Data Structures and Algorithms to develop the prototype so that a variety of user interface design and components can be created which can be used for a quick comparison and final decision.

You are invited to design and develop an initial prototype for the MVMS. You will be developing the prototype in two stages. The current prototype will be a desktop application which will be later updated to a web-based application enabling online user registration. In the first stage, the MVMS should have a graphical user interface that enables staff registration, and vaccine recipient registration. The collected data will be saved to text files.

In the second stage, the MVMS developed in the first phase should be extended to enable the medical staff to login, verify recipient details, and record vaccination details. Additional reports should also be generated. The data collected at the initial stage will be loaded and all the data should be recorded in a database. The support for the full development of the system depends on the quality of the prototype.
In this Assignment you will be focusing on the first stage development of the MVMS which is a desktop Java application with a GUI. The MVMS should enable three functions as detailed below.

1. Staff Registration
a) Administration staff
These staff will be responsible for collecting and recording recipient details and allocating vaccination details and date of vaccination.
The MVMS should enable registration of staff details so that they can later login and use the system.
The details required include:
• Full name
• Address
• Phone number (should contain 10 digits).
• Email address
• Username
• Password (should be 10 characters long and should contain both capital and small letters.)
• staffId
• Position type
An administration staff can be full-time employed, part-time, or volunteer.
b) Medical staff Registration
These staff will be responsible for verifying the recipient details before administering the vaccination, including the correct type and dose of the vaccine and then administer the vaccine. The MVMS should enable registration of the medical staff so that they can login and use the system.
In addition to the details required for the administration staff, excluding the position type, medical staff details should include:
• Registration Number
Doctors, nurses, and pharmacists will have a registration number.
• Affiliation
Medical staff will be people working in other organisations taking their time to do this extra duty.
• Category

This can be one of Registered Nurse, General Practitioner, or Pharmacist.
2. Vaccine Recipient Registration
The details to be collected at the time of registering a person to receive vaccination include:
• Full name
• Phone number (should contain 10 digits).
• Email address
• Gender
• Date of birth
• Vaccination Date (which can be suggested and confirmed)
• Dose number
Currently the vaccinations are given for first and second doses.
• Vaccine Type
can be one of AstraZeneca, Pfizer, and Moderna.

3. Enter and Save Data
During the registration process allow the user to click an appropriate ‘Enter Data Button', for example Enter Admin Staff Details. This should add the entered data to an ArrayList.

Include a ‘Save Data Button', for example ‘Save Vaccine Recipients' to write the entered data to a file.
You should save all the Admin Staff and Medical Staff data to a file named ‘staff.csv' which is a text file that stores the attribute values separated by commas. You use an overloaded toString() method to format the attribute values separated by commas. Save all the Vaccine Recipients' data to a file named ‘recipients.csv'. You can open the files outside of your IDE and ensure that the correct data are saved.
During the first run of the program the save method should create the file as the file may not exist. But this should be done after checking that the file does not exist. During the subsequent runs the entered data should be appended to the file so that data already written to the files do not get overwritten and lost.

Data Structures
You may follow the class design given below. You should read the specification carefully and design the classes using UML class diagrams and include the attributes with correct data types and all the methods, clearly indicating public or private. Clarify your doubts during the design stage so that your implementation can be less error prone and faster to complete.
All classes should have a default constructor, parameterised constructor, copy constructor, accessor mutator (get, set) methods, and properly written toString() methods. Include other methods as needed. This doesn't apply to the JavaFX classes for the GUI.
i) Person class
You can see that many attributes are repeated across Admin staff, Medical staff and vaccine recipient. It can be a good design to create an abstract Person class and include the repeated attributes and have associated methods that can be derived in other subclasses.
ii) Staff class
This class can be an extension of the Person class to include attributes common to Admin Staff and Medical staff. There is no need to create a generic staff object and therefore this can also be an abstract class. This class can have the attributes - username, password, and staffId.
Override the inherited methods as required. Ensure that the source code is re-used and not repeated unnecessarily leading to redundant code.
iii) AdminStaff
This class can be derived from the Staff class to include all the attributes of an Admin staff
which includes a positionType also.
iv) MedicalStaff
The medical staff should have a registration number, affiliation, and category to indicate whether the staff is a General Practitioner, Nurse, or Pharmacist.
Include appropriate attributes and methods.
v) VaccineRecipient
This class can be derived from the Person class and include additional attributes to store Gender, date of birth, dose number, vaccineType, and vaccination date.
Hints and tips:
a) Refer to Week 3 Lecture and tutorial solutions, and the Textbook chapter on Polymorphism for the correct implementation of polymorphic behaviour.
b) You use the LocalDate class from Java.time.LocalDate for storing dates. Many of the methods from the Date class from Java.util.Date are truncated.
vi) DataFile class
This class is for implementing the file operations to open and store the values in the appropriate files named ‘staff.csv' and recipients.csv' The initially stored data from the corresponding ArrayLists should be written to this file.
Use specific file handling exceptions for various checked exceptions related to file operations.
You are encouraged to use the following enums.

vii) enum GENDER
Create an enum type GENDER to store male, female gender values as these remain constants.

viii) enum MEDICAL_STAFF_CATEGORY
• The medical staff category remains constant as one of GP (General Practitioner), Nurse, or Pharmacist.
You can use other enums where you find a list of constant values are used.

ix) JavaFX classes
The standard classes required include the main class to create the Stage and launch, the controller to initialize GUI components, handle events, and validate user entries, the .fxml file for the layout design of GUI components, and the .css file for formatting.
You can use appropriate filenames for these files.

Graphical User Interface
The GUI should have the necessary components to enable the user to execute all the functions as provided in Section 2.1 above. You may use the guidelines provided below for your GUI design and implementation. Variations to the provided guidelines are acceptable if it meets the user requirements. Follow the User Interface design guidelines learnt in Week 4 and design the GUI to meet chosen aspects of an easy-to-use user interface that provides informative error messages, and clear instructions.

You can have a GUI with multiple tabs for enabling the user to enter and save data of staff, and Vaccine Recipient.

i) Staff Registration
Use this tab to enable the user to enter details of Admin Staff or Medical staff. It is better to separate the set of buttons to enter data for the two categories of staff which will be collected in ArrayLists<> and a Save Button to write the entered data to the file.
You can use Labels, TextFields, ComboBox or ListView, and Buttons as required. Display error message if the user hasn't entered the Phone number correctly.
Display error message if the user hasn't entered the password correctly

ii) Vaccine Recipient Registration
Use this tab to enable Admin Staff to enter and save details of Vaccine Recipient. This tab also can have the necessary controls to enter username and password by the Admin Staff and Login to enter data.
Use appropriate controls such Labels, TextFields, ComboBoxes, Radio Buttons and DatePicker to enable entry of data.

3. Coding
Include necessary accessor, mutator methods, constructors, and toString() method for each class. Also, follow good coding practices, using meaningful names, camel case notation for naming, constants as necessary, and include meaningful comments. You can use NetBeans to develop your application. Follow the coding standards given in the Unit website.

Guidance to the level of assistance you can use.
You are expected to understand several concepts and apply those concepts to design and build a software solution. At this level you can use the provided materials, online resources for further reading and take assistance from your classmates to develop deeper understanding of the concepts. You can also seek help to debug the implemented program. But you should implement and test your program on your own.

4. Report
You should submit a report containing the following details.

1. UML class diagrams for the classes
Note: UML class diagrams generated using a software tool after completing the coding will not be accepted.

2. Test plan showing input data, expected results, and actual results. Show testing of erroneous entries also.

3. Evidence of testing including screenshots.

4. Write clearly which aspects of the User Interface Design principles you have followed and how did you implement those.

Attachment:- Data Structures and Algorithms.rar

Reference no: EM133051627

Questions Cloud

How much is the value of inventory on consignment : On January 2, 2021, Pete Electrical Trading received from Makati Corp, 300 pieces of bread toasters. How much is the value of inventory on consignment
What is the debt to assets ratio : Using the following balance sheet and income statement data, what is the debt to assets ratio?
Encryption is important aspect of computer security : Encryption is an important aspect of computer security. Define and explain Advanced Encryption Standard. Define and explain Symmetric cryptography.
Explain the principles of double-entry bookkeeping : Question - Explain the principles of double-entry bookkeeping and how they affect the budgeting process. (approx 100 words)
COIT20256 Data Structures and Algorithms Assignment : COIT20256 Data Structures and Algorithms Assignment Help and Solution, Central Queensland University - Assessment Writing Service
Intellectual property entitled to legal protection : Why did the court find in favor of Diamond in the Rio case? What is Digital Rights Management? Why is intellectual property entitled to legal protection?
Effective leadership type for leading : A British firm is going to be opening a subsidiary in Japan within the next six months. What type of leadership that is indicated by research as the most effect
What is a major current issue : What is a major current issue or trend related to sales strategies in sport. Using a reliable source please provide a brief cited summary of the article and ana
What is the quick ratio : You have obtained the following information for Blue Bell Farms. The tax rate is 34 percent. What is the quick ratio?

Reviews

Write a Review

Data Structure & Algorithms Questions & Answers

  Design a program that asks user to enter a series of numbers

Design a program that asks the user to enter a series of 20 numbers. The program should store the numbers in an array and then display the following data.

  The generic height and width of each bookcase.

Write a solution (one calculation algorithm) to print the number of feet (Variable: Number_Boardfeet) of 12-inch-wide boards that Joe will need to complete any given bookcase, given the generic height and width of each bookcase.

  Review the brief intervention flow chart

Review the brief intervention flow chart. What would be easy for you to adapt and what would be more challenging for you to adapt as a SUD counselor

  What do you mean by query tree what is meant by the

question 1 how does a query tree represent a relational algebra expression?question 2 what is query tree? what is meant

  Write a program to load an array

Write a program to load an array

  What is the largest x such that the protocol performs x-bit

What is the largest x such that the protocol performs x-bit correction and what algorithm would you use to perform this correction? Give me the pseudo-code (or a sensible explanation)

  Write an algorithm that given a set x calculate the multiset

Write an algorithm that, given a set X, calculates the multiset ΔX. Consider partial digest L = {1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 5, 5, 6, 6, 6, 9, 9, 10, 11, 12, 15}. Solve the Partial Digest problem for L (i.e., find X such that ΔX = L).

  Advanced systems analysis and design

Produce a system specification indicating functional and non-functional requirements - Generate suitable prioritised Use Cases for the system.

  Create a graph showing best average and worst case

Create a graph showing best, average, and worst case T scores for your code in number 3 above for n = powers of 2 from 21 to 216. If there are any results you cannot provide be specific as to the reason. You can modify the best/worst by modifying ..

  Section 1 aims objectives and possible outcomesprovide

section 1 aims objectives and possible outcomes.provide a clear statement of the aims and objectives of the data

  Linked lists give a program to implement the insert

give a program to implement the insert operation and delete operations on a queue using linked

  Designing and populating a course table

Use data to design and populate a course table. Designate the CourseID field as a Primary Key and permit your database to automatically produce a value for this field.

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd