COMP 220 Full Course - DevryOnlineHelp
232 views | +0 today

# COMP 220 Full Course - DevryOnlineHelp

 Scooped by Tanishajamier83

## COMP 220 iLab 7 Polymorphism Lab Report and Source Code | DeVry Online Help

Tanishajamier83's insight:

http://www.devryonlinehelp.com/product/comp-220-ilab-7-polymorphism-lab-report-and-source-code/

Assignment: Lab 7 Polymorphism

Description: This lab introduces students to the concepts of polymorphism, early binding, late binding, abstract classes, and virtual class functions. This will be done in the context of performing calculations on basic geometrical shapes. Polymorphism is a very powerful extension of inheritance, and by using pointers to the base class, it allows access to derived class objects and their functions based on the context that they are called in.

The lab will require the creation of a base geometric class, called Shape, and two sub classes, Circle and Rectangle, that are derived public from the class Shape. From there, objects of both the Circle and the Rectangle classes will be created, as will an array of pointers to the base class Shape. By using the instantiated objects and the object pointers, both static and dynamic binding will be demonstrated.

No comment yet.
 Scooped by Tanishajamier83

## COMP 220 iLab 5 Lab Report and Source Code | DeVry Online Help

Tanishajamier83's insight:

http://www.devryonlinehelp.com/product/comp-220-ilab-5-lab-report-and-source-code/

Assignment: Lab 5 Pointers and Pointer Operators

Description: This lab will explore the use of pointers in several ways. Pointers will be used to dynamically allocate memory for new class objects on demand from the user, and they will be used to access class-member functions. Pointer arithmetic will be used to access and sort class objects according to criteria explained in the lab.

Pointers are, essentially, address variables, or variables that hold as their value the address of other variables. In terms of memory management, they are very powerful devices, and they more closely and efficiently use the actual internal hardware registers of the microprocessor that the program operates on.

Pointers also have the requirement that the pointer type must be of the same data type as the variable, or the data that it points to or holds the address of. The power of pointers also hints at the potential complexity of their use, which is why this lab is focused almost entirely on several different aspects and uses of pointers. The lab also introduces pointer arrays and pointers to pointers.

The Resistor class created in the Week 2 lab will be used as the class that the pointer operations will be used upon. The lab also requires the use of accessor functions and static data members, which may need to be added to the Resistor class definition and implementation.

No comment yet.
 Scooped by Tanishajamier83

## COMP 220 iLab 3 Bank Account Lab Report and Source Code | DeVry Online Help

Tanishajamier83's insight:

http://www.devryonlinehelp.com/product/comp-220-ilab-3-bank-account-lab-report-and-source-code/

This lab introduces you to writing a C++ program to implement the concept of class inheritance using different types of bank accounts as a model. In this lab, you will create a base class, called CBankAccount, and two additional classes (each derived from CBankAccount), called CSavingsAccount and CCheckingAccount. You will then test the operations of each class in function main() to simulate the transactions of both a checking account and a savings account.

Deliverables

Submit a single Notepad file containing the source code for all the files of the lab to the Dropbox for Week 3. Your source code should use proper indentation and be error free. Be sure that your last name and the lab number are part of the file name: for example, YourLastName_Lab3.txt.

Each program should include a comment section that includes (minimally) your name, the lab and exercise number, and a description of what the program accomplishes. Submit a lab report (a Word document) containing the following information to the Dropbox for Week 3. Include your name and the lab or lab-exercise number. Specification: Include a brief description of what the program accomplishes, including its input, key processes, and output. Test Plan: Include a brief description of the method you used to confirm that your program worked properly. If necessary, include a clearly labeled table with test cases, predicted results, and actual results. Summary and Conclusions: Includea summary of what the lab demonstrated and any conclusions drawn from the testing of the lab program. Provide a UML diagram showing the base and the derived class relationships, access specifiers, data types, and function arguments. Answers to Lab Questions: Answer any and all of the lab questions included in the lab steps.

Summary: Write a statement summarizing your predicted and actual output. Identify and explain any differences.

Conclusions: Write at least one nontrivial paragraph that explains, in detail, either a significant problem you had and how you solved it or, if you had no significant problems, something you learned by doing the exercise.

Each lab exercise should have a separate section in the lab-report document.

