2015-11-22 6 views
0

Я пытаюсь создать банковскую программу, которая может читать имя пользователя и пароль из текстового файла и сравнивать его с тем, что вводит пользователь. Я искал и пробовал несколько разных методов, но я не могу заставить его работать. Мне жаль, если это повторный пост, я просто не могу понять это. Я очень новичок в кодировании, поэтому, пожалуйста, простите мои ошибки.Проблемы, связанные с чтением/записью для банковской программы

Текстовый файл, который у меня есть: «Account.txt» Он содержит «имя пользователя» в первой строке, а затем «userpassword» на второй строке.

/* 
Hunter Walker 11/10/2015 
Banking Application with Input validation 
Assignment 2 
*/ 

//Headers 
#include<iostream> 
#include<string> 
#include<cstdlib> 
#include <fstream> 

using namespace std; 
//Variables 
char input1, input2; 
string username,userpassword, newusername, newuserpassword; 
string customuser, custompass; 
double amountin, amountout; 
double total = 0; 

//Function declarations 
int bankingmenu(); 
int newaccount(); 
int login(); 
int main(); 
int mainmenu(); 
int deposit(); 
int withdraw(); 
int showbalance(); 
//Code to read from file 


// The main menu for the banking application 
int mainmenu() 
{ 
cout << "Hi! Welcome to Future Computer Programmer ATM Machine!" << endl; 
cout << "Please select an option from the menu below:" << endl; 
cout << "l -> Login " << endl; 
cout << "c -> Create New Account " << endl; 
cout << "q -> Quit " << endl; 
cin >> input1; 
return 0; 
} 
// Function to allow the user to make a new account 
int newaccount() 
{ 
    cout << "**********************************" << endl; 
    cout << "Welcome to the create an account menu!" << endl; 
    cout << "Please enter your desired username:" << endl; 
    cin >> newusername; 
    cout << "Please enter a password for your account:" << endl; 
    cin >> newuserpassword; 
    cout << "Thank you for creating an account with Future Computer Programmer ATM Machine!" << endl; 
    cout << "Your username is " << newusername << " and your password is " << newuserpassword << "." << endl; 
    cout << endl; 
    cout << "Reminder: Don't share your username or password with anyone." << endl; 
    cout << endl; 
    cout << "**********************************" << endl; 
} 
// Function to allow user to login to their account 
int login() 
{ 

    cout << "Please enter username:" << endl; 
    cin >> username; 
    cout << "Please enter password:" << endl; 
    cin >> userpassword; 
    ifstream inputFile; 
    inputFile.open("Account.txt"); 


    cout << customuser << " " << custompass << endl; 

    if (customuser == username && custompass == userpassword) 
    { 
     bankingmenu(); 
    } 
    else 
    { 

     cout << "User name or password incorrect!" << endl; 
     cout << "Returning to main menu!" << endl; 
     return main(); 
    } 
    inputFile.close(); 
    return 0; 
} 
// The secondary menu for withdrawing/depositing/ or checking balance 
int bankingmenu() 
{ 
cout << "*******************************" << endl; 
cout << "Please select an option from the menu below::" << endl; 
cout << " d -> Deposit Money" << endl; 
cout << " w -> Withdraw Money" << endl; 
cout << " r -> Request Balance" << endl; 
cout << " q -> Quit" << endl; 
    cin >> input2; 
    if (input2 == 'd') 
    { 
     deposit(); 
    } 
    else if (input2 == 'w') 
    { 
     withdraw(); 
    } 
    else if (input2 == 'r') 
    { 
     showbalance(); 
    } 
    else if (input2 == 'q') 
    { 
    cout << "Returning to main menu! " << endl; 

    return main(); 
    } 
    else 
    { 
     cout << "Please select a valid input and try again!" << endl; 
     return bankingmenu(); 
    } 
    return 0; 

} 
// Function to allow to deposit to account 
int deposit() 
{ 
    cout << "Please enter the amount of money you wish to deposit:" << endl; 
    cin >> amountin; 
    total = amountin + total; 
    cout << "The deposit was a success! Thanks for using Future Computer Programmer ATM Machine!" << endl; 
    return bankingmenu(); 
} 
// Function to allow user to withdraw from account 
int withdraw() 
{ 
cout << "Please enter the amount you would like to withdraw:" << endl; 
cin >> amountout; 
if (total < amountout) 
{ 
cout << "You can't withdraw more money than you have!" << endl; 
cout << "Please select a different amount to withdraw." << endl; 
return withdraw(); 
} 
else 
{ 
cout << "The amount has been withdrawn." << endl; 
total = total - amountout; 
return bankingmenu(); 
} 
} 
// Function to display the balance 
int showbalance() 
{ 
cout << "The balance in your account is $" << total << "." << endl; 
return bankingmenu(); 
} 


// The main function that calls all previous functions to run 
int main() 
{ 

mainmenu(); 
// Option to login 
if (input1 == 'l') 
{ 
    login(); 
} 
// Option to make a new account 
else if (input1 == 'c') 
{ 
    newaccount(); 
} 
// Option to exit program 
else if (input1 == 'q') 
{ 
    cout << "Thanks for using the Future Computer Programmer ATM Machine! " << endl; 
    cout << "The program will now exit!" << endl; 
    return 0; 
} 
// Input validation 
else 
{ 
    cout << "Please select a valid menu option and try again!" << endl; 
    return main(); 
} 

return 0; 
} 

ответ

0

В функции newAccount вам нужно будет сохранить имя пользователя и пароль со следующими строками кода.

ofstream outfile; 
outfile.open("Account.txt"); 
outfile<<newusername<<endl; 
outfile<<newpassword<<endl; 
outfile.close(); 

В функции входа вы должны добавить следующие две строки кода после того, как вы откроете файл «Account.txt»

inputFile>>customuser; 
inputFile>>custompass; 

Это позволит решить настоящую проблему получения имени пользователя и пароль одного пользователя. Но вам все равно придется выяснить, как получить имена пользователей и пароли для нескольких пользователей, которые будут использовать ваше приложение.

Простая адаптация для работы с несколькими пользователями заключается в простое добавление имени пользователя и пароля в файл и поиск имени пользователя и пароля последовательно.

Альтернативой вышеуказанному подходу является использование базы данных для хранения имени пользователя и пароля.

Смежные вопросы