Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

C++ Errors: I am currently using 3 files. A main.cpp, function_file.cpp, and hea

ID: 3803479 • Letter: C

Question

C++ Errors: I am currently using 3 files. A main.cpp, function_file.cpp, and header_file.h . I thought I was near completion but now am getting scope errors.

||=== Build: Debug in PMProject1 (compiler: GNU GCC Compiler) ===|
C:Usersx

DesktopPM Project 1header_file.h|19|error: variable or field 'makeAccount' declared void|
C:UsersxDesktopPM Project 1header_file.h|19|error: 'vector' was not declared in this scope|
C:UsersxDesktopPM Project 1header_file.h|19|note: suggested alternative:|
C:Program Files (x86)CodeBlocksMinGWlibgccmingw32.9.2includec++itsstl_vector.h|214|note: 'std::vector'|
C:UsersxDesktopPM Project 1header_file.h|19|error: expected primary-expression before '>' token|
C:UsersxDesktopPM Project 1header_file.h|19|error: expected primary-expression before ')' token|
C:UsersxDesktopPM Project 1header_file.h|22|error: variable or field 'makeAccount' declared void|
C:UsersxDesktopPM Project 1header_file.h|22|error: 'vector' was not declared in this scope|
C:UsersxDesktopPM Project 1header_file.h|22|note: suggested alternative:|
C:Program Files (x86)CodeBlocksMinGWlibgccmingw32.9.2includec++itsstl_vector.h|214|note: 'std::vector'|
C:UsersxDesktopPM Project 1header_file.h|22|error: expected primary-expression before '>' token|
C:UsersxDesktopPM Project 1header_file.h|22|error: expected primary-expression before ')' token|
C:UsersxDesktopPM Project 1header_file.h|25|error: variable or field 'printAccount' declared void|
C:UsersxDesktopPM Project 1header_file.h|25|error: 'vector' was not declared in this scope|
C:UsersxDesktopPM Project 1header_file.h|25|note: suggested alternative:|
C:Program Files (x86)CodeBlocksMinGWlibgccmingw32.9.2includec++itsstl_vector.h|214|note: 'std::vector'|
C:UsersxDesktopPM Project 1header_file.h|25|error: expected primary-expression before '>' token|
C:UsersxDesktopPM Project 1header_file.h|25|error: expected primary-expression before ')' token|
C:UsersxDesktopPM Project 1header_file.h|28|error: variable or field 'PrintAllAccount' declared void|
C:UsersxDesktopPM Project 1header_file.h|28|error: 'vector' was not declared in this scope|
C:UsersxDesktopPM Project 1header_file.h|28|note: suggested alternative:|
C:Program Files (x86)CodeBlocksMinGWlibgccmingw32.9.2includec++itsstl_vector.h|214|note: 'std::vector'|
C:UsersxDesktopPM Project 1header_file.h|28|error: expected primary-expression before '>' token|
C:UsersxDesktopPM Project 1header_file.h|28|error: expected primary-expression before ')' token|
C:UsersxDesktopPM Project 1header_file.h|31|error: variable or field 'depositAccount' declared void|
C:UsersxDesktopPM Project 1header_file.h|31|error: 'vector' was not declared in this scope|
C:UsersxDesktopPM Project 1header_file.h|31|note: suggested alternative:|
C:Program Files (x86)CodeBlocksMinGWlibgccmingw32.9.2includec++itsstl_vector.h|214|note: 'std::vector'|
C:UsersxDesktopPM Project 1header_file.h|31|error: expected primary-expression before '>' token|
C:UsersxDesktopPM Project 1header_file.h|31|error: expected primary-expression before ')' token|
C:UsersxDesktopPM Project 1header_file.h|34|error: variable or field 'withdrawAccount' declared void|
C:UsersxDesktopPM Project 1header_file.h|34|error: 'vector' was not declared in this scope|
C:UsersxDesktopPM Project 1header_file.h|34|note: suggested alternative:|
C:Program Files (x86)CodeBlocksMinGWlibgccmingw32.9.2includec++itsstl_vector.h|214|note: 'std::vector'|
C:UsersxDesktopPM Project 1header_file.h|34|error: expected primary-expression before '>' token|
C:UsersxDesktopPM Project 1header_file.h|34|error: expected primary-expression before ')' token|
C:UsersxDesktopPM Project 1header_file.h|37|error: variable or field 'sortAccounts' declared void|
C:UsersxDesktopPM Project 1header_file.h|37|error: 'vector' was not declared in this scope|
C:UsersxDesktopPM Project 1header_file.h|37|note: suggested alternative:|
C:Program Files (x86)CodeBlocksMinGWlibgccmingw32.9.2includec++itsstl_vector.h|214|note: 'std::vector'|
C:UsersxDesktopPM Project 1header_file.h|37|error: expected primary-expression before '>' token|
C:UsersxDesktopPM Project 1header_file.h|37|error: expected primary-expression before ')' token|
C:UsersxDesktopPM Project 1header_file.h|40|error: variable or field 'deleteAccount' declared void|
C:UsersxDesktopPM Project 1header_file.h|40|error: 'vector' was not declared in this scope|
C:UsersxDesktopPM Project 1header_file.h|40|note: suggested alternative:|
C:Program Files (x86)CodeBlocksMinGWlibgccmingw32.9.2includec++itsstl_vector.h|214|note: 'std::vector'|
C:UsersxDesktopPM Project 1header_file.h|40|error: expected primary-expression before '>' token|
C:UsersxDesktopPM Project 1header_file.h|40|error: expected primary-expression before ')' token|
C:UsersxDesktopPM Project 1header_file.h|43|error: 'vector' has not been declared|
C:UsersxDesktopPM Project 1header_file.h|43|error: expected ',' or '...' before '<' token|
||=== Build failed: 34 error(s), 0 warning(s) (0 minute(s), 1 second(s)) ===|