the formatting of your source code; the use of meaningful identifiers; the extent of internal documentation; the degree to which an exercises’ specifications are met; and the completeness of your lab report.

i L A B S T E P S

STEP 1: Create the Multifile Project and the Main (Base) Class

Create a new project that consists of the base class BankAccount.

The BankAccount class should contain, at minimum, the following members.

It should contain data members to store a bank customer’s balance and account number. These should be of different and appropriate data types. It should have function members that do the following: set the account number; return the account number; return the account balance; deposit money into the account; and withdraw money from the account.

STEP 2: Create the CheckingAccount Class Derived From the BankAccount Class

The class CheckingAccount should contain, at a minimum, the following members.

It should contain a data member to keep track of the number of withdrawal transactions made on the account. Whenever a withdrawal is made, this number should be incremented. Override the base class, withdraw-money function, and add the capability to deduct transaction fees from an account using the following guidelines. The checking account is allowed three free transactions. For each successful withdrawal transaction past the three free transactions, there will be a service fee of 50 cents per transaction. The service fee should be deducted from the account balance at the time the transaction is made. If there are insufficient funds in the account balance to cover the withdrawal plus the service fee, the withdrawal should be denied. The function should return a value to indicate whether the transaction succeeded or failed. Transaction fees should be deducted only from successful transactions, but the transaction count should be incremented in either case.

STEP 3: Create the SavingsingAccount Class Derived From the BankAccount Class

The class CheckingAccount should contain, at a minimum, the following members.

It should contain a data member to hold the daily interest rate. The daily interest rate can be calculated from a yearly interest rate by dividing the annual rate by 365. It should contain a data member to keep track of the number of days since the last transaction or balance inquiry. This should be updated using a random-number generator (reference Lab 1) that will return a value representing the number of days between 0 and 7, inclusive. We will assume that this bank is open every day of the year. It should contain a data member to hold the interest earned since the last transaction or balance inquiry. It should contain a function member to set the annual interest rate. Utilize the base-class functions for both withdrawal and deposit operations for the savings account. Override the base-class-balance inquiry function to add calculating and adding interest to the account based on the daily interest rate, the current balance of the account, and the number of days since the last balance inquiry. This should be called only when a balance inquiry is made, not when a deposit or withdrawal transaction or an account number inquiry is made. If there are insufficient funds in the account balance to cover a withdrawal, the withdrawal should be denied. The number of days since the last transaction or balance inquiry and the interest calculations should still be made. A value should be returned to indicate whether a withdrawal transaction succeeded or failed. It should contain a function member to return the interest earned since the last transaction or balance inquiry. It should contain a function member to return the number of days since the last transaction or balance inquiry.

STEP 4: Test Program Operation

All data-input and data-display operations (cin and cout) should be done in the function main() test program. The test program should create one checking account and one savings account with initial balances of \$100 each using the functions defined in the class definitions. The test program should also assign a unique, five-digit account number to each account and assign an annual interest rate of 3% for the savings account. The test program should then display a menu that allows the user to select which option is to be performed on which account, including the following. Make a deposit and specify the amount to a selected or an entered account. Make a withdrawal and specify the amount to a selected or an entered account. Return the balance of a selected or an entered account. For deposit transactions, withdrawal transactions, and balance inquiries, the updated balance and any fees charged or interest earned should also be displayed. For the savings account, the number of days since last transaction should be displayed. Exit the program. Each account operation should display the account number and the account type.

Lab Questions

Please answer all the lab questions in the text file that is to be turned into the Dropbox. You are not required to copy the question text into your document, but all answers should be listed with the question number they answer.

Were any base-class functions called or overloaded in either of the derived classes? If so, list which class and which function, and explain why they were either called or overloaded. Were any derived-class functions not explicitly called by the test program? If so, list which class and function, and explain why this was done. Which access attribute was used for each of the classes derived from the base class? Why was this access attribute chosen?

No comment yet.
 Scooped by Tanishajamier83

## COMP 220 iLab 1 Two-Dimensional Arrays Lab Report and Source Code | DeVry Online Help

Tanishajamier83's insight:

http://www.devryonlinehelp.com/product/comp-220-ilab-1-two-dimensional-arrays-lab-report-and-source-code/

BlackJack Table

Specification: Include a brief description of what the program accomplishes, including its input, key processes, and output.

