Bank management system in c program

#include<stdio.h>

#include<stdlib.h>

#include<windows.h>

int i,j;

int main_exit;

void menu();

struct date{

    int month,day,year;


    };

struct {


    char name[60];

    int acc_no,age;

    char address[60];

    char citizenship[15];

    double phone;

    char acc_type[10];

    float amt;

    struct date dob;

    struct date deposit;

    struct date withdraw;


    }add,upd,check,rem,transaction;


float interest(float t,float amount,int rate)

{

    float SI;

    SI=(rate*t*amount)/100.0;

    return (SI);


}

void fordelay(int j)

{   int i,k;

    for(i=0;i<j;i++)

         k=i;

}


void new_acc()


{

    int choice;

    FILE *ptr;


    ptr=fopen("record.dat","a+");

    account_no:

    system("cls");

    printf("\t\t\t\xB2\xB2\xB2\ ADD RECORD  \xB2\xB2\xB2\xB2");

    printf("\n\n\nEnter today's date(mm/dd/yyyy):");

    scanf("%d/%d/%d",&add.deposit.month,&add.deposit.day,&add.deposit.year);

    printf("\nEnter the account number:");

    scanf("%d",&check.acc_no);

    while(fscanf(ptr,"%d %s %d/%d/%d %d %s %s %lf %s %f %d/%d/%d\n",&add.acc_no,add.name,&add.dob.month,&add.dob.day,&add.dob.year,&add.age,add.address,add.citizenship,&add.phone,add.acc_type,&add.amt,&add.deposit.month,&add.deposit.day,&add.deposit.year)!=EOF)

    {

        if (check.acc_no==add.acc_no)

            {printf("Account no. already in use!");

            fordelay(1000000000);

                goto account_no;


            }

    }

    add.acc_no=check.acc_no;

        printf("\nEnter the name:");

    scanf("%s",add.name);

    printf("\nEnter the date of birth(mm/dd/yyyy):");

    scanf("%d/%d/%d",&add.dob.month,&add.dob.day,&add.dob.year);

    printf("\nEnter the age:");

    scanf("%d",&add.age);

    printf("\nEnter the address:");

    scanf("%s",add.address);

    printf("\nEnter the citizenship number:");

    scanf("%s",add.citizenship);

    printf("\nEnter the phone number: ");

    scanf("%lf",&add.phone);

    printf("\nEnter the amount to deposit:$");

    scanf("%f",&add.amt);

    printf("\nType of account:\n\t#Saving\n\t#Current\n\t#Fixed1(for 1 year)\n\t#Fixed2(for 2 years)\n\t#Fixed3(for 3 years)\n\n\tEnter your choice:");

    scanf("%s",add.acc_type);


        fprintf(ptr,"%d %s %d/%d/%d %d %s %s %lf %s %f %d/%d/%d\n",add.acc_no,add.name,add.dob.month,add.dob.day,add.dob.year,add.age,add.address,add.citizenship,add.phone,add.acc_type,add.amt,add.deposit.month,add.deposit.day,add.deposit.year);



    fclose(ptr);

    printf("\nAccount created successfully!");

    add_invalid:

    printf("\n\n\n\t\tEnter 1 to go to the main menu and 0 to exit:");

    scanf("%d",&main_exit);

    system("cls");

    if (main_exit==1)

        menu();

    else if(main_exit==0)

            close();

    else

        {

            printf("\nInvalid!\a");

            goto add_invalid;

        }

}

void view_list()

{

    FILE *view;

    view=fopen("record.dat","r");

    int test=0;

    system("cls");

    printf("\nACC. NO.\tNAME\t\t\tADDRESS\t\t\tPHONE\n");


    while(fscanf(view,"%d %s %d/%d/%d %d %s %s %lf %s %f %d/%d/%d",&add.acc_no,add.name,&add.dob.month,&add.dob.day,&add.dob.year,&add.age,add.address,add.citizenship,&add.phone,add.acc_type,&add.amt,&add.deposit.month,&add.deposit.day,&add.deposit.year)!=EOF)

       {

           printf("\n%6d\t %10s\t\t\t%10s\t\t%.0lf",add.acc_no,add.name,add.address,add.phone);

           test++;

       }


    fclose(view);

    if (test==0)

        {   system("cls");

            printf("\nNO RECORDS!!\n");}


    view_list_invalid:

     printf("\n\nEnter 1 to go to the main menu and 0 to exit:");

        scanf("%d",&main_exit);

        system("cls");

        if (main_exit==1)

            menu();

        else if(main_exit==0)

            close();

        else

        {

            printf("\nInvalid!\a");

            goto view_list_invalid;

        }

}

