#ifndef __linklist_h #define __linklist_h #define CARD_NUMBER_LENGTH 8 #define PIN_NUMBER_LENGTH 4 #define ACCOUNT_NUMBER_LENGTH 12 #define CHEQUE_HOLD_TIME_IN_DAYS 3 #define LOCKOUT_FAILED_PIN_ATTEMPTS 3 #define ACCOUNT_TYPE_CHEQUING 0 #define ACCOUNT_TYPE_SAVINGS 1 #define ACCOUNT_TYPE_CREDIT_CARD 2 #define ACCOUNT_TYPE_LINE_OF_CREDIT 3 #ifndef TRUE #define TRUE 1 #endif #ifndef FALSE #define FALSE 0 #endif #ifndef SUCCESS #define SUCCESS 1 #endif typedef struct customerListNode *customerList; customerList linklist_AddCustomer(customerList, char *cardNumber, char *pinNumber); customerList linklist_AddAccount(customerList list, char *cardNumber, char accountType, char *accountNumber); char linklist_AddHeldCheque(customerList list, char *cardNumber, char *accountNumber, double chequeValue); void linklist_debug_printDatabase(customerList incomingList); char linklist_CreateCustomerList(customerList *headPointer); char linklist_GetPIN(customerList customer, char* PIN); char linklist_IsAccountLocked(customerList customer); customerList linklist_FindCustomer(customerList list, char *cardNumber); char linklist_IncrementCustomerFailedPinAttempts(customerList customer); int linklist_FindNumberAccounts(customerList customer); char linklist_GetAvailableBalance(customerList customer, char* accountNumber, double* balance); char linklist_GetTotalBalance(customerList customer, char* accountNumber, double* balance); char linklist_AddCash(customerList customer, char *accountNumber, double cashValue); char linklist_AddToCashWithdrawn(customerList customer, double addedValue); char linklist_GetCashWithdrawn(customerList customer, double *withdrawnValue); char linklist_GetAccountInfo(customerList customer, int accountIndexIntoList, char* accountType, char* accountNumber); char linklist_NewDayRollup(customerList customer); #endif