There is always a dealer in the game. At the start of the game, the dealer’s first card will not be shown or displayed. The second card will be displayed. The dealer may draw additional cards. The dealer must use a random-number generator to determine the maximum number of cards the dealer will draw–a value between 0 and 3. In other words, the dealer is a computer player. The dealer does not show all the cards or the total until all the players have either gone bust (over 21) or hold (no more cards drawn). There must be at least one other player (you) and up to a maximum of four other players (all played by you).

. On a player’s turn, that player may either draw a card or hold. Once a player holds, he or she should not be asked to draw another card during this game.

All the cards for each player, including the first card dealt, are displayed, along with the suit symbol: spades ♠, clubs ♣, hearts ♥, or diamonds ♦. Each game will start with a new, 52-card deck, which is modeled on a real deck of cards.

. The card deck has 52 cards with no jokers.

The card deck is represented by a two-dimensional array of data-type character, where the first dimension represents the suit and the second dimension represents the card in the suit, such as the following. i. char CardDeck[4][13]; At the start of each game, each element of the two-dimensional array is initialized to a value of ” “, or the “space” character. The deck has four suits, represented by the following dimension indices.

.

i. ii. iii. Each suit has 13 cards: 2, 3, 4, 5, 6, 7, 8,9 ,10, jack, queen, king, and ace. Each card in a suit is represented by the following dimension indices.

. 2 card

i. 3 card ii. 4 card iii. 5 card iv. 6 card v. 7 card vi. 8 card vii. 9 card viii. 10 card ix. jack x. queen xi. king xii. ace All the number cards are worth their face value (i.e., a 3 of diamonds is worth 3). All face cards are worth 10. An ace is worth either 1 or 11. Your final-score calculation must be able to handle this correctly for both the dealer and each player. A random-number generator must be used to select the suit and the card in the suit.

. Once a card and suit are selected, the program should check if the value of that array element is a “space.”

If the array set the element equal to an integer, identifying the dealer or the player. 1 2 3 4 If the array element ! = “space,” then the random-number and card-checking process should repeat until a “card” or an array element is selected that Once a card is drawn during a game, it cannot be drawn again. When the program first starts, it should prompt the user, asking if he or she wants to play a game of Blackjack or exit the program. If the user inputs to play the game, the next decision should be 1, 2, 3, or 4 players. At the start of the game, the dealer and each player should be dealt two cards. One of the dealer’s card’s value and suit should not be displayed. The number of cards that the dealer will draw during a game should be determined by a random-number generator that will return a value of 0, 1, 2, or 3 cards to be drawn. Each player may then draw a card or hold. If, after drawing a card, any player or the dealer goes over a score of 21, he or she is not allowed to draw any more cards during the game. Once a player holds, he or she should not be asked to draw a card again during the game. The game continues until one of the following conditions occur:

. all players have declared hold;

all players and the dealer have gone over 21; a maximum of five cards total are held by any player at the end of a round of card draws; or any combination of the above. The display should show each player’s (and the dealer’s) hand and update the display after each round of card draws.

spades ♠, clubs ♣, hearts ♥, and diamonds ♦

Example

Card 1

Card 2

Card 3

Card 4 Card 5

Dealer:

?

10♦

Player 1:

A♣

2♠

Player 2:

J♣

Q♥

Player 3:

3♦

8♣

At the end of a game, the display should be repeated, with the addition of win or lose and an updated balance.

Example

Card 1

Card 2

Card 3

Card 4

Card 5

Total

Stats

Dealer:

J♦

10♦

20

Lose

Player 1:

K♣

2♠

5♥

1♦

5♦

23

Lose

Player 2:

J♣

Q♥

20

Lose

Player 3:

3♦

8♣

K♦

21

Win!

The program should then ask each player if he or she wants to play again or leave the game. The game continues with a new round, as long as there is one player remaining. If there are no remaining players, the program should exit.

No comment yet.
 Scooped by Tanishajamier83

## COMP 220 Final Exam | DeVry Online Help

Tanishajamier83's insight:

http://www.devryonlinehelp.com/product/comp-220-final-exam/

1. (TCO 1) Assume you have the following declaration.
int beta[50];
Which of the following is a valid element of beta?

2. (TCO 1) Consider the following statement.
double alpha[10][5];
The number of components of alpha is ____.