void edit(void)

{

    int choice,test=0;

    FILE *old,*newrec;

    old=fopen("record.dat","r");

    newrec=fopen("new.dat","w");


    printf("\nEnter the account no. of the customer whose info you want to change:");

    scanf("%d",&upd.acc_no);

    while(fscanf(old,"%d %s %d/%d/%d %d %s %s %lf %s %f %d/%d/%d",&add.acc_no,add.name,&add.dob.month,&add.dob.day,&add.dob.year,&add.age,add.address,add.citizenship,&add.phone,add.acc_type,&add.amt,&add.deposit.month,&add.deposit.day,&add.deposit.year)!=EOF)

    {

        if (add.acc_no==upd.acc_no)

        {   test=1;

            printf("\nWhich information do you want to change?\n1.Address\n2.Phone\n\nEnter your choice(1 for address and 2 for phone):");

            scanf("%d",&choice);

            system("cls");

            if(choice==1)

                {printf("Enter the new address:");

                scanf("%s",upd.address);

                fprintf(newrec,"%d %s %d/%d/%d %d %s %s %lf %s %f %d/%d/%d\n",add.acc_no,add.name,add.dob.month,add.dob.day,add.dob.year,add.age,upd.address,add.citizenship,add.phone,add.acc_type,add.amt,add.deposit.month,add.deposit.day,add.deposit.year);

                system("cls");

                printf("Changes saved!");

                }

            else if(choice==2)

                {

                    printf("Enter the new phone number:");

                scanf("%lf",&upd.phone);

                fprintf(newrec,"%d %s %d/%d/%d %d %s %s %lf %s %f %d/%d/%d\n",add.acc_no,add.name,add.dob.month,add.dob.day,add.dob.year,add.age,add.address,add.citizenship,upd.phone,add.acc_type,add.amt,add.deposit.month,add.deposit.day,add.deposit.year);

                system("cls");

                printf("Changes saved!");

                }


        }

        else

            fprintf(newrec,"%d %s %d/%d/%d %d %s %s %lf %s %f %d/%d/%d\n",add.acc_no,add.name,add.dob.month,add.dob.day,add.dob.year,add.age,add.address,add.citizenship,add.phone,add.acc_type,add.amt,add.deposit.month,add.deposit.day,add.deposit.year);

    }

    fclose(old);

    fclose(newrec);

    remove("record.dat");

    rename("new.dat","record.dat");


if(test!=1)

        {   system("cls");

            printf("\nRecord not found!!\a\a\a");

            edit_invalid:

              printf("\nEnter 0 to try again,1 to return to main menu and 2 to exit:");

              scanf("%d",&main_exit);

              system("cls");

                 if (main_exit==1)


                    menu();

                else if (main_exit==2)

                    close();

                else if(main_exit==0)

                    edit();

                else

                    {printf("\nInvalid!\a");

                    goto edit_invalid;}

        }

    else

        {printf("\n\n\nEnter 1 to go to the main menu and 0 to exit:");

        scanf("%d",&main_exit);

        system("cls");

        if (main_exit==1)

            menu();

        else

            close();

        }

}


void transact(void)

