C Programs | IT Developer
IT Developer

C Programs



Share with a Friend

Structures in C

Bank account management (structure)

C Program: Bank Account Management System using Structures

Features:

  • Add account details
  • Display all accounts
  • Deposit and withdraw money
  • Search account by number
C

#include <stdio.h>

#include <string.h>

 

// Structure definition for Bank Account

struct BankAccount {

    int accountNumber;

    char name[50];

    float balance;

};

 

// Function declarations

void createAccount(struct BankAccount accounts[], int *n);

void displayAccounts(struct BankAccount accounts[], int n);

void depositMoney(struct BankAccount accounts[], int n);

void withdrawMoney(struct BankAccount accounts[], int n);

void searchAccount(struct BankAccount accounts[], int n);

 

int main() {

    struct BankAccount accounts[100];

    int n = 0, choice;

 

    do {

        printf("\n====== BANK ACCOUNT MANAGEMENT SYSTEM ======\n");

        printf("1. Create New Account\n");

        printf("2. Display All Accounts\n");

        printf("3. Deposit Money\n");

        printf("4. Withdraw Money\n");

        printf("5. Search Account\n");

        printf("6. Exit\n");

        printf("Enter your choice: ");

        scanf("%d", &choice);

 

        switch (choice) {

            case 1:

                createAccount(accounts, &n);

                break;

            case 2:

                displayAccounts(accounts, n);

                break;

            case 3:

                depositMoney(accounts, n);

                break;

            case 4:

                withdrawMoney(accounts, n);

                break;

            case 5:

                searchAccount(accounts, n);

                break;

            case 6:

                printf("Exiting... Thank you!\n");

                break;

            default:

                printf("Invalid choice! Try again.\n");

        }

    } while (choice != 6);

 

    return 0;

}

 

// Function to create a new account

void createAccount(struct BankAccount accounts[], int *n) {

    printf("\nEnter Account Number: ");

    scanf("%d", &accounts[*n].accountNumber);

    printf("Enter Account Holder Name: ");

    getchar(); // to clear newline character

    gets(accounts[*n].name);

    printf("Enter Initial Balance: ");

    scanf("%f", &accounts[*n].balance);

 

    (*n)++;

    printf(" Account created successfully!\n");

}

 

// Function to display all accounts

void displayAccounts(struct BankAccount accounts[], int n) {

    if (n == 0) {

        printf("\nNo accounts available!\n");

        return;

    }

    printf("\n----- ACCOUNT DETAILS -----\n");

    for (int i = 0; i < n; i++) {

        printf("\nAccount Number: %d\n", accounts[i].accountNumber);

        printf("Name: %s\n", accounts[i].name);

        printf("Balance: ₹%.2f\n", accounts[i].balance);

    }

}

 

// Function to deposit money

void depositMoney(struct BankAccount accounts[], int n) {

    int accNo, i, found = 0;

    float amount;

 

    printf("\nEnter Account Number: ");

    scanf("%d", &accNo);

 

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

        if (accounts[i].accountNumber == accNo) {

            printf("Enter amount to deposit: ₹");

            scanf("%f", &amount);

            accounts[i].balance += amount;

            printf(" Amount deposited successfully!\n");

            printf("Updated Balance: ₹%.2f\n", accounts[i].balance);

            found = 1;

            break;

        }

    }

 

    if (!found)

        printf(" Account not found!\n");

}

 

// Function to withdraw money

void withdrawMoney(struct BankAccount accounts[], int n) {

    int accNo, i, found = 0;

    float amount;

 

    printf("\nEnter Account Number: ");

    scanf("%d", &accNo);

 

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

        if (accounts[i].accountNumber == accNo) {

            printf("Enter amount to withdraw: ₹");

            scanf("%f", &amount);

 

            if (amount > accounts[i].balance)

                printf(" Insufficient balance!\n");

            else {

                accounts[i].balance -= amount;

                printf(" Withdrawal successful!\n");

                printf("Remaining Balance: ₹%.2f\n", accounts[i].balance);

            }

            found = 1;

            break;

        }

    }

 

    if (!found)

        printf(" Account not found!\n");

}

 

// Function to search account by number

void searchAccount(struct BankAccount accounts[], int n) {

    int accNo, i, found = 0;

 

    printf("\nEnter Account Number to search: ");

    scanf("%d", &accNo);

 

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

        if (accounts[i].accountNumber == accNo) {

            printf("\nAccount Found!\n");

            printf("Account Number: %d\n", accounts[i].accountNumber);

            printf("Name: %s\n", accounts[i].name);

            printf("Balance: ₹%.2f\n", accounts[i].balance);

            found = 1;

            break;

        }

    }

 

    if (!found)

        printf(" Account not found!\n");

}

Output

 
OUTPUT 1 :

====== BANK ACCOUNT MANAGEMENT SYSTEM ======
1. Create New Account
2. Display All Accounts
3. Deposit Money
4. Withdraw Money
5. Search Account
6. Exit
Enter your choice: 1
Enter Account Number: 1001
Enter Account Holder Name: Rohan
Enter Initial Balance: 5000
Account created successfully!

Enter your choice: 3
Enter Account Number: 1001
Enter amount to deposit: ₹2000
Amount deposited successfully!
Updated Balance: ₹7000


Explanation

Function

Description

createAccount()

Adds a new account record to the array.

displayAccounts()

Displays all stored accounts.

depositMoney()

Adds amount to a specific account balance.

withdrawMoney()

Deducts amount from account (if balance is sufficient).

searchAccount()

Finds account by number and shows details.