Вы находитесь на странице: 1из 169

NIELIT “A” LEVEL BANKING MANAGEMENT

SYSTEM

CHAPTER 1

INTRODUCTION
The “Banking Management System” is system provides the access to the
customer to create an account, deposit/withdraw the cash from his
account, also to view reports of all accounts present. The customers can
access the banks website for viewing their Account details and perform
the transactions son account as per their requirements. With Internet
Banking, the brick and mortar structure of the traditional banking gets
converted into a click and portal model, thereby giving a concept of
virtual banking a real shape. Thus today's banking is no longer confined
to branches. E-banking facilitates banking transactions by customers
round the clock globally.

The primary aim of this “Bank Account Management System” is to


provide an improved design methodology, which envisages the future
expansion, and modification, which is necessary for a core sector like
banking. This necessitates the design to be expandable and modifiable
and so a modular approach is used in developing the application
software. Anybody who is an Account holder in this bank can become a
member of Bank Account Management System. Bank is the place where
customers feel the sense of safety for their property. In the bank,
customers deposit and withdraw their money. Transaction of money also

Shivangi Mishra 1
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

is a part where customer takes shelter of the bank. Now to keep the belief
and trust of customers, there is the positive need for management of the
bank, which can handle all this with comfort and ease. Smooth and
efficient management affects the satisfaction of the customers and staff
members, indirectly. And of course, it encourages management
committee in taking some needed decision for future enhancement of the
bank.

Now a day’s, managing a bank is tedious job up to certain limit. So


software that reduces the work is essential. Also today’s world is a
genuine computer world and is getting faster and faster day-by-day.
Thus, considering above necessities, the software for bank management
has became necessary which would be useful in managing the bank more
efficiently.

All transactions are carried out online by transferring from


accounts in the same Bank or international bank. The software is meant
to overcome the drawbacks of the manual system.

During the past several decades personnel function has been


transformed from a relatively obscure record keeping staff to central and
top level management function. There are many factors that have
influenced this transformation like technological advances,
professionalism, and general recognition of human beings as most
important resources.

Shivangi Mishra 2
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

A computer based management system is designed to handle all the


primary information required to calculate monthly statements of
customer account which include monthly statement of any month.
Separate database is maintained to handle all the details required for the
correct statement calculation and generation.

This project intends to introduce more user friendliness in the


various activities such as record updating, maintenance, and searching.
The searching of record has been made quite simple as all the details of
the customer can be obtained by simply keying in the identification or
account number of that customer. Similarly, record maintenance and
updating can also be accomplished by using the account number with all
the details being automatically generated. These details are also being
promptly automatically updated in the master file thus keeping the record
absolutely up-to-date.

The entire information has maintained in the database or Files and


whoever wants to retrieve can’t retrieve, only authorization user can
retrieve the necessary information which can be easily be accessible from
the file. This system provides fast, efficient, reliable and User friendly
interfaces in banking and has no chance of losing data while processing
of user data i.e. customer account transactions. This software provides a
good user interface such that a user of basic computer knowledge can
operate the application. It also reduces effort done by the accountant and

Shivangi Mishra 3
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

also reduces the load of real time computation. This software enables
faster transaction like new account creation, withdrawal of cash from the
account, deposit of cash to the account, checking account balance of the
account holder even if there are large amount of data in the system
database.

CHAPTER 2

ABSTRACT

Shivangi Mishra 4
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

Requirements definition and management is recognized as a


necessary step in the delivery of successful system s and software
projects, discipline is also required by standards, regulations, and quality
improvement initiatives. Creating and managing requirements is a
challenge of IT, systems and product development projects or indeed for
any activity where you have to manage a contractual relationship.
Organization need to effectively define and manage requirements to
ensure they are meeting needs of the customer, while proving compliance
and staying on the schedule and within budget. The impact of a poorly
expressed requirement can bring a business out of compliance or even
cause injury or death.

Requirements definition and management is an activity that can deliver a


high, fast return on investment.

The “Banking management system” undertaken as a


project is based on relevant technologies. The main aim of this project is
to develop software for bank management system. This project is to
develop software for bank management system. This project has been
developed to carry out the processes easily and quickly, which is not
possible with the manuals systems, which are overcome by this software.
This project is developed using Java language and. Hence it provides the
complete solution for the current management system.

Shivangi Mishra 5
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

Shivangi Mishra 6
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

CHAPTER 3

OBJECTIVE AND SCOPE


The main objective of this banking system which is developed in
c++ is to provide a flexible solution for banking industry. With this
system both type of users such as bank customers and working personnel
of the particular bank will find easy to use and able to perform all their
operations using this system. This system enable its users to open and
close the bank account. Customers will able to withdraw and deposit
amount to their particular account. It will also able to generate
transactions on money for particular customer account.

Shivangi Mishra 7
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

Working personnel of the particular bank will make to make all the
operations which are required within the banking premises. The
operations which can be performed by the bank personnel are: Adding
new customer account, edit existing customer account, list all customer
details including their account number, able to generate daily and
monthly business transactions report etc. Its user friendly graphical mode
will made its users to work with this new system in more interactive way.

A computer based management system is designed to handle all the


primary information required to calculate monthly statements of
customer account which include monthly statement of any month.
Separate database is maintained to handle all the details required for the
correct statement calculation and generation.

This project intends to introduce more user friendliness in the


various activities such as record updating, maintenance, and searching.
The searching of record has been made quite simple as all the details of
the customer can be obtained by simply keying in the identification or
account number of that customer. Similarly, record maintenance and
updating can also be accomplished by using the account number with all
the details being automatically generated. These details are also being
promptly automatically updated in the master file thus keeping the record
absolutely up-to-date.

Shivangi Mishra 8
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

The main objective of our project is providing the different typed


of customers facility, the main objective of this system is to find out the
actual customer service. Etc.

It should fulfill almost all the process requirements of any Bank.

It should increase the productivity of bank by utilizing the working


hours more and more, with minimum manpower.

This project includes the entire upgraded feature required for the
computerization banking system. This system is very easy to use, so that
any user can use without getting pre-knowledge about this. It’s very
much user friendly and meet almost all daily working process
requirements. This system is completely GUI based and can be use by
mouse and as well as keyboard. This system is melded in such a way that
has got all features to upgrade without making much change in existing
components.

LIMITATION OF PROJECT

Technology has changed the way many tech-savvy customers do


their banking. The onset of online banks has made it possible for
customers to conduct all banking virtually, without ever having to visit a
brick-and-mortar location. Choosing between online banking and

Shivangi Mishra 9
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

traditional banking is mainly a matter of preference, but the latter does


offer plenty of features many customers would consider a major
disadvantage.

Limited Accessibility

Accessibility at traditional banks is limited, as you can only


conduct business at their brick-and-mortar locations. If you’re traveling
or unable to make it into the location during standard hours of operation,
you won’t be able to do business.

Less Efficient

Getting in the car, driving to a bank and waiting in line to be


served take up your valuable time. It is more efficient to do your banking
online, where you can open new accounts, set up auto bill pay, check
account balances and transfer funds all from your own computer.

1. Main Goals:

Our motto is to develop a software program for managing the entire bank
process related to Administration accounts customer accounts and to
keep each every track about their property and their various transaction
processes efficiently.

Shivangi Mishra 10
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

Hereby, our main objective is the customer’s satisfaction considering


today’s faster in the world.

2. Customer Satisfaction:

Client can do his operations comfortably without any risk or losing of his
privacy.

Our software will perform and fulfill all the tasks that any customer
would desire.

3. Saving Customer Time:

Client doesn't need to go to the bank to do small operation.

4. Protecting The Customer:

It helps the customer to be satisfied and comfortable in his choices, this


protection contains customer’s account, money and his privacy.

5. Transferring Money:

Help client transferring money to/or another bank or country

6. Aim:

Shivangi Mishra 11
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

 To develop a software for solving financial applications of a customer in


banking environment in order to nurture the needs of an end banking user
by providing various ways to perform banking tasks. Also to enable the
user â ¢s workspace to have additional functionalities which are not
provided under a conventional banking software

Banking Management System thus ensures smooth operation of the Real-


Estate management tasks as well as keep the information about the
employees and their salary.

CHAPTER 4

Shivangi Mishra 12
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

SYSTEM ANALYSIS AND USER REQUIREMENTS

System analysis is a process of gathering and interpreting facts,


diagnosing problems and the information to recommend improvements
on the system. It is a problem solving activity that requires intensive
communication between the system users and system developers. System
analysis or study is an important phase of any system development
process. The system is studied to the minutes detail and analyzed. The
system analyst plays the role of the interrogator and dwells deep into the
working of the present system. The system is viewed as a whole and the
input to the system are identified. The outputs from the organizations are
traced to the various processes. System analysis is concerned
with becoming aware of the problem, identifying the relevant and
decisional variables, analyzing and synthesizing the various factors and
determining an optimal or at least a satisfactory solution or program of
action.
A detailed study of the process must be made by various techniques like
interviews, questionnaires etc. The data collected by these sources must
be scrutinized to arrive to a conclusion. The conclusion is an
understanding of how the system functions. This system is called the
existing system. Now the existing system is subjected to close study and
problem areas are identified. The designer now functions as a problem
solver and tries to sort out the difficulties that the enterprise faces. The

Shivangi Mishra 13
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

solutions are given as proposals. The proposal is then weighed with the
existing system analytically and the best one is selected. The proposal is
presented to the user for an endorsement by the user. The
proposal is reviewed on user request and suitable changes are made. This
is loop that ends as soon as the user is satisfied with proposal.
Preliminary study is the process of gathering and interpreting facts, using
the information for further studies on the system. Preliminary study is
problem solving activity that requires intensive communication between
the system users and system developers. It does various feasibility
studies. In these studies a rough figure of the system activities can be
obtained, from which the decision about the strategies to be followed for
effective system study and analysis can be taken.

EXISTING SYSTEM

In the existing system the transactions are done only manually but in
proposed system we have to computerize all the banking transaction
using the software banking system.

DISADVANTAGES OF EXISTING SYSTEM

 Lack of security of data.

Shivangi Mishra 14
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

 More man power.


 Time consuming.
 Consumes large volume of pare work.
 Need manual calculations.
 No direct role for the higher officials.
 Damage of machines due to lack of attention.
 To avoid all these limitations and make the working more