{   int choice,test=0;

    FILE *old,*newrec;

    old=fopen("record.dat","r");

    newrec=fopen("new.dat","w");


        printf("Enter the account no. of the customer:");

    scanf("%d",&transaction.acc_no);

    while (fscanf(old,"%d %s %d/%d/%d %d %s %s %lf %s %f %d/%d/%d",&add.acc_no,add.name,&add.dob.month,&add.dob.day,&add.dob.year,&add.age,add.address,add.citizenship,&add.phone,add.acc_type,&add.amt,&add.deposit.month,&add.deposit.day,&add.deposit.year)!=EOF)

   {


            if(add.acc_no==transaction.acc_no)

            {   test=1;

                if(strcmpi(add.acc_type,"fixed1")==0||strcmpi(add.acc_type,"fixed2")==0||strcmpi(add.acc_type,"fixed3")==0)

                {

                    printf("\a\a\a\n\nYOU CANNOT DEPOSIT OR WITHDRAW CASH IN FIXED ACCOUNTS!!!!!");

                    fordelay(1000000000);

                    system("cls");

                    menu();


                }

                printf("\n\nDo you want to\n1.Deposit\n2.Withdraw?\n\nEnter your choice(1 for deposit and 2 for withdraw):");

                scanf("%d",&choice);

                if (choice==1)

                {

                    printf("Enter the amount you want to deposit:$ ");

                    scanf("%f",&transaction.amt);

                    add.amt+=transaction.amt;

                    fprintf(newrec,"%d %s %d/%d/%d %d %s %s %lf %s %f %d/%d/%d\n",add.acc_no,add.name,add.dob.month,add.dob.day,add.dob.year,add.age,add.address,add.citizenship,add.phone,add.acc_type,add.amt,add.deposit.month,add.deposit.day,add.deposit.year);

                    printf("\n\nDeposited successfully!");

                }

                else

                {

                    printf("Enter the amount you want to withdraw:$ ");

                    scanf("%f",&transaction.amt);

                    add.amt-=transaction.amt;

                    fprintf(newrec,"%d %s %d/%d/%d %d %s %s %lf %s %f %d/%d/%d\n",add.acc_no,add.name,add.dob.month,add.dob.day,add.dob.year,add.age,add.address,add.citizenship,add.phone,add.acc_type,add.amt,add.deposit.month,add.deposit.day,add.deposit.year);

                    printf("\n\nWithdrawn successfully!");

                }


            }

            else

            {

               fprintf(newrec,"%d %s %d/%d/%d %d %s %s %lf %s %f %d/%d/%d\n",add.acc_no,add.name,add.dob.month,add.dob.day,add.dob.year,add.age,add.address,add.citizenship,add.phone,add.acc_type,add.amt,add.deposit.month,add.deposit.day,add.deposit.year);

            }

   }

   fclose(old);

   fclose(newrec);

   remove("record.dat");

   rename("new.dat","record.dat");

   if(test!=1)

   {

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

       transact_invalid:

      printf("\n\n\nEnter 0 to try again,1 to return to main menu and 2 to exit:");

      scanf("%d",&main_exit);

      system("cls");

      if (main_exit==0)

        transact();

    else if (main_exit==1)

        menu();

    else if (main_exit==2)

        close();

    else

    {

        printf("\nInvalid!");

        goto transact_invalid;

    }


   }

   else

   {

       printf("\nEnter 1 to go to the main menu and 0 to exit:");

        scanf("%d",&main_exit);

        system("cls");

        if (main_exit==1)

            menu();

        else

            close();

   }


}

void erase(void)

{

    FILE *old,*newrec;

    int test=0;

    old=fopen("record.dat","r");

    newrec=fopen("new.dat","w");

    printf("Enter the account no. of the customer you want to delete:");

    scanf("%d",&rem.acc_no);

    while (fscanf(old,"%d %s %d/%d/%d %d %s %s %lf %s %f %d/%d/%d",&add.acc_no,add.name,&add.dob.month,&add.dob.day,&add.dob.year,&add.age,add.address,add.citizenship,&add.phone,add.acc_type,&add.amt,&add.deposit.month,&add.deposit.day,&add.deposit.year)!=EOF)

   {

        if(add.acc_no!=rem.acc_no)

            fprintf(newrec,"%d %s %d/%d/%d %d %s %s %lf %s %f %d/%d/%d\n",add.acc_no,add.name,add.dob.month,add.dob.day,add.dob.year,add.age,add.address,add.citizenship,add.phone,add.acc_type,add.amt,add.deposit.month,add.deposit.day,add.deposit.year);


        else

            {test++;

            printf("\nRecord deleted successfully!\n");

            }

   }

   fclose(old);

   fclose(newrec);

   remove("record.dat");

   rename("new.dat","record.dat");

   if(test==0)

        {

            printf("\nRecord not found!!\a\a\a");

            erase_invalid:

              printf("\nEnter 0 to try again,1 to return to main menu and 2 to exit:");

              scanf("%d",&main_exit);


                 if (main_exit==1)

                    menu();

                else if (main_exit==2)

                    close();

                else if(main_exit==0)

                    erase();

                else

                    {printf("\nInvalid!\a");

                    goto erase_invalid;}

        }

    else

        {printf("\nEnter 1 to go to the main menu and 0 to exit:");

        scanf("%d",&main_exit);

        system("cls");

        if (main_exit==1)

            menu();

        else

            close();

        }


}


