Bank account system in C using File handling - GeeksforGeeks (2024)

// C program to implement

// the above approach

#include <conio.h>

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <windows.h>

// Declaring all the functions

void checkbalance(char*);

void transfermoney(void);

void display(char*);

void person(char*);

void login(void);

void loginsu(void);

void account(void);

void accountcreated(void);

void afterlogin(void);

void logout(void);

// Declaring gotoxy

// function for setting

// cursor position

void gotoxy(int x, int y)

{

COORD c;

c.X = x;

c.Y = y;

SetConsoleCursorPosition(

GetStdHandle(STD_OUTPUT_HANDLE), c);

}

// Creating a structure to store

// data of the user

struct pass {

char username[50];

int date, month, year;

char pnumber[15];

char adharnum[20];

char fname[20];

char lname[20];

char fathname[20];

char mothname[20];

char address[50];

char typeaccount[20];

};

// Structure to keep track

// of amount transfer

struct money {

char usernameto[50];

char userpersonfrom[50];

long int money1;

};

struct userpass {

char password[50];

};

// Driver Code

int main()

{

int i, a, b, choice;

int passwordlength;

gotoxy(20, 3);

// Creating a Main

// menu for the user

printf("WELCOME TO BANK ACCOUNT SYSTEM\n\n");

gotoxy(18, 5);

printf("**********************************");

gotoxy(25, 7);

printf("DEVELOPER-Naman kumar");

gotoxy(20, 10);

printf("1.... CREATE A BANK ACCOUNT");

gotoxy(20, 12);

printf("2.... ALREADY A USER? SIGN IN");

gotoxy(20, 14);

printf("3.... EXIT\n\n");

printf("\n\nENTER YOUR CHOICE..");

scanf("%d", &choice);

switch (choice) {

case 1:

system("cls");

printf("\n\n USERNAME 50 CHARACTERS MAX!!");

printf("\n\n PASSWORD 50 CHARACTERS MAX!!");

account();

break;

case 2:

login();

break;

case 3:

exit(0);

break;

getch();

}

}

// Function to create accounts

// of users

void account(void)

{

char password[20];

int passwordlength, i, seek = 0;

char ch;

FILE *fp, *fu;

struct pass u1;

struct userpass p1;

struct userpass u2;

// Opening file to

// write data of a user

fp = fopen("username.txt", "ab");

// Inputs

system("cls");

printf("\n\n!!!!!CREATE ACCOUNT!!!!!");

printf("\n\nFIRST NAME..");

scanf("%s", &u1.fname);

printf("\n\n\nLAST NAME..");

scanf("%s", &u1.lname);

printf("\n\nFATHER's NAME..");

scanf("%s", &u1.fathname);

printf("\n\nMOTHER's NAME..");

scanf("%s", &u1.mothname);

printf("\n\nADDRESS..");

scanf("%s", &u1.address);

printf("\n\nACCOUNT TYPE");

scanf("%s", &u1.typeaccount);

printf("\n\nDATE OF BIRTH..");

printf("\nDATE-");

scanf("%d", &u1.date);

printf("\nMONTH-");

scanf("%d", &u1.month);

printf("\nYEAR-");

scanf("%d", &u1.year);

printf("\n\nADHAR NUMBER");

scanf("%s", u1.adharnum);

printf("\n\nPHONE NUMBER");

scanf("%s", u1.pnumber);

printf("\n\nUSERNAME.. ");

scanf("%s", &u1.username);

printf("\n\nPASSWORD..");

// Taking password in the form of

// stars

for (i = 0; i < 50; i++) {

ch = getch();

if (ch != 13) {

password[i] = ch;

ch = '*';

printf("%c", ch);

}

else

break;

}

// Writing to the file

fwrite(&u1, sizeof(u1),

1, fp);

// Closing file

fclose(fp);

// Calling another function

// after successful creation

// of account

accountcreated();

}

// Successful account creation

void accountcreated(void)