accurately the system needs to be computerized.

PROPOSED SYSTEM
The aim of proposed system is to develop a system of improved
facilities. The proposed system can overcome all the limitations of the
existing system. The system provides proper security and reduces the
manual work.

ADVANTAGES OF THE PROPOSED SYSTEM


The system is very simple in design and to implement. The system
requires very low system resources and the system will work in almost
all configurations. It has got following features:

 Security of data
 Proper control of the higher officials

Shivangi Mishra 15
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

 Reduce the damages of the machines


 Minimize manual data entry
 Minimum time needed for the various processing.
 Greater efficiency
 Better service.
 User friendly and interactive.
 Minimum time required.

CHAPTER 5

PURPOSE

Shivangi Mishra 16
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

Our software will perform and fulfill all the tasks that any customer
would desire.

Our motto is to develop a software program for managing the entire bank
process related to customer accounts, employee accounts and to keep
each every track about their property and their various transaction
processes efficiently.

Hereby, our main objective is the customer’s satisfaction considering


today’s faster world.

What to expect:

Here are some of the features available through online banking:

1. View balances: Firstly login your account with your account number
and password. Then checking your balance doesn't require much work.
You simply select Account balances and take a look at your balance and
past transactions. If you have more than one account, you can also do
transfers between accounts.

2. Transfer funds: When you select Transfer Funds, you'll be asked


where to transfer the money to and from, when, and the amount.

3. Set up recurring bill payments or transfers: If you make a regular


payment every month, it might be convenient to set up an automatic
withdrawal from your account.

Shivangi Mishra 17
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

4. Monitor CIBC investments: If you have any CIBC investments, you


can keep an eye on those stocks or mutual funds here.

5. Pay bills: To pay your bills online, you just need to add to your
account the names of the companies you wish to pay bills to.

6. View our VISA* accounts: Always a good place to monitor your


spending. You can make your credit card payments online, right from
your account.

7. Order Cheques: We don't need them much anymore due to online


banking and debit purchases, but if you still use cheques, you can order
them directly from the BAMS website.

Scope

 A Computerized visual Banking System will be :


 Fast
 Effective
 Safe
 User Friendly

This software has the following scope :

Admin :

Shivangi Mishra 18
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

Admin can access this project there is an authorization process. If you


login as an Admin then you will be redirected to the Admin Home Page
and if you are a simple user you will be redirected to your Account
Home Page. This performs the following functions: Create Individual
Accounts, Manage existing accounts, View all transactions, Balance
enquiry, Delete/close account etc.

 Admin login

 Add/delete/update account

 Withdrawal/deposit/statements transaction

 Account Information

 User details list

 Active/Inactive account

 View transaction histories

 User login, use PIN system

 Creating/open new account registration

 Funds transfer (local/international/domestic)

 View statements transaction

 User account details

Shivangi Mishra 19
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

 Change Password and PIN

 View about developer details

Features

 User registration for online banking if not register.

 Adding Beneficiary account by customer.

 Transferring amount to the local customer account number.

 Admin must approve the user account activation before it can be used
and transferring funds, view statement history.

 Customer gets to know his last login date and time each time he logs
in.

 Customer can check all transactions made with their account.

 Customer can check their account statement within a date range.

 Customer can request for ATM and Cheque Book.

 Admin can add/edit/delete customer account’s

 All two of them (customer & admin) can change their password.

 Admin Login pages are hidden from customer for security purpose.

Shivangi Mishra 20
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

 Passwords are stored as encrypted hashes with an additional random


salt for added security.

Shivangi Mishra 21
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

CHAPTER 6

PROJECT CATEGORY AND METHODOLOGY


The primary aim of this “Bank Account Management System” is to
provide an improved design methodology, which envisages the future
expansion, and modification, which is necessary for a core sector like
banking. This necessitates the design to be expandable and modifiable
and so a modular approach is used in developing the application
software.
Anybody who is an Account holder in this bank can become a
member of Bank Account Management System. He has to fill a form
with his personal details and Account Number. Bank is the place where
customers feel the sense of safety for their property. In the bank,
customers deposit and withdraw their money. Transaction of money also
is a part where customer takes shelter of the bank. Now to keep the belief
and trust of customers, there is the positive need for management of the
bank, which can handle all this with comfort and ease. Smooth and
efficient management affects the satisfaction of the customers and staff
members, indirectly. And of course, it encourages management
committee in taking some needed decision for future enhancement of the
bank.

Shivangi Mishra 22
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

A project is a group of source files and the settings with which you
build, run, and debug those source files. In the IDE, all CPP development
has to take place within a project. For applications that involve large
code bases, it is often advantageous to split your application source code
into several projects

The IDE includes several project templates designed to support


different types of development including web applications, general CPP
applications, and so forth. The IDE's set of standard project templates
automatically generate an Ant script and properties. The IDE also
contains free-form project templates that you can use to base a project on
an existing Ant script. In addition to Ant, the IDE also supports Maven,
an open source build management tool. Maven uses a project object
model (POM) that describes a set of standards that all projects using
Maven follow allowing for consistency between projects. You can easily
create a Maven project by choosing a Maven project template and
providing a few project details.

CHAPTER 7

Shivangi Mishra 23
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

SPECIFIC REQUIREMENT
Requirements are prone to issues of ambiguity, incompleteness, and
inconsistency. Techniques such as rigorous inspection have been shown
to help deal with these issues. Ambiguities, incompleteness, and
inconsistencies that can be resolved in the requirements phase typically
cost orders of magnitude less to correct than when these same issues are
found in later stages of product development. Requirements analysis
strives to address these issues.

1. Take a long time to produce.

2. Begin to limit the implementation option available.

3. Are costly to produce requirements for both the system and the
software are documented and reviewed with the customer.

Requirements are prone to issues of ambiguity, incompleteness, and


inconsistency. Techniques such as rigorous inspection have been shown
to help deal with these issues. Ambiguities, incompleteness, and
inconsistencies that can be resolved in the requirements phase typically
cost orders of magnitude less to correct than when these same issues are
found in later stages of product development. Requirements analysis
strives to address these issues.

Shivangi Mishra 24
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

 Take a long time to produce


 Begin to limit the implementation option available
 Are costly to produce

Requirements for both the system and the software are documented and
reviewed with the customer.

USER INTERFACE

Welcome To Banking Management System .

 BANKING_FACILITIES ..
 LOGIN FORM FOR TRANSACTION
 ACCOUNT OPENING FORM
 TRANSACTION FORM
 CHECK BALANCE FORM
 CASH DEPOSIT FORM
 VIEW ALL ACCOUNT FORM
 HELP FORM
 CASH WITHDRAWL FORM.
 LOAN REQUESTS
 HARDWARE INTERFACE

Shivangi Mishra 25
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

This software can be made to interact with specific hardware if required


so. Screen formats of the software can be set according to user
requirement basically.

Input Device

 Keyboard :108Keys
 Mouse :Optical mouse

Output Device

 Monitor :14inch and above color monitor


 System Requirements:
o Ram 256 Mb or above.
o Processer Intel Pentium III or later
o Cache memory 512kb
o Hard Disk – 1.5GB Installation.
o 2 GB MSDN Library documentation

Software interface

 CPP IDE (turbo c ,dev c)


 CPP complier
 Windows XP or higher.

Shivangi Mishra 26
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

Security:

1.The Branch where the customer maintains his/her account will assign:

a) User Account Number &

b) Password

2. The User-id and Password given by the branch must be replaced by


User Name and Password of customer’s choice at the time of first log-on.
This is mandatory.

3. Bank will make reasonable use of available technology to ensure


security and to prevent unauthorized access to any of these services. The
BAMS Bank service is VERISIGN certified which guarantees, that it is a
secure site. It means that

 You are dealing with RR at that moment.

 The two-way communication is secured with 128-bit SSL


encryption technology, which ensures the confidentiality of the
data during transmission.

4. You are welcome to access BAMS Bank from anywhere anytime.


However, as a matter of precaution, customers may avoid using PCs with
public access.

Shivangi Mishra 27
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

5. There is no way to retrieve a password from the system. Therefore if a


customer forgets his/her password, he/she must approach the branch for
re-registration.

Safe Banking Tips:

 URL address on the address bar of your internet browser begins with
"https"; the letter’s at the end of "https" means 'secured'.

 Look for the padlock symbol either in the address bar or the status bar
(mostly in the address bar) but not within the web page display area.
Verify the security certificate by clicking on the padlock.

 Do not enter login or other sensitive information in any pop up


window.

 The address bar has turned to green indicating that the site is secured
with an SSL Certificate.

CHAPTER 8

Shivangi Mishra 28
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

COST AND BENEFIT ANALYSIS


FEASIBILITY STUDY
Depending on the result of the initial investigation the survey was
Expand to a more detailed feasibility study. Feasibility is the process of
defining exactly what is and what strategic issue needs to be considered
to access its feasibility, or likelihood of succeeding. Feasibility studies
are useful both when starting a new business and identifying a new
opportunity for an existing business.
Feasibility study is a test of a system proposal according to its
Work ability and impact on the organization, ability to meet user need
and effective use of resources. The feasibility study conducted for this
project mainly gives answer to these
Questions:-
1. What are the user’s demonstrable needs and how
do a candidate system meet them?
2. What resources are available for the given
Candidate system? Is the problem worth solving?
3. What is likely impact of the candidate system on
the organization?
4. How well does it fit within the organization’s
master plan?

Answer to this question revolves around investigation


and Evaluation of the problem, identification and the description of
candidate system, specification of performance and the cost of
each system and the final selection of best system.

Shivangi Mishra 29
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

The objective of this feasibility study is not solving the


problem. But to acquire a sense of scope. During the study of
the problem definition was crystallized and aspects of the problem to be
included in the system is determined.
Feasibility Consideration
There were three key consideration involved in this feasibility
Analysis, each consideration has reviewed to depict how it relates to
the system effort.
They are as follows:-
1. Economic feasibility
2. Technical feasibility
3. Operational feasibility

ECONOMIC FEASIBILITY

Economic analysis is the most frequently used technique for evaluating


