Question

In: Computer Science

For this programming assignment, you will use your previous code that implemented a video game class...

For this programming assignment, you will use your previous code that implemented a video game class and objects with constructors. Add error checking to all your constructors, except the default constructor which does not require it. Make sure that the high score and number of times played is zero or greater (no negative values permitted). Also modify your set methods to do the same error checking. Finally add error checking to any input requested from the user.

#include <iostream>

#include <string>

#include <iomanip>

using namespace std;

class VideoGame {

private:

string name;

int highScore;

int numOfPlays;

public:

VideoGame() {

name = "NA";

highScore = 0;

numOfPlays = 0;

}

VideoGame(string n, int score, int num) {

name = n;

highScore = score;

numOfPlays = num;

}

VideoGame(string n) {

name = n;

highScore = 0;

numOfPlays = 0;

}

VideoGame(const VideoGame &p2)

{

name = p2.name;

highScore = p2.highScore;

numOfPlays = p2.numOfPlays;

}

void setName(string n) {

name = n;

}

void setHighScore(int score) {

highScore = score;

}

void setNumOfPlays(int num) {

numOfPlays = num;

}

string getName() {

return name;

}

int getHighScore() {

return highScore;

}

int getNumOfPlays() {

return numOfPlays;

}

};

string inputName() {

string n;

cout << "Enter name of video game: ";

getline(cin >> ws, n);

return n;

}

int inputHighScore() {

int score;

cout << "Enter current high score of game: ";

cin >> score;

return score;

}

int inputNumOfPlays() {

int num;

cout << "Enter number of times game is played: ";

cin >> num;

return num;

}

void output(VideoGame game) {

cout << game.getName() << endl

<< "Played " << game.getNumOfPlays() << " times (HIGH SCORE " << game.getHighScore() << ")" << endl;

}

int main() {

VideoGame game1, game2, game3("VideoGame 3");

game1.setName(inputName());

game1.setHighScore(inputHighScore());

game1.setNumOfPlays(inputNumOfPlays());

cout << "\nGame1" << endl;

output(game1);

cout << endl;

game2.setName(inputName());

game2.setHighScore(inputHighScore());

game2.setNumOfPlays(inputNumOfPlays());

cout << "\nGame2" << endl;

output(game2);

cout << "\nGame3" << endl;

output(game3);

VideoGame game4 = game2;

cout << "\nGame4" << endl;

output(game4);

return 0;

}

Solutions

Expert Solution

Raw_code:

#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
class VideoGame {
private:
string name;
int highScore;
int numOfPlays;
public:
VideoGame() {
name = "NA";
highScore = 0;
numOfPlays = 0;
}
VideoGame(string n, int score, int num) {
name = n;
if(score < 0){
cout<<"Invalid Score!. No Negative values permitted."<<endl;
exit(0);
}
else
highScore = score;
if(num < 0){
cout<<"Invalid plays!. No Negative values permitted."<<endl;
exit(0);
}
else
numOfPlays = num;
}

VideoGame(string n) {
name = n;
highScore = 0;
numOfPlays = 0;
}
VideoGame(const VideoGame &p2){
name = p2.name;
if(p2.highScore < 0){
cout<<"Invalid Score!. No Negative values permitted."<<endl;
exit(0);
}
else
highScore = p2.highScore;
if(p2.numOfPlays < 0){
cout<<"Invalid plays!. No Negative values permitted."<<endl;
exit(0);
}
else
numOfPlays = p2.numOfPlays;
}
void setName(string n) {
name = n;
}
void setHighScore(int score) {
if(score < 0){
cout<<"Invalid Score!. No Negative values permitted."<<endl;
exit(0);
}
else
highScore = score;
}
void setNumOfPlays(int num) {
if(num < 0){
cout<<"Invalid plays!. No Negative values permitted."<<endl;
exit(0);
}
else
numOfPlays = num;
}
string getName() {
return name;
}
int getHighScore() {
return highScore;
}
int getNumOfPlays() {
return numOfPlays;
}
};

string inputName() {
string n;
cout << "Enter name of video game: ";
getline(cin >> ws, n);
return n;
}

int inputHighScore() {
int score;
cout << "Enter current high score of game: ";
cin >> score;
while(score < 0){
cout<<"Invalid Score!. No Negative values permitted."<<endl;
cout<<"Enter current high score of game: ";
cin>>score;
}
return score;
}

int inputNumOfPlays() {
int num;
cout << "Enter number of times game is played: ";
cin >> num;
while(num < 0){
cout<<"Invalid plays!. No Negative values permitted."<<endl;
cout << "Enter number of times game is played: ";
cin>>num;
}
return num;
}

void output(VideoGame game) {
cout << game.getName() << endl
<< "Played " << game.getNumOfPlays() << " times (HIGH SCORE " << game.getHighScore() << ")" << endl;
}

