A pure C program of bank system finished at 26 December 2016
The main code part was written all by me, the builder of this repository, while the description part which was recorded in word file is the work of the whole group.
Below is a problem statement.
Design a bank system program. Customers, bank clerks and managers are able to set up an account and log in with account information. Moreover, they have following functions.
Firstly, customers are asked to entry their name, address, telephone number and pin, then check if the telephone number is unique (if not unique, customers will be asked to entry again, as in this program telephone number is used to identify different customers, like ID), and the information including balance which could only be deposited by clerks, the state of active or inactive could only be changed by manager (but it is built up active), then the program will produce a random 8-digit card number which is used to log in combing with pin. After logging in successfully, customers could choose six modes and before acting every mode they are asked to enter pin for security, the customer could choose from withdrawal balance, access to customer information (partially, not including the state information and pin), change pin number, transfer money to others, access to activities recordings and log out. All the activities about customer need to be recorded in a special file and could be accessed and printed.
Secondly, bank clerks only need name and password to log in. Then they have the ability to add accounts for existing customers who are identified by their telephone numbers, the ability to delete accounts according to card ID and amend accounts’ information like name and address, also they could make deposits into an account which need to be larger than 0. Moreover, clerks could set up the standing order, which means set the function where customer A transfer to customer B some decided money in decided frequency as long as customer A has enough balance.
Thirdly, managers only need to log in with name and password. Then they could choose from 8 modes, and they have the ability to access to customers’ information including name, address, and telephone number, state, and balance and so on; Managers could also block or unblock customers according to card ID and meanwhile they could access to some big data, like the number of customers, number of accounts and average accounts per customers; and the total balance and average account balance could also be accessed.
Generally speaking, customers, clerks and managers need to be divided into different parts to be designed and work together smoothly. Customers need to remember the system-produced random card ID and 6-digit pin to log in and could perform well when the state is active, which is under control of manager, also one customer could only set up one account with one unique telephone number and more accounts could only be added by clerks, also only the clerks could deposit money to customers and set standing orders between customers. Meanwhile, customers could not change personal information except pin, but clerks could. So customers can not perform well without the help of clerks and managers.