the effectiveness of a proposed system. More commonly known s
cost/benefit Analysis in this procedure we determine the benefits and
saving that are Expected in this procedure we determine the benefits and
saving that are expected from the proposed system and compare the cost;
we take a decision and implement the new proposed system. The manual
efforts involved in maintaining the A/c and customer information, the
withdrawal, the deposit and balance calculation, is tremendous. This is so
because the volume of information to be handled is tremendous.
Maintaining the records of these many customers is not easy and the
manpower involved is great. With the help of computers it is very easy to
maintain the detail of book and library and to keep track of available
books. In case of computerization, the cost involvement is not very high.
As it is used to be about 5-7 years back. All banking management needs
initially is a desktop computer, a printer and a UPS to maintain

Shivangi Mishra 30
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

continuous supply of electricity. A single operator can handle many


queries. On an average, it should not take more 10-15 minutes to enter
the information of a customer. As part of the feasibility study, an
estimate is made whether the identified user needs may be satisfied using
the current software and hardware. This study decides that whether or not
the proposed system will be cost effective from a business point of view.
In this case, user has one head clerk who does all the work. So the one
clerk has maintain records regarding new A/c and deletion of A/c
addition and deletion of customer, balance amount etc .Since the volume
of information to be handled by a single person is tremendous. An
analysis of the various alternatives suggested by the software
development team follows in subsequent pages.

Shivangi Mishra 31
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

CHAPTER 9
MODULAR DESCRIPTION:

1. Open new account


2. Close an account
3. Modify an account
4. Display an account
5. Display all records
6. Withdraw amount
7. Deposit amount
8. Exit

Module 1- Open an account:

A module new account is literally the form for the


customer to open a new account. A new account is opened with the
following details of the customer, with the default account number

1. Name
2. Address
3. Initial deposit amount

Shivangi Mishra 32
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

Module 2- Deposit:

Deposition should be done each time the customer deposits a


particular amount for an account. Deposition is done in the account after
the following details.

1. Account number

2. Amount to deposit

Module 3-withdrawal:

Using this withdrawal module the user can withdraw a


particular amount for an account. Withdrawal can be done after getting
the following details:

1. Account number

2. Amount to be withdraw

Module 4-view detail of an account:

Using this module the user can withdraw a particular amount


details. It can be done after getting the following details:

1. Account number

2 .Withdraw amount

3 .View account detail

Shivangi Mishra 33
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

Module 5-Display all records:

This module is used to display all the records present in the


corresponding file.

Shivangi Mishra 34
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

CHAPTER 10

DATA FLOW DIAGRAM


A data flow diagram (DFD) is a graphical representation of the "flow" of
data through an information system. DFDs can also be used for the
visualization of data processing (structured design).

(fig :1)

On a DFD, data items flow from an external data source or an internal


data store to an internal data store or an external data sink, via an internal
process.

A DFD provides no information about the timing of processes, or about


whether processes will operate in sequence or in parallel. It is therefore
quite different from a flowchart, which shows the flow of control through
an algorithm, allowing a reader to determine what operations will be

Shivangi Mishra 35
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

performed, in what order, and under what circumstances, but not what
kinds of data will be input to and output from the system, nor where the
data will come from and go to, nor where the data will be stored (all of
which are shown on a DFD).

(f
ig:2)

Shivangi Mishra 36
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

(fig:3)

(fig:4)

Shivangi Mishra 37
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

(fig:5 0th level dfd)

(fig:6)( 1st level dfd)

Shivangi Mishra 38
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

(fig:7)( 2nd level dfd)

Shivangi Mishra 39
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

CHAPTER 11

E-R DIAGRAM

Shivangi Mishra 40
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

CHAPTER 12
UNIFIED MODELING LANGUAGE
The Unified Modeling Language (UML) is used to specify, visualize,
modify, construct and document the artifacts of an object-oriented
software-intensive system under development. UML offers a standard
way to visualize a system's architectural blueprints, including elements
such as:

Activities actors business processes database schemas logical)


components programming language statements reusable software
components.

UML combines techniques from data modeling (entity relationship


diagrams), business modeling (work flows), object modeling, and
component modeling. It can be used with all processes, throughout the
software development life cycle, and across different implementation
technologies. UML has synthesized the notations of the Booch method,
the Object-modeling technique (OMT) and Object-oriented software
engineering (OOSE) by fusing them into a single, common and widely
usable modeling language. UML aims to be a standard modeling
language which can model concurrent and distributed systems. UML is a
de facto industry standard . and is evolving under the auspices of the
Object Management Group (OMG).

Shivangi Mishra 41
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

UML DIAGRAMS

The UML diagrams are :

1. 1 .Use Case Diagram.


2. Activity Diagram.
3. 3 .Sequence Diagram.
4. 4 .Collaboration Diagram .
5. Class Diagram
6. Interaction Diagram

Diagram types:

1 .Static

A .Use Case Diagram.

2 .Dynamic

A .Activity Diagram .

B . Collaboration Diagram

C . Sequence Diagram

Shivangi Mishra 42
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

USE CASE DIAGRAM

A use case diagram in the Unified Modeling Language (UML) is a type


of behavioral diagram defined by and created from a Use-case analysis.
Its purpose is to present a graphical overview of the functionality
provided by a system in terms of actors, their goals (represented as use
cases), and any dependencies between those use cases.

The main purpose of a use case diagram is to show what system


functions are performed for which actor. Roles of the actors in the system
can be depicted.

Use Case diagrams are formally included in two modeling languages


defined by the OMG: the Unified Modeling Language (UML) and
the Systems Modeling Language (SysML).

Shivangi Mishra 43
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

(fig:8 USE – CASE DIAGRAM OF BANKING MANAGEMENT


SYSTEM)

Shivangi Mishra 44
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

CLASS DIAGRAM

In software engineering, a class diagram in the Unified Modeling


Language (UML) is a type of static structure diagram that describes the
structure of a system by showing the system's classes, their attributes,
operations(or)methods and the relationships between the classes.

( fig:11 Class daigram)

ACTIVITY DIAGRAM

Shivangi Mishra 45
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

Activity diagrams are graphical representations of workflows of stepwise


activities and actions with support for choice, iteration and concurrency.
In the Unified Modeling Language, activity diagrams can be used to
describe the business and operational step-by-step workflows of
components in a system. An activity diagram shows the overall flow of
control.

Create Account +
Deposit Initial Balance

Deposit
Amount

Withdraw
Amount

Check
Balance

(fig : 10 ACTIVITY DIAGRAM)

STATE CHART DIAGRAM

Shivangi Mishra 46
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

State diagrams are used to give an abstract description of the behavior of


a system. This behavior is analyzed and represented in series of events,
that could occur in one or more possible states. Hereby "each diagram
usually represents objects of a single class and track the different states
of its objects through the system".

admin log in

Again enter admin username & password enter username ,


password

Login Login
Failed Successfull
Already have an account
If have no account

Transaction
Create
Account

Deposit Withdraw View


Amount Amount Balance

(fig :12 STATE CHART DIAGRAM)

COMPONENT DIAGRAM

Shivangi Mishra 47
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

In the Unified Modeling Language, a component diagram depicts


how components are wired together to form larger components and
or software systems. They are used to illustrate the structure of arbitrarily
complex systems.

1: Creates Account for the Customer


Customer
Admin

2: Customer fills all the required informatio


6: Checks Balance

3: Deposits Money
5: Withdraws Amount

4: Updates Current Balance


7: Updates Amount after Withdrawl Database

Accountan
t

SOURCE CODE

Shivangi Mishra 48
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

CHAPTER 13
SOURCE CODE

Shivangi Mishra 49
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

//*********************************************************

//PROJECT BANKING SYSTEM

//*********************************************************

//INCLUDES HEADER FILES

//*********************************************************

#include<iostream.h>

#include<fstream.h>

#include<process.h>

#include<string.h>

#include<stdio.h>

#include<ctype.h>

#include<conio.h>

#include<dos.h>

#include<stdlib.h>

Shivangi Mishra 50
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

#include<iomanip.h>

#include<graphics.h>

typedef char option[15];

const int ROW = 10,COL = 10;

int scan; // To hold the special characters for moving the prompt in
menu

int ascii;

//*********************************************************
*******

// To display the main menu options

//*********************************************************
*******

option a[]= {

"NewAccount",

"ListofAccounts",

Shivangi Mishra 51
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

"IndAccount",

"DailyTrans",

"MonthlyReport",

"EditAccount",

"Exit"};

// Displays the modify menu options

option b[] = {

"Modify Account",

"Closeaccount",

"Quit"

};

// Function used to do screening

class main_menu

int i,done;

Shivangi Mishra 52
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

public:

void normalvideo(int x,int y,char *str);

void reversevideo(int x,int y,char *str);

void box(int x1,int y1,int x2,int y2);

char menu();

void control_menu();

char e_menu();

void edit_menu();

void help(void);

};

//*********************************************************
*******

/* Class member functions for drawing boxes */

Shivangi Mishra 53
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

//*********************************************************
*******

class shape

public:

void line_hor(int, int, int, char);

void line_ver(int, int, int, char);

void box(int, int, int, int, char);

};

// Class contains the initial deposit of customers

class initial

public:

void add_to_file(int, char t_name[30], char t_address[30], float);

Shivangi Mishra 54
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

// For initial deposits in customers account

void display_list(void); // Displaying customers account list

void delete_account(int); // Deleting customers account

void update_balance(int, char t_name[30], char t_address[30], float);

// For updating the customer account

void modify(void); // To modify the customer account information

int last_accno(void); // To know the last account number

int found_account(int);

// To found the account is in "INITIAL.dat" or not

char *return_name(int);

// Function for validation entry of customer name

char *return_address(int);

// Function for validation entry of customer address

float give_balance(int);

// To print the balance amount of a particular customer

int recordno(int);

void display(int); // To display the customer account

Shivangi Mishra 55
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

private:

void modify_account(int, char t_name[30], char t_address[30]);

// Function to modify the customer account

int accno;

char name[30], address[30];

float balance;

};

// Class contains the customers daily transaction entry

class account

public:

void new_account(void); // Function to create a new account

void close_account(void); // Function to close an account

void display_account(void);// Function to display the accounts

void transaction(void); // To display the transaction process

Shivangi Mishra 56
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

void clear(int, int); // Function to perform a clear screen function

void month_report(void); // Function to list monthly transaction


report

private:

void add_to_file(int,int,int,int,char,char t_type[10],float,float,float);

// Function to add transaction records

void delete_account(int); // Function to delete a transaction record

int no_of_days(int, int, int, int, int, int);

