Aim & Objective
This coursework is designed to demonstrate the broad understanding and knowledge of the module, assessing, and evaluating the student’s strength and level of analysis; divided into 4 Section. The coursework should be submitted as one document in a report format in final submission.
Assignment Scenario:
Scenario
Data structures provide a means to manage large amounts of data efficiently for uses such as large databases and internet indexing services. Usually, efficient data structures are key to designing efficient algorithms. Some formal design methods and programming languages
emphasize data structures, rather than algorithms, as the key organizing factor in software design. Data structures can be used to organize the storage and retrieval of information stored in both main memory and secondary memory. Primitive data structures like int, float, char, etc. are simple ways for programming languages to represent basic values but in order to store multiple values in a single variable, there is a need of Non-primitive data structures which includes arrays, lists, stacks, trees, and so forth. The use of these data structures can also be employed using objectoriented programming languages like C# or Java, a class is a data structure that organizes attributes and functions in such a way that they can be easily replicated. In each case, the way the data is "structured" makes it easy to retrieve or manipulate.
You have been asked to write a report covering the points stated below in relation to ADTs and its management. You must also present your programming skills related to abstract data types using C#.
LO1
The implementation of a data structure usually requires writing a set of procedures that create and manipulate instances of that structure. The different form of data structure and its operations gives rise to its different application like Arrays, Stack, Queue, Linked Lists, graph data structure, Tree, Hash tables, etc. Understanding the above nature of data structure, you are required to produce a design specification for any three data structure explaining the valid operations that can be carried out on the structures. To implement and make use of Stack, you need to define its common operations and how it is used to implement function calls in a computer. To further test the use of Queue, you need to illustrate with an example of a concrete data structure for “First in First out” (FIFO) Queue and its common operations.
LO2
In many modern days application, Stacks are used for the undo buttons. The recent most changes are pushed into the stack. Even the back button on the browser works with the help of the stack where all the recently visited web pages are pushed into the stack. Making a note to the above concepts on stack, you need to Identify an abstract data type for a First in Last out (FILO) - stack and its different associated functions and support with some programming example. Based on the application of OOPS in data structures, you need to examine the advantages of encapsulation and information hiding when using an ADT. Present your views along with justification on why imperative ADTs is considered a basis for object orientation.
LO3
A college have asked you to produce a console-based application to store staffs information and the department in which they are working. The application should have the following functionalities:
a) Add new staffs (staff id, first name, last name and mobile number, email, department name)
b) Add new department (e.g. academic department, account department, HR department, QA department etc)
c) Remove staff record based on ID or Phone number
d) Search staff record based on phone number or ID
e) Display the all staffs ID, first name, last name based on the department
f) List of departments