i think i am passing by reference...
heres all the code if it helps:
Code:
//Dan Kemper
//Intermediate Computer Programming
//This is a bank program
//includes header files
#include <conio.h>
#include <iostream>
#include <fstream>
#include <iomanip>
#include <windows.h>
#include <cctype>
//required for cout and cin
using namespace std;
struct Variables
{
char FirstName[20], LastName[30], FullName[50], Password[10], PW[10], User, Print, acnumber[8];
int Attempts;
float Balance, Deposits, Withdrawls, NewBalance;
};
void Intro(Variables &V);
void AccountNumber(Variables &V);
void SignIn(Variables &V);
void ifcorrect(Variables &V);
void createorisregistered(Variables &V);
void ifincorrect(Variables &V);
void createaccount(Variables &V);
void printcorrect(Variables &V);
int main ()
{
Variables V;
V.Attempts=0;
V.Balance=0;
V.Deposits=0;
V.Withdrawls=0;
V.NewBalance=0;
Intro(V);
AccountNumber(V);
createorisregistered(V);
printcorrect(V);
getch();
return 0;
}
void Intro(Variables &V)
{
cout << " AAA TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT\n";
cout << " AAAAA TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT\n";
cout << " AAA AAA TTTTTT MMMMMM MMMMMM\n";
cout << " AAA AAA TTTTTT MMM MMM MMM MMM\n";
cout << " AAAAAAAAAAA TTTTTT MMM MMM MMM MMM\n";
cout << " AAAAAAAAAAAAA TTTTTT MMM MMM MMM MMM\n";
cout << " AAA AAA TTTTTT MMM MMM MMM MMM\n";
cout << "AAA AAA TTTTTT MMM MMMMM MMM\n";
cout << "\nThis is a bank program.\n";
cout << "\nPress [ENTER] to continue...\n";
cin.get();
system("cls");
cout << "Are you a registered user (A), or would you like to create an account (B)? ";
cin >> V.User;
system("cls");
}
void createorisregistered(Variables &V)
{
if (V.User=='a' || V.User=='A')
{
SignIn(V);
if (V.Password==V.PW)
{
ifcorrect(V);
}
if (V.Password!=V.PW)
{
ifincorrect(V);
}
}
if (V.User=='b' || V.User=='B')
{
createaccount(V);
}
}
void SignIn(Variables &V)
{
ifstream infile; //declares file pointer named infile
infile.open("Password.dat",ios::in); //opens dat file which has password in it
infile.get(V.PW,10); //gets password from file
infile.ignore(80, '\n');
infile.close();
infile.open("Balance.dat",ios::in);
cout << "First Name: ";
cin.get(V.FirstName,20);
cin.ignore(80,'\n');
V.FirstName[0]=toupper(V.FirstName[0]);
cout << "\nLast Name: ";
cin.get(V.LastName,30);
cin.ignore(80,'\n');
V.LastName[0]=toupper(V.LastName[0]);
strcpy(V.FullName, V.FirstName);
strcat(V.FullName, " ");
strcat(V.FullName, V.LastName);
system("cls");
cout << V.FullName << ", what is your password: ";
cin.get(V.Password,10);
cin.ignore(80, '\n');
cout << V.PW;
getch();
system("cls");
}
void ifcorrect(Variables &V)
{
cout << "Account Number: " << V.acnumber << "\n";
cout << "Balance: " << V.NewBalance;
cout << "\n\nDeposits: ";
cin >> V.Deposits;
cout << "\n\nWithdrawls: ";
cin >> V.Withdrawls;
cout << "\n\nNew Balance: " << V.NewBalance;
cout << "\n\n" << V.FullName << ", is all the above information correct (Y/N)? ";
cin >> V.Print;
}
void ifincorrect(Variables &V)
{
do
{
cout << "\n\nThat was the incorrect password!\a\a\a";
getch();
system("cls");
cout << "Try again: ";
cin >> V.Password;
if (V.Password==V.PW)
{
break;
}
if (V.Attempts==3)
{
cout << "I'm sorry, but you have made too many incorrect attempts. Please try again later.";
}
V.Attempts++;
}
while (V.Attempts<=3);
}
void createaccount(Variables &V)
{
cout << "Your account number will be: " << V.acnumber;
cout << "\n\nFirst Name: ";
cin.get(V.FirstName,20);
cin.ignore(80,'\n');
V.FirstName[0]=toupper(V.FirstName[0]);
cout << "\nLast Name: ";
cin.get(V.LastName,30);
cin.ignore(80,'\n');
V.LastName[0]=toupper(V.LastName[0]);
strcpy(V.FullName, V.FirstName);
strcat(V.FullName, " ");
strcat(V.FullName, V.LastName);
system("cls");
cout << V.FullName << ", pick your password and don't forget it: ";
cin.get(V.Password, 10);
cin.ignore(80, '\n');
cout << "\nAccount Number: " << V.acnumber;
cout << "\nDeposits: ";
cin >> V.Deposits;
cout << "\nWithdrawls: ";
cin >> V.Withdrawls;
V.NewBalance=V.Balance+V.Deposits-V.Withdrawls;
cout << "\nBalance: ";
cout << setiosflags (ios::fixed) << setprecision(2) << V.NewBalance ;
cout << "\n\n" << V.FullName << ", is all the above information correct (Y/N)? ";
cin >> V.Print;
}
void printcorrect(Variables &V)
{
if (V.Print=='y' || V.Print=='Y')
{
ofstream outfile ("Bank.txt");
outfile << V.FullName;
outfile << "\nPassword: *******";
outfile << "\n\nDeposits: " << V.Deposits;
outfile << "\nBalance: " << V.Deposits;
outfile << "\nThank you!";
outfile.close();
ofstream pwfile ("Passwords.dat");
pwfile << V.Password;
pwfile.close();
ofstream balancefile ("Balance.dat");
balancefile << V.NewBalance;
cout << "\n\nThank You!\a";
}
}
void AccountNumber(Variables &V)
{
srand((unsigned)time(0));
for ( int i = 0; i < 8; i++ )
{
V.acnumber[i] = rand() % 10 + '0';
}
V.acnumber[7] = '\0';
}