Data Structures and Specialist Programming Individual Coursework 1

2022-23

This individual coursework requires developing and documenting Java application(s) using an object-oriented approach.

Part 1: Use of Data Structures & Java Collections Framework

You are required to develop a software system in Java using relevant classes from the Java Collections framework. The system is to manage bank accounts. It should be able to manage account general details for an unlimited number of accounts, and details of the last six transactions for each account as specified below. To simplify the matter the system does not require saving data on disk, however if you wish you can implement this functionality into your system.

The data of a bank account must include the following details:

 Account general details:

  1. Account number
  2. Account holder name
  3. Account holder address
  4. Opening Date
  5. Current

Transaction details:

  1. Transaction type (i.e. deposit, withdrawal)
  2. Transaction amount
  3. Transaction

Your system is required to provide the following functionality.

  1. Create a new account and add it to the
  2. Display on the computer screen a list of the existing accounts with the account general
  3. Delete a closed account from the system, given the account
  4. Update the system with details of any new transaction of existing Note that for each account only the information of the last six transactions is maintained by the system.
  5. Given an account number, display on the computer screen details of the account’s last six transactions being sorted by transaction Note that all transaction amounts are positive numbers regardless whether a transaction is a deposit or withdrawal.
  6. Provide an appropriate system user interface that allows testing of the above

Part 2: Implementation of a Data Structure and an Algorithm

You are to provide your own implementation of a standard data structure and a standard searching/sorting algorithm to satisfy the requirement of this part of the coursework.

 You should have used some classes and its methods from the Java Collections framework in your implementation of the system as requited by Part 1 of this assignment. In this part, you should do the following: –

  • To construct your own implementation of the same data structure of at least one of the Java Collections classes which you used in your solution from Part For example, if you used the LinkedList class you should provide your own implementation of a linked list class from scratch in order to provide the same functions of your application.
  • To write your own Java code from scratch to implement a sorting or searching algorithm. For example, you could write a Java method of your own to perform the insertion sort algorithm, which can be used in the implementation of Function no.5 of the application from Part 1.
  • To provide another version of your application which provides the same functions as specified in Part 1, but makes use of the class(s) and method(s) from your implementation of the chosen data structure and algorithm from (a) and (b) above.

Deliverables

This coursework requires three deliverables to be submitted via Web before the submission deadline.

  • The software artefact with a complete set of Java classes source code (i.e. ***.java files, or complete NetBeans Java application projects) to meet the requirement of Part 1 and Part 2 of the coursework.
  • The report in MS Word compatible or PDF
  • The recorded software demo in mp3 or mp4

Your software implementation should demonstrate/provide the following features

  1. Use of appropriate data types (built-in and programmer-defined) to handle the application
  2. Define and use your own class or
  3. Use of appropriate data structures for the required programming
  4. Use suitable algorithms g. sorting and searching.
  5. Provide either console-based or GUI-based user interface for your

A reflective report (1000 words), which concisely documents:

  1. Detailed instructions to run the Note that these instructions are not a User Manual of your application.
  2. The architecture of your software in terms of software classes using a UML class You are required to clearly indicate which classes are of your own work and which classes are from other sources (e.g. from textbooks, online sources etc.).
  3. Detailed description of the classes’ purpose, properties and
  4. Which data structures and which algorithms you have used, in which part of your programs, and why.
  5. Screen dumps (live, 2 per page) including test plan, test data and test results
  6. A reflection of your experience of the development task, what issues you experienced, your solution to overcome it and any lessons learned.

A recorded software demo (10 minutes), which concisely demo any implemented functionalities(1-6, a-c)) and features (1-5) of your software with your voice over