Bank Management System In C

c, Bank Management System In C, bank management system project report in c, Bank Management System using linked list in C, bank management system source code, bank management system project in data structure


Introduction :-

Here is a task we created as Bank Management System during our subsequent semester; it is finished and absolutely blunder free. This undertaking is centered around client account administrations in bank, so it is named "Bank Management System" 


Functions used in Bank Management System :-

The source code for Customer Account Bank Management System is generally short and straightforward. I have partitioned this C small scale project into numerous capacities, the majority of which are identified with various financial exercises. Recorded underneath are a portion of the more significant capacities which may assist you with understanding the task better. 

menu() – This capacity shows the menu or welcome screen to perform diverse financial exercises referenced beneath. 

new_acc() – This capacity makes another client account. It requests some close to home and banking subtleties of the client like name, date of birth, citizenship number, address and telephone number. You can enter the sum to store and pick one kind of store account – saving, current, fixed for 1 year, fixed for a very long time or fixed for a very long time. 

see list() – With this capacity, you can see the client's financial data, for example, account number, name, address and telephone number gave while making the record. 

alter() – This capacity has been utilized for changing the location and telephone number of a specific client account. 

execute() – With this capacity, you can store and pull out cash to and from a specific client account. 

eradicate() – This capacity is for erasing a client account. 

see() – This capacity shows account number, name, date of birth, citizenship number, age, address, telephone number, sort of record, sum kept and date of store. It additionally shows the measure of interest relating to a specific record type. 

In this bank the board framework project in C, document dealing with has been utilized for practically all capacities. Document has been utilized to store information identified with new record, exchange, altering of record data and review of record data. I haven't utilized record taking care of for the menu, interest computation and secret key.

Code :-

 #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;  
 }  


Tags :
c, Bank Management System In C, 
bank management system project report in c, Bank Management System using linked list in C, 
bank management system source code, 
bank management system project in data structure