{

int i;

char ch;

system("cls");

printf(

"PLEASE WAIT....\n\nYOUR DATA IS PROCESSING....");

for (i = 0; i < 200000000; i++) {

i++;

i--;

}

gotoxy(30, 10);

printf("ACCOUNT CREATED SUCCESSFULLY....");

gotoxy(0, 20);

printf("Press enter to login");

getch();

login();

}

// Login function to check

// the username of the user

void login(void)

{

system("cls");

char username[50];

char password[50];

int i, j, k;

char ch;

FILE *fp, *fu;

struct pass u1;

struct userpass u2;

// Opening file of

// user data

fp = fopen("username.txt",

"rb");

if (fp == NULL) {

printf("ERROR IN OPENING FILE");

}

gotoxy(34, 2);

printf(" ACCOUNT LOGIN ");

gotoxy(7, 5);

printf("***********************************************"

"********************************");

gotoxy(35, 10);

printf("==== LOG IN ====");

// Take input

gotoxy(35, 12);

printf("USERNAME.. ");

scanf("%s", &username);

gotoxy(35, 14);

printf("PASSWORD..");

// Input the password

for (i = 0; i < 50; i++) {

ch = getch();

if (ch != 13) {

password[i] = ch;

ch = '*';

printf("%c", ch);

}

else

break;

}

// Checking if username

// exists in the file or not

while (fread(&u1, sizeof(u1),

1, fp)) {

if (strcmp(username,

u1.username)

== 0) {

loginsu();

display(username);

}

}

// Closing the file

fclose(fp);

}

// Redirect after

// successful login

void loginsu(void)

{

int i;

FILE* fp;

struct pass u1;

system("cls");

printf("Fetching account details.....\n");

for (i = 0; i < 20000; i++) {

i++;

i--;

}

gotoxy(30, 10);

printf("LOGIN SUCCESSFUL....");

gotoxy(0, 20);

printf("Press enter to continue");

getch();

}

// Display function to show the

// data of the user on screen

void display(char username1[])

{

system("cls");

FILE* fp;

int choice, i;

fp = fopen("username.txt", "rb");

struct pass u1;

if (fp == NULL) {

printf("error in opening file");

}

while (fread(&u1, sizeof(u1),

1, fp)) {

if (strcmp(username1,

u1.username)

== 0) {

gotoxy(30, 1);

printf("WELCOME, %s %s",

u1.fname, u1.lname);

gotoxy(28, 2);

printf("..........................");

gotoxy(55, 6);

printf("==== YOUR ACCOUNT INFO ====");

gotoxy(55, 8);

printf("***************************");

gotoxy(55, 10);

printf("NAME..%s %s", u1.fname,

u1.lname);

gotoxy(55, 12);

printf("FATHER's NAME..%s %s",

u1.fathname,

u1.lname);

gotoxy(55, 14);

printf("MOTHER's NAME..%s",

u1.mothname);

gotoxy(55, 16);

printf("ADHAR CARD NUMBER..%s",

u1.adharnum);

gotoxy(55, 18);

printf("MOBILE NUMBER..%s",

u1.pnumber);

gotoxy(55, 20);

printf("DATE OF BIRTH.. %d-%d-%d",

u1.date, u1.month, u1.year);

gotoxy(55, 22);

printf("ADDRESS..%s", u1.address);

gotoxy(55, 24);

printf("ACCOUNT TYPE..%s",

u1.typeaccount);

}

}

fclose(fp);

gotoxy(0, 6);

// Menu to perform different

// actions by user

printf(" HOME ");

gotoxy(0, 7);

printf("******");

gotoxy(0, 9);

printf(" 1....CHECK BALANCE");

gotoxy(0, 11);

printf(" 2....TRANSFER MONEY");

gotoxy(0, 13);

printf(" 3....LOG OUT\n\n");

gotoxy(0, 15);

printf(" 4....EXIT\n\n");

printf(" ENTER YOUR CHOICES..");

scanf("%d", &choice);

switch (choice) {

case 1:

checkbalance(username1);

break;

case 2:

transfermoney();

break;

case 3:

logout();

login();

break;

case 4:

exit(0);

break;

}

}

// Function to transfer

// money from one user to

// another

void transfermoney(void)

