Question: I am getting an error when I attempt to run my code Lexical or preprocessor issue. 'Rcall.h' file not found. Rcall.h //Include libraries #ifndef RCALLS_H

I am getting an error when I attempt to run my code Lexical or preprocessor issue". 'Rcall.h' file not found.

Rcall.h

//Include libraries

#ifndef RCALLS_H

#define RCALLS_H

#include

#include

//Use namespace

using namespace std;

//Define a class RCALLS

class RCALLS

{

//Define access specifier

public:

struct call_record

{

string cellNum;

double rStat;

double lengthMin;

double netCost;

double taxRate;

double callTax;

double tCost;

};

friend ostream& operator<<(ostream&, const RCALLS&);

friend bool is_Full(const RCALLS&);

friend bool is_Empty(const RCALLS&);

RCALLS();

void call_Stats();

void add_DB();

void remove_DB();

void end_Calls();

~RCALLS();

private:

call_record *call_DB, recordNew;

int size, num;

string key, prNum;

int search_DB(string);

void process_data_DB();

void process_data_Single();

void double_DB();

};

#endif

Rcall.cpp

//Include libraries

#include "Rcall.h"

#include

#include

#include

#include

//Use namespace

using namespace std;

//Define method

ostream& operator<<(ostream& out, const RCALLS& callR)

{

//Display

out << setw(16) << left << "Cell Phone #";

//Display

out << setw(8) << left << "Relays\t" << "Min\t" << "Net\t"

<< "Rate\t" << "Tax\t" << "Total Cost" << endl;

//Loop

for (int x = 0; x < callR.num; x++)

{

//Display records

out << callR.call_DB[x].cellNum << "\t"

<< callR.call_DB[x].rStat << "\t"

<< callR.call_DB[x].lengthMin << "\t"

<< callR.call_DB[x].netCost << "\t"

<< callR.call_DB[x].taxRate << "\t"

<< callR.call_DB[x].callTax << "\t"

<< callR.call_DB[x].tCost << "\t"

<< endl;

}

//Return

return out;

}

//Define a method

bool is_Full(const RCALLS& e)

{

//If size matches

if (e.num == e.size)

//Return

return 1;

//If size not matches

else

//Return

return 0;

}

//Define a method

bool is_Empty(const RCALLS& e)

{

//If it is 0

if (e.num == 0)

//Return

return 1;

//Otherwise

else

//Return

return 0;

}

//Define a method

RCALLS::RCALLS()

