
Concept explainers
Explanation of Solution
Program code:
main.cpp
//include the requird header files
#include <
#include "CreditCard.h"
//use the namespace
using namespace std;
//define the function textCard()
void testCard()
{
// vector of CC pointers
vector <CreditCard*> wallet(10);
//create the credit card details
wallet[0] = new CreditCard(5391037593875309,"JoBlo",2500);
wallet[1] = new CreditCard(3485039933951954,"JoBlo",3500);
wallet[2] = new CreditCard(6011490232942994,"JoBlo",5000);
//iterate a for loop
for (int j = 1; j <= 16; j++)
{
// explicit cast
wallet[0] -> chargeIt(double(j));
// implicit cast
wallet[1] -> chargeIt(2 * j);
wallet[2] -> chargeIt(double(3 * j));
}
//iterate a for loop
for (int i = 0; i < 3; i++)
{
//print the card details
cout << *wallet[i];
//iterate a while loop to get the balance
while (wallet[i]->getBalance() > 100.0)
{
//call the method makePayment
wallet[i]->makePayment(100.0);
//print the new balance
cout << "New balance = " <<
wallet[i]->getBalance() << "\n";
}
//deleting a walllet
delete wallet[i];
}
}
//define the main() method
int main()
{
//First test case
CreditCard CC = CreditCard(1234, "Bill gates", 2500);
CC.chargeIt(1000);
CC.chargeIt(-100);
CC.chargeIt(500);
CC.makePayment(-100);
CC.makePayment(300);
cout << CC << endl << endl;
//given test case
testCard();
return EXIT_SUCCESS;
}
Explanation:
In the code,
- Include the required header files.
- Use the namespace.
- Define the “testCard()” method.
- Create vector pointers
- Create array “wallet[]” to store credit card details.
- Iterate a “for” loop.
- Explicit cast.
- Implicit cast.
- Iterate a “for” loop.
- Print the card details.
- Iterate a “while” loop to get the balance.
- Call the method “makepayment()”.
- Print the new balance.
- Delete a wallet.
- Define the “main()” function.
- Enter the credit card details.
- Call the function “chargeIt()” and “makePayment()” using “CC”.
- Call the function “testCard()”.
- Return “EXIT_SUCCESS”.
CreditCard.cpp
//Code for CreditCard.cpp
#include "CreditCard.h"
using namespace std;
//define the constructor CreditCard
CreditCard::CreditCard(long long int no, const string& nm, int lim, double bal)
{
//declare the required variables
number = no;
name = nm;
limit = lim;
balance = bal;
}
//define a function chargeIt()
bool CreditCard::chargeIt(double price)
{
if(price <= 0)
{
//print error message when price is negative
cout << "Error: Input argument must be positive.\n";
//return false
return false;
}
//if the condition is true
if (price + balance > double(limit))
{
//return false
return false;
}
//add price to balance
balance += price;
//update fraction
fraction = double(balance)*100.0/limit;
//if the condition is true
if(fraction > FRACTION_LIMIT)
{
//print warning message when fraction is more than 50%
printf("Warning: the current balance on credit card %lld is %.2f%c of your limit.\n", number, fraction, '%');
}
// the charge goes through
return true;
}
//define the function makePayment
void CreditCard::makePayment(double amount)
{
//if amount less than or equal to 0
if(amount <= 0)
{
//print error message when amount is negative
cout << "Error: Input argument must be positive...

Want to see the full answer?
Check out a sample textbook solution
Chapter 1 Solutions
Data Structures and Algorithms in C++
- you can select multipy optionsarrow_forwardFor each of the following, decide whether the claim is True or False and select the True ones: Suppose we discover that the 3SAT can be solved in worst-case cubic time. Then it would mean that all problems in NP can also be solved in cubic time. If a problem can be solved using Dynamic Programming, then it is not NP-complete. Suppose X and Y are two NP-complete problems. Then, there must be a polynomial-time reduction from X to Y and also one from Y to X.arrow_forwardMaximum Independent Set problem is known to be NP-Complete. Suppose we have a graph G in which the maximum degree of each node is some constant c. Then, is the following greedy algorithm guaranteed to find an independent set whose size is within a constant factor of the optimal? 1) Initialize S = empty 2) Arbitrarily pick a vertex v, add v to S delete v and its neighbors from G 3) Repeat step 2 until G is empty Return S Yes Noarrow_forward
- Please help me answer this coding question in the images below for me(it is not a graded question):write the code using python and also provide the outputs requiredarrow_forwardWhat does the reduction showing Vertex Cover (VC) is NP-Complete do: Transforms any instance of VC to an instance of 3SAT Transforms any instance of 3SAT to an instance of VC Transforms any instance of VC to an instance of 3SAT AND transforms any instance of 3SAT to an instance of VC none of the abovearrow_forwardPlease assist me by writing out the code with its output (in python) using the information provided in the 2 images below.for the IP Address, it has been changed to: 172.21.5.204the serve code has not been open yet though but the ouput must be something along these lines(using command prompt):c:\Users\japha\Desktop>python "Sbongakonke.py"Enter the server IP address (127.0.0.1 or 172.21.5.199): 172.21.5.204Enter your student number: 4125035Connected to server!It's your turn to pour! Enter the amount to your pour (in mL):Please work it out until it gets the correct outputsNB: THIS QUESTION IS NOT A GRADED QUESTIONarrow_forward
- need help with a html code and css code that will match this image.arrow_forwardneed help with a html code and css code that will match this image. Part B - A Navigation Part B is the navigation component of a page. Information you need includes: Color Codes: Visiting links: #ff6666 Unvisited links: #ccff66 Hovered links: white Search box: #2ec4b6 rebeccapurple white Font: Google Font (Roboto) Icons: Font Awesome (fa-quidditch, fa-search) This is a flexbox based navigation menu. Other then padding, all spacing/positioning should be controlled using flex properties. The home link in the nav should point to your assignment file (to triggers visited styling). In the "state" screenshot below, Home is visited, Services is hovered (the mouse doesn't show up in the screenshot) and Products is unvisited.arrow_forwardMGMT SS STATS, an umbrella body that facilitates and serves various Social Security Organizations/Departments within the Caribbean territories, stood poised to meet the needs of its stakeholders by launching an online database. The database will provide members and the public access to the complete set of services that can (also) be initiated face-to-face, and it will provide managed, private, secure access to a repository of public and/or personal information. Ideally, the database will have basic details of pension plans recorded in the registry, member plan statistics, and cash inflows and outflows from pension funds.For example, insured persons accumulate contributions. Records for these persons will include information on the insured persons able to acquire various benefits once work is interrupted due to sickness, death, retirement, and maternity or employment injury. They will also include information on pensions such as invalidity, disability, and survivors that stem from one…arrow_forward
- Why all appvif i want to sign in its required phone number why not using google or apple its make me frustratedarrow_forwardWhy is the accuracy of time important in data visualizations? Detail a scenario from your professional experience in which time was structured poorly in a data visualization. How did this affect the understanding of the data presented? How do you think this error or oversight occurred?arrow_forwardWrite the KeanStudent class. The UML diagram of the class is represented below: KeanStudent - fullName: String - keanID: int -keanEmailAddress: String cellPhoneNumber: String + numberOfStudent: int + KeanStudent() + KeanStudent(fullName: String, keanID: int, keanEmailAddress: String, cellPhoneNumber: String) +getFullName(): String +setFullName(newFullName: String): void +getKeanIDO): int +getKeanEmailAddress(): String +getCellPhoneNumber(): String + setCellPhoneNumber(newCellPhoneNumber: String): void +toString(): String 1. Implement the KeanStudent class strictly according to its UML one-to-one (do not include anything extra, do not miss any data fields or methods) 2. Implement a StudentTest class to test the class KeanStudent you just created. • Create two KeanStudent objects using a no-args constructor and one from the constructor with all fields. o Print the contents of both objects. 。 Print numberOfStudent. 3. Add comments to your program (mark where data fields, constructors,…arrow_forward
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education