Here are my current includes and the main function:

#include
#include
#include
#include


#include "header_file.h"


using namespace std;


int main() {
// declare list of account here. The size of the list is not fixed.

struct Account{
int accountNumber;
string lastName;
string firstName;
double accountBalance;
};

vector bankAccounts;
Account a;

int input = 0;
int *inputPtr = &input;
while(input != 7)
{
menu(inputPtr);
// run loop to continue program until terminated by user

switch (input)
{ //cases: call functions to perform tasks
case 1:
makeAccount(bankAccounts);
break;

case 2:
PrintAllAccount(bankAccounts);
break;

case 3:
depositAccount(bankAccounts);
break;

case 4:
withdrawAccount(bankAccounts);
break;

case 5:
printAccount(bankAccounts);
break;

case 6:
deleteAccount(bankAccounts);
           break;

           case 7:
return 0;
           break;

           default:
cout << "Invalid Input. Choose a number from 1 through 7." << endl << endl;
}
}
return 0;
}

-----------------------------------------------------------

Here is the function_file with an example of the first function in there:

// function_file.cpp
#include
#include
#include
#include
#include
#include
#include
#include "header_file.h"

int index;
using namespace std;

void menu(int *num)
{
int select = 0;
cout << "Welcome to Made_up Banking. Select options below:" << endl;
cout << " 1. Make new account." << " 2. Display all accounts."
<< " 3. Deposit to an account." << " 4. Withdraw from an account."
<< " 5. Print account." << " 6. Delete an Account." << " 7. Quit." << endl;
cout << "Selection: ";
cin >> select;
*num = select;
}

template
void makeAccount(vector & newA)
{

typeStruct newAccount;

   srand(time(0));
newAccount.accountNumber = (rand() % 9999) + 1;
   cout << " Creating bank account number: " << newAccount.accountNumber << endl;

cout << "Enter first name:" << endl;
cin >> newAccount.firstName;

cout << endl << "Enter last name:" << endl;
cin >> newAccount.lastName;

cout << endl << "Enter starting balance:" << endl;
cin >> newAccount.accountBalance;

newA.push_back(newAccount);
cout << "Your Account has been created! " << endl;

//sortAccounts();

}

--------------------------------------------------

Here is the header_file:

void menu(int*);

template <typename typeStruct>
void makeAccount(vector <typeStruct>&);

template <typename typeStruct>
void makeAccount(vector <typeStruct>&);

template <typename typeStruct>
void printAccount(vector <typeStruct>&);

template <typename typeStruct>
void PrintAllAccount(vector <typeStruct>&);

template <typename typeStruct>
void depositAccount(vector <typeStruct>&);

template <typename typeStruct>
void withdrawAccount(vector <typeStruct>&);

template <typename typeStruct>
void sortAccounts(vector <typeStruct>&); // sort the accounts using the account numbers

template <typename typeStruct>
void deleteAccount(vector <typeStruct>&);

template <typename typeStruct>
int validInput(int, vector <typeStruct>&);

Im getting the first error at void makeAccount(vector &); in the header file. Thanks

Explanation / Answer

In header file you need to include vector and time, stdlib in functinons file. Compilation error resolved code is below.

Based on your errors, i included headers in header and functions file and compiled both of them

--header file---

/*
* header_file.h
*
* Created on: Mar 24, 2017
*      Author: Satish-Ravi
*/

#ifndef HEADER_FILE_H_
#define HEADER_FILE_H_

#include <vector>

using namespace std;

void menu(int*);

template <typename typeStruct>
void makeAccount(vector <typeStruct>&);


template <typename typeStruct>
void printAccount(vector <typeStruct>&);

template <typename typeStruct>
void PrintAllAccount(vector <typeStruct>&);

template <typename typeStruct>
void depositAccount(vector <typeStruct>&);

template <typename typeStruct>
void withdrawAccount(vector <typeStruct>&);

template <typename typeStruct>
void sortAccounts(vector <typeStruct>&); // sort the accounts using the account numbers

template <typename typeStruct>
void deleteAccount(vector <typeStruct>&);

template <typename typeStruct>
int validInput(int, vector <typeStruct>&);
#endif /* HEADER_FILE_H_ */


-----------------function file------------------

#include <iostream>
#include <time.h>
#include <stdlib.h>
#include "header_file.h"

int index;
using namespace std;

void menu(int *num) {
   int select = 0;
   cout << "Welcome to Made_up Banking. Select options below:" << endl;
cout << " 1. Make new account." << " 2. Display all accounts."

           << " 3. Deposit to an account."
           << " 4. Withdraw from an account." << " 5. Print account."
           << " 6. Delete an Account." << " 7. Quit." << endl;
   cout << "Selection: ";
   cin >> select;
   *num = select;
}

template<typename typeStruct>
void makeAccount(vector<typeStruct> &newA) {

   typeStruct newAccount;

   srand(time(0));
   newAccount.accountNumber = (rand() % 9999) + 1;
   cout << " Creating bank account number: " << newAccount.accountNumber
           << endl;

   cout << "Enter first name:" << endl;
   cin >> newAccount.firstName;

   cout << endl << "Enter last name:" << endl;
   cin >> newAccount.lastName;

   cout << endl << "Enter starting balance:" << endl;
   cin >> newAccount.accountBalance;

   newA.push_back(newAccount);
   cout << "Your Account has been created! " << endl;

//sortAccounts();

}