3. (TCO 1) Consider the following declaration.
int j;
int sum;
double sale[10][7];
Which of the following correctly finds the sum of the elements of the fourth column of sale?

4. (TCO 1) Which of the following correctly declares and initializes alpha to be an array of 4 rows and 3 columns with the component type int?

5. (TCO 1) What is the value of alpha[4] after the following code executes?

6. (TCO 1) Assume you have the following declaration.
char nameList[100];
Which of the following ranges is valid for the index of the array nameList?

7. (TCO 2) The member functions of a class should usually be _____.

8. (TCO 2) Consider the following.
bool clockType::equalTime(const clockType&) const {…}
void clockType::getTime(int&, int&, int&) const {…}
The word ____ at the end of the member functions in the class clockType specifies that these functions cannot modify the member variables of a clockType object

9. (TCO 2) Consider the following class definition.
class rectangleType
{
public:
void setLengthWidth(double x, double y);
//Postcondition: length = x; width = y;
void print() const;
//Output length and width;
double area();
//Calculate and return the area of the rectangle;
double perimeter();
//Calculate and return the parameter;
rectangleType();
//Postcondition: length = 0; width = 0;
rectangleType(double x, double y);
//Postcondition: length = x; width = y;
private:
double length;
double width;
};
And consider this object declaration.
rectangleType bigRect(14,10);
Which of the following statements is correct?

10. (TCO 2) Consider the following class definition.

class circleType
{
public:
void set(double r);
//Postcondition: radius = r;
void print();
//Output radius, area, and circumference.
double area();
//Postcondition: Calculate and return area.
double circumference();
//Postcondition: Calculate and return circumference.
circleType();
//Postcondition: radius = 0;
circleType(double r);
//Postcondition: radius = r;
private:
};

And consider this declaration.

circleType myCircle;
double r;

Which of the following statements is valid in C++?

(i)
cin >> r;
myCircle.area = 3.14 * r * r;
cout

(ii)
cin >> r;
myCircle.set(r);
cout

1. (TCO 2) Consider the following class definition.

class rectangleType
{
public:
void setLengthWidth(double x, double y);
//Postcondition: length = x; width = y;
void print() const;
//Output length and width;
double area();
//Calculate and return the area of the rectangle;
double perimeter();
//Calculate and return the parameter;
rectangleType();
//Postcondition: length = 0; width = 0;
rectangleType(double x, double y);
//Postcondition: length = x; width = y;
private:
double length;
double width;
};

Which of the following class-variable declarations is correct?

2. (TCO 2) Suppose you have the following UML class diagram of a class

3. (TCO 2) Consider the following declaration.

class myClass
{
public:
void print();
private:
int x;
};
myClass myObject;

Which statement is legal?

4. (TCO 3) Composition is when one or more members of a class are _____.

5. (TCO 3) Composition, like inheritance, demonstrates what software-development advantage of object-oriented programming?

6. (TCO 3) What is the correct statement for declaring an array of 10 objects of ClassB?

7. (TCO 3) Which is a true statement about classes and structures?

8. (TCO 4) A derived class can redefine _____.

9. (TCO 4) Which of the following is true about a derived class?

10. (TCO 4) Which of the following base class members is never inherited by a derived class, regardless of access attributes?

1. (TCO 4) Which of the following base class members is never inherited by a derived class, regardless of access attributes?

2. (TCO 4) Single inheritance means _____.

3. (TCO 4) If inheritance is private, then _____.

4. (TCO 5) If p is a pointer variable of type int, and num is an int variable, what is the result of the statement p = &num;?

5. (TCO 5) Given the definition of a class called Employee, which of the following correctly dynamically allocates an array of 20 Employee objects?

6. (TCO 5) Which of the following statements correctly allocates space to store 15 real numbers?

7. (TCO 5) If p is a pointer, which statement uses the pointer and then increments it?

8. (TCO 6) The operator>>() function overloads the ____ operator.

9. (TCO 6) What is the difference between a friend function and a member function of the class?

10. (TCO 6) Which of the following statements is true for the C++ language?

11. (TCO 6) If you overload the binary arithmetic operator + as a member function, how many objects must be passed as parameters?

12. (TCO 7) Overriding a base-class member function with a derived member function demonstrates the concept of _____.

13. (TCO 7) If the class Shape is an abstract class, what type of variable may be declared of the type Shape?

