Add to Favorites    Make Home Page 3066 Online  
 Language Categories  
 Our Services  

Home » Pascal Home » Pascal Projects Home » Program that stores Bank account holder data in file.

A D V E R T I S E M E N T

Search Projects & Source Codes:

Title Program that stores Bank account holder data in file.
Description
Category Pascal » Pascal Projects
Hits 78615
Code Select and Copy the Code
{ Description: Program that stores account holder data in file } program bank_acount; {Program that stores account holder data in file NOTE: make a txt file with name 'acc_file.txt' in the folder before running this code} uses crt; type name= record first :string; second:string; last :string; end; address = record flat :string; block :string; postal :string; city :string; province:string; country :string; end; apointer=^acount; Acount = record ano :real; aname :name; aaddress:address; credit:real; next:apointer end; acountfile=file of acount; var head,tail,temp :apointer; accountno: real; acount_choice:char; check:boolean; afile:acountfile; data:acount; {============================================================================} { ERROR MSGS } {============================================================================} PROCEDURE ERROR_MSG; BEGIN textcolor(lightred + blink); writeln;writeln; writeln('INCORRET NUMBER ENTERED !'); textcolor(15); writeln('Press any key to continue...'); readkey; END; PROCEDURE CHECK_NO(p:apointer;no:real); begin check:=false; while p<> nil do begin if P^.ano = no then check:=true; p:=p^.next; end; end; {============================================================================} { TRANSFER MONEY } {============================================================================} PROCEDURE TRANSFER(p:apointer); var q,r:apointer; ano1,ano2,money: real; ch:char; check:boolean; BEGIN q:=p; repeat begin clrscr; writeln; WRITeln('M O N E Y T R A N S F E R':50); writeln('=============================':50); writeln; check:=false; write('Enter the account number from which the money is to be transfer > '); readln(ano1); while p<>nil do begin if p^.ano=ano1 then begin r:=p; check:=true end; p:=p^.next; end; p:=q; if check =false then begin writeln('Account not found'); writeln('Press ENTER to enter agian or any other key to exit'); ch:=readkey; if ord(ch)<>13 then exit; end; end; until check=true; check:=false; repeat begin clrscr; gotoxy(1,2); WRITeln('M O N E Y T R A N S F E R':50); writeln('=============================':50); gotoxy(1,5); write('Enter the account number from which the money is to be transfer > ' ,ano1:1:0); writeln; write('Enter the account number to which the money is to be transfer > '); readln(ano2); p:=head; while p<>nil do begin if p^.ano=ano2 then begin q:=p; check:=true end; p:=p^.next; end; if check =false then begin writeln('Account not found'); writeln('Press ENTER to enter agian or any other key to exit'); ch:=readkey; if ord(ch)<>13 then exit; end; end; until check=true; write('Enter the amount to be transfer >' ); readln(money); if money > (r^.credit-1000) then begin writeln('not enough money to be transfer') ; writeln('press any key to return to main menu'); readkey; end else begin r^.credit:=r^.credit-money; q^.credit:=q^.credit+money; end; end; {============================================================================} { SEARCH ACCOUNT } {============================================================================} PROCEDURE SEARCH( p:apointer); var fname,lname,postal,city: string; count:integer; no:real ; find:char; procedure print_search(p:apointer); begin write('SEARCH NO. > '); writeln(count); write('ACCOUNT NUMBER > '); writeln(p^.ano:1:0); write('ACCOUNT CREDIT > '); writeln(p^.credit:1:0); write('ACCOUNT HOLDER NAME > '); write(p^.aname.first); write(' ',p^.aname.second); writeln(' ',p^.aname.last); write('ACCOUNT HOLDER ADDRESS > '); write('Flat:',p^.aaddress.flat); write(', Block:',p^.aaddress.block); write(', ',p^.aaddress.city); write(', ',p^.aaddress.province); write(', ',p^.aaddress.country); writeln(', ',p^.aaddress.postal); writeln; end; BEGIN clrscr; count:=0; writeln('S E A R C H A C C O U N T':40); writeln; Writeln('1) Search by account numbere '); Writeln('2) Search by first name'); Writeln('3) Search by last name '); Writeln('4) Search by postal code'); Writeln('5) Search by city'); Writeln('6) Exit'); writeln; write('Enter the search criteria > '); readln(find); case find of '1': BEGIN clrscr; write('Enter the Account Number > '); readln(no); while p<> nil do begin if no = p^.ano then begin count:=count+1; print_search(p); if count mod 3 = 0 then begin writeln('Press any key to continue..'); readkey; end; end; p:= p^.next; end; END; '2': BEGIN clrscr; write('Enter the first name > '); readln(fname); while p<> nil do begin if fname = p^.aname.first then begin count:=count+1; print_search(p); if count mod 3 =0 then begin writeln('Press any key to continue..'); readkey; end; end; p:= p^.next; end; END; '3': BEGIN clrscr; write('Enter the last name > '); readln(lname); while p<> nil do begin if lname = p^.aname.last then begin count:=count+1; print_search(p); if count mod 3=0 then begin writeln('Press any key to continue..'); readkey; end; end; p:= p^.next; end; END; '4': BEGIN clrscr; write('Enter the Postal Code > '); readln(postal); while p<> nil do begin if postal = p^.aaddress.postal then begin count:=count+1; print_search(p); if count mod 3 =0 then begin writeln('Press any key to continue..'); readkey; end; end; p:= p^.next; end; END; '5': BEGIN clrscr; write('Enter the city name > '); readln(city); while p<> nil do begin if city = p^.aaddress.city then begin count:=count+1; print_search(p); if count mod 3 =0 then begin writeln('Press any key to continue..'); readkey; end; end; p:= p^.next; end; END; '6': BEGIN exit; END; else BEGIN error_msg; END; END;{case} if ((find='1') or(find='2') or(find='3') or (find='4') or(find='5') or(find='6')) and (count = 0) then writeln('Name not found'); if ((find='1') or(find='2') or(find='3') or (find='4') or(find='5') or(find='6') )and((count mod 3 <> 0) or( count=0))then begin writeln('Press any key to continue...'); readkey; end; search(head); end; {============================================================================} { CLOSED ACCOUNT } {============================================================================} PROCEDURE Close(p:apointer); var r: apointer; no : real ; count:integer; BEGIN count:=0; clrscr; writeln; WRITE('Enter ACCOUNT NO. to close the account > '); readln(no); while p<> nil do begin if no = p^.next^.ano then begin r:= p^.next; p^.next:=p^.next^.next; r^.next:=nil; dispose (r); count:=1; end; p:= p^.next; end; if head^.ano = no then begin r:= head; head:=head^.next; r^.next:=nil; dispose (r); count:=1; end; if count=0 then writeln('Account not found') else Writeln('Record of ',no:10:0,' deleted'); writeln('Press any key to continue...'); readkey; END; {============================================================================} { READ DATA INTO ACCOUNT } {============================================================================} PROCEDURE READ_DATA(p: apointer); BEGIN accountno :=8876543; repeat begin accountno:=accountno+1; check_no(head,accountno); end; until check=false; p^.ano:=accountno; repeat clrscr; textcolor(11); writeln('ACCOUNT INFO'); writeln('--------------'); textcolor(15); writeln('Account No. > ',p^.ano:1:0 ); write ('Account credit > '); readln(P^.credit); gotoxy(1,4); writeln('Account credit > ' ,p^.credit:1:0); if P^.credit<1000 then begin writeln('Minimun acount limit is Rs.1000'); writeln('Press any key to enter again..'); readkey; end; until P^.credit>=1000; writeln; textcolor(11); writeln('ACCOUNT HOLDER NAME'); writeln('-------------------'); textcolor(15); repeat gotoxy(1,8); write('Enter the first name >'); readln(p^.aname.first); until length (p^.aname.first)>0; repeat gotoxy(1,9); write('Enter the second name >'); readln(p^.aname.second); until length (p^.aname.second)>0; repeat gotoxy(1,10); write('Enter the last name >'); readln(p^.aname.last); until length (p^.aname.last)>0; writeln; textcolor(11); writeln('ACCOUNT HOLDER ADDRESS'); writeln('----------------------'); textcolor(15); repeat gotoxy(1,14); write('Enter the Plot no./Flat no./House no. >'); readln(p^.aaddress.flat); until length (p^.aaddress.flat)>0; repeat gotoxy(1,15); write('Enter the Street no./Block no. >'); readln(p^.aaddress.block); until length (p^.aaddress.block)>0; repeat gotoxy(1,16); write('Enter the Postal Code >'); readln(p^.aaddress.postal); until length (p^.aaddress.postal)>0; repeat gotoxy(1,17); write('Enter the City >'); readln(p^.aaddress.city); until length (p^.aaddress.city)>0; repeat gotoxy(1,18); write('Enter the Province >'); readln(p^.aaddress.Province); until length (p^.aaddress.province)>0; repeat gotoxy(1,19); write('Enter the Country >'); readln(p^.aaddress.country); until length (p^.aaddress.country)>0; writeln; writeln('Data input completed!'); writeln('press any key to return to menu'); readkey; END; {============================================================================} { MAKE FILE } {============================================================================} PROCEDURE CREATE_FILE(P:APOINTER) ; BEGIN rewrite(afile); while p<>nil do begin data:=p^; write(afile,data); p:=p^.next; end; END; {============================================================================} { READ FORM FILE } {============================================================================} PROCEDURE READ_FILE(TEMP:APOINTER;DATA:ACOUNT); BEGIN temp^.ano:=data.ano; temp^.aname.first :=data.aname.first ; temp^.aname.second :=data.aname.second ; temp^.aname.last :=data.aname.last ; temp^.aaddress.flat :=data.aaddress.flat ; temp^.aaddress.block :=data.aaddress.block ; temp^.aaddress.postal :=data. aaddress.postal ; temp^.aaddress.city :=data.aaddress.city ; temp^.aaddress.province :=data.aaddress.province ; temp^.aaddress.country :=data.aaddress.country ; temp^.credit:= data.credit ; END; {============================================================================} { OPEN ACCOUNT } {============================================================================} PROCEDURE INSERT_ACCOUNT; BEGIN if head = nil then begin new(temp); read_data(temp); head:=temp; head^.next:=nil; end else begin new(temp); read_data(temp); temp^.next:=head; head:=temp; end end; {============================================================================} { MAIN MENU } {============================================================================} PROCEDURE Account_option; var select : char; begin clrscr; textcolor(9); writeln; writeln('ACOUNT OPTIONS':40); writeln; textcolor(15); writeln('1) OPEN ACCOUNT':41); writeln; writeln('2) CLOSED ACCOUNT':43); writeln; writeln('3) TRANSFER MONEY':43); writeln; writeln('4) SEARCH':35); writeln; writeln('5) EXIT':33); writeln;writeln; textcolor(7); write('ENTER THE OPTION FROM THE ABOVE MENU >'); readln(acount_choice); case acount_choice of '1': begin gotoxy(1,4); textcolor(11+blink); writeln('1) OPEN ACCOUNT':41); gotoxy(41,17); delay(1500); textcolor(15); insert_account; Account_option; end; '2': begin gotoxy(1,6); textcolor(11+blink); writeln('2) CLOSED ACCOUNT':43); gotoxy(41,17); delay(1500); textcolor(15); close(head); Account_option; end; '3': begin gotoxy(1,8); textcolor(11+blink); writeln('3) TRANSFER MONEY':43); gotoxy(41,17); delay(1500); textcolor(15); transfer(head); Account_option; end; '4': begin gotoxy(1,10); textcolor(11+blink); writeln('4) SEARCH':35); gotoxy(41,17); delay(1500); textcolor(15); search(head); Account_option; end; '5': begin gotoxy(1,12); textcolor(11+blink); writeln('5) EXIT':33); gotoxy(41,17); delay(500); create_file(head); exit; end; else begin ERROR_MSG; Account_option; end; end; end; {============================================================================} { END OF PROCEDURES } {============================================================================} BEGIN clrscr; accountno :=8876543; window(1,1,80,3); textcolor(11); writeln('B A N K A C C O U N T S':54); writeln('=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=':54); window(1,3,80,25); assign(afile,'acc_file.txt'); reset(afile); while not eof(afile) do begin if head = nil then begin new(temp); read(afile,data); READ_FILE (TEMP,DATA); head:=temp; head^.next:=nil; end else begin new(temp); read(afile,data); READ_FILE (TEMP,DATA); temp^.next:=head; head:=temp; end end; Account_option; END.