{

int i, j;

FILE *fm, *fp;

struct pass u1;

struct money m1;

char usernamet[20];

char usernamep[20];

system("cls");

// Opening file in read mode to

// read user's username

fp = fopen("username.txt", "rb");

// Creating a another file

// to write amount along with

// username to which amount

// is going to be transferred

fm = fopen("mon.txt", "ab");

gotoxy(33, 4);

printf("---- TRANSFER MONEY ----");

gotoxy(33, 5);

printf("========================");

gotoxy(33, 11);

printf("FROM (your username).. ");

scanf("%s", &usernamet);

gotoxy(33, 13);

printf(" TO (username of person)..");

scanf("%s", &usernamep);

// Checking for username if it

// is present in file or not

while (fread(&u1, sizeof(u1),

1, fp))

{

if (strcmp(usernamep,

u1.username)

== 0) {

strcpy(m1.usernameto,

u1.username);

strcpy(m1.userpersonfrom,

usernamet);

}

}

gotoxy(33, 16);

// Taking amount input

printf("ENTER THE AMOUNT TO BE TRANSFERRED..");

scanf("%d", &m1.money1);

// Writing to the file

fwrite(&m1, sizeof(m1),

1, fm);

gotoxy(0, 26);

printf(

"--------------------------------------------------"

"--------------------------------------------");

gotoxy(0, 28);

printf(

"--------------------------------------------------"

"--------------------------------------------");

gotoxy(0, 29);

printf("transferring amount, Please wait..");

gotoxy(10, 27);

for (i = 0; i < 70; i++) {

for (j = 0; j < 1200000; j++) {

j++;

j--;

}

printf("*");

}

gotoxy(33, 40);

printf("AMOUNT SUCCESSFULLY TRANSFERRED....");

getch();

// Close the files

fclose(fp);

fclose(fm);

// Function to return

// to the home screen

display(usernamet);

}

// Function to check balance

// in users account

void checkbalance(char username2[])

{

system("cls");

FILE* fm;

struct money m1;

char ch;

int i = 1, summoney = 0;

// Opening amount file record

fm = fopen("mon.txt", "rb");

int k = 5, l = 10;

int m = 30, n = 10;

int u = 60, v = 10;

gotoxy(30, 2);

printf("==== BALANCE DASHBOARD ====");

gotoxy(30, 3);

printf("***************************");

gotoxy(k, l);

printf("S no.");

gotoxy(m, n);

printf("TRANSACTION ID");

gotoxy(u, v);

printf("AMOUNT");

// Reading username to

// fetch the correct record

while (fread(&m1, sizeof(m1),

1, fm)) {

if (strcmp(username2,

m1.usernameto)

== 0) {

gotoxy(k, ++l);

printf("%d", i);

i++;

gotoxy(m, ++n);

printf("%s", m1.userpersonfrom);

gotoxy(u, ++v);

printf("%d", m1.money1);

// Adding and

// finding total money

summoney = summoney + m1.money1;

}

}

gotoxy(80, 10);

printf("TOTAL AMOUNT");

gotoxy(80, 12);

printf("%d", summoney);

getch();

// Closing file after

// reading it

fclose(fm);

display(username2);

}

// Logout function to bring

// user to the login screen

void logout(void)

{

int i, j;

system("cls");

printf("please wait, logging out");

for (i = 0; i < 10; i++) {

for (j = 0; j < 25000000; j++) {

i++;

i--;

}

printf(".");

}

gotoxy(30, 10);

printf("Sign out successfully..\n");

gotoxy(0, 20);

printf("press any key to continue..");

getch();

}

Bank account system in C using File handling - GeeksforGeeks (2024)

FAQs

Bank account system in C using File handling - GeeksforGeeks? ›

With the help of file handling, we will open the file of the user to whom we want to send the money to and then we will write the amount of money, and we will subtract the amount of money from the sender's file. This function will be used to log in to the account with a username and password that already exists.

How to make a banking system in C? ›

With the help of file handling, we will open the file of the user to whom we want to send the money to and then we will write the amount of money, and we will subtract the amount of money from the sender's file. This function will be used to log in to the account with a username and password that already exists.