// Function to find the total days

float calculate_interest(int, float);

// Function for calculating interest of an account

void display(int); // Function to display a transaction account

void box_for_display(int); // Function for displaying box

int accno;

char type[10]; // Account type as Cheque or Cash

int dd, mm, yy; // To store the system date/ Enter date

Shivangi Mishra 57
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

char tran; // As the account type is Deposit or Withdraw

float interest, amount, balance;

};

// Function to displays all the menu prompt messages from the pointer
array of

// option a[]

void main_menu::normalvideo(int x,int y,char *str)

gotoxy(x,y);

cprintf("%s",str);

// Function to move the cursor on the menu prompt with a reverse video
color

void main_menu::reversevideo(int x,int y,char *str)

Shivangi Mishra 58
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

textcolor(5+143);

textbackground(WHITE);

gotoxy(x,y);

cprintf("%s",str);

textcolor(GREEN);

textbackground(BLACK);

void main_menu::box(int x1,int y1,int x2,int y2)

for(int col=x1;col<x2 ;col++)

gotoxy(col,y1);

cprintf("%c",196);

gotoxy(col,y2);

cprintf("%c",196);

Shivangi Mishra 59
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

for(int row=y1;row<y2;row++)

gotoxy(x1,row);

cprintf("%c",179);

gotoxy(x2,row);

cprintf("%c",179);

gotoxy(x1,y1);

cprintf("%c",218);

gotoxy(x1,y2);

cprintf("%c",192);

gotoxy(x2,y1);

cprintf("%c",191);

gotoxy(x2,y2);

cprintf("%c",217);

Shivangi Mishra 60
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

char main_menu::menu()

clrscr();

textcolor(22);

box(20, 6, 65, 20);

box(18, 4, 67, 22);

textcolor(5+143);

gotoxy(36, 5);

textbackground(BLUE);

cprintf("B A N K I N G");

textbackground(BLACK);

textcolor(22);

for(i = 1; i < 7; i++)

normalvideo(32, i+10, a[i]);

reversevideo(32, 10, a[0]);

i = done = 0;

Shivangi Mishra 61
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

_setcursortype(_NOCURSOR);

do

int key = getch();

switch (key)

case 00:

key = getch();

switch (key)

case 72:

normalvideo(32, i+10, a[i]);

i--;

if (i == -1)

i = 6;

reversevideo(32,i+10,a[i]);

break;

Shivangi Mishra 62
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

case 80:

normalvideo(32, i+10, a[i]);

i++;

if (i == 7)

i = 0;

reversevideo(32, i+10, a[i]);

break;

break;

case 13:

done = 1;

while (!done);

_setcursortype(_NOCURSOR);

return(i+49);

Shivangi Mishra 63
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

// The function main_menu() is used to display the main menu of


banking system

void main_menu::control_menu()

char choice;

account a;

do

choice = menu();

clrscr();

switch (choice)

case '1':

_setcursortype(_NORMALCURSOR);

box(3, 1, 75, 24);

box(5, 2, 73, 23);

Shivangi Mishra 64
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

a.new_account(); // New account member function

break;

case '2':

box(3, 1, 75, 24);

box(5, 2, 73, 23);

initial ini;

ini.display_list(); // Global list of account function

break;

case '3':

box(3, 1, 75, 24);

box(5, 2, 73, 23);

_setcursortype(_NORMALCURSOR);

a.display_account();

// Displaying individual accounts all transactions

break;

case '4':

box(3, 1, 75, 24);

Shivangi Mishra 65
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

box(5, 2, 73, 23);

account a;

_setcursortype(_NORMALCURSOR);

a.transaction(); // Daily transaction for individual account

break;

case '5':

box(3, 1, 75, 24);

box(5, 2, 73, 23);

_setcursortype(_NORMALCURSOR);

a.month_report(); // Monthly report for any account

break;

case '6':

box(3, 1, 75, 24);

box(5, 2, 73, 23);

gotoxy(10,10);

edit_menu();// Sub menu for modifying or deleting any


account

Shivangi Mishra 66
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

break;

case '7' :exit(0);

} while (choice != 6);

// This function is used to return the cursor position to the edit menu

// function where the menu prompt will valid

char main_menu::e_menu()

clrscr();

textcolor(22);

box(25,6,60,15);

box(23,4,62,17);

textcolor(5+143);

gotoxy(34,5);

textbackground(GREEN);

Shivangi Mishra 67
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

cprintf("E D I T - M E N U");

textcolor(22);

textbackground(BLACK);

for (i = 1;i < 3; i++)

normalvideo(32, i+10, b[i]);

reversevideo(32, 10, b[0]);

i = done = 0;

_setcursortype(_NOCURSOR);

do

int key = getch();

switch (key)

case 00:

key = getch();

switch (key)

Shivangi Mishra 68
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

case 72:

normalvideo(32, i+10, b[i]);

i--;

if (i == -1)

i = 2;

reversevideo(32, i+10, b[i]);

break;

case 80:

normalvideo(32, i+10, b[i]);

i++;

if (i == 3)

i=0;

reversevideo(32, i+10, b[i]);

break;

break;

case 13:

Shivangi Mishra 69
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

done = 1;

}while (!done);

_setcursortype(_NOCURSOR);

return(i+49);

/* Function for edit menu with account modification and close */

void main_menu::edit_menu()

char choice;

account a;

do

choice = e_menu();

clrscr();

switch (choice)

Shivangi Mishra 70
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

case '1':

box(3, 1, 75, 24);

box(5, 2, 73, 23);

initial ini;

_setcursortype(_NORMALCURSOR);

ini.modify();

break;

case '2':

box(3, 1, 75, 24);

box(5, 2, 73, 23);

account a;

_setcursortype(_NORMALCURSOR);

a.close_account();

break;

case '3':

return;

Shivangi Mishra 71
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

} while (choice != 6);

/* Function to draw horizontal line */

void shape::line_hor(int column1, int column2, int row, char c)

for (column1; column1 <= column2; column1++)

gotoxy(column1, row);

cout<< c;

/* Function to draw vertical line */

void shape::line_ver(int row1, int row2, int column, char c)

Shivangi Mishra 72
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

for (row1; row1 <= row2; row1++)

gotoxy(column, row1);

cout<< c;

/* function for drawing box */

void shape::box(int column1, int row1, int column2, int row2, char c)

char ch = 218;

char c1, c2, c3, c4;

char l1 = 196, l2 = 179;

if (c == ch)

c1 = 218;

c2 = 191;

Shivangi Mishra 73
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

c3 = 217;

c4 = 217;

l1 = 196;

l2 = 179;

else

c1 = c;

c2 = c;

c3 = c;

c4 = c;

l1 = c;

c2 = c;

gotoxy(column1, row1);

cout<< c1;

gotoxy(column2, row1);

Shivangi Mishra 74
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

cout<< c2;

gotoxy(column1, row2);

cout<< c3;

gotoxy(column2, row2);

cout<< c4;

column1++;

column2--;

line_hor(column1, column2, row1, l1); //Horizontal line

line_hor(column1, column2, row2, l1);

column1--;

column2++;

row1++;

row2--;

line_ver(row1, row2, column1, l2); // Vertical line

line_ver(row1, row2, column2, l2);

Shivangi Mishra 75
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

/* Function to display help about this project */

void main_menu::help(void)

clrscr();

setbkcolor(7);

settextstyle(7,HORIZ_DIR,4);

outtextxy(70,20,"Welcome to Banking System");

settextstyle(2,HORIZ_DIR,5);

