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();
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.