Related Source Codes

Script Name Author
Calendar date to day number and back Nicky McLean
Matrix Multiple Cirruse Salehnasab
Function Power Recursive Cirruse Salehnasab
swim brian colston
tetris (Mini Project) mehdi farrokhzad
Macsi - space fighting game. Macsi PÚter
Recursive Monkey Puzzle Solution - Project Maxim C.L. Wrne
Maze Game Project In Pascal Mahmood
Excellent Rat in a Maze Program. VyomWorld
A car game. You have to drive the car in such a way that you dont strike a barrier on the road. VyomWorld
Student Database Information System. VyomWorld
Tic Tac Toe Game implemented in Pascal. VyomWorld
Game to Gain more blocks by drawing appropriate lines from correct places(dots). VyomWorld
To Find The Coinage Of The Amount Entered. VyomWorld
Randomizes two 3x3 arrays and indicates the numbers whih are common in both the arrays otherwise an cross 'x' is shown instead. VyomWorld

A D V E R T I S E M E N T




Google Groups Subscribe to SourceCodesWorld - Techies Talk
Email:

Free eBook - Interview Questions: Get over 1,000 Interview Questions in an eBook for free when you join JobsAssist. Just click on the button below to join JobsAssist and you will immediately receive the Free eBook with thousands of Interview Questions in an ebook when you join.

New! Click here to Add your Code!


ASP Home | C Home | C++ Home | COBOL Home | Java Home | Pascal Home
Source Codes Home Page

 Advertisements  

Google Search

Google

Source Codes World.com is a part of Vyom Network.

Vyom Network : Web Hosting | Dedicated Server | Free SMS, GRE, GMAT, MBA | Online Exams | Freshers Jobs | Software Downloads | Interview Questions | Jobs, Discussions | Placement Papers | Free eBooks | Free eBooks | Free Business Info | Interview Questions | Free Tutorials | Arabic, French, German | IAS Preparation | Jokes, Songs, Fun | Free Classifieds | Free Recipes | Free Downloads | Bangalore Info | Tech Solutions | Project Outsourcing, Web Hosting | GATE Preparation | MBA Preparation | SAP Info | Software Testing | Google Logo Maker | Freshers Jobs

Sitemap | Privacy Policy | Terms and Conditions | Important Websites
Copyright ©2003-2021 SourceCodesWorld.com, All Rights Reserved.
Page URL: http://www.sourcecodesworld.com/source/show.asp?ScriptID=164


Download Yahoo Messenger | Placement Papers | Free SMS | C Interview Questions | C++ Interview Questions | Quick2Host Review