outtextxy(60,100,"You can keep record of daily banking


transaction");

delay(2);

outtextxy(60,130,"This program is capable of holding any no. of


A/c");

delay(2);

outtextxy(60,160,"-In first option you can open new A/c");

delay(2);

Shivangi Mishra 76
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

outtextxy(60,190,"-In second option you can see the list of all


A/c's");

delay(2);

outtextxy(60,220,"-In third option you can see all trans. of ind. A/c");

delay(2);

outtextxy(60,250,"-In fourth optiion you can do banking


transactions");

delay(2);

outtextxy(60,280,"(Deposit/Withdraw)");

delay(2);

outtextxy(60,310,"-In fifth opt. you can take monthly ind. A/c


report");

delay(2);

outtextxy(60,340,"-In sixth opt. you can modify or delete any


account");

delay(2);

outtextxy(60,370,"Note-:Opening amount should not less that Rs.


500/-");

Shivangi Mishra 77
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

delay(2);

outtextxy(60,400,"-And last option is Quit (Exit to Window)");

delay(2);

settextstyle(7,HORIZ_DIR,4);

outtextxy(80,420,"Press any key to continue...");

getch();

/* Function for modifying the existing accounts */

void initial::modify(void)

clrscr();

int j;

char t_acc[10];

int t, t_accno;

gotoxy(17, 1);

cout<< "&lt;0>=Exit";

Shivangi Mishra 78
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

gotoxy(5,5);

cout<< "Enter the account no. ";

gets(t_acc);

t = atoi(t_acc);

t_accno = t;

if (t_accno == 0)

return;

clrscr();

if (!found_account(t_accno))

gotoxy(5, 5);

cout<< "\7Account not found";

getch();

return;

gotoxy(71, 1);

cout<< "&lt;0>=Exit";

Shivangi Mishra 79
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

textbackground(WHITE);

gotoxy(3, 3);

for(j=1;j<=76; j++)

cprintf(" ");

textbackground(BLACK);

textcolor(BLACK+BLINK);

textbackground(WHITE);

gotoxy(30, 3);

cprintf("Modify Account Screen");

textcolor(LIGHTGRAY);

textbackground(BLACK);

int d1, m1, y1;

struct date d; // For extracting system date

getdate(&d);

d1 = d.da_day;

m1 = d.da_mon;

y1 = d.da_year;

Shivangi Mishra 80
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

gotoxy(4, 2);

cout<< "Date: " << d1 << "/" << m1 << "/" << y1;

char ch;

display(t_accno);

account a;

do

a.clear(5, 13);

gotoxy(5, 13);

cout<< "Modify this account <y/n>: ";

ch = getche();

if (ch == '0')

return;

ch = toupper(ch);

}while (ch != 'N' && ch != 'Y');

if (ch == 'N')

return;

Shivangi Mishra 81
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

int modified = 0, valid;

char t_name[30], t_address[30];

gotoxy(5, 15);

cout<<"Name : ";

gotoxy(5, 16);

cout<< "Address : ";

do

a.clear(15, 15);

a.clear(5, 23);

gotoxy(5, 23);

cout<< "Enter Name or Press Enter for No Change";

valid = 1;

gotoxy(15, 15);

gets(t_name);

strupr(t_name);

if (t_name[0] == '0')

Shivangi Mishra 82
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

return;

if (strlen(t_name) > 25)

valid = 0;

gotoxy(5, 23);

cprintf("\7Name should not greater than 25");

getch();

} while (!valid);

do

a.clear(15, 16);

a.clear(5, 23);

gotoxy(5, 23);

cout<<"Enter Address or press enter for no Change";

valid = 1;

gotoxy(15, 16);

Shivangi Mishra 83
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

gets(t_address);

strupr(t_address);

if (t_address[0] == '0')

return;

if (strlen(t_address) > 25)

valid = 0;

gotoxy(5, 23);

cprintf("\7Address should not greater than 25");

getch();

}while (!valid);

if (strlen(t_address) > 0)

modified = 1;

if (!modified)

return;

// clears the screen at 23rd row and from 5th column

Shivangi Mishra 84
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

a.clear(5,23);

do

a.clear(5, 23);

gotoxy(5, 18);

cout<<"Do you want to save Changes <Y/N>: ";

ch = getche();

if (ch == '0')

return;

ch = toupper(ch);

}while (ch != 'N' && ch != 'Y');

if (ch == 'N')

return;

// Passes the parameter to add in data file

modify_account(t_accno, t_name, t_address);

gotoxy(5, 21);

cout<<"\7Record modified";

Shivangi Mishra 85
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

gotoxy(5, 23);

cout<< "Press any key to continue...";

getch();

/* Function for displaying an account when modified */

void initial::display(int t_accno)

fstream file;

file.open("INITIAL.dat", ios::in);

file.seekg(0, ios::beg);

// Displays the record contents matching with t_accno from

// INITIAL.dat data file

while (file.read((char *)this, sizeof(initial)))

if (t_accno == accno)

Shivangi Mishra 86
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

gotoxy(8, 5);

cout<< "Account no. " << accno;

gotoxy(10, 8);

cout<< "Name : ";

puts(name);

gotoxy(10, 9);

cout<< "Address : ";

puts(address);

gotoxy(10, 10);

cout<< "Balance : " << setw(15) // setwidth

<< setprecision(2) // set position of decimal point

<< setiosflags(ios::left) // set left justified output

<< setiosflags(ios::showpoint) // always show decimal point

<< setiosflags(ios::fixed)<< balance;// set fixed notation for display

break;

Shivangi Mishra 87
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

file.close();

/* Function for updating the modified account into INITIAL.dat file */

void initial::modify_account(int t_accno,char t_name[30],char


t_address[30])

int recno;

recno = recordno(t_accno);

fstream file;

file.open("INITIAL.dat", ios::out|ios::ate);

strcpy(name, t_name);

strcpy(address, t_address);

int location;

// finds the position in data file

location = (recno-1) * sizeof(initial);

file.seekp(location);

Shivangi Mishra 88
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

// Overwrites the modified record into INITIAL.dat data file

file.write((char *)this, sizeof(initial));

file.close();

return;

/* Function to find the last account number */

int initial::last_accno(void)

fstream file;

file.open("INITIAL.dat", ios::in);

file.seekg(0, ios::beg);

int count = 0;

// Founds the last account no.

while (file.read((char *)this, sizeof(initial)))

count = accno;

file.close();

Shivangi Mishra 89
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

return count;

//This function add_to_file() is used to create new/fresh record in data


file

void initial::add_to_file(int t_accno,char t_name[30],char


t_address[30],float t_balance)

accno = t_accno;

strcpy(name, t_name);

strcpy(address, t_address);

balance = t_balance;

fstream file;

// Appends new account record with the balance into INITIAL.dat


data file

file.open("INITIAL.dat", ios::out|ios::app);

file.write((char *)this, sizeof(initial));

file.close();

Shivangi Mishra 90
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

// Function for deleting a account from INITIAL.dat file

void initial::delete_account(int t_accno)

fstream file;

file.open("INITIAL.dat", ios::in);

fstream temp;

temp.open("TEMP.dat", ios::out);

file.seekg(0,ios::beg);

// Uses a copy method to delete the account from INTITAL.dat data


file

while (!file.eof())

file.read((char *)this, sizeof(initial));

if (file.eof())

break;

Shivangi Mishra 91
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

if (accno != t_accno)

temp.write((char *)this, sizeof(initial));

file.close();

temp.close();

file.open("INITIAL.dat", ios::out);

temp.open("TEMP.dat", ios::in);

temp.seekg(0, ios::beg);

// Copy the TEMP.dat contents into INTITAL.dat data file

while (!temp.eof())

temp.read((char *)this, sizeof(initial));

if (temp.eof())

break;

if (accno != t_accno)

file.write((char *)this, sizeof(initial));

Shivangi Mishra 92
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

file.close();

temp.close();

// Function for adding account details of daily tranaction into


BANKING.dat file

void account::add_to_file(int t_accno,int d1,int m1,int y1,char


t_tran,char t_type[10],float t_interest,float t_amount,float t_balance)

fstream file;

file.open("BANKING.dat", ios::app);

accno = t_accno;

getch();

dd = d1;

mm = m1;

yy = y1;

Shivangi Mishra 93
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

tran = t_tran;

strcpy(type, t_type);

interest = t_interest;

amount = t_amount;

balance = t_balance;

// Appends the transaction record into BANKING.dat data file

file.write((char *)this, sizeof(account));

file.close();

/* Function for deleting an account from BANKING.dat file. */

void account::delete_account(int t_accno)

fstream file;

file.open("BANKING.dat", ios::in); // Open to read records

fstream temp;

temp.open("TEMP.dat", ios::out); // Open to write records

Shivangi Mishra 94
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

file.seekg(0, ios::beg); // Positioned from begining of the file

// Uses the copy method for deleting the transaction record from

// BANKING.dat data file

while (!file.eof())

file.read((char *)this, sizeof(account));

if (file.eof())

break;

if (accno != t_accno)

temp.write((char *)this, sizeof(account));

file.close();

temp.close();

file.open("BANKING.dat", ios::out);

temp.open("TEMP.dat", ios::in);

temp.seekg(0, ios::beg);

// Uses copy method to transfer the record from TEMP.dat file to

Shivangi Mishra 95
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

// BANKING.dat data file

while (!temp.eof())

temp.read((char *)this, sizeof(account));

if (temp.eof())

break;

if (accno != t_accno)

file.write((char *)this, sizeof(account));

file.close();

temp.close();

/* Function for displaying an account from "INITIAL.dat". */

void initial::display_list(void)

clrscr();

Shivangi Mishra 96
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

int flag;

float t_bal = 0.0;

fstream file;

gotoxy(25,2);

cout<< "Accounts List in Bank";

gotoxy(25, 3);

cout<< "=====================";

int d1, m1, y1;

struct date d; // For extracting system date

getdate(&d);

d1 = d.da_day;

m1 = d.da_mon;

y1 = d.da_year;

gotoxy(62, 3);

cout<< "Date: " << d1 << "/" << m1 << "/" << y1;

gotoxy(1, 4);

for (int j = 1; j <= 79; j++)

Shivangi Mishra 97
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

cout<< "=";

gotoxy(1, 5);

cout<< "Accno#";

gotoxy(10,5);

cout<< "Name";

gotoxy(30,5);

cout<< "Address";

gotoxy(65,5);

cout<< "Balance";

gotoxy(1, 6);

for (j = 1; j <= 79; j++)

cout<< "=";

file.open("INITIAL.dat", ios::in);

file.seekg(0,ios::beg);

int row = 7;

// Reads all the records to display on the screen

while (file.read((char *)this, sizeof(initial)))

Shivangi Mishra 98
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

flag = 0;

delay(2);

gotoxy(3, row);

cout<< accno;

gotoxy(10, row);

puts(name);

gotoxy(30, row);

puts(address);

gotoxy(65, row);

cout<<setw(15)<<setprecision(2)<<setiosflags(ios::left)

<<setiosflags(ios::showpoint)<<setiosflags(ios::fixed)<<balance;

t_bal = t_bal + balance;

row++;

if (row > 23)

flag = 1;

Shivangi Mishra 99
NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

row = 6;

gotoxy(4, 24);

cout<<"Press any key to continue.... ";

getch();

clrscr();

gotoxy(1, row);

for (j = 1; j <= 79; j++)

cout<< "=";

row++;

gotoxy(3, row);

cout<< "Total Balance in Bank is : ";

gotoxy(65, row);

cout<<setw(15)<<setprecision(2)<<setiosflags(ios::left)

<<setiosflags(ios::showpoint)<<setiosflags(ios::fixed)<<t_bal;

file.close();

Shivangi Mishra 100


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

if (!flag)

gotoxy(4, 24);

cout<< "Press any key to continue...";

getch();

/* Function for clearing specified row and column. */

void account::clear(int col, int row)

for (int j = col; j <= 79; j++)

gotoxy(j, row);

cout<< " ";

Shivangi Mishra 101


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

/* Function to found an account for display account function. */

int initial::found_account(int t_accno)

fstream file;

file.open("INITIAL.dat", ios::in);

file.seekg(0, ios::beg);

int found = 0;

// Searches the specified record in INITIAL.dat data file

while (file.read((char *)this, sizeof(initial)))

if (accno == t_accno)

found = 1;

break;

Shivangi Mishra 102


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

file.close();

return found;

/* Function for return name of the account holder from INITIAL.dat. */

char *initial::return_name(int t_accno)

fstream file;

file.open("INITIAL.dat", ios::in);

file.seekg(0, ios::beg);

char t_name[30];

// Return the name to display at report screen if found

while (file.read((char *)this, sizeof(initial)))

if (accno == t_accno)

strcpy(t_name, name);

Shivangi Mishra 103


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

break;

file.close();

return t_name;

/* Function for return address of the account holder from INITIAL.dat.


*/

char *initial::return_address(int t_accno)

fstream file;

file.open("INITIAL.dat", ios::in);

file.seekg(0, ios::beg);

char t_address[30];

// Return the address to display at report screen if found

while (file.read((char *)this, sizeof(initial)))

Shivangi Mishra 104


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

if (accno == t_accno)

strcpy(t_address, address);

break;

file.close();

return t_address;

/* Function for display account details */

void account::box_for_display(int t_accno)

int d1, m1, y1;

struct date d;

getdate(&d);

Shivangi Mishra 105


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

d1 = d.da_day;

m1 = d.da_mon;

y1 = d.da_year;

gotoxy(63, 2);

cout<< "Date: " << d1 << "/" << m1 << "/" << y1;

gotoxy(4, 2);

cout<< "Account No. " << t_accno;

initial ini;

char t_name[30];

strcpy(t_name, ini.return_name(t_accno));

char t_address[30];

strcpy(t_address, ini.return_address(t_accno));

gotoxy(25, 2);

cout<< t_name;

gotoxy(25, 3);

cout<< t_address;

gotoxy(4, 5);

Shivangi Mishra 106


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

cout<< "Global Report of Account";

textbackground(WHITE);

textcolor(BLACK);

textbackground(WHITE);

gotoxy(1, 6);

for (int i = 1; i <=79; i++)

cout<< "=";

gotoxy(4, 7);

cprintf("Date Particular Deposit Withdraw


Balance");

gotoxy(1, 8);

for (i = 1; i <=79; i++)

cout<< "=";

textcolor(LIGHTGRAY);

textbackground(BLACK);

Shivangi Mishra 107


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

/* Function for display an account from BANKING.dat file. */

void account::display_account(void)

clrscr();

char t_acc[10];

int j;

int tamt = 0, damt = 0, wamt = 0;

int t, t_accno;

gotoxy(71, 1);

cout<< "&lt;0>=Exit";

gotoxy(5, 5);

cout<<"Enter account no. ";

gets(t_acc);

t = atoi(t_acc);

t_accno = t;

if (t_accno == 0)

return;

Shivangi Mishra 108


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

clrscr();

initial ini;

if (!ini.found_account(t_accno))

gotoxy(5, 5);

cout<< "\7Account not found";

getch();

return;

// Display the heading from this function

box_for_display(t_accno);

int row = 9, flag;

fstream file;

file.open("BANKING.dat", ios::in);

while (file.read((char *)this, sizeof(account)))

if (accno == t_accno)

Shivangi Mishra 109


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

flag = 0;

delay(2);

gotoxy(4, row);

cout<< dd << "-" << mm << "-" << yy;

gotoxy(16, row);

puts(type);

if (tran == 'D')

damt = damt + amount;

tamt = tamt + amount;

gotoxy(30, row);

else

wamt = wamt + amount;

tamt = tamt - amount;

Shivangi Mishra 110


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

gotoxy(42, row);

cout<< setw(15)<< setprecision(2)<< setiosflags(ios::left)

<< setiosflags(ios::showpoint)<< setiosflags(ios::fixed)<<


amount;

gotoxy(66, row);

cout<< setw(15)<< setprecision(2)<< setiosflags(ios::left)

<< setiosflags(ios::showpoint)<<
setiosflags(ios::fixed)<<balance;

row++;

if (row > 23)

flag = 1;

row = 7;

gotoxy(4, 24);

cout<<"Press any key to continue";

getch();

Shivangi Mishra 111


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

clrscr();

box_for_display(t_accno);

file.close();

gotoxy(1, row);

for (j = 1; j <= 79; j++)

cout<< "=";

row++;

gotoxy(4, row);

cout<< "Total-->:";

gotoxy(30, row);

cout<<setw(15)<< setprecision(2)<< setiosflags(ios::left)

<< setiosflags(ios::showpoint)<< setiosflags(ios::fixed)<< damt;

gotoxy(42, row);

cout<< setw(15)<< setprecision(2)<< setiosflags(ios::left)

Shivangi Mishra 112


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

<< setiosflags(ios::showpoint)<< setiosflags(ios::fixed)<< wamt;

gotoxy(66, row);

cout<< setw(15)<< setprecision(2)<< setiosflags(ios::left)

<< setiosflags(ios::showpoint)<< setiosflags(ios::fixed)<< tamt;

if (!flag)

gotoxy(4, 24);

cout<< "Press any key to continue...";

getch();

/* Function to list monthWise transaction report. */

void account::month_report(void)

int dd1, mm1, yy1;

clrscr();

Shivangi Mishra 113


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

gotoxy(10, 5);

cout<< "Enter any date of a month ";

gotoxy(38, 5);

cin >> dd1;

gotoxy(40, 5);

cout<<"-";

gotoxy(41, 5);

cin >> mm1;

gotoxy(43, 5);

cout<<"-";

gotoxy(44, 5);

cin >> yy1;

clrscr();

char t_acc[10];

int j;

int tamt = 0, damt = 0, wamt = 0;

int t, t_accno;

Shivangi Mishra 114


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

gotoxy(71, 1);

cout<<"&lt;0>=Exit";

gotoxy(5, 5);

cout<<"Enter account no. ";

gets(t_acc);

t = atoi(t_acc);

t_accno = t;

if (t_accno == 0)

return;

clrscr();

initial ini;

if (!ini.found_account(t_accno))

gotoxy(5, 5);

cout<< "\7Account not found";

getch();

return;

Shivangi Mishra 115


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

box_for_display(t_accno);

gotoxy(4, 5);

cout<< "Statement Month: " << dd1 << "/" << mm1 << "/" << yy1;

getch();

int row = 9, flag;

fstream file;

file.open("BANKING.dat", ios::in);

float pre_balance = 0.0; // Previous balance amount

// The loop finds the last months balance

while (file.read((char *)this, sizeof(account)))

//Checks the account no. and till the previous month and till current
year

if((accno == t_accno) && ((mm < mm1 && yy <= yy1) || (mm1 <
mm && yy < yy1)))

Shivangi Mishra 116


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

pre_balance = balance;

file.close();

file.open("BANKING.dat", ios::in);

gotoxy(54, row);

cout<<"B/F .... "


<<setw(15)<<setprecision(2)<<setiosflags(ios::left)

<<setiosflags(ios::showpoint)<<setiosflags(ios::fixed)<<pre_balance;

row++;

// The loop displays the current months transaction after previous


month

while (file.read((char *)this, sizeof(account)))

if ((accno == t_accno) && (mm1 == mm && yy1 <= yy))

flag = 0;

Shivangi Mishra 117


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

delay(2);

gotoxy(4, row);

cout<< dd << "-" << mm << "-" << yy;

gotoxy(16, row);

puts(type);

if (tran == 'D')

damt = damt + amount;

tamt = tamt + amount;

gotoxy(30, row);

else

wamt = wamt + amount;

tamt = tamt - amount;

gotoxy(42, row);

Shivangi Mishra 118


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

cout<<setw(15)<<setprecision(2)<<setiosflags(ios::left)

<<setiosflags(ios::showpoint)<<setiosflags(ios::fixed)<<amount;

gotoxy(66, row);

cout<<setw(15)<<setprecision(2)<<setiosflags(ios::left)

<<setiosflags(ios::showpoint)<<setiosflags(ios::fixed)<<balance;

row++;

// If row increases 23 then the next screen continues

if (row > 23)

flag = 1;

row = 7;

gotoxy(4, 24);

cout<<"Press any key to continue";

getch();

clrscr();

Shivangi Mishra 119


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

box_for_display(t_accno);

file.close();

gotoxy(1, row);

for (j = 1; j <= 79; j++)

cout<< "=";

row++;

gotoxy(4, row);

cout<< "Total-->:";

gotoxy(30, row);

// Deposited amount

cout <<setw(15) // setwidth

<< setprecision(2) // set position of decimal point

<< setiosflags(ios::left) // set left justified output

<< setiosflags(ios::showpoint)// always show decimal point

Shivangi Mishra 120


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

<< setiosflags(ios::fixed) // set fixed notation for display

<< damt;

gotoxy(42, row);

// Withdraw amount

cout<< setw(15)<< setprecision(2)<< setiosflags(ios::left)

<< setiosflags(ios::showpoint)<<setiosflags(ios::fixed)<< wamt;

gotoxy(66, row);

tamt = tamt + pre_balance;

// Balance amount

cout<< setw(15)<< setprecision(2)<< setiosflags(ios::left)

<< setiosflags(ios::showpoint)<< setiosflags(ios::fixed)<< tamt;

if (!flag)

gotoxy(4, 24);

cout<< "Press any key to continue...";

getch();

Shivangi Mishra 121


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

/* Function for creating new account for new customer. */

void account::new_account(void)

char ch;

int i, valid;

clrscr();

initial ini;

shape s;

s.box(2, 1, 79, 25, 218);

s.box(25, 2, 54, 4, 219);

gotoxy(65, 2);

cout<< "&lt;0>=Exit";

gotoxy(3,3);

for (i=1; i<=76; i++)

cprintf(" ");

Shivangi Mishra 122


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

textbackground(BLACK);

textcolor(BLACK+BLINK);

textbackground(WHITE);

gotoxy(30, 3);

cprintf("Open New Account");

textcolor(LIGHTGRAY);

textbackground(BLACK);

int d1, m1, y1;

struct date d; // For extracting system date

getdate(&d);

d1 = d.da_day;

m1 = d.da_mon;

y1 = d.da_year;

int t_accno;

t_accno = ini.last_accno();

t_accno++;

Shivangi Mishra 123


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

//Appends and deletes false record to create primary position in data


files

if (t_accno == 1)

ini.add_to_file(t_accno, "abc", "xyz", 1.1);

ini.delete_account(t_accno);

cout<< "Press xxxxxxx";

getch();

add_to_file(t_accno, 1, 1, 1997, 'D', "INITIAL", 1.1, 1.1, 1.1);

delete_account(t_accno);

char t_name[30], t[10], t_address[30];

float t_bal = 0.0, t_balance = 0.0;

gotoxy(5, 6);

cout<< "Date: " << d1 << '/' << m1 << '/' << y1;

gotoxy(5, 8);

cout<< "Account No # " << t_accno;

Shivangi Mishra 124


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

gotoxy(5, 10);

cout<< "Name : ";

gotoxy(5, 11);

cout<< "Address : ";

gotoxy(5, 12);

cout<< "Name of verifying Person : ";

gotoxy(5, 14);

cout<< "Initial Deposit : ";

do

clear(15, 10);

clear(5, 23);

gotoxy(5, 23);

cout<< "Enter Name of the Person";

valid = 1;

gotoxy(15, 10);

gets(t_name);

Shivangi Mishra 125


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

strupr(t_name);

if (t_name[0] == '0')

return;

if (strlen(t_name) == 0 || strlen(t_name) > 25)

valid = 0;

gotoxy(5, 23);

cprintf("\7Name should not greater than 25");

getch();

}while (!valid);

do

clear(25, 15);

clear(5, 23);

gotoxy(5, 23);

cout<<"Enter Address of the Person ";

Shivangi Mishra 126


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

valid = 1;

gotoxy(15, 11);

gets(t_address);

strupr(t_address);

if (t_address[0] == '0')

return;

if (strlen(t_address) == 0 || strlen(t_address) > 25)

valid = 0;

gotoxy(5, 23);

cprintf("\7Address should not greater than 25");

getch();

}while (!valid);

do

char vari[30];

Shivangi Mishra 127


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

clear(13, 12);

clear(5, 23);

gotoxy(5, 23);

cout<<"Enter name of the verifying Person ";

valid = 1;

gotoxy(31, 12);

gets(vari);

strupr(vari);

if (vari[0] == '0')

return;

if (strlen(vari) == 0 || strlen(vari) > 25)

valid = 0;

gotoxy(5, 23);

cprintf("Should not blank or greater than 25");

getch();

Shivangi Mishra 128


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

}while (!valid);

do

clear(13, 12);

clear(5, 23);

gotoxy(5, 23);

cout<<"Enter initial amount to be deposit ";

valid = 1;

gotoxy(23, 14);

gets(t);

t_bal = atof(t);

t_balance = t_bal;

if (t[0] == '0')

valid = 0;

gotoxy(5, 23);

cprintf("\7Should not less than 500");

Shivangi Mishra 129


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

getch();

}while (!valid);

