Our Services

Get 15% Discount on your First Order

[rank_math_breadcrumb]

c++ social media platform

attached

CE221 – C++ Programming Assignment 2 – 24/25
Dr Michael Barros ([email protected])

Deadline: 13:59:59, Monday 13th January 2025

Notice

You should refer to sections 5 and 7 of the Undergraduate Students’ Handbook for details of the University policy
regarding late submission and plagiarism; the work handed in must be entirely your own. Your programs will be
checked by an intelligent plagiarism detection system that looks for similarities between the submitted programs.
(Since some of the code has been supplied on Moodle, there will inevitably be similarities, so I will examine any
submissions flagged by the checker to determine whether the similarities that have been detected are reasonable.)

This assignment comprises a single exercise. The files for use in this assignment are available in Moodle as a zip file.
Submission of this assignment will be via FASER.

Introduction

In this assignment, you will develop a basic social media content management platform (e.g. think of it as X (twitter) or
Reddit). The platform simulates a discussion of people and their posts with two types of distinct users:

1. Users: Individuals who read and write posts.

2. Managers: Individuals responsible for moderating the platform by setting and updating the content restrictions
(i.e., blocked words or phrases). They also moderate who can become a manager.

Your program will needs to display statistics about users reputation and help identify the top 10 most problematic
users based on their reputation scores.

Key Objectives

1. Provide a system where Users can read and write posts.

2. Provide a system where Managers can set and manage blocked content.

3. Display the top 10 most problematic users who have accumulated the lowest reputation scores (or are tied at zero
and have multiple moderated posts).

4. Allow Users to view their statistics (accumulated or average scores).

5. Implement a moderation engine that censors blocked content within posts.

User and Manager Options

User Options

1. Read/Write Post:

• Read a post : Randomly select a post from the platform’s database and present it to the user. After reading,
the user can choose to read another post, report the post (which lowers the post’s author’s reputation), or exit.

• Write a post : Prompt the user to write a post (up to 140 characters) and append it to the platform’s post file.

2. View Your Statistics: Show the user’s accumulated reputation score and average reputation per post. These
scores should be updated frequently and should use STL algorithms (of your choice).

3. Display Top 10 Most Problematic Users: Sort the users by their reputation score (lowest first using a class
operator overload). If there’s a tie at zero, break it by the number of moderated posts they have triggered. Display
the bottom 10. Use STL sorting and iterators.

4. Exit the Program

1

Manager Options

1. Reset Moderation Content: Clear all previously added banned words or phrases.

2. Add Blocked Content: Add new words or phrases that should be censored.

3. Add Another Manager: Only an existing manager can add a new manager by specifying their name and regis-
tration number.

4. Set the Sample File: Set or change the name of the text file that contains the platform posts.

5. Exit the Program

Content Moderation Engine

The engine must censor posts that contain blocked words or phrases. Every censored word or phrase should be replaced
by a series of ‘X’s of the same length, and every post that has been censored should include the #moderatedpost tag at
the end.

• Consider a “word” as a sequence of non-whitespace characters containing more than one letter.

• Remove punctuation at the start or end of words, but leave punctuation and digits that appear in the middle of
words.

• Convert all input to lowercase before checking for blocked content.

Examples:

• If “hate” is blocked: Original: “They truly hate her ideas.” Moderated: “They truly XXXX her ideas. #moderat-
edpost”

• If “cried all night” is blocked (a phrase): Original: “He cried all night after the announcement.” Moderated: “He
XXXXX XXX XXXXX after the announcement. #moderatedpost”

Classes and Files

You will be provided with files in the Assignment2files folder, including:

• Person.h and Person.cpp: A complete Person class (you may add extra members but do not alter existing ones
except where noted).

• User.h and Manager.h: Declarations for derived classes of Person. You must implement these in User.cpp and
Manager.cpp, respectively, following the specifications in the comments.

You may add extra member functions to these classes, but only define them in the .cpp files.

Additional Class: ReadPosts

You will have a ReadPosts class that:

• Reads a large text file of platform posts.

• Each record in the file may look like: userID postID post content date/time

• You will be given a partial implementation and a header file. Use these as provided.

• Implement a findPost function to select a random post from a multimap or similar container.

• If any file cannot be opened, terminate gracefully with an error message.

2

Main Program Requirements

1. Prompt for a username (or manager name) and determine their role.