void see(void)

{

    FILE *ptr;

    int test=0,rate;

    int choice;

    float time;

    float intrst;

    ptr=fopen("record.dat","r");

    printf("Do you want to check by\n1.Account no\n2.Name\nEnter your choice:");

    scanf("%d",&choice);

    if (choice==1)

    {   printf("Enter the account number:");

        scanf("%d",&check.acc_no);


        while (fscanf(ptr,"%d %s %d/%d/%d %d %s %s %lf %s %f %d/%d/%d",&add.acc_no,add.name,&add.dob.month,&add.dob.day,&add.dob.year,&add.age,add.address,add.citizenship,&add.phone,add.acc_type,&add.amt,&add.deposit.month,&add.deposit.day,&add.deposit.year)!=EOF)

        {

            if(add.acc_no==check.acc_no)

            {   system("cls");

                test=1;


                printf("\nAccount NO.:%d\nName:%s \nDOB:%d/%d/%d \nAge:%d \nAddress:%s \nCitizenship No:%s \nPhone number:%.0lf \nType Of Account:%s \nAmount deposited:$ %.2f \nDate Of Deposit:%d/%d/%d\n\n",add.acc_no,add.name,add.dob.month,add.dob.day,add.dob.year,add.age,add.address,add.citizenship,add.phone,

                add.acc_type,add.amt,add.deposit.month,add.deposit.day,add.deposit.year);

                if(strcmpi(add.acc_type,"fixed1")==0)

                    {

                        time=1.0;

                        rate=9;

                        intrst=interest(time,add.amt,rate);

                        printf("\n\nYou will get $%.2f as interest on %d/%d/%d",intrst,add.deposit.month,add.deposit.day,add.deposit.year+1);

                    }

                else if(strcmpi(add.acc_type,"fixed2")==0)

                    {

                        time=2.0;

                        rate=11;

                        intrst=interest(time,add.amt,rate);

                        printf("\n\nYou will get $.%.2f as interest on %d/%d/%d",intrst,add.deposit.month,add.deposit.day,add.deposit.year+2);


                    }

                else if(strcmpi(add.acc_type,"fixed3")==0)

                    {

                        time=3.0;

                        rate=13;

                        intrst=interest(time,add.amt,rate);

                        printf("\n\nYou will get $.%.2f as interest on %d/%d/%d",intrst,add.deposit.month,add.deposit.day,add.deposit.year+3);


                    }

                 else if(strcmpi(add.acc_type,"saving")==0)

                    {

                        time=(1.0/12.0);

                        rate=8;

                        intrst=interest(time,add.amt,rate);

                        printf("\n\nYou will get $.%.2f as interest on %d of every month",intrst,add.deposit.day);


                     }

                 else if(strcmpi(add.acc_type,"current")==0)

                    {


                        printf("\n\nYou will get no interest\a\a");


                     }


            }

        }

    }

    else if (choice==2)

    {   printf("Enter the name:");

        scanf("%s",&check.name);

        while (fscanf(ptr,"%d %s %d/%d/%d %d %s %s %lf %s %f %d/%d/%d",&add.acc_no,add.name,&add.dob.month,&add.dob.day,&add.dob.year,&add.age,add.address,add.citizenship,&add.phone,add.acc_type,&add.amt,&add.deposit.month,&add.deposit.day,&add.deposit.year)!=EOF)

        {

            if(strcmpi(add.name,check.name)==0)

            {   system("cls");

                test=1;

                printf("\nAccount No.:%d\nName:%s \nDOB:%d/%d/%d \nAge:%d \nAddress:%s \nCitizenship No:%s \nPhone number:%.0lf \nType Of Account:%s \nAmount deposited:$%.2f \nDate Of Deposit:%d/%d/%d\n\n",add.acc_no,add.name,add.dob.month,add.dob.day,add.dob.year,add.age,add.address,add.citizenship,add.phone,

                add.acc_type,add.amt,add.deposit.month,add.deposit.day,add.deposit.year);

                if(strcmpi(add.acc_type,"fixed1")==0)

                    {

                        time=1.0;

                        rate=9;

                        intrst=interest(time,add.amt,rate);

                        printf("\n\nYou will get $.%.2f as interest on %d/%d/%d",intrst,add.deposit.month,add.deposit.day,add.deposit.year+1);

                    }

                else if(strcmpi(add.acc_type,"fixed2")==0)

                    {

                        time=2.0;

                        rate=11;

                        intrst=interest(time,add.amt,rate);

                        printf("\n\nYou will get $.%.2f as interest on %d/%d/%d",intrst,add.deposit.month,add.deposit.day,add.deposit.year+2);


                    }

                else if(strcmpi(add.acc_type,"fixed3")==0)

                    {

                        time=3.0;

                        rate=13;

                        intrst=interest(time,add.amt,rate);

                        printf("\n\nYou will get $.%.2f as interest on %d/%d/%d",intrst,add.deposit.month,add.deposit.day,add.deposit.year+3);


                    }

                 else if(strcmpi(add.acc_type,"saving")==0)

                    {

                        time=(1.0/12.0);

                        rate=8;

                        intrst=interest(time,add.amt,rate);

                        printf("\n\nYou will get $.%.2f as interest on %d of every month",intrst,add.deposit.day);


                     }

                 else if(strcmpi(add.acc_type,"current")==0)

                    {


                        printf("\n\nYou will get no interest\a\a");


                     }


            }

        }

    }



    fclose(ptr);

     if(test!=1)

        {   system("cls");

            printf("\nRecord not found!!\a\a\a");

            see_invalid:

              printf("\nEnter 0 to try again,1 to return to main menu and 2 to exit:");

              scanf("%d",&main_exit);

              system("cls");

                 if (main_exit==1)

                    menu();

                else if (main_exit==2)

                    close();

                else if(main_exit==0)

                    see();

                else

                    {

                        system("cls");

                        printf("\nInvalid!\a");

                        goto see_invalid;}

        }

    else

        {printf("\nEnter 1 to go to the main menu and 0 to exit:");

        scanf("%d",&main_exit);}

        if (main_exit==1)

        {

            system("cls");

            menu();

        }


        else

           {


             system("cls");

            close();

            }


}



