3. COMP 220 iLab 1 Two Dimensional Arrays Lab Report
and Source Code
Check this A+ tutorial guideline at
http://www.uopassignments.com/comp-220/comp-
220-ilab-1-two-dimensional-arrays-lab-report-and-
source-code
For more classes visit
http://www.uopassignments.com
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
4. 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
5. 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-
6. 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
7. 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♣
8. 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
10. 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.
11. COMP 220 iLab 2 Resistor Lab Report and Source Code
Check this A+ tutorial guideline at
http://www.uopassignments.com/comp-220/comp-
220-ilab-2-resistor-lab-report-and-source-code
For more classes visit
http://www.uopassignments.com
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
12. 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.
13. 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
14. 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
15. 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.
16. COMP 220 iLab 3 Bank Account Lab Report and Source
Code
Check this A+ tutorial guideline at
http://www.uopassignments.com/comp-220/comp-
220-ilab-3-bank-account-lab-report-and-source-code
For more classes visit
http://www.uopassignments.com
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.
17. 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
18. 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.
Your lab grade is 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 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
19. 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.
20. 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
21. 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 with drawal 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
22. 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?
23. COMP 220 iLab 4 Composition Lab Report and Source
Code
Check this A+ tutorial guideline at
http://www.uopassignments.com/comp-220/comp-
220-ilab-4-composition-lab-report-and-source-code
For more classes visit
http://www.uopassignments.com
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.
24. 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.
25. COMP 220 iLab 5 Lab Report and Source Code
Check this A+ tutorial guideline at
http://www.uopassignments.com/comp-220/comp-
220-ilab-5-lab-report-and-source-code
For more classes visit
http://www.uopassignments.com
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
26. 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.
27. COMP 220 iLab 6 Overloaded Operators Lab Report and
Source Code
Check this A+ tutorial guideline at
http://www.uopassignments.com/comp-220/comp-
220-ilab-6-overloaded-operators-lab-report-and-
source-code
For more classes visit
http://www.uopassignments.com
COMP 220 iLab 6 Overloaded Operators Lab Report and
Source Code
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
28. 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.
29. COMP 220 iLab 7 Polymorphism Lab Report and Source
Code
Check this A+ tutorial guideline at
http://www.uopassignments.com/comp-220/comp-
220-ilab-7-polymorphism-lab-report-and-source-code
For more classes visit
http://www.uopassignments.com
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.
30. 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.