clear(5, 23);

do

clear(5, 17);

valid = 1;

gotoxy(5, 17);

cout<< "Do you want to save the record <Y/N>: ";

ch = getche();

if (ch == '0')

return;

ch = toupper(ch);

}while (ch != 'N' && ch != 'Y');

if (ch == 'N')

return;

Shivangi Mishra 130


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

float t_amount, t_interest;

t_amount = t_balance;

t_interest = 0.0;

char t_tran, t_type[10];

t_tran = 'D';

strcpy(t_type, "INITIAL");

//Appends records contents into both INITIAL.dat and BANKING.dat


data files

ini.add_to_file(t_accno, t_name, t_address, t_balance);

add_to_file(t_accno, d1, m1, y1, t_tran, t_type, t_interest, t_amount,


t_balance);

/* Function for returning balance amount of an account. */

float initial::give_balance(int t_accno)

fstream file;

Shivangi Mishra 131


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

file.open("INITIAL.dat", ios::in);

file.seekg(0, ios::beg);

float t_balance;

// Gives the last balance of an individual account

while (file.read((char *)this, sizeof(initial)))

if (accno == t_accno)

t_balance = balance;

break;

file.close();

return t_balance;

/* Function for returning the record no. for updating balance */

Shivangi Mishra 132


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