2. If a User does not exist yet, create a new one and inform them using a try-catch statement.

3. If a Manager line is found, load their details. Only an existing Manager can add another.

4. Use a template function login to read from a user/manager file. For Users: Read registration, name, and scores,
and create User objects. For Managers: Read registration number and name, then create a Manager object.

5. After login, provide the respective menu options as described earlier.

6. You MUST use STL algorithms (for each, sort, etc.) and iterators, where pointed, but do not stop there.

7. Handle file I/O errors gracefully.

Challenge

Make the ReadPosts class behave like a custom iterable container (similar to a linked list). Use this custom iterator in
the top 10 calculation and in displaying the top 10 most problematic users.

Deliverables

Submit a single zip file containing a single folder. Acceptable formats: .zip, .7z, or a gzipped tar file. Other formats
lose 10%.

Include:

• All source files (.cpp, .h)

• A MAKE file for compilation

• Any required files for the program to run

Marking Scheme

Marking Criteria Marks
Style/Efficiency/Commenting 25
Implementation of all classes (User and Manager) 5
Main: User and manager options 20
Top 10 most problematic users 5
ReadPosts Class 15
Find post with find function 5
Requested usage of STL functions 10
MAKE file for compilation 5
Challenge 10
Total 100

Notes

Avoid unnecessary copying or repetitive code. Comments should clearly describe what each function does and what each
non-local variable represents. Within function bodies, use brief comments for groups of lines rather than every single
statement. Use the STL wisely.

Compile using the MAKE file and execute the application for testing.

Good luck!

3

Detailed Marking Scheme (Deductions)

Criteria for Mark Deductions Deduction (Marks)
S
ty
le
/

E
ffi
ci
en
cy
/

C
o
m
m
en
ti
n
g

M
ax

2
5
d
ed
u
c.

Poor code readability (inconsistent indentation, messy formatting). Up to -5
Unclear or non-descriptive variable/function names Up to -3
Redundant or duplicate variables/objects in memory Up to -5
Lack of or insufficient commenting Up to -5
Code not compiling fully Up to -10
Abrupt runtime interruption (crashes) Up to -10
Extra code unrelated to requirements Up to -10
Wrong submission format (not following instructions) Up to -10
Missing or incorrect implementation of required members in
User/Manager classes

Up to -5

Not using Template Function for login Up to -5
User/Manager registration not storing data correctly Up to -3
Authentication system failing to validate users properly Up to -2

P
la
tf
o
rm

D
ed
u
ct
io
n
s Required user/manager menu options not implemented (e.g., read/write

tweet, add blocked content)
Up to -10