What is the concept of file in C? ›

A File is a collection of data stored in the secondary memory. So far data was entered into the programs through the keyboard. So Files are used for storing information that can be processed by the programs. Files are not only used for storing the data, programs are also stored in files.

How to read and write a file in C? ›

In C, you can create, open, read, and write to files by declaring a pointer of type FILE , and use the fopen() function: FILE *fptr; fptr = fopen(filename, mode); FILE is basically a data type, and we need to create a pointer variable to work with it ( fptr ).

What are the input output operations of files? ›

Input/Output operations such as open, close, read, write and append, all of which deal with standard disk or tape files. The term would be used to refer to regular file operations in contrast to low-level system I/O such as dealing with virtual memory pages or OS tables of contents.

Which programming language for banking? ›

Many global banks use Java for their financial platforms and systems, including corporate banking portals, electronic trading platforms, and customer-facing applications. Despite being over 28 years old and the emergence of new programming languages, Java remains a trusted choice for developing banking applications.

What software system do banks use? ›

Generally, the top 10 banking software tools rely on . NET, Python, Ruby, and Java. Also, there are specific technologies for core banking development: Oracle FLEXCUBE, Finastra, Temenos, etc.

What is the mode of file handling in C? ›

File handling in C is the process in which we create, open, read, write, and close operations on a file. C language provides different functions such as fopen(), fwrite(), fread(), fseek(), fprintf(), etc. to perform input, output, and many different C file operations in our program.

Why do we use file handling in C? ›

The process of file handling refers to how we store the available data or info in a file with the help of a program. The C language stores all the data available in a program into a file with the help of file handling in C. This data can be fetched/extracted from these files to work again in any program.

What is the correct syntax to write data to a file in C? ›

Writing Data into a File. The putc() function is used to write a character to a file whereas the fputs() function is used to write a line of text into a file. The syntax for putc is: int putc(char c,FILE* fp);

How to take input in file handling in C? ›

Use scanf to read user input, and fprintf to write it to the file. Then use fscanf to read from the file, and printf to display what you have read.

What is the syntax for opening a file in C? ›

fopen() is used to create a new file or open an existing file. The syntax is as follows: fp = FILE *fopen(const char *filename, const char *mode);

What is random access in C? ›

Random File Access in C

Random file access means that you can take the file pointer to any part of the file for reading or writing. In general, with small files, we access the files sequentially. In sequential access, we access the file record by record or character by character.

What is a C in banking? ›

Answer and Explanation: The term A/C refers to the short form of the word 'account' or a bank account and is often found written on cheques or used colloquially as a short form in writing while referring to bank accounts.

How do I create a bank platform? ›

Developing a digital banking platform: key steps
  1. Define clear objectives and requirements. ...
  2. Choose the right technology stack. ...
  3. Differentiate with a customer-oriented approach. ...
  4. Ensure security. ...
  5. Regulatory compliance. ...
  6. Step 6. Development. ...
  7. Testing and launch. ...
  8. Improve the application.
Nov 10, 2023

How is coding used in banks? ›

Coding is needed for banks to run their systems fluently and quickly. They can handle large amounts of data in such a short time with excellent efficiency. Some coding languages banks use are Java, Python, C++, Scala, and more. Ultimately, coding is essential, involving analysis skills, problem-solving, and more.

Top Articles
Latest Posts
Article information

Author: Wyatt Volkman LLD

Last Updated:

Views: 6419

Rating: 4.6 / 5 (66 voted)

Reviews: 81% of readers found this page helpful

Author information

Name: Wyatt Volkman LLD

Birthday: 1992-02-16

Address: Suite 851 78549 Lubowitz Well, Wardside, TX 98080-8615

Phone: +67618977178100

Job: Manufacturing Director

Hobby: Running, Mountaineering, Inline skating, Writing, Baton twirling, Computer programming, Stone skipping

Introduction: My name is Wyatt Volkman LLD, I am a handsome, rich, comfortable, lively, zealous, graceful, gifted person who loves writing and wants to share my knowledge and understanding with you.