Find Jobs
Hire Freelancers

An Object-Oriented Program

$30-75 USD

Completed
Posted over 22 years ago

$30-75 USD

Paid on delivery
Create a class, Phone, that has three types of private data: ## Deliverables 1) A phone number, made up of three integers: area_code (3 digits), prefix (3 digits), last_four (4 digits). In other words, if the number for a phone object was to be (650)949-7777, then area_code=650, prefix=949, and last_four=7777. 2) Two per/minute rates (doubles): one local and one long distance: local_rate: basic charge for local calls, per minute. ld_rate: basic charge for long distance calls, per minute. These rates will be modified under certain conditions listed below. 3) Values (doubles) that constantly change: local_minutes: the number of local minutes that this phonehas used since last bill. ld_minutes: the number of long distance minutes that this phone has used since last bill. total_charges: the accumulated charges since the last bill. Public member functions: void Phone::Init(long ac, long pfx, long last4 This method will set the phone number to the arguments passed in and all the remaining private members to 0. This could be done by a constructor, althought we have not officially had them yet, so we can use an ordinary member function for this assignment. ----- void Phone::SetCharges( double local_rt, double ld_rt ) This method will set the local_rate and ld_rate according to the values passed in. If either argument is negative, it prints an error and does not change the private members. ----- void Phone::MakeCall( Phone callee, long duration_in_secs ) The most complex of the member functions, this method will compute the charges for a single call to callee that lasts duration_in_secs seconds. The algorithm for this function is as follows: The object that is used to call this function is the call-er. The first parameter is the call-ee, that is, the number that the caller is calling. If the area code of the callee and the object doing doing the calling (the call-ER) are the same, the local_rate applies. If the area code of the callee and the object doing doing the calling (the call-ER) are different, the ld_rate applies. Further adjustments to the rate must then be made: For local calls, if the prefix of the callee differs from the prefix of the caller by more than 200 then the local_rate should be doubled. e.g., (650) 949-7384 and (650)949-5250 would be local_rate, while (650) 949-7384 and (650)748-5610 would be 2*local_rate. For long distance calls, if the area code of the callee differs from the area code of the caller by more than 200 then the ld_rate should be doubled. e.g., (650) 949-7384 and (464)850-5250 would be ld_rate, while 650) 949-7384 and (408)555-5610 would be 2*ld_rate. Once the rate for the call is determined, the charge for that one call should be calculated and added to the accumulated total_charges for that month. ----- void Phone::PrintBillAndReset(); This should report the summary of charges for the month by printing the total charges and the number of local and long-distance minutes used. It should also clear out these three values in preparation for a new month of billing. Test this out by creating several (3 - 5) Phone objects and having them call each other. They should be in various area codes and prefixes (although at least 2 should be local to each other). Print out the phone bill for these Phones, then make a call or two more, and print again to confirm that the old charges were erased when the first bill was printed. Here is an example of the start (but not completion!) of a main that tests this class: ----------------- Phone me, mom, dad, flynn, tenya; [login to view URL](415, 435, 9792); [login to view URL](415, 940, 6654); [login to view URL](561, 324, 7693); [login to view URL](561, 320, 1208); [login to view URL](969, 234, 1221); [login to view URL](.03, .10); [login to view URL](.03, .10); [login to view URL](.03, .10); [login to view URL](.04, .8); [login to view URL](.02, .15); [login to view URL]( mom, 300); [login to view URL]( mom, 240); [login to view URL]( dad, 121); // the main() function continues to go on and test ... // ... the test would consist of printing bills ... [login to view URL](); [login to view URL](); [login to view URL](); // etc ... // and checking that the output matches your program. ---------------------
Project ID: 2830840

About the project

20 proposals
Remote project
Active 23 yrs ago

Looking to make some money?

Benefits of bidding on Freelancer

Set your budget and timeframe
Get paid for your work
Outline your proposal
It's free to sign up and bid on jobs
Awarded to:
User Avatar
See private message.
$21.25 USD in 14 days
5.0 (80 reviews)
5.2
5.2
20 freelancers are bidding on average $39 USD for this job
User Avatar
See private message.
$42.50 USD in 14 days
4.7 (48 reviews)
4.3
4.3
User Avatar
See private message.
$34 USD in 14 days
4.6 (7 reviews)
4.6
4.6
User Avatar
See private message.
$55.25 USD in 14 days
4.6 (14 reviews)
4.7
4.7
User Avatar
See private message.
$42.50 USD in 14 days
5.0 (16 reviews)
4.0
4.0
User Avatar
See private message.
$46.75 USD in 14 days
4.5 (33 reviews)
4.2
4.2
User Avatar
See private message.
$38.25 USD in 14 days
4.9 (7 reviews)
3.4
3.4
User Avatar
See private message.
$22.95 USD in 14 days
5.0 (10 reviews)
2.9
2.9
User Avatar
See private message.
$55.25 USD in 14 days
4.8 (21 reviews)
3.2
3.2
User Avatar
See private message.
$42.50 USD in 14 days
5.0 (3 reviews)
2.1
2.1
User Avatar
See private message.
$14.45 USD in 14 days
4.9 (6 reviews)
1.9
1.9
User Avatar
See private message.
$63.75 USD in 14 days
4.2 (12 reviews)
2.1
2.1
User Avatar
See private message.
$42.50 USD in 14 days
0.0 (0 reviews)
0.0
0.0
User Avatar
See private message.
$51 USD in 14 days
0.0 (0 reviews)
0.0
0.0
User Avatar
See private message.
$25.50 USD in 14 days
0.0 (0 reviews)
0.0
0.0
User Avatar
See private message.
$21.25 USD in 14 days
0.0 (1 review)
0.0
0.0
User Avatar
See private message.
$63.75 USD in 14 days
0.0 (0 reviews)
0.0
0.0
User Avatar
See private message.
$29.75 USD in 14 days
0.0 (0 reviews)
0.0
0.0
User Avatar
See private message.
$40.80 USD in 14 days
0.0 (0 reviews)
0.0
0.0
User Avatar
See private message.
$20.40 USD in 14 days
0.0 (0 reviews)
0.0
0.0

About the client

Flag of UNITED STATES
Carlsbad, United States
5.0
79
Payment method verified
Member since Oct 18, 2001

Client Verification

Thanks! We’ve emailed you a link to claim your free credit.
Something went wrong while sending your email. Please try again.
Registered Users Total Jobs Posted
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Loading preview
Permission granted for Geolocation.
Your login session has expired and you have been logged out. Please log in again.