Question

In: Computer Science

In C++ Define a base class called Person. The class should have two data members to...

In C++

Define a base class called Person. The class should have two data members
to hold the first name and last name of a person, both of type string. The
Person class will have a default constructor to initialize both data members
to empty strings, a constructor to accept two string parameters and use them
to initialize the first and last name, and a copy constructor. Also include
appropriate accessor and mutator member functions. Overload the operators ==
and != such that two objects of class Person are considered equal if and only
if both first and last names are equal. Also overload operators >>, <<, and =.
Define a class called Doctor derived from the Person class. The class
should have a data member to hold the doctor's hourly rate (of type double), a
default constructor to initialize the rate to 0, and a constructor that takes
a double and a reference to an object of type Person and initializes the data
members to their appropriate values. Also include an accessor and mutator
member functions for the doctor's hourly rate. In Doctor class, redefine the
operator = such that it not only copies the first and last name, but also
copies the hourly rate.
Define another class called Patient derived from the Person class. This
class should have a data member to hold the patient's primary physician (of
class Doctor). Include a default constructor that would call the default
constructors of class Doctor and Person to initialize the object; also include
a constructor that accepts a reference to an object of class Doctor and Person
and initializes the Patient object's data members to their respective values.
Add accessor and mutator member functions to access or set the primary
physician.
Finally, define a class called Billing that would hold information about
medical bills. This class should have the following data members: an object of
type Doctor to hold the doctor to whom the money is paid, an object of type
Patient to hold the patient who pays the money, and a variable of type double
to hold the amount due. The Billing class will have a default constructor that
initializes amount due to 0.0 and calls the default constructors for Patient
and Doctor objects and a constructor that accepts references to Doctor and
Patient objects and the amount of hours (type int). The latter constructor
will calculate the amount due in the following fashion:

* if the doctor involved in the bill is the patient's primary physician,
then the amount due is hours multiplied by the doctor's hourly rate;

* if the doctor involved is not the patient's primary physician, then
the amount due is hours times doctor's hourly rate times 1.25.

Write a main function that would prompt the user to enter the patient's
name, their primary physician's name and rate, another doctor's name and rate,
and the amount of hours spent in the doctor's office. Then the program will
calculate and output the amount patient owes for doctor's services.

Note: two doctors are considered the same if and only if their names match
(i.e. you can assume no doctors with the same name and different rates exist).

Solutions

Expert Solution

Note I developed Two classes.have to develop the third class. I will do that.Thank u.

__________________

#include <iostream>
#include <iomanip>
#include <ctime>
#include <cstdlib>
using namespace std;

class Person {
private :
string firstname;
string lastname;

public :
   Person() {
this->firstname = "";
this->lastname = "";
}
Person(string firstname, string lastname) {
this->firstname = firstname;
this->lastname = lastname;
}

string getFirstname() {
return firstname;
}

void setFirstname(string firstname) {
this->firstname = firstname;
}

string getLastname() {
return lastname;
}

void setLastname(string lastname) {
this->lastname = lastname;
}

Person(const Person& src)
{
this->firstname=src.firstname;
this->lastname=src.lastname;
}

friend std::ostream & operator <<(std::ostream &dout, const Person& p)
{
    cout<<"FirstName :"<<p.firstname<<" LastName :"<<p.lastname<<endl;
    return dout;
   }
     
   friend istream & operator >> (std::istream & in, Person & right)
{
cout<<"Enter FirstName :";
    in>>right.firstname;
    cout<<"Enter LastName :";
    in>>right.lastname;
    return in;   
}

bool operator== (Person & r)
{
if(firstname.compare(r.firstname)==0 && lastname.compare(r.lastname)==0)
return true;
else
return false;
}
bool operator!= (Person& r)
{
if(firstname.compare(r.firstname)!=0 || lastname.compare(r.lastname)!=0)
return true;
else
return false;
}

Person & operator=(const Person &c)
{
this->firstname=c.firstname;
this->lastname=c.lastname;
return *this;
}

  
};
class Doctor:public Person
{
private :
    double hourly_rate;
public :  
Doctor()
{
    hourly_rate=0;
   }
   Doctor(string firstname, string lastname,double rate):Person(firstname,lastname)
{
    hourly_rate=rate;
   }
   double getHourly_rate()
{
   return hourly_rate;
   }
   void setHourly_rate(double rate)
   {
       this->hourly_rate=rate;
   }
  