int initial::recordno(int t_accno)

fstream file;

file.open("INITIAL.dat", ios::in);

file.seekg(0, ios::beg);

int count = 0;

// Finds the record position in INITIAL.dat data file

while (file.read((char *)this, sizeof(initial)))

count++;

if (t_accno == accno)

break;

file.close();

return count;

Shivangi Mishra 133


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

/* Function for updating the balance for the given account no. */

void initial::update_balance(int t_accno,char t_name[30],char


t_address[30],float t_balance)

int recno;

recno = recordno(t_accno);

fstream file;

file.open("INITIAL.dat", ios::out|ios::ate);

strcpy(name, t_name);

strcpy(address, t_address);

balance = t_balance;

int location;

location = (recno-1) * sizeof(initial); // Find the location in file

file.seekp(location); // Searches the insertion position in data file

// Updates the balance amount in INITIAL.dat data file

file.write((char *)this, sizeof(initial));

Shivangi Mishra 134


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

file.close();

/* Function to return no. days between two dates. */

int account::no_of_days(int d1, int m1, int y1, int d2, int m2, int y2)

static int month[] = {31, 28, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30};

int days = 0;

while (d1 != d2 || m1 != m2 || y1 != y2)

days++;

d1++;

if (d1 > month[m1-1])

d1 = 1;

m1++;

Shivangi Mishra 135


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

if (m1 > m2)

m1 = 1;

y1++;

return days;

/* Function for calculates interest */

float account::calculate_interest(int t_accno, float t_balance)

fstream file;

file.open("BANKING.dat", ios::in);

file.seekg(0, ios::beg);

int d1, m1, y1, days;

while (file.read((char *)this, sizeof(account)))

Shivangi Mishra 136


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

if (accno == t_accno)

d1 = dd;

m1 = mm;

y1 = yy;

break;

int d2, m2, y2;

struct date d;

getdate(&d);

d2 = d.da_day;

m2 = d.da_mon;

y2 = d.da_year;

float t_interest = 0.0;

Shivangi Mishra 137


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

if((y2 < y1) || (y2==y1 && m2 < m1) || (y2==y1 && m2 == m1) &&
(d2 < d1))

return t_interest;

days = no_of_days(d1, m1, y1, d2, m2, y2);

int months = 0;

if (days > 30)

months = days / 30;

t_interest = ((t_balance*2)/100 * months);

file.close();

return t_interest;

/* Function for making daily transaction (Deposit 'D'/Withdraw 'W'. */

void account::transaction(void)

Shivangi Mishra 138


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

clrscr();

char t_acc[10];

int t, t_accno, valid;

gotoxy(71,1);

cout<<"&lt;0>=Exit";

gotoxy(5, 5);

cout<<"Enter the account no. ";

gets(t_acc);

t = atoi(t_acc);

t_accno = t;

if (t_accno == 0)

return;

clrscr();

initial ini;

if (!ini.found_account(t_accno))

gotoxy(5, 5);

Shivangi Mishra 139


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

cout<< "\7Account not found";

getch();

return;

gotoxy(71, 1);

cout<< "&lt;0>=Exit";

gotoxy(3, 3);

for (int i=1; i<=76; i++)

cprintf(" ");

textbackground(BLACK);

textcolor(BLACK+BLINK);

textbackground(WHITE);

gotoxy(29, 3);

cprintf ("Transaction in Account");

textcolor(LIGHTGRAY);

textbackground(BLACK);

int d1, m1, y1;

Shivangi Mishra 140


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

struct date d;

getdate(&d);

d1 = d.da_day;

m1 = d.da_mon;

y1 = d.da_year;

gotoxy(5, 6);

cout<< "Date: " << d1 << "/" << m1 << "/" << y1;

gotoxy(5, 8);

cout<< "Accnount no. " << t_accno;

char t_name[30];

char t_address[30];

float t_balance;

strcpy(t_name, ini.return_name(t_accno));

strcpy(t_address, ini.return_address(t_accno));

t_balance = ini.give_balance(t_accno);

gotoxy(27, 11);

cout<< "Name : " << t_name;

Shivangi Mishra 141


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

gotoxy(27, 12);

cout<< "Address : " << t_address;

gotoxy(5, 15);

cout<<"Last balance Rs. "<< setw(15)<< setprecision(2)

<<setiosflags(ios::left)<<setiosflags(ios::showpoint)

<<setiosflags(ios::fixed)<<t_balance;

char t_tran, t_type[10], tm[10];

float t_amount, t_amt;

do

clear(5, 10);

valid = 1;

gotoxy(5, 10);

cout<< "Deposit or Withdraw (D/W) : ";

t_tran = getch();

if (t_tran == '0')

return;

Shivangi Mishra 142


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

t_tran = toupper(t_tran);

}while (t_tran != 'D' && t_tran != 'W');

do

clear(5, 19);

clear(5, 23);

gotoxy(5, 23);

cout<< "Enter Transaction by Cash or Cheque ";

valid = 1;

gotoxy(5, 19);

cout<< "Cash/Cheque : ";

gets(t_type);

strupr(t_type);

if (t_type[0] == '0')

return;

if (strcmp(t_type, "CASH") && strcmp(t_type, "CHEQUE"))

Shivangi Mishra 143


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

valid = 0;

gotoxy(5, 23);

cprintf("\7Enter correctly");

getch();

}while (!valid);

do

clear(5, 21);

clear(5, 23);

gotoxy(5, 23);

cout<< "Enter Amount for Transaction ";

valid = 1;

gotoxy(5, 21);

cout<< "Amount Rs. ";

gets(tm);

t_amt = atof(tm);

Shivangi Mishra 144


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

t_amount = t_amt;

if (tm[0] == '0')

return;

if ((t_tran == 'W' && t_amount > t_balance) || (t_amount < 1))

valid = 0;

gotoxy(5, 23);

cprintf("\7Invalid Data entered");

getch();

}while (!valid);

char ch;

clear(5, 23);

do

clear(20, 23);

valid = 1;

Shivangi Mishra 145


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

gotoxy(40, 20);

cout<< "Save Transaction <Y/N> : ";

ch = getche();

if (ch == '0')

return;

ch = toupper(ch);

}while (ch != 'N' && ch != 'Y');

if (ch == 'N')

return;

float t_interest;

t_interest = calculate_interest(t_accno, t_balance);

if (t_tran == 'D')

t_balance = t_balance + t_amount + t_interest;

else

t_balance = (t_balance - t_amount) + t_interest;

// Modified records are updated in data bases.

ini.update_balance(t_accno, t_name, t_address, t_balance);

Shivangi Mishra 146


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

add_to_file(t_accno,d1,m1,y1,t_tran,t_type,t_interest,t_amount,t_bala
nce);

/* Function for closing any account after inputing account number. */

void account::close_account(void)

clrscr();

char t_acc[10];

int t, t_accno;

gotoxy(71, 1);

cout<<"&lt;0>=Exit";

gotoxy(5, 5);

cout<<"Enter the account no. ";

gets(t_acc);

t = atoi(t_acc);

t_accno = t;

Shivangi Mishra 147


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

if (t_accno == 0)

return;

clrscr();

initial ini;

if (!ini.found_account(t_accno))

gotoxy(5, 5);

cout<< "\7Account not found ";

getch();