int main() {
VideoGame game1, game2, game3("VideoGame 3");
game1.setName(inputName());
game1.setHighScore(inputHighScore());
game1.setNumOfPlays(inputNumOfPlays());
cout << "\nGame1" << endl;
output(game1);
cout << endl;
game2.setName(inputName());
game2.setHighScore(inputHighScore());
game2.setNumOfPlays(inputNumOfPlays());
cout << "\nGame2" << endl;
output(game2);
cout << "\nGame3" << endl;
output(game3);
VideoGame game4 = game2;
cout << "\nGame4" << endl;
output(game4);
return 0;
}


Related Solutions

................................................ ................................................ This programming lab assignment requires that you create a class and use an equals...
................................................ ................................................ This programming lab assignment requires that you create a class and use an equals method to compare two or more objects. Your should use your QC5 as a reference. …………………………...…….. …………………………...……. Instructions LAB5 Instructions Using QC5 as a model, create a Rectangle class and a CompareUsingequalsMethod class that uses an   equals Method to determine if two rectangles are equal if and only if their areas are equal. The Rectangle class should have two instance variables length and width....
Locate your Student project from the previous in-class assignment. You will add a new class to...
Locate your Student project from the previous in-class assignment. You will add a new class to that project. 1. Create a class called Course. It should have a field to hold an ArrayList of Student objects. 2. Create a constructor for Course that accepts an ArrayList of Student objects, and set field to the parameter. 3. In the Course class, create a method called addStudent(Student s). This should add the parameter "s" to the ArrayList of Student objects. 4. In...
c++ Programming For this assignment you will be building on your Fraction class. However, the changes...
c++ Programming For this assignment you will be building on your Fraction class. However, the changes will be significant, so I would recommend starting from scratch and using your previous version as a resource when appropriate. You'll continue working on your Fraction class for one more week, next week. For this week you are not required to provide documentation and not required to simplify Fractions. Please keep all of your code in one file for this week. We will separate...
c++ Programming Assignment 1: Game of Life The objective of this programming assignment is to design...
c++ Programming Assignment 1: Game of Life The objective of this programming assignment is to design and implement what is known as the “Game of Life”, conceptualized by the British mathematician John Horton Conway in 1970 to simulate the evolution patterns in a population of living organisms.   The game board is seeded with an initial population pattern, and then evolves based on the set of rules defining when a cell dies or is born into life. A cell’s life cycle...
JAVA PROGRAMMING. In this assignment, you are to create a class named Payroll. In the class,...
JAVA PROGRAMMING. In this assignment, you are to create a class named Payroll. In the class, you are to have the following data members: name: String (5 pts) id: String   (5 pts) hours: int   (5 pts) rate: double (5 pts) private members (5 pts) You are to create no-arg and parameterized constructors and the appropriate setters(accessors) and getters (mutators). (20 pts) The class definition should also handle the following exceptions: An employee name should not be empty, otherwise an exception...
You are to use your code from part A of this assignment and add to it....
You are to use your code from part A of this assignment and add to it. In this part of the project, you are to do the following: 1. In the count_voters function you are to add code to: • Count the number of votes for Trump • Count the number of votes for Biden • Count the number of females • Count the number of males • Count the number of Democrats • Count the number of Republicans •...
In this programming assignment, you will write C code that performs recursion. For the purpose of...
In this programming assignment, you will write C code that performs recursion. For the purpose of this assignment, you will keep all functions in a single source file main.c. Your main job is to write a recursive function that generates and prints all possible password combinations using characters in an array. In your main() function you will first parse the command line arguments. You can assume that the arguments will always be provided in the correct format. Remember that the...
Code in C Instructions For this programming assignment you are going to implement a simulation of...
Code in C Instructions For this programming assignment you are going to implement a simulation of Dijkstra’s solution to the Dining Philosophers problem using threads, locks, and condition variables. Dijkstra’s Solution Edsgar Dijkstra’s original solution to the Dining Philosophers problem used semaphores, but it can be adapted to use similar mechanisms: • Each philosopher is in one of three states: THINKING, HUNGRY, or EATING. • Every philosopher starts out in the THINKING state. • When a philosopher is ready to...
In this programming assignment, you will write C code that performs recursion. For the purpose of...
In this programming assignment, you will write C code that performs recursion. For the purpose of this assignment, you will keep all functions in a single source file main.c. Your main job is to write a recursive function that generates and prints all possible password combinations using characters in an array. In your main() function you will first parse the command line arguments. You can assume that the arguments will always be provided in the correct format. Remember that the...
Take the pseudocode that you developed in your previous assignment - and convert it into a...
Take the pseudocode that you developed in your previous assignment - and convert it into a working program. Or if you think of a better way of creating a working program – such as what we discuss in class. The task was: Write the pseudocode for helping a cashier give you the correct change. Assume that a person brings hundreds to pennies to you and wishes to the receive quarters, dimes, and nickels back. There is a single input of...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT