Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Automated Teller Machine Using C++

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 76

AUTOMATED TELLER MACHINE USING C++

TABLE OF CONTENT
S.NO CONTEXT PAGE NO.
ABSTRACT
1. INTRODUCTION 1
1.1 PROJECT AIMS AND OBJECTIVES 1
1.2 BACKGROUND OF PROJECT
1.3 OPERATION ENVIRONMENT
2. SYSTEM ANALYSIS 2
2.1 SOFTWARE REQUIREMENT SPECIFICATION 2
2.2 EXISTING VS PROPOSED 2
2.3 SOFTWARE TOOL USED
3. SYSTEM DESIGN 27
3.1 DATA FLOW DIAGRAM 29
4. SYSTEM IMPLEMENTATION 9
4.1 MODULE DESCRIPTION 9
4.2 SCREEN SHOTS 9
5. SYSTEM TESTING 9
5.1 UNIT TESTING 9
5.2 INTEGRATION TESTING 9

6. CONCLUSION & FUTURE SCOPE 9


7. REFERENCES 9
ABSTRACT

The ATM System is the project which is used to access their bank accounts in order to make
cash withdrawals. Whenever the user need to make cash withdraws, they can enter their PIN
number (personal identification number) and it will display the amount to be withdrawn in the
form of 100’s 500’s and 1000’s. Once their withdrawn was successful, the amount will be
debited in their account. The ATM System is developed in VB.Net and back-end database as
Ms-Access. VB.Net is the one of the powerful version of Framework and object oriented
programming. Hence we use this software in our project. The ATM will service one customer at
a time. A customer will be required to enter ATM Card number, personal identification number
(PIN) – both of which will be sent to the database for validation as part of each transaction. The
customer will then be able to perform one or more transactions. Also customer must be able to
make a balance inquiry of any account linked to the card.

1
INTRODUCTION

2
1. INTRODUCTION

Automated Teller Machine enables the clients of a bank to have access to their account
without going to the bank. This is achieved only by development the application using
online concepts.When the product is implemented, the user who uses this product will be
able to see all the information and services provided by the ATM, when he enters the
necessary option and arguments. The product also provides services like request for
cheques, deposit cash and other advanced requirement of the user. The data is stored in
the database and is retrieved whenever necessary. The implementation needs ATM
machine hardware to operate or similar simulatedconditions can also be used to
successfully use the developedproduct.To develop this ATM system the entire operation
has been divided into the following step:

1.verification process

2.language, service and account selection

3.Banking services

4.Transactions

5.Special services

The program is designed in such a way that the user has to card and pin number. Once
verified, he is provided a menu and he/she had to enter the option provided in the menu.
For example, when the user wants to view the list of paymenthistory than he/she had to
enter the option for payment history provided in the main menu. When the option is
entered alone with the respective argument, then the payment history is displayed on the
screen.The user also must be given option to browse through the pages like previous
page, next page, etc. The user may experience a delay in retrieving or viewing the data,
when there are many users logged on to the same bank branch system.