14. (TCO 7) Consider the following class definitions

class Employee { };
class Boss : public Employee { };
class Worker : public Employee { };

Which class(es) should declare the function as virtual if all three classes have a member function double CalculateEarnings();?

15. (TCO 7) If a destructor of a base class is made virtual, then _____.

16. (TCO 7) Another definition for dynamic binding is _____.

17. (TCO 8) Which is not a preprocessor directive statement?

18. (TCO 8) Which preprocessor directive essentially inserts another file into your source file?

19. (TCO 8) All preprocessor directives begin with a(n) ___.

20. (TCO 8) In a multifile, object-oriented, C++ project, which is the correct statement for the constructor implementation, given that the constructor is correctly defined in the class definition file?

1. (TCO 1) Given the following array declaration and program statement, describe–in detail–the condition and what potential problems could occur if a program containing both was compiled and executed.

int array[5][4] = {0};
array[4][4] = 5;

2. (TCO 2) Explain the basic C++ syntax for creating a class. Include an explanation of the private and public section of a class and the class members. Include a code segment to illustrate your answer.

3. (TCO 3) Using a personal computer as a base model, write a C++, syntactically correct class definition demonstrating composition. In the class definition, include at least the following three items that are common to a PC: a CD drive, a hard disk drive, and a power supply. You are not required to include any constructors, destructors, or additional member functions; you are only required to list the members that directly show composition and the proper access attributes

4. (TCO 4) If a class is derived protected from a base class, explain how this affects the inheritance of all the public, protected, and private members of the base class by the derived class

5. (TCO 5) Describe what a memory leak is and why it could cause problems

.6. (TCO 6) Assume that three objects of the class Inductor have been instantiated: L1, L2, and L3. Write the overloaded operator prototypes that would be required to perform the following operation. You are only required to write the prototypes, not the implementation code.

L3 = L1 + L2;

7. (TCO 7) Define what is meant by the term run-time binding, and list two other terms that are also used to describe it.

8. (TCO 8) Describe and define what the preprocessor statement is, how it is used, what part of the development environment it interacts with, and provide a syntactically correct example that describes what it does

No comment yet.
 Scooped by Tanishajamier83

## COMP 220 iLab 6 Overloaded Operators Lab Report and Source Code | DeVry Online Help

Tanishajamier83's insight:

Assignment: Lab 6 Overloaded Operators

Description: This lab is to introduce students to the concept of operator overloading as member functions of a class. This will be done in the context of creating a class that will perform four basic mathematical operations on complex numbers.

The C++ compiler has defined operators for all the arithmetic and assignment operations for its native data types, such as integer, float, double, and so forth. However, for user-defined data types, such as classes and structures, these operations are undefined.

C++ allows the programmer to create new definitions for these operators so that they can operate specifically on these user-defined data types. Which set of operators is actually called and implemented is decided during the compilation, and it is based on the data types of the operands involved in the operation.

The ability to define a new set of data-type, dependent operations on existing operators, or functions, is called operator overloading.

No comment yet.
 Scooped by Tanishajamier83

## COMP 220 iLab 4 Composition Lab Report and Source Code | DeVry Online Help

Tanishajamier83's insight:

http://www.devryonlinehelp.com/product/comp-220-ilab-4-composition-lab-report-and-source-code/

This lab requires you to use C++ class composition to implement a single pole-filter design program. The program will allow the user to specify resistor and capacitor values and filter type.

Once all the user parameters are specified, the program will return the cutoff frequency values for the filter. Composition may be thought of as a has-a relationship for objects, as compared to inheritance, which may be described as an is-a relationship for objects.

You are required to use two component classes: one for a resistor object and one for a capacitor object. You are then to define and implement a filter class that will contain one object of each the resistor and the capacitor classes in order to create the filter and its characteristics.

The Resistor class created in the Week 2 iLab may be used both as the class definition for the resistor object and as a template or a guide for the capacitor-class definition. The lab also requires you to implement your program in a multiple-file project and create both cpp and h files for each class defined. In addition, the program will have the capacity to save all filter parameters to a text file and read previously designed filter parameters from a text file.

No comment yet.
 Scooped by Tanishajamier83

## COMP 220 iLab 2 Resistor Lab Report and Source Code | DeVry Online Help

