Hi for the lab4 you missed the structure of classalso i need UML diagram for the lab5. question is below.LAB 5 – Abstract Class EncryptionIn this lab you will restructure and extend Lab 4 in order to have multiple encryption algorithms. You will create an abstract class with a pure virtual function decode which will be implemented in two different derived classes. One of them will have the algorithm that you already implemented in Lab 4. The second one is explained in STEP 3.STEP 1: Make the Encrypted class created for Lab 1 abstract. For a class to be abstract it needs to have a pure virtual function. Make decode a pure virtual function in that class (refer to textbook 15.7 Abstract Base Classes and Pure Virtual Functions). Keep everything that you already have in the Encrypted class except the implementation (body) of decode and any member variables used in the decoding process. Those need to be moved to the derived class where the decoding will now take place. Variables left in the base class that you may need to access in the derived classes need to be protected instead of private.STEP 2: Create another header file “CypherA.h” with class CypherA derived from Encrypted. Don’t forget to #include “Encrypted.h” in the new header file. Move the decode function that you implemented on Lab 4 here. This class should have:member function decode and any member variables needed in the decoding process.constructor (refer to textbook 15.3 Constructors and Destructors in Base and Derived Classes and Passing Arguments to Base Class Constructors) and destructor.STEP 3: Create another header file CypherB.h with class CypherB derived from Encrypted. Don’t forget to #include “Encrypted.h”. Implement another version of decode using an algorithm known as “rotational cypher”. In this encryption method, a key is added to each letter of the original text. For example:Cleartext: A P P L E
Key: 4 4 4 4 4
Ciphertext: E T T P IIn order to decode, you need to subtract 4.Implement the member functions in CypherA and CypherB inline. STEP 4: Now in main.cpp you cannot create objects of Encrypted anymore because you made it abstract and you cannot instantiate objects of abstract classes. Change main.cpp to create objects of CypherA and CypherB instead. You need to #include “CypherA.h” and “CypherB.h” instead of “Encrypted.h” in main.cpp. Note that you can still call printand isEmpty on the objects of CypherA and CypherB, even though they belong to Encrypted, because CypherA and CypherB inherit all protected and public members from Encrypted.Turn in Encrypted.cpp, Encrypted.h, CypherA.h and CypherB.h.RubricLab5 rubricLab5 rubricCriteriaRatingsPtsThis criterion is linked to a Learning OutcomeDocumentation (ALL files)Header comment with description of class, your name and date. Comments on all member functions and variables.10.0 ptsFull Marks0.0 ptsNo Marks10.0 ptsThis criterion is linked to a Learning OutcomeEncrypted class10.0 ptsFull Marks0.0 ptsNo Marks10.0 ptsThis criterion is linked to a Learning OutcomeCypherA class10.0 ptsFull Marks0.0 ptsNo Marks10.0 ptsThis criterion is linked to a Learning OutcomeCypherB class10.0 ptsFull Marks0.0 ptsNo Marks10.0 ptsThis criterion is linked to a Learning OutcomeStructure and StyleExamples: avoids repetition of code by defining functions and using loops; defines constants for arrays sizes and their access; makes sure to not overstep array boundaries; there are no global variables, labels and goto statements; cod is nicely indented.5.0 ptsFull Marks0.0 ptsNo Marks5.0 ptsThis criterion is linked to a Learning OutcomeOutputCorrect and attached as a comment at the end of your source code.5.0 ptsFull Marks0.0 ptsNo Marks5.0 ptsTotal Points: 50.0Also complete the lab5 as usual.
You can get our ideal online homework help services with four easy steps. All you have to do is inform us of your requirements. Immediately we will match with a specialist in your academic discipline. After that, we will track your order, review it to ensure it meets your requirements, and submit it to your email.
Fill in your assignment instructions on the order form
Immediately you contact us for homework help; we will assign your assignment to an academic expert.
We have a team of editors, who will thoroughly review your assignment, ensuring there are no errors before submission
Once we have completed the assignment, we will deliver it to your account. Additionally, we will send a notification to your email.
Once you consult us for homework help online services, you will attest to why we are among the USA's best essay writing services.
Read on and find out some of the features that make our services superlative.
You can confirm that the content you get is original for free using our plagiarism checker.
We offer unlimited access to our essay homework samples.
Once you place an order, we format it accordingly without demanding additional charges.
We offer free unlimited revisions until your assignment is of your desired quality..
We have a team of specialized editors who review your assignment before submission.
You can track the progress of your homework for free.