README.txt Following is a brief description of the associated ABM project implementation. The source files are generic C, and should compile with any C compiler. A makefile is provided for those using GNU tools. The initial database that the system uses is loaded through an initialization file, by default called "mydatabase.txt". The example initialization file included with this distribution has a header with the syntax that should be used within the file. The name of the database initialization file may be changed by modifying the constant in constants.h. Basic operation of the ABM: The initial menu is an overall system-level interface, which is higher than a user or operator interface. This menu allows a card to be swiped into the system, the operator to switch the operator key, and for the day to be incremented. By choosing to swipe a card, access is granted to the system user interface, and by switching the operator key, the operator interface becomes accessible. Exiting from the high level menu causes the ABM software to terminate, which is again a higher level function than the user interface functions. The source files are as follows: check_balance.c - Routines to handle check balance transactions deposit.c - Routines to handle deposit transactions main.c - Primary synchronization code, and highest level menu transfer.c - Routines to handle transfer transactions database.c - High level access routines to use the database component getch.c - Getch() emulation code for GNU targets operator_interface.c - Operator interface module user_interface.c - Portions of the user interface module databaseInit.c - Initialization routines for the database - database component linklist.c - Low level routines of the database module screen_output.c - Screen output routines - part of user interface module withdraw.c - Routines to handle withdrawal transactions ............... ACCOUNT INFORMATION FROM mydatabase.txt................... // Format of this database initialization file: // // Any line starting with two slashes and a space is a comment line // AddCustomer cardNumber pinNumber // // AddAccount cardNumber, accountType, accountNumber // Account types are: 0=Chequing, 1=Savings, 2=Credit Card, // 3=Line of Credit // // AddCheque cardNumber account amount // // AddCash cardNumber account amount AddCustomer 12345678 1234 AddAccount 12345678 0 123456789012 AddAccount 12345678 1 234567890123 AddAccount 12345678 2 345678901234 AddAccount 12345678 3 456789012345 AddCheque 12345678 123456789012 500 AddCheque 12345678 234567890123 200 AddCheque 12345678 234567890123 100 AddCash 12345678 123456789012 1000 AddCustomer 23456789 2345 AddAccount 23456789 0 123456789012 AddAccount 23456789 1 234567890123 AddAccount 23456789 2 345678901234 AddAccount 23456789 3 456789012345 AddCheque 23456789 123456789012 50 AddCash 23456789 123456789012 100 ...................................................................