   Doctor & operator=(const Doctor &c)
{
setFirstname(c.firstname);
setLastname(c.lastname);
hourly_rate=c.hourly_rate;
return *this;
}
  
     
};

int main()
{



return 0;
}

________________________


Related Solutions

C++ Define a base class called Person. The class should have two data members to hold...
C++ Define a base class called Person. The class should have two data members to hold the first name and last name of a person, both of type string. The Person class will have a default constructor to initialize both data members to empty strings, a constructor to accept two string parameters and use them to initialize the first and last name, and a copy constructor. Also include appropriate accessor and mutator member functions. Overload the operators == and !=...
Write a class called Person that has two private data members - the person's name and...
Write a class called Person that has two private data members - the person's name and age. It should have an init method that takes two values and uses them to initialize the data members. It should have a get_age method. Write a separate function (not part of the Person class) called std_dev that takes as a parameter a list of Person objects and returns the standard deviation of all their ages (the population standard deviation that uses a denominator...
In c++, define a class with the name BankAccount and the following members: Data Members: accountBalance:...
In c++, define a class with the name BankAccount and the following members: Data Members: accountBalance: balance held in the account interestRate: annual interest rate. accountID: unique 3 digit account number assigned to each BankAccount object. Use a static data member to generate this unique account number for each BankAccount count: A static data member to track the count of the number of BankAccount objects created. Member Functions void withdraw(double amount): function which withdraws an amount from accountBalance void deposit(double...
Create a class called Car (Car.java). It should have the following private data members: • String...
Create a class called Car (Car.java). It should have the following private data members: • String make • String model • int year Provide the following methods: • default constructor (set make and model to an empty string, and set year to 0) • non-default constructor Car(String make, String model, int year) • getters and setters for the three data members • method print() prints the Car object’s information, formatted as follows: Make: Toyota Model: 4Runner Year: 2010 public class...
Create a class called Car (Car.java). It should have the following private data members: • String...
Create a class called Car (Car.java). It should have the following private data members: • String make • String model • int year Provide the following methods: • default constructor (set make and model to an empty string, and set year to 0) • non-default constructor Car(String make, String model, int year) • getters and setters for the three data members • method print() prints the Car object’s information, formatted as follows: Make: Toyota Model: 4Runner Year: 2010 public class...
This is in C# on visual Basic Write a base class that has two property members:...
This is in C# on visual Basic Write a base class that has two property members: name and contact and one method member: CalculateFinalGrade(). must be an Abstract class method must be by its child class. (1 point) For example, Student {                 Property: StudentName                 Property: Contact                 Method: CalculateFinalGrade() } Write two child classes and , both of which inherit and implement any abstract member. needs a property for Quiz score and implements CalculateFinalGrade() to calculate final the...
Write a Java class called Person. The class should have the following fields: A field for...
Write a Java class called Person. The class should have the following fields: A field for the person’s name. A field for the person’s SSN. A field for the person’s taxable income. A (Boolean) field for the person’s marital status. The Person class should have a getter and setter for each field. The Person class should have a constructor that takes no parameters and sets the fields to the following values: The name field should be set to “unknown”. The...
Define the exception class called TornadoException. The class should have two constructors including one default constructor....
Define the exception class called TornadoException. The class should have two constructors including one default constructor. If the exception is thrown with the default constructor, the method getMessage should return "Tornado: Take cover immediately!" The other constructor has a single parameter, m, of int type. If the exception is thrown with this constructor, the getMessage should return "Tornado: m miles away; and approaching!" Write a Java program to test the class TornadoException.
C#. Build a class that will be called “MyDate”. The class should have 3 properties: month,...
C#. Build a class that will be called “MyDate”. The class should have 3 properties: month, day and year. Make month, day and year integers. Write the get and set functions, a display function, and constructors, probably two constructors. (No Database access here.)
Write a C++ program that creates a base class called Vehicle that includes two pieces of...
Write a C++ program that creates a base class called Vehicle that includes two pieces of information as data members, namely: wheels (type int) weight (type float) Program requirements (Vehicle class): Provide set and a get member functions for each data member. Your class should have a constructor with two parameters (one for each data member) and it must use the set member functions to initialize the two data members. Provide a pure virtual member function by the name displayData()...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT