Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: THEend8_
This project is individual work. Each student must complete this assignment independently.
User Request:
“Create a simple system to read, store, merge, purge, sort, search, and write NVRA data using a
more complete array library, a linked list library, error checking, and user interaction.”
Objectives:
1 Use C++ file IO to read and write files, while using C++ standard I/O (cin and cout)
for user interaction, using appropriate exception handling.
5 points
2 Encapsulate primitive arrays inside a templated class that provides controlled access to
the array data, retains information on array capacity and use, and can be used to store
data of any class or primitive type.
5 points
3 Integrate appropriate exception handling into the templated array class. 5 points
4 Efficiently sort the data based on the field specified by the user (using comparator). 5 points
5 Efficiently search the data based on the field specified by the user (using comparator). 5 points
6 While reading and merging NVRA data, use a linked list maintained in order by
unique record IDs.
15 points
7 While purging, remove entries from the NVRA linked list while maintaining its order. 10 points
8 Encapsulate linked lists inside a templated class that provides controlled access to the
linked-list data, retains information on linked list size, and can be used to store data of
any class or primitive type.
15 points
9 Create and use an enumerator (iterator) for traversing the templated linked list. 5 points
10 Integrate appropriate exception handling into classes that implement linked lists. 5 points
11 Add user options to add additional functionality (merge and purge), prompt the user
for additional file names, and provide error messages in case of file access errors.
5 points
12 Develop and use an appropriate design. 10 points
13 Use proper documentation and formatting. 10 points
Description:
For this project, you will revise and improve VoteR from Project 1 in several ways. You are encouraged
to reuse and build on your code from Project 1. In addition to the functionality provided by VoteR 1.0,
your new VoteR 2.0 will allow users to merge and purge NVRA data from multiple files in its working
memory throughout its use. VoteR 2.0 will also have a major change “under the hood”—rather than
storing the list of NVRA records using an array that automatically resizes as entries are added, VoteR 2.0
will store the list of NVRA records using a linked list data structure when NVRA records are being
added to and removed from VoteR 2.0’s working memory. (Note that the list of NVRA records will still
use a resizable array when the data is to be sorted and searched using binary search.)