project report for banking
TRANSCRIPT
-
8/8/2019 Project Report for Banking
1/76
Banking System
1
.
A
Project ReportBanking System
Submitted By:-
Name :-Course :-Roll No :-Reg. No. :-Session :-
Submitted To :-
L.S.College, Muzaffarpur,(B. R. A. Bihar University,Muzaffarpur)
Submission Date :
-
8/8/2019 Project Report for Banking
2/76
Banking System
2
PROJECT CONTENTS
Contents Page No.
1. Guide Certificate 32. Declaration by the Candidate 43. Preface 54. Acknowledgement 6
5. Conclusion 76. Introduction 87. Language Selection 98. Methodology 109. Objective 1110.\Existing 1211.System Analysis 14-1512.Software Requirement 1613.Hardware Requirement 1714.PERT Chart 1815.Data Flow Diagram 2016.E-R Diagram 2117.Flow Chart 22-3018.System Design 3119.System Testing 32-3420.Print Screen 35-4121.Source Code 42-75
22.Bibliography 76
-
8/8/2019 Project Report for Banking
3/76
Banking System
3
Guide Certificate
This is to certify thatMr.Saroj Kumarwhose Roll No. of BSc(Computer
Application)., student of L.S. College, Muzaffarpur has completed the project title is
Banking System .
He has taken three month to complete this project. During the
completion of the project he used the techniques provided the System analysis And
Design.
Signature of the student Signature of Guide
Roll No. :
-
8/8/2019 Project Report for Banking
4/76
Banking System
4
Declaration by the Candidate
I hereby declare that this project entitled Banking System is original one and it has
been submitted to any university or to any institution of a course of study.
Signature of Student Signature of Guide
Date: - Date: -
Place: - Place: -
-
8/8/2019 Project Report for Banking
5/76
Banking System
5
PREFACE
Thisprojectworkisinthecontextofthepartialfulfillmentofthemodularcourses
ofComputerprogramming. Thisproject isan integralpartof the lastsemesterof
theabove- mentionedcourse.
Itisauniversaltruththattheory andpracticeare
Supplementary andcomplementary toeachother, botharelikeitmay besaidthat
theory withoutpractice. Is blindandparticlewithoutthetheory islame,soinevery
phaseof lifetheory andpracticewouldgohand, inmostofcompulsory technical
institutionthereisaprovisionoftwomonthsummertrainingin betweenthecourse
oraftercompletingthecourse beforefinalexamination. Mainpurposeofthisisto
makethestudentawareabouthepracticalaspectsofbusinessorscientificworkin
any runningorganization.
I havecompletedmy project training,which tookdurationofeightweeks.
After completingmy project training, I ampresenting this report regardingmy
work.
-
8/8/2019 Project Report for Banking
6/76
Banking System
6
ACKNOLEDGEMENTS
I amvery thanksto Mr. DeepakSingh forguidedme. & turningmy rawmanuscri
into thiswelldesign, beautifully software.Fordesign the frontpage, DFD diagram
Structureofdatabase,amthankfulto DeepakSir. Preparationofthesoftwarealway
involvesmany dedicatedprofessionalsdoingtheir part behind the scenes . I wou
like to give my grateful thanks to my colleaguewhoseprecioussuggestionan
unlimitedco-operationhelpedmetocompletethisproject
I had the support and great encouragement from my family,which actual
helpedmealottocompletemy projectsuccessfully. So,wordsinadequatetoexpre
my feelingsandregardstowardsthem.I really respecttheirloveforme.
Finally, my greatest thank to each and every one who involve directly wi
this project or involving through backstage.
Thanksforbeingthere!
-
8/8/2019 Project Report for Banking
7/76
Banking System
7
CONCLUSION
Thisprojecthastakentoolesstimetocompletion.Howeverinthegiventimeperiod, I
hadworkedinday-Nightwithmy groupmembersandfacesmany difficultiesin
technicalpartoftheprojectviz. crisisofhardware,powerdisturbance,weather
disturbance,multipletimesoftwarecrisisandmany more.
Howeverinlesstimeperiod, I hadtriedtomaintainallthecomponentsofinstitute
processingsystem.
Thispreparedsoftwarecan beruneitherinsingleuserInterfacemodeorin
networkmode.
My lab partneralsoperformedthehardlabortotestthissoftwareontothenetwork
system.
So,accordingtoourlabor,almighty godhasgivenmeastrengthpowertocompletethisproject.
Thanking You!
-
8/8/2019 Project Report for Banking
8/76
Banking System
8
INTRODUCTION
Almost 500 yearsago, Machiavellisaid:thereisnothingmoredifficulttomakein
hand,moreperiloustoconductormoreuncertaininitssuccess,thantotaketheleadin
theintroductionofaneworderofthings. Duringthelast 50 years,computer-basedsystemhasintroducedaneworder. Althoughtechnology hasmadegreatstridessince
Machiavellispoke,hiswordscontinuetoringtrue. Thereforeweneedtoautomate bank
forsavetimeandperformtheworkfaster.
Timeistide,waitfornone Timeisthemainfactorforeveryone, butitneverwaitsfor
anyone. Thegoalofbankistogenerate businessrevinue,forit bankhastogivethere
every secondtothework.
Every bankhasnumberofaccounts. Bankhastokeeprecordofalltheaccounts. Theymaintainregisterofthat,whichisknownasmanualwork. Duringmanualwork,Bank
losstheirtimeinrecordandmakinglistoftransaction,sinceforallofthese bankhaveto
gothroughalltherecordregister.
Customer(Accountholder)isimportantforany bankandisneededforworking. Thetotal
fundsemployedina bankareobtainedfromthesecustomers. Thisamountisdetermined
aftertakingintoaccountandrequiredtokeeponhandday today inflowofcashand
outflowofcash. Today every bankwantstoprovide bestfacility tocustomerfromtheir
parts. Inthisrespecttheyperformevery thing,which bringsthemcloser.
Beforesoftwarecan beengineered,the systeminwhichitresidesmust beunderstood.
Toaccomplishthistheoverallobjectiveofthesystemmust bedetermined ; Theroleof
hardware,software,people,database,proceduresandothersystemmust beidentified
andoperationalrequirementmust beelicited,analyzed,specified,modeled,validated
andManaged .
-
8/8/2019 Project Report for Banking
9/76
Banking System
9
LANGUAGE SELECTION
Beforewegoforimplementing Bankingsystem,thefirstquestionthatstrikesis
whichlanguagetoselect?
Whenimplementinganautomationsystemincorc++,thesesubsystemsareusually
coupledwitheachotherclosely by usingglobalvariableormachineregistertostore The
virtualmachineresister(suchastheinstructionpointerandthestackpointer)and To
sharedataefficiently betweenthedifferentsubsystem. Also,ac++programmercan
easily avoidusingtheobjectorientedfeaturesofthelanguageandaccessthedataof
differentsubsystemsmoredirectly andrapidly. Although,thismakesthedifferent
Subsystemhighly dependentoneachother,meaningthatchangeinonepartofthe
Systemcancausesubstantialchangeintheotherparts. TheclosecouplingofSubsystemtounderstandandmaintain.
Ingeneral,eventhoughitispossibleto buildwelldesigned,clearly structuredsoftwarein
candc++,inautomationsystemperformanceconsiderationAreusually socentralthat
they takepriority overgooddesignandarchitecture.
Soweselectc++asourlanguageofbanking
system.
-
8/8/2019 Project Report for Banking
10/76
Banking System
10
METHODOLOGY
ForthedevelopmentofBanking System I usedtheobjectorientedprogramming(OOP)methodology .Programsthroughtheuseofinheritance,encapsulationand
polymorphism. Objectorientedprogrammingisabstraction.
Apowerfullway tomanageabstractionisthroughtheuse Ofhierarchicalclassifications.
Thisallowsustolayerthesemanticsofcomplex Systems, breakingthemintomore
manageablepieces. OOP languagesprovideMechanisms; they areencapsulation,
inheritance,andpolymorphism.
Encapsulationisthemechanismthat bindstogethercodeandthedataitmanipulatesand
keeps bothsafefromoutsideinterferenceandmisuse. Inc++the basisofEncapsulationistheclass. Thepurposeofclassistoencapsulatecomplexity; therearemechanismsfor
hidingthecomplexity oftheimplementationinsidetheclass. Eachmethodorvariablein
aclassmay bemarkedprivateorpublic. Thepublicinterfaceofaclassrepresents
everythingthatexternaluseroftheclassneedtoknow,ormay Know. Theprivate
methodsanddatacanonly beaccessed by codethatisamemberoftheclass.
Inheritanceistheprocess by whichoneobjectacquiresthepropertiesofanotherobject.
Thisisimportant becauseitsupportstheconceptofHierarchicalclassification.
Polymorphismisfeaturesthatallowoneinterfaceto beusedforclassofaction. The
specificactionisdetermined by theexactnatureofthe Situation.
-
8/8/2019 Project Report for Banking
11/76
Banking System
11
OBJECTIVE
Intodaysscenarioevery day anew bankiscominginthemarketandthisproject
isdevelopedwithanobjectivethatitcan becustomizedforany ofthe bankforkeeping
recordsoftheirdaily transactionandotherjob arewhicharerelatedtothe bank.
Thisprogramcankeeprecordsofdaily transactionandcapabletoholdingany no. of
account. Intheproject Banking Systemprogramformakingdaily transactionsprocess
forthedisplay offollowingmenuoptions.
Thisprojectfulfillsthefollowingobjective:
1. OpeningofNew Account.2. ListofAccounts.3. Individualtransactioninformation.4. Daily Transaction Report.5. GenerateMonthly Report.6. Edit Account
a) Modify Account.b) Close Account.
-
8/8/2019 Project Report for Banking
12/76
Banking System
12
EXITING SYSTEM:
TheexistingBanking system isamanualone. Therefore thevarious
operationsaremaintainedandrecordedincopy thatarecalled registersandfiles. It involves a large amount of writing, human skills and time.
Receivingofcash,cheque,customerstransactionallaremaintainedthrough
paper and pen. These show the slowness of the working of the current
manualsystem. Naturally flawsmay likely takeplace.
Ifany erroroccursduring theprocess it isvery difficult to findand
remove. Respondingtothequeriesofthecustomersisalsoatoughandtime-
taking task .Therefore the need of a better and advanced computerized
systemcomesintoexistence.
-
8/8/2019 Project Report for Banking
13/76
Banking System
13
PROPOSED SYSTEM
Thesystemproposedtoreplacetheoldoneisacomputerizedsystem
andmusthave interface. Inorder toachieve this Turbo C++ isusedas the
frontendtoprovidetheinterfaceand C++filesforusedinthe backend.
-
8/8/2019 Project Report for Banking
14/76
Banking System
14
SYSTEM ANALYSIS:
Identification of need : the first step in determiningproject requirements is to
interview the bankmanager to findoutwhat they want in Banking System. This isanimportant step, andone that cannot beoverrated because a solid baseof user-oriented
informationhelps youdefineourkey applicationcapabilities. Forthesakeofdiscussion
andtokeepthingssimple,thisdiscussionassumesinterviewswiththemanagerbasefoud
bankingsystemanduserrequirements,asfollows:
BANKING SYSTEM REQUIREMENTS
y Requirecustomerinformation.
y
Recordandreportthedaystransactions.
USER REQUIREMENTS
y Accountidofeachcustomer.
y Provideinformationoftheiraccount Id.
PROCESS ON ANALYZED REQUIREMENTS:
This project is on for banking system, which provides information about customers
Account. Thisproject helpspersons to get information rapidly and get computerized
bankingsystemfromany timein yourbank.
My first page of banking system is WELCOME TO BANKING
PROJECT thatprovidessufficientdetailsaboutthisproject. Enteronthefirstpageand
getoptionabout bankingtransaction.
My firstoption youcanopennewaccount. Ifyoucanopenanewaccountthenenterthe
option buttonandgetnewaccountopeningfromandfilltherequireddetailsonthefrom
with thenameofverifyingpersonandopeningaccountshouldnot less then 500/- afterthenuseraskedanoptiondo youwantto (Y/N)press Y andenterany key.
Insecondoption youcanseethelistofaccountifyoucanseeofaccountthenenterthe
secondoption buttonandgetlistofaccount. Enteronthepageandexitlistofaccount.
-
8/8/2019 Project Report for Banking
15/76
Banking System
15
Inthethirdoption youcanseeallthetransactionofindividualaccount. Ifyouwanttosee
enter the third option button than fill your account number and press enter and get
information about individual account. To exit on end Accountpresses enter again. In
forthoption youcando bankingtransactions. Ifyouwanttodo bankingtransactionthen
enteronthefourthoption
buttonandfillaccountnumberandpressenteragain yougettransactionformifyouwant
to deposit press D or withdrawal then press W fill another option he wants to
deposit/withdraw.
Amount by cashorchequeafterthisoptionfillsufficientamountandpress Yforexit
aftersavetransactionandpress Nforexittransactionwithoutsavetransaction.
In fifthoption youcan takemonthwise individualaccount report if youcan take thanenter the fifthoption buttonand fill thecurrentdateandpressenterafter this fill your
accountnumberandpressenter . Yougetmonthwise individualaccountreport. If you
wanttoexitpressenteragain.
In sixth option you can modify and delete any account. You want to modify/close
account thenenter thesixthoption button (editaccount)andselectmodify/closeoption
button andpress enter and enter your account number andpress enter again you get
modify/closethenpress Yandfilltherequireddetailsandpress Yforsubmitand N
forexit. Youtoexitmodify/closemenuthenselectquitoption.
In lastoption isquit (exit towindow) if youwant toexit thanselect lastoption button
(exit)andpressenter.
Whileimputingthedatarecordthefollowingvalidationwill bechecked:
1. Theaccountnumbersaregeneratedautomatically.2. Thenameaddressshouldnot blank.3. Transactiondateisthesystemdatecurrentdate.
4. Initialdepositforany accountshouldnot belessthan Rs. 500.5. Daily transactionwill beenteredeitherinwordscash/chequeorDfor
Depositand Wforwithdraw
-
8/8/2019 Project Report for Banking
16/76
Banking System
16
SOFTWARE REQUIREMENT SPECIFICATION
Usingc++programminglanguagecreates Banking System. Availableinformationisstoredina
.datfile by the featureofrelationalroseutility ofc++ language .Page thatallows theuser toselectanoptiononwhich tomanipulationprocesswill beperformed,when theuserwants toaddnewaccount
mainpageprovideanoptionwithdesire information. Useralsoable toedit theexistingaccount Id, Ialsocontainoptiontoshowthedaily transactionofparticularaccount.
-
8/8/2019 Project Report for Banking
17/76
Banking System
17
HARDWARE REQUIREMENTS
The most important thing is to implement the software in a suitable
hardware. Since the OS chosen iswindows 98 the bestchoicewould bean IBM
compatible PC withminimumclockspeedof 600 MHz. In thiscase Pentium III
processorwould bepreferred. Theremust be at least 64 MB RAM (128 MBPreferred) for betterprocessing. The systemmust have a laser or a Dot Matrix
printerattachedwiththeappropriateport. UsageofSVGA colormonitorof14or
15isrecommendedforbettervisualizationoftheGUI interface.
The System Flow Chart, ER-Diagram, Context Analysis Diagram, PERT Chartand
the Data Flow Diagramaregiveninthefollowingpages.
-
8/8/2019 Project Report for Banking
18/76
Banking System
18
PERT CHART
1
5
5
4
11
Coding Testing
Begin Prototyping
Print
Design Forms
-
8/8/2019 Project Report for Banking
19/76
Banking System
19
CONTEXT ANALYSIS DIAGRAM
`
Customer
BankTransaction
Cust_details
Invalid info
Trans_details
Trans_balance_info
Enquirie
Quries_info
Cust_info
Quries_info
Trans_info
-
8/8/2019 Project Report for Banking
20/76
Banking System
20
DATA FLOW DIAGRAM
`
`
Customer1.1
Validation
_Process
1.2
Transaction
process
1.3
Interest_calcul_process
C_info+trans_details
Trans_info+
Valid_cus_i
nfo
Customer file
Transaction file
Cust_info
Bank
1.4
T_balance_Process
Total_bal_info
Balance+quries_info
-
8/8/2019 Project Report for Banking
21/76
Banking System
21
ER-DIAGRAM OF BANK TRANS
FLOW CHART OF BANKING SYSTEM
CUSTOMER
ACCOUNT
BANKHave
Has A
Provide
ISA
Current Account Saving Account
-
8/8/2019 Project Report for Banking
22/76
Banking System
22
NO
NO
YESYES
YES
YES
FLOW CHART FOR OPEN NEW ACCOUNT
START
INTRODUCTION
IF
PASSWORD
TRUE
OPEN THE HOME
1. New Account2. List of Account3. Ind. Account4. Daily Trans5. Monthly Report6. Edit Account
7. Exit
IF
CHOICE=8
STOP
IF
FALSE=3
-
8/8/2019 Project Report for Banking
23/76
Banking System
23
NO
YES
OPEN THE HOME PAGE
IF
CHOICE=1
ENTER
NAME, ADDRESS,
NAME OF VERIFYING PERSON,
INITIAL DEPOSITE
SAVE RECORD(Y/N)
IF
RES=Y
-
8/8/2019 Project Report for Banking
24/76
Banking System
24
FLOW CHART FOR LIST OF ACCOUNT
FLOW CHART FOR DETAIL REPORT OF THE ACCOUNT NO
OPEN THE HOME PAGE
IF
CHOICE=2
ACCOUNT
NO
NAME
ADDRESS
-
8/8/2019 Project Report for Banking
25/76
Banking System
25
NO
YES
IF
CHOICE=3
ACCOUNT NO
IF
=
DISPLAY REPORT
OF ACCOUNT
ACCOUNT NOT
FOUND
-
8/8/2019 Project Report for Banking
26/76
Banking System
26
FLOW CHART FOR DEPOSIT OR WITHDRAW
NO
YES
NO
YES
IF
CHOICE=4
ACCOUNT NO
ACCOUNT NOT FOUND
IF
ACC. NO=T
DEPOSIT OR
WITHDRAWAL
CASH OR CHEQUE
ENTER AMOUNT
AVE REC RD Y/N
IF
RES=Y
H ME PA E
-
8/8/2019 Project Report for Banking
27/76
Banking System
27
FLOW CHART FOR MONTHLY REPORT
NO
YES
FLOW CHART FOR EDITING ACCOUNT
OPEN THE HOME PAGE
IF
CHOICE=5
ENTER MONTH
ACCOUNT NO
IF
ACC_NO=T
ACCOUNTNUMBER,
NAME,
ADDRESS,
ACCOUNT NOT
FOUND
-
8/8/2019 Project Report for Banking
28/76
Banking System
28
OPEN THE HOME PAGE
IF
CHOICE=6
1. MODIFY ACCOUNT
2. CLOSE ACCOUNT
3. QUIT
IF
CHOICE=3
-
8/8/2019 Project Report for Banking
29/76
Banking System
29
FLOW CHART FOR MODIFY ACCOUNT
NO
YES
NO
YES
FLOW CHART FOR CLOSING ACCOUNT
EDIT ACCOUNT OPTION
IF
CHOICE=1
ACCOUNT NO.
IF
ACC_NO=
MODIFY(Y/N)
IF
RES=Y
NAME, ADDRESS
ACCOUNT NOT
FOUND
-
8/8/2019 Project Report for Banking
30/76
Banking System
30
NO
YES
NO
YES
EDIT ACCOUNT OPTION
IF
CHOICE=2
ACCOUNT NO.
IF
ACC_NO=T
CLOSE(Y/N)
IF
RES=Y
ACCOUNT NOT
FOUND
-
8/8/2019 Project Report for Banking
31/76
Banking System
31
SYSTEM DESIGN
TABLE STRUCTURE
Thestructureofthe ACCOUNT isgiven below.
Data Field Data Type Width
AccNo Integer
Name Char 50
Address Char 50
ContactNo Char 20
InitialDeposite Float
Balance Float
DateOfAcc Char 10
Every Customerhasa Unique AccNo
Thestructureofthe TRANSACTION Tableisgiven below.
Data Field Data Type Width
AccNo Integer
Name Char 50
TransDate Char 20TransType Char 2
TransAmt Float
TransBy Char 10
TransByNo Char 20
TransByName Char 30
Balance Float
-
8/8/2019 Project Report for Banking
32/76
Banking System
32
SYSTEM TESTING
Systemtestingisdesignedtouncoverweaknessesthatwerenotfoundinearliertest. Thisincludesforcedsystemfailureandvalidationofthetotalsystemasitwill beimplemented
by itsuser(s) in theoperationalenvironments. The total system isalso tested recovery
andfallbackaftervariousmajorfailurestoensurethatnodataarelostduringemergency.
Allthisisdonewith theoldsystemstill inoperation. Afterthecandidatesystempasses
thetest,theoldsystemisdiscontinued.
VALIDATION CHECKS:
Forsmoothexecutionandproperinputspecification,lotsofvalidationsareincorporated
invariousmodules. Thesevalidationsaredescribedmodule wiseasfollowing:
Main_menu()
Functiondisplaysthemainmenuofbankingsystem.
Edit_menu()
Functioneditmenuwithaccountmodificationandclose.
Help()
Functiondisplay helpaboutthisproject.
Modify()
Functionmodifyingtheexistingaccounts.
Modify_account()
Functionupdatingthemodifiedaccountintodatafile.
Add_to_file()
Functioncreatesnew / freshrecordinthedatafile.
Delete_account()
Functiondeletinganaccountfromdatafile.
Box_for_display()
Functiondisplay accountdetails.
-
8/8/2019 Project Report for Banking
33/76
Banking System
33
MAINTENANCE TESTING:
Softwaremaintenanceisavery importantandtedioustaskofthesystemdevelopmentlife
cycle. It is farmore difficult then testing and implementation of the newly developed
system. Maintenance is the enigma of software development /it holds the software
industry captive, tying upprogramming resources; analysts andprogrammer spend farmoretimemaintainingprogramsthendowritingthem. Maintenanceaccountsfor50-80
percentcostofsystemdevelopment. Duetotheadvancementsincomputerindustry,cost
of hardware has gone very much high. This occurs because software is a handmade
product,designed inanad hocfashionwithfewstandards, itcomesout late, ispoorly
documentedandthereforeisdifficulttomaintain.
Maintenance can be classified as corrective, adaptive or perceptive corrective
maintenancemeansrepairingprocessorperformancefailuresormakingchange because
of previously uncorrected problem of false assumption adaptive maintenance meansenhancingtheperformanceormodifyingtheprogramtorespondtotheuseradditionalor
changingrequirements Ofthesetypes,moretimeandmoney arespentonperceptivethan
oncorrectiveandadaptivemaintenance
Together. Maintenancecoversawiderangeofactivities,includingcorrectingcodingand
designerrors,updatingdocumentationandtestdataandupgradingusersupport.
Maintenance means restoring something to its original condition. Unlike hardware,
however,softwaredoesnotwearout,itiscorrectedanditageseventually failsperforms
becauseofcumulativemaintenance.
-
8/8/2019 Project Report for Banking
34/76
Banking System
34
SECURITY OF BANKING SYSTEM
Any computerbasedsystem thatmanagessensitive informationorcausesactions
that can improperly harm (or benefit) individuals target for improper or illegalpenetration.Penetration spans a board range of activities: hackers who attempts to
penetratesystems forsport; disgruntledemployeewhoattempt topenetrate forrevenge
dishonest individualswhoattempts topenetrate for revenge,dishonest individualswho
attemptstopenetrateforillicitpersonalgain.
Banking systemprovidesa feature to stop thepenatration.Thosepeoplewhoare
authorized toaccess the banking system thatwillget thedesired information form the
databasefile. Theprojectispreparedinthisway thatwhentheapplicationwillexecuteit
promptsforthepasswordafterprovidingthewelcomemessages. Ifthepasswordwill be
enteredcorrectly then itprovides theuser itsutility, ifuserenterwrongpassword threetimestheapplicationwillcloseautomatically. Italsoprovidesthefeaturestochangethe
existingpasswords. Thisoptionisprovideinthemainpageoftheapplication.
-
8/8/2019 Project Report for Banking
35/76
Banking System
35
WEL-COME SCREEN
-
8/8/2019 Project Report for Banking
36/76
Banking System
36
-
8/8/2019 Project Report for Banking
37/76
Banking System
37
MODIFY ACCOUNT SCREEN
-
8/8/2019 Project Report for Banking
38/76
Banking System
38
NEW ACCOUNT SCREEN
-
8/8/2019 Project Report for Banking
39/76
Banking System
39
TRANSACTION
-
8/8/2019 Project Report for Banking
40/76
Banking System
40
MONTHLY REPORT
-
8/8/2019 Project Report for Banking
41/76
Banking System
41
LIST OF ALL ACCOUNT
-
8/8/2019 Project Report for Banking
42/76
Banking System
42
-
8/8/2019 Project Report for Banking
43/76
Banking System
43
#include#include#include#include#include#include#include#include#include#include#include
typedef char menu[50];int ascii,scan;
menu headmenu[]={ " NEW ACCOUNT "," EDIT ACCOUNT "," TRANSACTION "," A/C WISE REPORTS "," MONTHLY REPORTS "," LIST ALL ACCOUNT "," EXIT "
};menu popmenu[]={ " MODIFY ACCOUNT ",
" CLOSED ACCOUNT "," RETURN "
};
menu headmes[]={ " CREATE NEW ACCOUNTS "," MODIFY,CLOSE ACCOUNTS "," DEPOSIT OR WITHDRAWAL "," INDIVISUAL A/C REPORTS "," SHOWS MONTHLY REPORTS "," LIST ALL A/C IN BANK "," EXIST FROM THE BANK MENU "
};menu popmes[]={ " MODIFY THE ACCOUNT ",
" CLOSE AN ACCOUNT "," RETURN TO MAIN MENU "
};/**********************DECLARE OF CLASS (FILES)******************/class account{int accno;int dd,mm,yy;char name[30];char address[3][30];
-
8/8/2019 Project Report for Banking
44/76
Banking System
44
double balance,initial;void deleteacc(int);void modifyacc(int cac,char cname[30],char cadd[][30],double cdepo);public:
int recordno(int);int lastaccno(void);int foundacc(int);double returnbalance(int);char *returnname(int);char *returnadd(int);void newacc(void);void add(int cac,char cname[30],char cadd[][30],double cdepo);void delacc(void);void display(void);void display(int);void updatebal(int,double);void modify();
};
/************************CLASS FOR MAIN MENU************************/class mainmenu{int i,choice;public:
void normal(int,int,char*);void revers(int,int,char*);char choicemenu();void controlmenu();char emenu();void editmenu();
};/************************CLASS FOR UTILITY****************/class utility{public:
void getnumber(double *,int,int);void getstring(char *,int,int);void linehor(int,int,int,char);void linever(int,int,int,char);void box(int,int,int,int);void print(int,int,int);
void clear(int,int);};/************************CLASS FOR TRANSACTION***************************/class transaction{int accno;int dd,mm,yy;double interest,amount,balance;
-
8/8/2019 Project Report for Banking
45/76
Banking System
45
char transby[10];char transbyno[20];char transbank[30];char transtype;int no_days(int,int,int,int,int,int);double calculate_interest(int,double);public:
void add_to_file(int,int,int,int,char t_by[10],char t_no[20],char t_bank[30],chart_type,double,double,double);
void new_trans(void);void delete_acc(int);void displaybox(int);void display(void);void month_reports(void);
};/***************DISPLAY MONTHLY REPORTS*******************/void transaction::month_reports(){
int found=0,ac=0,d1=0,m1=0,y1=0;utility l;fstream file;struct date d;getdate(&d);
_setcursortype(_NOCURSOR);Again:clrscr();l.box(2,2,79,25);l.linehor(3,78,4,196);l.linehor(3,78,6,196);
l.linehor(3,78,23,196);gotoxy(3,1);cout
-
8/8/2019 Project Report for Banking
46/76
Banking System
46
gotoxy(30,24);coutd1;gotoxy(56,24);coutm1;gotoxy(59,24);couty1;break;
}}file.close();if(!found)
{gotoxy(30,24);cout
-
8/8/2019 Project Report for Banking
47/76
Banking System
47
file.seekg(0,ios::beg);while(file.read((char *)this,sizeof(transaction))){if((accno==ac)&&(dd==d1&&mm==m1&&yy==y1)){row++;gotoxy(3,row);cout
-
8/8/2019 Project Report for Banking
48/76
Banking System
48
l.linehor(3,78,23,196);gotoxy(3,1);cout
-
8/8/2019 Project Report for Banking
49/76
Banking System
49
l.linehor(3,78,23,196);gotoxy(3,1);cout
-
8/8/2019 Project Report for Banking
50/76
Banking System
50
for(int i=7;i
-
8/8/2019 Project Report for Banking
51/76
Banking System
51
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++;
}if(m1>m2){m1=1;y1++;
}}return days;
}/*********************ADD IN TRANSACTION****************************/void transaction::add_to_file(int ac,int d,int m,int y,char t_by[10],char t_no[20],chart_bank[30],char t_type,double inter,double amt,double bal){accno=ac;dd=d;mm=m;yy=y;strcpy(transby,t_by);strcpy(transbyno,t_no);
strcpy(transbank,t_bank);transtype=t_type;interest=inter;amount=amt;balance=bal;fstream file;file.open("BANKING.dat",ios::out|ios::app);file.write((char *) this,sizeof(transaction));file.close();}/**********************CALCULATE INTEREST************************/
double transaction::calculate_interest(int ac,double t_bal){fstream file;file.open("BANKING.dat",ios::in);file.seekg(0,ios::beg);int d1,m1,y1,days;while(file.read((char *)this,sizeof(transaction))){
-
8/8/2019 Project Report for Banking
52/76
Banking System
52
if(ac==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;double t_int=0.0;if((y2
-
8/8/2019 Project Report for Banking
53/76
Banking System
53
gotoxy(30,3);cprintf("TRANSACTION IN BANK");textcolor(WHITE);textbackground(BLACK);gotoxy(3,5);cprintf("TRANSACTION DATE:=>");gotoxy(69,5);cprintf("%d/%d/%d",d.da_day,d.da_mon,d.da_year);textcolor(YELLOW);textbackground(BLACK);gotoxy(30,24);cout
-
8/8/2019 Project Report for Banking
54/76
Banking System
54
return;t_type=toupper(t_type);
}while(t_type!='D'&& t_type!='W');do{l.clear(29,16);l.print(2,24,78);gotoxy(20,24);cprintf("ENTER TRANSACTION BY CASH,CHEQUE,DD");gotoxy(29,16);cin>>t_by;if(t_by[0]=='0')
return;valid=1;for(int i=0;t_by[i]!='\0';i++)
t_by[i]=toupper(t_by[i]);if(strcmp(t_by,"CASH")&&strcmp(t_by,"CHEQUE")&&strcmp(t_by,"DD")){valid=0;l.print(2,24,78);
gotoxy(20,24);cprintf("PLEASE ENTER CORRECTLY...OK");getch();}
}while(!valid);do{l.clear(34,17);l.print(2,24,78);if(strcmp(t_by,"CASH")==0)
{strcpy(t_byno,"XXXX");
strcpy(t_name,"XXXX");break;
}gotoxy(20,24);cprintf("ENTER CHEQUE,DD NUMBER");gotoxy(34,17);gets(t_byno);valid=1;if(t_byno[0]=='0')
return;if(t_byno[0]=='\0'&&strcmp(t_by,"CASH")!=0)
valid=1;else
break;if(strlen(t_byno)>19||t_byno[0]=='\0'){valid=0;l.print(2,24,78);gotoxy(20,24);cprintf("PLEASE ENTER CORRECTLY...OK");getch();}
-
8/8/2019 Project Report for Banking
55/76
Banking System
55
}while(!valid);do{l.clear(36,18);l.print(2,24,78);if(strcmp(t_by,"CASH")==0)
break;gotoxy(20,24);cprintf("ENTER TRANSACTION BY CASH,CHEQUE,DD");gotoxy(36,18);gets(t_name);valid=1;if(t_name[0]=='0')
return;if(t_name[0]=='\0'&&strcmp(t_by,"CASH")!=0)
valid=1;else
break;;for(int i=0;t_name[i]!='\0';i++)t_name[i]=toupper(t_name[i]);
if(strlen(t_name)>25||t_name[0]=='\0'){valid=0;l.print(2,24,78);gotoxy(20,24);cprintf("PLEASE ENTER CORRECTLY...OK");getch();}
}while(!valid);do{l.clear(36,19);
l.print(2,24,78);gotoxy(20,24);cprintf("ENTER TRANSACTION AMOUNT");l.getnumber(&t_amt,36,19);if(t_amt==0)
return;valid=1;if((t_type=='W'&&t_amt>t_bal)||(t_amt
-
8/8/2019 Project Report for Banking
56/76
Banking System
56
gotoxy(57,21);cin>>ans;if(ans=='0')return;
ans=toupper(ans);}while(ans!='N'&&ans!='Y');if(ans=='N')return;
t_int=calculate_interest(ac,t_bal);if(t_type=='D')t_bal+=t_amt+t_int;
elset_bal=(t_bal-t_amt)+t_int;
account a;a.updatebal(ac,t_bal);add_to_file(ac,d1,m1,y1,t_by,t_byno,t_name,t_type,t_int,t_amt,t_bal);
}}while(!a.foundacc(ac));}
/**********************DELETE A/C FROMM TRANSACTION****************/void transaction::delete_acc(int ac){fstream file,temp;file.open("BANKING.dat",ios::in);temp.open("TEMP1.dat",ios::out);file.seekg(0,ios::beg);while(!file.eof()){file.read((char *)this,sizeof(transaction));if(file.eof())
break;if(accno!=ac)
temp.write((char *)this,sizeof(transaction));}file.close();temp.close();file.open("BANKING.dat",ios::out);temp.open("TEMP1.dat",ios::in);temp.seekg(0,ios::beg);while(!temp.eof()){
temp.read((char *)this,sizeof(transaction));if(temp.eof())
break;if(accno!=ac)
file.write((char *)this,sizeof(transaction));}file.close();temp.close();
-
8/8/2019 Project Report for Banking
57/76
Banking System
57
}/****************PRINT*****************/void utility::print(int x,int y,int t){char ch=' ';textcolor(YELLOW);textbackground(WHITE);for(int i=0;i
-
8/8/2019 Project Report for Banking
58/76
Banking System
58
str[i]=ch;gotoxy(x+i,y);cprintf("%c",ch);i++;if(i>9)
break;}
}str[i]='\0';*num=atof(str);}/****************GETSTRING**************/void utility::getstring(char *str,int x,int y){int ch,i=0;str[0]='\0';while(1){
gotoxy(x+i,y);fflush(stdin);ch=getch();if(ch=='\r')
break;if(ch=='\b'){if(i!=0){i--;gotoxy(x+i,y);
cprintf(" ");}
}if(isascii(ch)&&!iscntrl(ch)){str[i]=ch;gotoxy(x+i,y);cprintf("%c",ch);i++;if(i>25)break;
}}str[i]='\0';}/****************CLEAR****************/void utility::clear(int x,int y){for(int i=x;i
-
8/8/2019 Project Report for Banking
59/76
Banking System
59
{gotoxy(i,y);cout
-
8/8/2019 Project Report for Banking
60/76
Banking System
60
cprintf("%c",196);}for(int row=y1;row
-
8/8/2019 Project Report for Banking
61/76
Banking System
61
key=getch();switch(key){case 72:
normal(32,i+10,headmenu[i]);i--;if(i==-1)
i=6;revers(32,i+10,headmenu[i]);revers(30,21,headmes[i]);break;
case 80:normal(32,i+10,headmenu[i]);i++;if(i==7)
i=0;revers(32,i+10,headmenu[i]);revers(30,21,headmes[i]);
break;}break;
case 13:choice=1;
}}while(!choice);
_setcursortype(_NOCURSOR);return(i+49);}/******************EDIT IN ACCOUNT MENU CHOICE*****************/
void mainmenu::editmenu(){account a;char choice1;do{choice1=emenu();switch(choice1){case '1': a.modify();
break;
case '2': a.delacc();break;
case '3': break;}
}while(choice1!='3');}/***************EDIT MENU FORMATE*****************/char mainmenu::emenu()
-
8/8/2019 Project Report for Banking
62/76
Banking System
62
{clrscr();utility l;textcolor(WHITE);textbackground(BLACK);clrscr();l.box(25,6,60,15);l.box(23,4,62,17);gotoxy(25,16);cprintf("MESSAGE :");textcolor(WHITE);gotoxy(34,5);textbackground(YELLOW);cprintf("EDIT ACCOUNT MENU");textbackground(BLACK);textcolor(WHITE);for(i=1;i
-
8/8/2019 Project Report for Banking
63/76
Banking System
63
break;case 13:
choice=1;}
}while(!choice);_setcursortype(_NOCURSOR);return(i+49);}/****************CONTROL MENU OF BANK***************/void mainmenu::controlmenu(){transaction t;account a;do{char choice=choicemenu();switch(choice){
case '1': a.newacc();break;
case '2': editmenu();break;
case '3': t.new_trans();break;
case '4': t.display();break;
case '5': t.month_reports();break;
case '6': a.display();
break;case '7': exit(0);
break;}}while(choice!='6');}/****************FOUND ACCOUNT********************/int account::foundacc(int ac){int found=0;fstream file;
file.open("ACCOUNT.dat",ios::in);file.seekg(0,ios::beg);while(file.read((char *)this,sizeof(account))){
if(accno==ac){found=1;break;
-
8/8/2019 Project Report for Banking
64/76
Banking System
64
}}file.close();return(found);}/****************RETURN TOTAL RECORDS*************/int account::recordno(int ac){int count=0;fstream file;file.open("ACCOUNT.dat",ios::in);file.seekg(0,ios::beg);while(file.read((char *)this,sizeof(account))){
if(accno==ac)break;
elsecount++;
}file.close();return(count);}/***************RETURN LAST ACCOUNT NUMBER***************/int account::lastaccno(){int count=0;fstream file;file.open("ACCOUNT.dat",ios::in);file.seekg(0,ios::beg);
while(file.read((char *)this,sizeof(account)))count=accno;
file.close();return(count);}/****************RETURN BALANCE*****************/double account::returnbalance(int ac){double bal=0.00;fstream file;file.open("ACCOUNT.dat",ios::in);
file.seekg(0,ios::beg);while(file.read((char *)this,sizeof(account))){if(accno==ac)
{bal=balance;break;
}
-
8/8/2019 Project Report for Banking
65/76
Banking System
65
}file.close();return(bal);}/**************RETURN NAME**********************/char *account::returnname(int ac){char c_name[30];fstream file;file.open("ACCOUNT.dat",ios::in);file.seekg(0,ios::beg);while(file.read((char *)this,sizeof(account))){if(accno==ac)
{strcpy(c_name,name);break;
}
}file.close();return c_name;}/***************RETURN ADDRESS******************/char *account::returnadd(int ac){char c_add[3][30];fstream file;file.open("ACCOUNT.dat",ios::in);file.seekg(0,ios::beg);
while(file.read((char *)this,sizeof(account))){if(accno==ac)
{strcpy(c_add[0],address[0]);strcpy(c_add[1],address[1]);strcpy(c_add[2],address[2]);break;
}}file.close();
return c_add[0];}/***************DELETE ACCOUNT******************/void account::deleteacc(int ac){fstream file,temp;file.open("ACCOUNT.dat",ios::in);temp.open("TEMP.dat",ios::out);
-
8/8/2019 Project Report for Banking
66/76
Banking System
66
file.seekg(0,ios::beg);while(!file.eof()){file.read((char *)this,sizeof(account));if(file.eof())
break;if(accno!=ac)
temp.write((char *)this,sizeof(account));}file.close();temp.close();file.open("ACCOUNT.dat",ios::out);temp.open("TEMP.dat",ios::in);temp.seekg(0,ios::beg);while(!temp.eof()){temp.read((char *)this,sizeof(account));if(temp.eof())
break;if(accno!=ac)
file.write((char *)this,sizeof(account));}file.close();temp.close();}
/***************LIST ALL ACCOUNT IN BANK*************/void account::display(){
double t_bal=0.00;textcolor(WHITE);textbackground(BLACK);clrscr();utility l;struct date d;getdate(&d);l.box(1,2,79,4);l.box(1,23,79,25);l.linehor(1,79,6,196);
_setcursortype(_NOCURSOR);gotoxy(2,1);cout
-
8/8/2019 Project Report for Banking
67/76
Banking System
67
fstream file;file.open("ACCOUNT.dat",ios::in);file.seekg(0,ios::beg);while(file.read((char *)this,sizeof(account))){
row++;gotoxy(2,row);cout
-
8/8/2019 Project Report for Banking
68/76
Banking System
68
file.write((char *)this,sizeof(account));file.close();}/**************MODIFY ACCOUNTS*******************/void account::modifyacc(int cac,char cname[30],char cadd[][30],double cdepo){int recno=recordno(cac);strcpy(name,cname);strcpy(address[0],cadd[0]);strcpy(address[1],cadd[1]);strcpy(address[2],cadd[2]);accno=cac;balance=balance-initial;balance+=cdepo;initial=cdepo;fstream file;file.open("ACCOUNT.dat",ios::out|ios::ate);int location;
location=(recno)*sizeof(account);file.seekp(location);file.write((char *)this,sizeof(account));file.close();return;}/**************MODIFY FORMATE********************/void account::modify(){clrscr();utility l;
int ac=0,valid,i=0;char c_name[30],t_name[30];char c_add[3][30],t_add[3][30];double t_depo,t_depo1;struct date d;getdate(&d);l.box(1,2,79,4);l.box(1,23,79,25);l.linehor(1,79,6,196);l.linehor(1,79,21,196);
_setcursortype(_NOCURSOR);
gotoxy(2,22);cout
-
8/8/2019 Project Report for Banking
69/76
Banking System
69
gotoxy(42,24);cin>>ac;if(ac==0)
return;_setcursortype(_NOCURSOR);l.clear(2,24);if(foundacc(ac)){fstream file;file.open("ACCOUNT.dat",ios::in);file.seekg(0,ios::beg);while(file.read((char *)this,sizeof(account))){
if(accno==ac){ac=accno;strcpy(t_name,name);strcpy(t_add[0],address[0]);strcpy(t_add[1],address[1]);
strcpy(t_add[2],address[2]);t_depo1=initial;break;
}}file.close();gotoxy(5,7);cout
-
8/8/2019 Project Report for Banking
70/76
Banking System
70
valid=0;l.clear(13,24);gotoxy(13,24);cprintf("NAME NOT BLANK OR GRATER THAN 25");}
}}while(!valid);do{valid=1;l.print(14,11+i,30);l.clear(13,24);gotoxy(13,24);cprintf(" PRESS ENTER FOR NOT MODIFY ");l.getstring(c_add[i],14,11+i);for(int j=0;c_add[i][j]!='\0';j++)
c_add[i][j]=toupper(c_add[i][j]);
if(c_add[0][0]=='\0'){for(int j=0;j25){valid=0;
l.clear(13,24);gotoxy(13,24);cprintf("ADDRESS NOT BLANK OR GRATER THAN 25");
}else{i++;if(i!=3)valid=0;
elsevalid=1;
}}
}while(!valid);do{valid=1;l.print(22,15,12);l.clear(13,24);
-
8/8/2019 Project Report for Banking
71/76
Banking System
71
gotoxy(13,24);cprintf(" PRESS FOR NOT MODIFY ");l.getnumber(&t_depo,22,15);if(t_depo==0)
{t_depo=t_depo1;break;
}if(t_depo
-
8/8/2019 Project Report for Banking
72/76
Banking System
72
gotoxy(2,22);printf("HELP :=>");gotoxy(59,22);cprintf("ENTER FOR EXIT");gotoxy(2,5);cprintf("DATE :");gotoxy(69,5);cprintf("%d/%d/%d",d.da_day,d.da_mon,d.da_year);gotoxy(29,3);cprintf("DELETE ACCOUNTS IN BANK");do{gotoxy(10,24);cprintf("ENTER ACCOUNT NO. TO BE DELETE :");
_setcursortype(_NORMALCURSOR);gotoxy(42,24);cin>>ac;if(ac==0)
return;_setcursortype(_NOCURSOR);l.clear(2,24);if(foundacc(ac)){gotoxy(10,9);cprintf("ACCOUNT NO :%d",ac);strcpy(s,returnname(ac));gotoxy(10,11);cprintf("NAME :%s",s);
gotoxy(10,13);cprintf("ADDRESS :%s",returnadd(ac));gotoxy(10,15);cprintf("BALANCE :%f",returnbalance(ac));char ans;
_setcursortype(_NORMALCURSOR);gotoxy(29,24);cprintf("DO YOU WANT TO DELETE [Y/N] :");cin>>ans;ans=toupper(ans);if(ans=='Y')
{deleteacc(ac);t.delete_acc(ac);}
return;}else{gotoxy(29,24);cprintf("ACCOUNT NO %d NOT FOUND",ac);getch();l.clear(2,24);
}}while(!foundacc(ac));return;}
/**************NEW ACCOUNT FORMATE****************/void account::newacc(){int d1,m1,y1,ac=0,valid,i=0;char c_name[30];char c_add[3][30];double t_depo;utility l;
-
8/8/2019 Project Report for Banking
73/76
Banking System
73
transaction t;clrscr();textcolor(WHITE);textbackground(BLACK);
_setcursortype(_NOCURSOR);clrscr();l.box(3,3,77,23);l.box(1,1,79,25);l.linehor(4,76,5,196);gotoxy(30,2);cprintf("NEW CUSTOMER ACCOUNT");gotoxy(4,24);printf("MESSAGE :");struct date d;getdate(&d);dd=d1=d.da_day;mm=m1=d.da_mon;yy=y1=d.da_year;
ac=lastaccno();ac++;if(ac==1){add(ac,c_name,c_add,t_depo);t.add_to_file(ac,d1,m1,y1,"CASH","XXXX","XXXX",'D',0.0,0.0,0.0);t.delete_acc(ac);deleteacc(ac);
}gotoxy(4,4);cout
-
8/8/2019 Project Report for Banking
74/76
Banking System
74
}while(!valid);do{valid=1;l.print(14,11+i,30);l.getstring(c_add[i],14,11+i);for(int j=0;c_add[i][j]!='\0';j++)
c_add[i][j]=toupper(c_add[i][j]);if(c_add[i][0]=='\0'||strlen(c_add[i])>25){valid=0;l.clear(13,24);gotoxy(13,24);cprintf("ADDRESS NOT BLANK OR GRATER THAN 25");
}else{i++;
if(i!=3)valid=0;
elsevalid=1;
}}while(!valid);do{valid=1;l.print(22,15,12);l.getnumber(&t_depo,22,15);
if(t_depo
-
8/8/2019 Project Report for Banking
75/76
Banking System
75
}/******************MAIN FUNCTION*********************/void main(){/***********SETTING FLOATING POINT FOR DISPLAY***************/cout.setf(ios::showpoint,ios::showpos);cout.setf(ios::fixed,ios::floatfield);cout.setf(ios::internal,ios::adjustfield);cout
-
8/8/2019 Project Report for Banking
76/76
Banking System
Bibliography
1. Object Oriented Programming with C++TMH,E.Balagurusamy
2. The Complete Reference C++TMH,Herbert Schidlt
3. A First Book of C++,Gary Bronson
4. Practical C++ Programming, OReilly .