return;

gotoxy(71, 1);

cout<< "&lt;0>=Exit";

gotoxy(3, 3);

textbackground(WHITE);

for (int i=1; i<=76; i++)

cprintf(" ");

Shivangi Mishra 148


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

textbackground(BLACK);

textcolor(BLACK+BLINK);

textbackground(WHITE);

gotoxy(30, 3);

cprintf("Close account screen");

textcolor(LIGHTGRAY);

textbackground(BLACK);

int d1, m1, y1;

struct date d;

getdate(&d);

d1 = d.da_day;

m1 = d.da_mon;

y1 = d.da_year;

gotoxy(5, 6);

cout<< "Date: " << d1 << "/" << m1 << "/" << y1;

char ch;

ini. display(t_accno);

Shivangi Mishra 149


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

do

clear(5, 15);

gotoxy(5, 15);

cout<< "Close this account <y/n> ";

ch = getche();

if (ch == '0')

return;

ch = toupper(ch);

}while (ch != 'N' && ch != 'Y');

if (ch == 'N')

return;

// Function calls to delete the existing account no.

ini.delete_account(t_accno);

delete_account(t_accno);

gotoxy(5, 20);

cout<<"\7Account Deleted";

Shivangi Mishra 150


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

gotoxy(5, 23);

cout<< "Press any key to continue...";

getch();

// Main program logic which control the class members and member
functions.

void main(void)

main_menu m_menu;

int gdriver = DETECT, gmode, errorcode;

initgraph(&gdriver, &gmode,"c:\\turboc3\\bgi");

m_menu.help();

closegraph();

m_menu.control_menu

Shivangi Mishra 151


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

CHAPTER 14
INPUT AND OUTPUT SCREENS

Shivangi Mishra 152


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

Shivangi Mishra 153


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

Snapshot: - 1. Welcome page of the project

Shivangi Mishra 154


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

Snapshot: - 2. Main menu in the menu we can perform all the


operations.

Shivangi Mishra 155


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

Snapshot: - 3. Open new account

Snapshot:-4. Accounts List in bank

Shivangi Mishra 156


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

Snapshot:-5. Account details for particular accounts. Here account


number 18179 are shown.

Shivangi Mishra 157


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

Snapshot:-6.Transaction in account .

Shivangi Mishra 158


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

Snapshot:- 7. Modify the accounts .

Shivangi Mishra 159


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

CHAPTER 15
TESTING AND MAINTENANCE METHODLOGY

Software testing is an investigation conducted to provide stakeholders


with information about the quality of the product or service under test. [1]
Software testing also provides an objective, independent view of the
software to allow the business to appreciate and understand the risks of
software implementation. Test techniques include, but are not limited to,
the process of executing a program or application with the intent of
finding software bugs (errors or other defects).

Software testing can also be stated as the process of


validating and verifying that a software program/application/product:

meets the business and technical requirements that guided its design and
development;

works as expected; and

can be implemented with the same characteristics.

Software testing, depending on the testing method employed, can be


implemented at any time in the development process. However, most of
the test effort occurs after the requirements have been defined and the

Shivangi Mishra 160


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

coding process has been completed. As such, the methodology of the test
is governed by the software development methodology adopted.

Different software development models will focus the test effort at


different points in the development process. Newer development models,
such as Agile, often employ test driven development and place an
increased portion of the testing in the hands of the developer, before it
reaches a formal team of testers. In a more traditional model, most of the
test execution occurs after the requirements have been defined and the
coding process has been completed.

Software Testing is the process of executing software in a controlled


manner, in order to answer the question - Does the software behave as
specified?. Software testing is often used in association with the terms
verification and validation. Validation is the checking or testing of items,
includes software, for conformance and consistency with an associated
specification. Software testing is just one kind of verification, which also
uses techniques such as reviews, analysis, inspections, and walkthroughs.
Validation is the process of checking that what has been specified is what
the user actually wanted.

Validation : Are we doing the right job?

Verification : Are we doing the job right?

Shivangi Mishra 161


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

Software testing should not be confused with debugging. Debugging is


the process of analyzing and localizing bugs when software does not
behave as expected. Although the identification of some bugs will be
obvious from playing with the software, a methodical approach to
software testing is a much more thorough means for identifying bugs.
Debugging is therefore an activity which supports testing, but cannot
replace testing. Other activities which are often associated with software
testing are static analysis and dynamic analysis. Static analysis
investigates the source code of software, looking for problems and
gathering metrics without actually executing the code. Dynamic analysis
looks at the behavior of software while it is executing, to provide
information such as execution traces, timing profiles, and test coverage
information.
Testing is a set of activity that can be planned in advanced and conducted
systematically. Testing begins at the module level and work towards the
integration of entire computers based system. Nothing is complete
without testing, as it vital success of the system testing objectives, there
are several rules that can serve as testing objectives. They are11 Testing
is a process of executing a program with the intend of finding an error. A
good test case is one that has high possibility of finding an undiscovered
error .A successful test is one that uncovers an undiscovered error.
If a testing is conducted successfully according to the objectives as stated
above, it would uncovered errors in the software also testing demonstrate

Shivangi Mishra 162


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

that the software function appear to be working according to the


specification, that performance requirement appear to have been met.
There are three ways to test program for correctness.

 For implementation efficiency


 For computational complexity
 Test for correctness are supposed to verify that a program does
exactly what it was designed to do. This is much more difficult
than it may at first appear, especially for large programs.

Static vs. dynamic testing

There are many approaches to software testing. Reviews, walkthroughs,


or inspections are considered as static testing, whereas actually executing
programmed code with a given set of test cases is referred to as dynamic
testing. Static testing can be (and unfortunately in practice often is)
omitted. Dynamic testing takes place when the program itself is used for
the first time (which is generally considered the beginning of the testing
stage). Dynamic testing may begin before the program is 100% complete
in order to test particular sections of code (modules or discrete
functions). Typical techniques for this are either using stubs/drivers or
execution from a debugger environment. For example, spreadsheet
programs are, by their very nature, tested to a large extent interactively

Shivangi Mishra 163


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

("on the fly"), with results displayed immediately after each calculation
or text manipulation.

Software verification and validation

Software testing is used in association with verification and validation:

 Verification: Have we built the software right? (i.e., does it


match the specification).
 Validation: Have we built the right software? (i.e., is this what
the customer wants).

The terms verification and validation are commonly used


interchangeably in the industry; it is also common

to see these two terms incorrectly defined. According to the IEEE


Standard Glossary of Software Engineering Terminology:

Verification is the process of evaluating a system or component to


determine whether the products of a given development phase satisfy the
conditions imposed at the start of that phase.

Validation is the process of evaluating a system or component during or


at the end of the development process to determine whether it satisfies
specified requirements.

Software quality assurance (SQA)

Shivangi Mishra 164


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

Though controversial, software testing is a part of the software quality


assurance (SQA) process. In SQA, software process specialists and
auditors are concerned for the software development process rather than
just the artifacts such as documentation, code and systems. They examine
and change the software engineering process itself to reduce the amount
of faults that end up in the delivered software: the so-called defect rate.

What constitutes an "acceptable defect rate" depends on the nature of the


software; A flight simulator video game would have much higher defect
tolerance than software for an actual airplane.

Although there are close links with SQA, testing departments often exist
independently, and there may be no SQA function in some companies.

Software testing is a task intended to detect defects in software by


contrasting a computer program's expected results with its actual results
for a given set of inputs. By contrast, QA (quality assurance) is the
implementation of policies and procedures intended to prevent defects
from occurring in the first place .

Software maintenance in software engineering is the modification of a


software product after delivery to correct faults, to improve performance
or other attributes.

A common perception of maintenance is that it is merely fixing bugs.


However, studies and surveys over the years have indicated that the

Shivangi Mishra 165


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

majority, over 80%, of the maintenance effort is used for non-corrective


actions. This perception is perpetuated by users submitting problem
reports that in reality are functionality enhancements to the system.

The key software maintenance issues are both managerial and technical.
Key management issues are: alignment with customer priorities, staffing,
which organization does maintenance, estimating costs. Key technical
issues are: limited understanding, impact analysis, testing, and
maintainability measurement. Best and Worst Practices in Software
Maintenance Because maintenance of aging legacy software is very labor
intensive it is quite important to explore the best and most cost effective
methods available for dealing with the millions of applications that
currently exist. Maintenance experts, while the factor that has the
greatest negative impact is the presence error-prone modules in
application being maintained.

Test Phases in Testing Banking Applications

For testing banking applications, different stages of testing include

 Requirement Analysis: It is done by business analyst;


requirements for a particular banking application are gathered and
documented
 Requirement Review: Quality analysts, business analysts, and
development leads are involved in this task. The requirement

Shivangi Mishra 166


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

gathering document is reviewed at this stage, and cross-checked


to ensure that it does not affect the workflow
 Business Requirements Documentation: Business requirements
documents are prepared by quality analysts in which all reviewed
business requirements are covered
 Database Testing: It is the most important part of bank
application testing. This testing is done to ensure data integrity,
data loading, data migration, stored procedures, and functions
validation, rules testing, etc.
 Integration Testing: Under integration testing all components
that are developed are integrated and validated
 Functional Testing: The usual software testing activities like test
case preparation, test case review and test case execution is done
during this phase
 Security Testing: It ensures that the software does not have any
security flaws. During test preparation, QA team needs to include
both negative as well as positive test scenarios so as to break into
the system and report it before any unauthorized individual access
it. While to prevent from hacking, the bank should also implement
a multi-layer of access validation like a one-time password. For
security testing, automation tools like IBM App Scan and HP
Web Inspect are used while for manual testing tools like Proxy
Sniffer, Paros proxy, HTTP watch, etc. are used

Shivangi Mishra 167


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

 Usability Testing: It ensures that differently able people should


be able to use the system as normal user. For example, ATM with
hearing and Braille facility for disabled
 User Acceptance Testing: It is the final stage of testing done by
the end users to ensure the compliance of the application with the
real world scenario.

Shivangi Mishra 168


NIELIT “A” LEVEL BANKING MANAGEMENT
SYSTEM

BIBLIOGRAPHY:

The books referred during the development of this project are as follows:

1. Systems analysis and design Book by Alan, Dennis


2. Object Oriented Programming in C++ by Lafore

Shivangi Mishra 169

Вам также может понравиться