{

num = 0;

size = 5;

call_DB = new call_record[size];

for (int x = 0; x

{

call_DB[x].rStat = 0.0;

call_DB[x].lengthMin = 0.0;

call_DB[x].netCost = 0.0;

call_DB[x].taxRate = 0.0;

call_DB[x].callTax = 0.0;

call_DB[x].tCost = 0.0;

}

string filename;

ifstream in;

cout << " Please enter the filename " << endl;

cin >> filename;

in.open(filename.c_str());

while (!in.eof())

{

if (num == size)

{

double_DB();

}

in >> call_DB[num].cellNum

>> call_DB[num].rStat

>> call_DB[num].lengthMin;

num++;

}

in.close();

process_data_DB();

cout << " Initialization complete." << endl;

}

//Define a method

void RCALLS::call_Stats()

{

if (num == 0)

{

cout << "The array is empty; there is nothing to print " << endl;

}

else

{

cout << "Please enter the number you wish to search for." << endl;

cin >> prNum;

int i = search_DB(prNum);

if (i == -1)

{

cout << prNum << " is not in database, can not print. " << endl;

}

else

{

cout << setw(16) << left << "Cell Phone #";

cout << setw(8) << left << "Relays\t" << "Min\t" << "Net\t"

<< "Rate\t" << "Tax\t" << "Total Cost" << endl;

int z = 0;

double totalRelay = 0.0, totalMinutes = 0.0, totalNet = 0.0,

totalCost = 0.0, totalTax = 0.0;

while (z

{

if (call_DB[z].cellNum == prNum)

{

cout << " " << call_DB[z].cellNum << "\t" << call_DB[z].rStat

<< "\t" << call_DB[z].lengthMin << "\t" << call_DB[z].netCost

<< "\t" << call_DB[z].taxRate << "\t" << call_DB[z].callTax

<< "\t" << call_DB[z].tCost << endl;

totalRelay = ((call_DB[z].rStat) + (totalRelay));

totalMinutes = ((call_DB[z].lengthMin) + (totalMinutes));

totalNet = ((call_DB[z].netCost) + (totalNet));

totalCost = ((call_DB[z].tCost) + (totalCost));

totalTax = ((call_DB[z].callTax) + (totalTax));

}

z++;

}

cout << "Totals\t\t" << totalRelay << "\t" << totalMinutes << "\t" << totalNet

<< " \tN/A\t" << totalTax << "\t" << totalCost << endl;

}

}

}

//Define a method

void RCALLS::add_DB()

{

recordNew.rStat = 0.0;

recordNew.lengthMin = 0.0;

recordNew.netCost = 0.0;

recordNew.taxRate = 0.0;

recordNew.callTax = 0.0;

recordNew.tCost = 0.0;

cout << "Please input the cell number of new record" << endl;

cin >> recordNew.cellNum;

cout << "Please input number of relay stations" << endl;

cin >> recordNew.rStat;

cout << "Please input length of call" << endl;

cin >> recordNew.lengthMin;

process_data_Single();

if (num == size)

{

cout << "Database is full." << endl;

double_DB();

call_DB[num++] = recordNew;

cout << "Size of database has been doubled "

<< " and the new record has been added." << endl;

}

else

{

call_DB[num++] = recordNew;

}

cout << "Add complete." << endl;

}

//Define a method

void RCALLS::remove_DB()

{

if (num == 0)

{

cout << "The array is empty; cannot remove " << key << endl;

}

else

{

cout << "Please enter the number you would like to remove from "

<< "the database." << endl;

cin >> key;

int i = search_DB(key);

if (i == -1)

{

cout << key << " is not in the database, unable to remove it. " << endl;

}

else

{

int x = 0;

while (x != -1)

{

x = search_DB(key);

if (x == -1)

break;

for (int j = x; j

{

call_DB[j] = call_DB[j + 1];

}

num--;

}

}

}

cout << " Removal complete." << endl;

}

//Define a method

void RCALLS::end_Calls()

{

ofstream end;

int step = 0;

end.open("weekly_call_info.txt");

end.setf(ios::fixed);

end.setf(ios::showpoint);

end.precision(2);

while (step

{

end << call_DB[step].cellNum << "\t"

<< call_DB[step].rStat << "\t"

<< call_DB[step].lengthMin << "\t"

<< call_DB[step].netCost << "\t"

<< call_DB[step].taxRate << "\t"

<< call_DB[step].callTax << "\t"

<< call_DB[step].tCost << "\t"

<< endl;

step++;

}

end.close();

cout << "The database has been saved to weekly_call_info.txt" << endl;

}

//Define a destructor

RCALLS::~RCALLS()

{

delete[] call_DB;

call_DB = 0;

num = 0;

size = 0;

}

//Define a method

int RCALLS::search_DB(string scan)

{

int x = 0;

for (; x

{

if (call_DB[x].cellNum == scan)

return x;

}

return -1;

}

//Define a method

void RCALLS::process_data_DB()

{

double rate = 0.0;

for (int track = 0; track

{

if (call_DB[track].rStat >= 1 && call_DB[track].rStat <= 5)

rate = 1;

else if (call_DB[track].rStat >= 6 && call_DB[track].rStat <= 11)

rate = 3;

else if (call_DB[track].rStat >= 12 && call_DB[track].rStat <= 20)

rate = 5;

else if (call_DB[track].rStat >= 21 && call_DB[track].rStat <= 50)

rate = 8;

else if (call_DB[track].rStat>50)

rate = 12;

call_DB[track].taxRate = rate / 100;

call_DB[track].netCost = ((call_DB[track].rStat / 50)*(0.40)*(call_DB[track].lengthMin));

call_DB[track].callTax = (call_DB[track].netCost*(rate / 100));

call_DB[track].tCost = call_DB[track].netCost + call_DB[track].callTax;

}

cout << " Processing complete." << endl;

}

//Define a method

void RCALLS::process_data_Single()

{

double rate = 0.0;

if (recordNew.rStat >= 1 && recordNew.rStat <= 5)

rate = 1;

else if (recordNew.rStat >= 6 && recordNew.rStat <= 11)

rate = 3;

else if (recordNew.rStat >= 12 && recordNew.rStat <= 20)

rate = 5;

else if (recordNew.rStat >= 21 && recordNew.rStat <= 50)

rate = 8;

else if (recordNew.rStat>50)

rate = 12;

recordNew.taxRate = rate / 100;

recordNew.netCost = ((recordNew.rStat / 50)*(0.40)*(recordNew.lengthMin));

recordNew.callTax = (recordNew.netCost*(rate / 100));

recordNew.tCost = recordNew.netCost + recordNew.callTax;

}

//Define a method

void RCALLS::double_DB()

{

call_record *temp_DB;

size = size * 2;

temp_DB = new call_record[size];

for (int x = 0; x

{

temp_DB[x].cellNum = call_DB[x].cellNum;

temp_DB[x].rStat = call_DB[x].rStat;

temp_DB[x].lengthMin = call_DB[x].lengthMin;

temp_DB[x].netCost = call_DB[x].netCost;

temp_DB[x].taxRate = call_DB[x].taxRate;

temp_DB[x].callTax = call_DB[x].callTax;

temp_DB[x].tCost = call_DB[x].tCost;

}

delete[] call_DB;

call_DB = temp_DB;

}

Main.cpp

//Include libraries

#include

#include "Rcall.h"

//Use namespace

using namespace std;

//Define main

int main()

{

RCALLS call_DB;

int menu = 0;

while (menu != 6)

{

cout << " Menu" << endl

<< "\t(1) Add" << endl

<< "\t(2) Remove" << endl

<< "\t(3) Search for individual record" << endl

<< "\t(4) Write database to file" << endl

<< "\t(5) Print current database to screen" << endl

<< "\t(6) Exit program." << endl;

cin >> menu;

cout << endl;

switch (menu)

{

case 1:

call_DB.add_DB();

break;

case 2:

call_DB.remove_DB();

break;

case 3:

call_DB.call_Stats();

break;

case 4:

call_DB.end_Calls();

break;

case 5:

cout << call_DB;

break;

case 6:

menu = 6;

break;

default:

cout << "Incorrect value entered." << endl;

}

cout << endl;

}

system("pause");

return 0;

}

**Xcode looks like it's not liking the #include "RCALL.h"

and

#ifndef RCALLS_H

#define RCALLS_H

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!