3
1.1 PROJECT AIM AND OBJECTIVES
Now a days every one very busy in their work. So they feel that the job must be easier so
the system is used to reduce their work which is done in the ATM system. Instead of keeping
lots of paper into a record or file and it may be missed somewhere so, this system help to keep
the record of the customer it also keeps the details of he customer. It is also easy to access. The
system mainly used by the bank clients. When a client comes to ATM center to update and
delete their account. It reduces the time consumption and lot of paperwork. For any single
operation it involves numerous references and updating also takes subsequent changes in other
places.
1.2 BACKGROUND OF PROJECT
The goal of most innovative ideas on information and communication technology in most
of the organization is to improve job performance and employee readiness on the job. ICT plays
a vital role in the business activities, more especially in the banking sector. Information and
communication technology (ICT) has increasingly stimulated expansion of the banking networks
and range of the offered services during recent years. All banking services, such as electronic
payments, loans, deposits, or securities have become heavily dependable on information and
telecommunication technology (Adewoye, (2013). This is the main reason why banks are the
biggest users of modern technology equipment. Due to the complexity of banking services, every
opportunity to speed up their performance or to make them more accessible for customers is very
well welcomed by banks.
1.3 OPERATION ENVIRONMENT

HARDWARE ENVIRONMENT

 Processor : Intel Core i3 (or) i5

 RAM : DDR Type-3 (Size : 4 GB)

 Hard Disk : SATA Model (Size : 500 GB)

 Monitor : LED 15’ Monitor (LG)

 Mouse : Optical Mouse (Microsoft)

4
 Keyboard : Multimedia Keyboard (Microsoft)


"
.!
/
0"#

#
"0 5
!
0
!
.!

<

,.<
6
4
-
:
#
4
4.

5&
7
"
/
0
#
!
.
###

8
4
&&=
#2
5
5!
,5
>$>#
5
9
&
"/
0"
0

!
."

10
-,!

,&
#7

-!
3
"
11
.2!
"
.
#,.
#
".
&

12
#
"
.!
/
0"#

#
"0
13
!
0
!
.!

<

,.<
14
4
-
:
#
4
4.

5&
15
"
/
0
#
!
.
###

16
4
&&=
#2
5
5!
,5
>$>#
5
17
&
"/
0"
0

!
."

18
-,!

,&
#7

-!
3
"
19
.2!
"
.
#,.
#
".
&

20
#
"
.!
/
0"#

#
"0
21
!
0
!
.!

<

,.<
22
4
-
:
#
4
4.

5&
23
"
/
0
#
!
.
###

24
4
&&=
#2
5
5!
,5
>$>#
5
25
&
"/
0"
0

!
."

26
-,!

,&
#7

-!
3
"
27
.2!
"
.
#,.
#
".
&

28
#
"
.!
/
0"#

#
"0
29
!
0
!
.!

<

,.<
30
4
-
:
#
4
4.

5&
31
"
/
0
#
!
.
###

32
4
&&=
#2
5
5!
,5
>$>#
5
33
&
"/
0"
0

!
."

34
-,!

,&
#7

-!
3
"
35
.2!
"
.
#,.
#
".
&

36
#
"
.!
/
0"#

#
"0
37
!
0
!
.!

<

,.<
38
4
-
:
#
4
4.

5&
39
"
/
0
#
!
.
###

40
4
&&=
#2
5
5!
,5
>$>#
5
41
&
"/
0"
0

!
."

42
-,!

,&
#7

-!
3
"
43
.2!
"
.
#,.
#
".
&

44
SYSTEM ANALYSIS

45
2. SYSTEM ANALYSIS

2.1 SOFTWARE REQUIREMENT SPECIFICATION

 Operating System : Windows XP / 7 / 8 / 10.


 Coding Language : C++.
 Software Tool : TURBOC.

2.2 EXISTING VS PROPOSED


Existing system creates complexity in doing calculation of collection of money
because it is manual. Existing system creates problems in maintaining records of book keeping.
Existing system, there is large documentary work so it requires space for its storage. To do the
documentary work there is need of extra staff worker. Existing system takes much more time to
updating process of records. Due to existing system crowding of customer in bank premises are
more &pressure of work on bank servants are also more.

The proposed system needs to maintain all the records in computerized form. It is useful
to store record systematically & accurately by using this system. It is useful to reducing the extra
work which maintains the records of bookkeeping & paper less work. We can easily handle data
efficiently & effectively. The storage space, extra workers, missing files all these possibilities are
decreased through this system. This system helps to save time & cost spending on
documentation. With the help of this system ATM card holder can see all the records about his
account only at any time efficiently. The most important facility provided by this system is that,
there is no any possibility of miss any records. This system is useful for recording daily
transactions done by customers.
2.3 SOFTWARE TOOL USED
In 1979, Bjarne Stroustrup, a Danish computer scientist, began work on "C with Classes",
the predecessor to C++. The motivation for creating a new language originated from Stroustrup's
experience in programming for his PhD thesis. Stroustrup found that Simula had features that
were very helpful for large software development, but the language was too slow for practical
use, while BCPL was fast but too low-level to be suitable for large software development. When

46
Stroustrup started working in AT&T Bell Labs, he had the problem of analyzing the UNIX
kernel with respect to distributed computing. Remembering his PhD experience, Stroustrup set
out to enhance the C language with Simula-like features. C was chosen because it was general-
purpose, fast, portable and widely used. As well as C and Simula's influences, other languages
also influenced this new language, including ALGOL 68, Ada, CLU and ML.

In 1985, the first edition of The C++ Programming Language was released, which
became the definitive reference for the language, as there was not yet an official standard. The
first commercial implementation of C++ was released in October of the same year. In 1989, C++
2.0 was released, followed by the updated second edition of The C++ Programming Language in
1991.New features in 2.0 included multiple inheritance, abstract classes, static member
functions, const member functions, and protected members. In 1990, The Annotated C++
Reference Manual was published. This work became the basis for the future standard. Later
feature additions included templates, exceptions, namespaces, new casts, and a Boolean type.

C++ is a general-purpose programming language that was developed as an


enhancement of the C language to include object-oriented paradigm. It is an imperative and
a compiled language. 

C++ is a middle-level language rendering it the advantage of programming low-level (drivers,


kernels) and even higher-level applications (games, GUI, desktop apps etc.). The basic syntax
and code structure of both C and C++ are the same.

C++ is a MUST for students and working professionals to become a great Software Engineer. I
will list down some of the key advantages of learning C++:

47
 C++ is very close to hardware, so you get a chance to work at a low level which
gives you lot of control in terms of memory management, better performance and
finally a robust software development.
 C++ programming gives you a clear understanding about Object Oriented
Programming. You will understand low level implementation of polymorphism
when you will implement virtual tables and virtual table pointers, or dynamic type
identification.
 C++ is one of the every green programming languages and loved by millions of
software developers. If you are a great C++ programmer then you will never sit
without work and more importantly you will get highly paid for your work.
 C++ is the most widely used programming languages in application and system
programming. So you can choose your area of interest of software development.
 C++ really teaches you the difference between compiler, linker and loader,
different data types, storage classes, variable types their scopes etc.
 Object Oriented programming is a programming style that is associated with the concept
of Class, Objects and various other concepts revolving around these two,
like Inheritance, Polymorphism, Abstraction, Encapsulation etc.

48
Let us try to understand a little about all these, through a simple example. Human Beings are
living forms, broadly categorized into two types, Male and Female. Right? Its true. Every Human
being(Male or Female) has two legs, two hands, two eyes, one nose, one heart etc. There are
body parts that are common for Male and Female, but then there are some specific body parts,
present in a Male which are not present in a Female, and some body parts present in Female but
not in Males. All Human Beings walk, eat, see, talk, hear etc. Now again, both Male and Female,
performs some common functions, but there are some specifics to both, which is not valid for the
other. For example : A Female can give birth, while a Male cannot, so this is only for the
Female.

Human Anatomy is interesting, isn't it? But let's see how all this is related to C++ and OOPS.
Here we will try to explain all the OOPS concepts through this example and later we will have
the technical definitons for all this.

Class

Here we can take Human Being as a class. A class is a blueprint for any functional entity which
defines its properties and its functions. Like Human Being, having body parts, and performing
various actions.

Inheritance

Considering HumanBeing a class, which has properties like hands, legs, eyes etc, and functions
like walk, talk, eat, see etc. Male and Female are also classes, but most of the properties and
functions are included in HumanBeing, hence they can inherit everything from
class HumanBeing using the concept of Inheritance.

Objects

My name is Abhishek, and I am an instance/object of class Male. When we say, Human Being,


Male or Female, we just mean a kind, you, your friend, me we are the forms of these classes. We
have a physical existence while a class is just a logical definition. We are the objects.
49
Abstraction

Abstraction means, showcasing only the required things to the outside world while hiding the
details. Continuing our example, Human Being's can talk, walk, hear, eat, but the details are
hidden from the outside world. We can take our skin as the Abstraction factor in our case, hiding
the inside mechanism.

Encapsulation

This concept is a little tricky to explain with our example. Our Legs are binded to help us walk.
Our hands, help us hold things. This binding of the properties to functions is called
Encapsulation.

Polymorphism

Polymorphism is a concept, which allows us to redefine the way something works, by either
changing how it is done or by changing the parts using which it is done. Both the ways have
different terms for them.

If we walk using our hands, and not legs, here we will change the parts used to perform
something. Hence this is called Overloading.

And if there is a defined way of walking, but I wish to walk differently, but using my legs, like
everyone else. Then I can walk like I want, this will be called as Overriding.

50
SYSTEM DESIGN

51
3. SYSTEM DESIGN
3.1 DATA FLOW DIAGRAM
Data Flow Diagram (DFD) specifies data sources and data sinks, data stores,
transformation to be performed on the flow of data between sources, sinks, transformation and
stores.

A data store is a conceptual data structure in the sense that physical implementation
details are suppressed only the logical characteristics of data are emphasized on a DFD.

- Data sinks /Data sources

- Transformation, process

- Data Stores

- Data flow

DFD follows a top down approach. An initial overview model is “exploded” into more
detailed, lower level diagrams that show additional features of the system. Each process can be
broken into a yet more detailed is describe to allow the analyst to understand the portion of the
system under investigation.

Thus DFD concentrate on the data moving through the system not on devices or
equipment.

52
1. Level 0 DFD :

This level is also known as Context Level DFD. At this level, only the interacting inputs
and outputs with a system are described. The DFD of this level is shown below:

53
2.Level 1 DFD:

At this level, more detailed information is given about the processing of the ATM system. The
DFD of this level is shown below:

54
SYSTEM IMPLEMENTATION

55
4. SYSTEM IMPLEMENTATION

There are a number of factors to consider when putting a new system into production.  They
are even more important if the new system is replacing or upgrading an old one.  It is also
important that all of these items are considered and included in the project plan.

 Once a technology system has been built it should be thoroughly tested before being put
into production.  In most cases it is more difficult and time consuming to fix a problem in
a production system than it is in a QA or staging system.
 Good documentation is essential.  Most developers don't like writing documentation and
many organizations don't like the time and cost involved in creating it, so many projects
end up with little more than the system diagrams and object models created during
system design and sparse code comments saved in text files as their documentation. 
While these are important the most critical documentation is that which described the
relationships between the various system components, any assumptions upon which the
operation of the components or their relationships depend, and any complex, creative,
unorthodox, or other unusual design and programming techniques used with the reason
they were needed.
 System upgrades and maintenance should be part of the initial project plan and well
documented.  Even the designers and developers who built the system may have to spend
time refreshing their memories if a change needs to be made months or years after the
system is first put into production and good documentation can substantially reduce the
time and risk required to make such a change. Training of internal staff is essential - not
only of the people who use the system but of the technical staff that must maintain it. 
While we are always available to help with maintenance and upgrades, it is usually more
cost effective for internal staff to be adequately trained on how to administer, configure,
and make minor updates to the system. 

56
For large or complex systems you may find that you need additional staff, particularly if
you want to handle major modifications and functionality upgrades internally.  You may even
want to hire these people towards the beginning of the project to reduce the initial development
costs and ease the transition to full internal control of the system.  If this is the case we can assist
you with finding well qualified personnel.

For large or complex systems you may find that you need additional staff, particularly if
you want to handle major modifications and functionality upgrades internally.  You may even
want to hire these people towards the beginning of the project to reduce the initial development
costs and ease the transition to full internal control of the system.  If this is the case we can assist
you with finding well qualified personnel.

Systems implementation is a set of procedures performed to complete the design (as


necessary) contained in the approved systems design document and to test, install, and begin to
use the new or revised Information System.

Depicts systems implementation as the fifth major step in the development of an Information
System.
57
The systems implementation goals are as follows:

Complete as necessary the design contained in the approved systems design document.For
example, the detailed contents of new or revised documents, computer screens, and database
must be laid out and created.
Write, test, and document the programs and procedures required by the approvedsystems design
document.
Ensure, by completing the preparation of user manuals and other documentationand by training
personnel, that the organization’s personnel can operate the newsystem.
Determine, by thoroughly testing the system with users, that the system satisfies theusers’
requirements.
Ensure a correct conversion by planning, controlling, and conducting an orderly installationof the
new system.

58
4.1 MODULE DESCRIPTION
The interface is used as a communication between system and user. The modules used in this
project are
1. Login module
2. Withdraw module
3. Change pin module
4. Fast cash module
5. Cash transfer module
6. Ministatement module

·
LOGIN MODULE:
This module is used just for safety purpose such that only the member can access it. If
the user has an account created to login into it, they can continue with next phase.

WITHDRAW MODULE:

This modules deal with withdrawing money from the user’s account. The user can
enter the amount which he or she wishes to withdraw as an input.
CHANGE PIN MODULE:
This module is also used for safety purpose. If the user wants to change the pin
number then it can be done in this phase. It helps to avoid any unauthorized access to his or her
account.
FAST CASH MODULE:
This module also deals with withdrawing money from the account. The amount
which the users wish to withdraw can be selected from the displayed list.
CASH TRANSFER MODULE:
In this module the user can transfer money from his or her account to another
account.
MINISTATEMENT MODULE:
This module displays all the transactions occurred in the user’s account for a particular
period of time.
59
This program uses basic concepts of class, Access Modifiers in C++, data types, variables,
Switch Case, etc. Below are the functionalities that are to be implemented:
● setvalue(): This function is used here to set the data using basic input and output method
in C++ i.e., cout and cin statements which display and take input from the keyboard i.e., from the
user respectively.
● showvalue(): This function is used to print the data.
● deposit(): This function helps to deposit money in a particular account.
● showbal(): This function shows the total balance available after deposition.
● withdrawl(): This function helps to withdraw money from the account.
● main(): In this function, there is a simple switch case (to make choices) inside an infinite
while loop so that every time user gets to select choices.

60
4.2 SCREEN SHOTS

61
For Choice 1:

62
● For Choice 3:

63
● For Choice 2:

64
● For Choice 5:

65
SYSTEM TESTING

66
5. SYSTEM TESTING

A primary purpose for testing is to detect software failures so that defects may be
uncovered and corrected. This is a non-trivial pursuit. Testing cannot establish that a product
functions properly under all conditions but can only establish that it does not function properly
under specific conditions. The scope of software testing often includes examination of code as
well as execution of that code in various environments and conditions as well as examining the
aspects of code: does it do what it is supposed to do and do what it needs to do. In the current
culture of software development, a testing organization may be separate from the development
team. There are various roles for testing team members. Information derived from software
testing may be used to correct the process by which software is developed.

Software Testing is the process used to help identify the correctness, completeness,
security, and quality of developed computer software. Testing is a process of technical
investigation, performed on behalf of stakeholders, that is intended to reveal quality-related
information about the product with respect to the context in which it is intended to operate. This
includes, but is not limited to, the process of executing a program or application with the intent
of finding errors. Quality is not an absolute; it is value to some person. With that in mind, testing
can never completely establish the correctness of arbitrary computer software; testing furnishes a
criticism or comparison that compares the state and behaviour of the product against a
specification. An important point is that software testing should be distinguished from the
separate discipline of Software Quality Assurance (SQA), which encompasses all business
process areas, not just testing.

In general, software engineers distinguish software faults from software failures.


In case of a failure, the software does not do what the user expects. A fault is a programming
error that may or may not actually manifest as a failure. A fault can also be described as an error
in the correctness of the semantic of a computer program. A fault will become a failure if the
exact computation conditions are met, one of them being that the faulty portion of computer
software executes on the CPU. A fault can also turn into a failure when the software is ported to
a different hardware platform or a different compiler, or when the software gets extended.

67
Software testing is the technical investigation of the product under test to provide stakeholders
with quality related information.

A problem with software testing is that the number of defects in a software product can
be very large, and the number of configurations of the product larger still. Bugs that occur
infrequently are difficult to find in testing. A rule of thumb is that a system that is expected to
function without faults for a certain length of time must have already been tested for at least that
length of time. This has severe consequences for projects to write long-lived reliable software.

5.1 UNIT TESTING


In computer programming, unit testing is a software testing method by which individual units
of source code, sets of one or more computer program modules together with associated control
data, usage procedures, and operating procedures, are tested to determine whether they are fit for
use. Unit testing is a testing technique using which individual modules are tested to determine if
there are any issues by the developer himself. It is concerned with functional correctness of the
standalone modules.

68
The main aim is to isolate each unit of the system to identify, analyze and fix the defects.

UNIT TESTING-ADVANTAGES

 Reduces Defects in the newly developed features or reduces bugs when changing the
existing functionality.
 Reduces Cost of Testing as defects are captured in very early phase.
 Improves design and allows better refactoring of code.
 Unit Tests, when integrated with build gives the quality of the build as well.

5.2 INTEGRATION TESTING

Integration testing (sometimes called integration and testing, abbreviated I&T) is the
phase in software testing in which individual software modules are combined and tested as a
group. It occurs after unit testing and before validation testing. Integration testing takes as its
input modules that have been unit tested, groups them in larger aggregates, applies tests defined
in an integration test plan to those aggregates, and delivers as its output the integrated system
ready for system testing.

The purpose of integration testing is to verify functional, performance, and reliability


requirements placed on major design items. These "design items", i.e., assemblages (or groups of
units), are exercised through their interfaces using black-box testing, success and error cases
being simulated via appropriate parameter and data inputs. Simulated usage of shared data areas
and inter-process communication is tested and individual subsystems are exercised through their
input interface. Test cases are constructed to test whether all the components within assemblages
interact correctly, for example across procedure calls or process activations, and this is done after
testing individual modules, i.e., unit testing. The overall idea is a "building block" approach, in
which verified assemblages are added to a verified base which is then used to support the
integration testing of further assemblages. Software integration testing is performed according to
the software development life cycle (SDLC) after module and functional tests.

69
 Integration testing: Testing performed to expose defects in the interfaces and in the
interactions between integrated components or systems. See also component integration
testing, system integration testing.
 Component integration testing: Testing performed to expose defects in the interfaces
and
interaction between integrated components.
 System integration testing: Testing the integration of systems and packages; testing
interfaces to external organizations (e.g. Electronic Data Interchange, Internet).

Although each software module is unit tested, defects still exist for various reasons like

A Module, in general, is designed by an individual software developer whose understanding and


programming logic may differ from other programmers. Integration Testing becomes necessary
to verify the software modules work in unity

At the time of module development, there are wide chances of change in requirements by the
clients. These new requirements may not be unit tested and hence system integration Testing
becomes necessary.

· Interfaces of the software modules with the database could be erroneous


· External Hardware interfaces, if any, could be erroneously
· Inadequate exception handling could cause issues.

Disadvantages:

 Fault Localization is difficult.


 Given the sheer number of interfaces that need to be tested in this approach, some
interfaces link to be tested could be missed easily.
 Since the Integration testing can commence only after “all” the modules are designed,
the testing team will have less time for execution in the testing phase.

Since all modules are tested at once, high-risk critical modules are not isolated and tested
on priority. Peripheral modules which deal with user interfaces are also not isolated and
tested on priority.

70
CONCLUSION & FUTURE SCOPE

71
6. CONCLUSION & FUTURE SCOPE
The findings of the study will help the banking industry by showing how quality services
offered by ATM service points are essential and its relationship to customer satisfaction.The
conclusions and recommendations of the study will help the banking industry in the
identification of the weaknesses in the use of ATM system of banking and the ways of improving
its services.

This study will also be of great importance to future scholars who will pursue research in
fields related to ATM system of banking and service satisfaction. The scope of this study
covered the impact of automated teller machine on customer’s satisfaction. The impact of
Automated Teller Machine is the independent variable while customer’s satisfaction is the
dependent variable. The effectiveness of the Automated Teller Machine services on customer’s
service will be measured using variables like; reliability, speed and efficiency of Automated
Teller Machine services in solving the queuing problems.

72
REFERENCES

73
7. REFERENCES
Books Referred

1. "A Complete Guide to Programming in C++" by Ulla Kirch-Prinz, 1st Edition.


2. "Beginning C++ Through Game Programming" by Michael Dawson, 3rd Edition.
3. "Learn To Program With C++" by John Smiley, 1st Edition.

Sites Referred
 https://www.w3schools.com/cpp/default.asp
 https://www.tutorialspoint.com/cplusplus/index.htm
 https://www.geeksforgeeks.org/cpp-tutorial/
 https://www.javatpoint.com/cpp-tutorial
 https://cplusplus.com/doc/tutorial/
 https://www.learncpp.com/
 https://www.programiz.com/cpp-programming

74

You might also like