Вы находитесь на странице: 1из 3

Project 3: facebooklight

Warning: There is a strict anti-plagiarism policy for this project. We use a software to detect any foul play. The codes that will be tested for matching will include the codes of last years projects so do not try to copy the code from seniors!
Project Goal The goal of this project is to help you gain a firm grounding in the concepts of pointer manipulation and object oriented programming. This project is to be completed individually. Project Description

In this project you will be developing a lite version of facebook. Facebook has often been criticized on having very poor privacy settings. Your job is to create an engine of facebook that provides the much needed privacy setting to its users. Therefore, in your version of facebooklite you will be only be developing a functionality to add, delete, view of contacts of different types. The contacts are divided into the following types:

Tasks Your facebooklite engine should support the following functionality: User of application should be able to login to application by proving his user ID (password is not required). After logging on a user should be able to add friends o Each friend will have ID, Contact Type (Friend/Relative), Access Level (Public/Private).

o o

Data of friends should be stored in file(s) on disk.

Even after logging off and shutting down the application, upon restart, the user should be able to retrieve his or her friends data. User should be able to see the list of all the friends (Friend/Relative). User should be able to see details of any friend. User should be able to delete any particular friend. User should be able to see only public friends of his or her friends. User should be able to see only public friends of any person whose user ID is known to the user. Thus user can see friends of friends up to any level. User should be able to logoff. Once a user logoff from application, another user should be able to login by proving his user ID.

Implementation Details
We have partially implemented a class named FriendsBook. You will be completing the

implementation of this class. You may add more methods to this class as well as complete the implementation of the existing methods. Moreover, you will also write a driver main program which will allow users to interact with the application. Your main program will be using FriendsBook class. You are expected to implement following inheritance hierarch: Out of these classes Person class has been implemented for you. Class Person has a virtual method

print(). The print method of Person class prints a person like: firstname.lastname Friend Private You are required to inherit from Person class and override the virtual method print(). Your overridden print() method of PublicFriend class should print a person like: Public Friend: firstname.lastname

Similarly your overridden print() method of PrivateRelative class should print a person like: Private Relative: firstname.lastname

The print() methods of the rest of classes, will also be overridden in a similar fashion. A sample Main program is provided as a reference just to demonstrate how to play with existing code. Note: Although you can add new methods into the codebase given to you but you are not allowed to change any of the codebase already provided to you.

What to submit? We will be grading your project using the public functions/methods of the codebase provided to you. Therefore, whatever new classes/code you add please make a zip file of all files required by your program and submit it on LMS.

Вам также может понравиться