void close(void)

{

    printf("\n\n\n\nThis C Mini Project is developed by Code With C team!");

    }



void menu(void)

{   int choice;

    system("cls");

    system("color 9");

    printf("\n\n\t\t\tCUSTOMER ACCOUNT BANKING MANAGEMENT SYSTEM");

    printf("\n\n\n\t\t\t\xB2\xB2\xB2\xB2\xB2\xB2\xB2 WELCOME TO THE MAIN MENU \xB2\xB2\xB2\xB2\xB2\xB2\xB2");

    printf("\n\n\t\t1.Create new account\n\t\t2.Update information of existing account\n\t\t3.For transactions\n\t\t4.Check the details of existing account\n\t\t5.Removing existing account\n\t\t6.View customer's list\n\t\t7.Exit\n\n\n\n\n\t\t Enter your choice:");

    scanf("%d",&choice);


    system("cls");

    switch(choice)

    {

        case 1:new_acc();

        break;

        case 2:edit();

        break;

        case 3:transact();

        break;

        case 4:see();

        break;

        case 5:erase();

        break;

        case 6:view_list();

        break;

        case 7:close();

        break;


    }




}

int main()

{

    char pass[10],password[10]="codewithc";

    int i=0;

    printf("\n\n\t\tEnter the password to login:");

    scanf("%s",pass);

    /*do

    {

    //if (pass[i]!=13&&pass[i]!=8)

        {

            printf("*");

            pass[i]=getch();

            i++;

        }

    }while (pass[i]!=13);

    pass[10]='\0';*/

    if (strcmp(pass,password)==0)

        {printf("\n\nPassword Match!\nLOADING");

        for(i=0;i<=6;i++)

        {

            fordelay(100000000);

            printf(".");

        }

                system("cls");

            menu();

        }

    else

        {   printf("\n\nWrong password!!\a\a\a");

            login_try:

            printf("\nEnter 1 to try again and 0 to exit:");

            scanf("%d",&main_exit);

            if (main_exit==1)

                    {


                        system("cls");

                        main();

                    }


            else if (main_exit==0)

                    {

                    system("cls");

                    close();}

            else

                    {printf("\nInvalid!");

                    fordelay(1000000000);

                    system("cls");

                    goto login_try;}


        }

        return 0;

}

Post a Comment

If you have any doubts, Please let me know
Thanks!

Previous Post Next Post