Tanishajamier83's insight:

http://www.devryonlinehelp.com/product/comp-220-ilab-2-resistor-lab-report-and-source-code/

Scenario and Summary
This lab requires you to create a multifile C++ project in order to design and implement an object-oriented program using a class to model the characteristics and function of a resistor.

Deliverables

Submit a single Notepad file containing the source code for Exercise 1 to the Dropbox for Week 2. Your source code should use proper indentation and be error free. Be sure that your last name and the lab number are part of the file name; see the following example: YourLastName_Lab1.txt.

Each program should include a comment section that includes (at a minimum) your name, the lab and exercise number, and a description of what the program accomplishes. Submit a lab report (a Word document) containing the following information to the Dropbox for Week 2. Include your name and the exercise number. Specification: Include a brief description of what the program accomplishes, including its input, key processes, and output. Test Plan: Include a brief description of the method you used to confirm that your program worked properly. If necessary, include a clearly labeled table with test cases, predicted results, and actual results. Summary and Conclusions: Include a summary of what the lab demonstrated and any conclusions drawn from the testing of the lab program. Answers to Lab Questions: Answer any and all lab questions included in the lab steps.

Summary: Write a statement summarizing your predicted and actual output. Identify and explain any differences.

Conclusions: Write at least one nontrivial paragraph that explains, in detail, either a significant problem you had and how you solved it or, if you had no significant problems, something you learned by doing the exercise.

Each lab exercise should have a separate section in the lab-report document.

Your lab grade will be based upon

the formatting of your source code; the use of meaningful identifiers; the extent of internal documentation; the degree to which an exercises’ specifications are met; and the completeness of your lab report.

i L A B S T E P S

STEP 1: Create a Multifile Project

Objective: Create a C++ console application that will model the characteristics of a resistor.

Create a multifile project. Create and add to the project an h file containing the resistor-class definition. Create and add to the project a cpp file containing the implementation of the class-member functions. Create and add to the project a ccp file containing the main() function, which will instantiate a resistor object and test its member functions.

STEP 2: Required Class Members

The resistor class will, at minimum, have members that do the following.

store the nominal resistance value of a resistor store the tolerance of a resistor initialize any and all nominal-resistance values to correct, EIA, nonzero values that are greater than 0 and less than 1,000,000 ohms initialize any and all resistance-tolerance values to correct, E12, E24, E48, or E96 resistance-tolerance values allow the nominal-resistance and tolerance values of a resistor object to be changed by the user All member functions should have a test message stating the name of the function. All the test messages should be displayed or not displayed, depending on the value of a Boolean variable declared in main(). If the Boolean , display the message. If the Boolean , do not display the message.

STEP 3: Program Operations

Function main() should instatiate two objects of class resistor. Function main() should display the current values of all resistor objects. Function main() should also calculate and display the minimum and maximum in-tolerance resistance values of each resistor object from the resistor data members. Function main() should allow the user to change the values of the nominal resistance and the resistor tolerance of both resistor objects, and it should also correctly handle out of numeric-range input. Main() is also responsible for making sure that the user can successfully enter only correct, EIA resistance and tolerance values. The user should be given the following data-entry choices: accept current EIA values for resistance and tolerance; The function main() should display the new, modified values of the resistor object, including the new min and max in-tolerance resistance values. The function main() should be executed twice: once with the test messages displayed and once without.

STEP 4: Lab Questions

You are not required to copy the question text into your document, but all answers should be listed with the question number they answer.

List the complete reference-source information for where you found the EIA standard resistor value and tolerance information. How was this reference discovered and where? The constructor requires the initialization values for the nominal resistance and the tolerance when an object is instantiated to be a correct E-series resistance and tolerance combination. Describe how this was accomplished in your program design and implementation. In the lab, you were required to provide mutator functions to change the nominal-resistance and tolerance values of a resistor object. Describe how this was accomplished so that the user could not enter an invalid nominal-resistance and E-series tolerance combination. Describe how this process was different and/or similar to how you implemented this validation in the class constructor.

No comment yet.
 Scooped by Tanishajamier83

## COMP 220 Final Exam 6 Sets of Questions with Answers (Scored 100%) | DeVry Online Help

Tanishajamier83's insight:

COMP 220 Final Exam

6 sets of answers

multiple choice and essay questions

all 100% accurate