User statistics (accumulative/average score) and top 10 wrong results Up to -5
Tie-breaking rules (e.g., #moderatedtweet count) not implemented Up to -5
ReadPosts class incomplete or non-functional Up to -10
Incorrect parsing or processing of platform posts Up to -5
Not using required STL functions (e.g., for each, sort) Up to -5
Not using iterators where specified Up to -5
No MAKE file or MAKE file not building correctly Up to -3
MAKE file does not compile all required sources Up to -2
Not implementing the custom iterable container as required Up to -5
Not integrating the custom iterator with sorting/iteration tasks Up to -5

Total Possible Deductions -100

4

Share This Post

Email
WhatsApp
Facebook
Twitter
LinkedIn
Pinterest
Reddit

Order a Similar Paper and get 15% Discount on your First Order

Related Questions

Wk4_300

Need help with a question. Due 3/10/2025 @ 9PM n the Week 4 labs, you performed tasks such as creating a cluster, restoring files, configuring account lockout policies, and verifying RAM usage.  Note: Ensure you have completed all lab exercises from Week 4 before completing this assessment. Assessment Details Write a 350-

Event Khusus dan Promosi di Witching Pot

“Saya sangat puas dengan pengalaman taruhan di situs ini. Setiap elemen, dari navigasi hingga pembayaran, berjalan dengan mulus. Ini menunjukkan profesionalisme dan kualitas layanan mereka. Saya pasti akan kembali lagi!”

Business/computer

Isolation Discussion Thread: Cybersecurity — Layering-Abstraction-Process Isolation The NSA has identified what they call the First Principles of cybersecurity. The following lists three of these: Principle Last Name Starts With Layering A through H Abstraction I through Q Process Isolation R through Z For your discussion, describe the principle assigned

D 3 of 459

 Building Block Technologies    What is an operational technology?  How is it similar or different than Consumer IoT? What emerging risks can you identify for an operational technology in a hypothetical utilities distribution monitoring & control environment (pipelines & transmission grids)?

D 2 of 459

  Follow the attach document to complete this work. Questions: 1. Consumer Internet of Things (IoT) has become ubiquitous and represents a major vector of cyber risk. Provide examples of consumer IoT that may be found in your own home (not sharing exact details is OK) 2. Provide a high

D 1 of 459

Follow the attach document to complete this work. Building Block Technologies   1. Software, Hardware, and Network Communications are considered building block technologies for enterprises. Define what they are, how they are used and give an example. 2. What are the most notable cyber risks for each type of building block?

D 8 0f 360

Follow the attach document to complete this work. International Cooperation for Cybersecurity   Prepare a 5- to 7-paragraph briefing statement that explains why wealthy nations and developing nations should work together to improve cybersecurity for the globally connected networks referred to as “the Internet.” Your statement should address the following.

D 7 of 360

Follow the attach document to complete this work. Policy Soup: Dealing with the Aftermath of a New Cybersecurity Policy   Prepare a 5 to 7 paragraph “Expert Opinion” for local government officials. This document should present a strategy for communicating with residents about a new “cybersecurity” policy that requires a

D 6 of 360

Follow the attach document to complete this work.  Partnerships for Improving State and Local Government Cybersecurity   Before you begin, read this report:  National League of Cities ( ) (Click the Download Report link at the bottom of the page) Prepare a briefing statement (3 to 5 paragraphs) for a group

D 5 of 360

Follow the attach instruction to complete this work. Background Briefing: How will the Governor’s Initiatives Improve Cybersecurity for the State’s Critical Infrastructures?   Discussion we transition from federal to state critical infrastructure. You are working for the Chief of Staff (CoS) for a newly elected Governor. The governor asked the

D 4 of 360

Follow the attach instruction to complete this work. Panel Presentation: Privacy Impact Assessments (PIA)  Coordinators of an upcoming conference, attended by federal government IT managers and staff, invited you to participate in a panel presentation about privacy. For this activity, prepare a 5 to 7 paragraph briefing statement which answers

Proj4-final

Project 4: Postmigration Activities  Step 1: Postmigration Activities Overview  Like any software development project, migration projects require careful planning to ensure success. This planning includes the postmigration testing and maintenance phase. Start this project by researching and planning the  postmigration activities that will be required to get BallotOnline’s migrated workloads in

Discussion-4

Discussion: Postmigration Approaches and Activities Contains unread posts Now that you have completed BallotOnline’s cloud migration, you will discuss the cloud postmigration activities and approaches. You should cover the following areas: · What is the business impact after the migration? · How will you manage service-level agreements in the cloud?

D 3 of 360

Follow the attach instructions to complete this work. How does FedRAMP help agencies ensure that Digital Government services are secure?   Must post first. Subscribe The format for your week 3 discussion is a backgrounder (“briefing paper”). Background papers are summaries of issues provided to help decision-makers/leaders/managers make decisions. Decision-makers

D 2 of 360

Follow the attach document to complete this work.  Briefing Statement: Security Implications of OPEN Data   Representatives from the  Joint Committee on Cybersecurity and Information Technology have asked you to provide a briefing as part of their “Cyber Scholars Day.” The committee is sponsoring this day of briefings and outreach for

D 1 of 360

Follow the attach document to complete this work. Growing Reliance on Digital Government Services   Your 1 discussion short paper assignment is to write a  workplace newsletter article. As you work on this type of discussion item, think about the newsletters you receive in your workplace. Are they engaging? Do they

Week 3 Discussion: PUMP Versus PMBOK® Guide Approach

I put the links to both the text and the PMBOK Guide, it is through my school library so it may not come up without my login at the botton of the instructions also in bold letters is the information to both the course text and the guide please let

wk 9 distance edu

PLEASE SEE IF YOU CAN LOOK UP THE READING IN THE FILE PORTION, I WAS NOT ABLE TO PULL IT UP UNFORTUNATELY!  After reading “Applying “Design Thinking” in the Context of Media Management EducationLinks to an external site.,” think about all aspects of learning online: activities, workload, faculty-to-learner communication, and