COMP 220 Complete
Class
Click Link Below To Buy:
Contact Us:
Hwcoursehelp@gmail.com
COMP 220 iLab 1 Two-Dimensional Arrays Lab Report and
Source Code
COMP 220 iLab 2 Resistor Lab Report and Source Code
COMP 220 iLab 3 Bank Account Lab Report and Source
Code
COMP 220 iLab 4 Composition Lab Report and Source Code
COMP 220 iLab 5 Lab Report and Source Code
COMP 220 iLab 6 Overloaded Operators Lab Report and
Source Code
COMP 220 iLab 7 Polymorphism Lab Report and Source
Code
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.
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.
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.
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.
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.
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 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 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
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?
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.
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.
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 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.
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 comments:
Post a Comment