this programming assignment you are to implement a Centralized Multi-User Concurrent
Bank Account Manager. The system has two important components.
manipulations and maintains all customer records correctly.
accounts. The operations that can be performed on an account are: withdrawal of an
amount from an account and deposit of an amount into an account. Additionally, the
bank server can have it's own service that periodically deposits an interest amount to each
account based on some fixed rate.
A pictorial representation of the system is as shown in the figure below.
The components of the system and their functionalities to be implemented are as follows:
Server
The server receives queries from customers (ATM clients, Clients/Billing agencies performing
online transactions etc.) for operations on accounts. The server should have the following
functionalities:
threaded)
access (i.e., a user might be depositing money into his account and at the same time an
online billing agent might be withdrawing money from the same account). Such cases
need to be correctly handled by protecting variables in the critical section.
only if it has sufficient funds etc.)
reads and creates account information. You can generate your own input file. For testing we will use our own file. However, name the file Records.txt.
An example input file format could be:
101 Peter 160
102 John 1200
103 Gambo 11000
.
The format for each line being: account number, name, balance amount (space separated)
Client
A client issues requests to the server from a transaction based on account numbers. Client
functionality:
time intervals. A client can read an input file for transaction information and perform
those tasks accordingly. For example, following is a format you can use to generate input
for each client and use it in experiments. Create your own file. However, call it
Transactions.txt.
10 01 w 200
25 01 d 300
26 05 d 150
.
Each line of the input file is a transaction request to be issued by the client and has the
following format: timestamp, account number, transaction type(withdrawal/deposit),
amount (space separated)
The purpose of this assignment is to get you familiarized with sockets, processes, threads and
synchronization.
You can be creative with this project (like add create new online accounts, which means add new
functionalities, other than mentioned above, at both client and server etc.).
Constraints on the Implementation
extensions of .cc or .cpp. You are welcome to use the STL classes). You must test your
code on a linux machine/machines. Testing it on a Windows and/or Unix (MAC)
machine is not acceptable.
DescriptionIn this final assignment, the students will demonstrate their ability to apply two ma
Path finding involves finding a path from A to B. Typically we want the path to have certain properties,such as being the shortest or to avoid going t
Develop a program to emulate a purchase transaction at a retail store. Thisprogram will have two classes, a LineItem class and a Transaction class. Th
1 Project 1 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of
1 Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of