├── README.md └── bank.c /README.md: -------------------------------------------------------------------------------- 1 | # Simple Banking System 2 | 3 | This is a Banking System Concept created using C. 4 | 5 | ## Features 6 | 7 | * Create Bank Account. 8 | * Deposit & Withdraw Money 9 | * Transaction Receipt with date & time 10 | * View Account Balance 11 | * Simple UI 12 | -------------------------------------------------------------------------------- /bank.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | //variables for functions 9 | void login(); 10 | int newacc(); 11 | void Exit(); 12 | int userscrn(); 13 | int accdet(); 14 | int chkbal(); 15 | int tramny(); 16 | int depmny(); 17 | int delacc(); 18 | void delsuccess(); 19 | int updtacc(); 20 | int updtusrnm(); 21 | int updtpin(); 22 | int logout(); 23 | void loading(); 24 | void invuname(); 25 | void invpin(); 26 | void invlog(); 27 | 28 | int check=0; 29 | 30 | 31 | //Variables for Create New Account Details 32 | struct details{ 33 | char placeholder[5]; 34 | char username[15]; 35 | char NIC[13]; 36 | char F_name[15]; 37 | char L_name[15]; 38 | char year[5]; 39 | char month[4]; 40 | char date[4]; 41 | char City[20]; 42 | char email[25]; 43 | char P_num[11]; 44 | char pin[4]; 45 | }; 46 | 47 | //Variables for Create New Account Details 48 | 49 | //Variables for Transfer money 50 | struct tramny{ 51 | char R_Name[15]; 52 | int amount[10]; 53 | char S_Name[15]; 54 | char NIC[13]; 55 | char remarks[25]; 56 | }; 57 | 58 | int main(){ 59 | 60 | system("cls"); //Clear Screen 61 | system("color 0E"); 62 | int mainchoice; 63 | //Selection menu 64 | mainmenu: 65 | 66 | printf("\n====================Temp BANK====================\n"); 67 | 68 | printf("\n\n\t1.Log-In to a Existing Account.\t"); 69 | printf("\n\n\t2.Create a New Account.\t"); 70 | printf("\n\n\t3.Exit.\t\n"); 71 | printf("\n\n================================================="); 72 | 73 | //Prompting user for input & getting input 74 | printf("\n\nYour selection "); 75 | scanf("%d",&mainchoice); 76 | 77 | switch (mainchoice){ 78 | case 1: 79 | login(); 80 | break; 81 | 82 | case 2: 83 | newacc(); 84 | break; 85 | 86 | case 3: 87 | system("cls"); 88 | Exit(); 89 | break; 90 | 91 | default: 92 | printf ("\nInvalid Selection\n\n"); 93 | goto mainmenu; 94 | //If user inputs any other value than 1 2 3 displays an error message & allows to choose a value again 95 | 96 | } 97 | 98 | return 0; 99 | } 100 | 101 | //Function for Login to a existing account 102 | void login(){ 103 | 104 | system("cls"); //Clear Screen 105 | char usname[20]; 106 | unsigned int pinnum; 107 | 108 | FILE *login; 109 | login = fopen("details.txt","r"); 110 | 111 | printf("\n==================Temp BANK==================\n"); 112 | 113 | printf("\n\n\tEnter Your Username: "); 114 | scanf("%s",&usname); 115 | printf("\n\tYour Name: %s",usname); 116 | printf("\n\n\tEnter Your Pin Number: "); 117 | scanf("%u",&pinnum); 118 | printf("\n\tYour Pin Number: %u",pinnum); 119 | printf("\n\n============================================="); 120 | 121 | fclose(login); 122 | 123 | getch(); 124 | userscrn(); 125 | 126 | } 127 | 128 | //Function for Creating a new account 129 | int newacc(){ 130 | 131 | // char username[15]; 132 | // char NIC[13]; 133 | // char F_name[15]; 134 | // char L_name[15]; 135 | // char year[5]; 136 | // char month[4]; 137 | // char date[4]; 138 | // char City[20]; 139 | // char email[25]; 140 | // char P_num[11]; 141 | // char pin[4]; 142 | 143 | system("cls"); //Clear Screen 144 | int newchoice; 145 | 146 | printf("\n==================Temp BANK==================\n"); 147 | 148 | printf("\nPlease submit the following details to proceed.\n\n"); 149 | 150 | FILE *newaccinputs; 151 | struct details N; 152 | newaccinputs = fopen ("details.txt","a+"); 153 | 154 | printf("National Identy Card No : "); 155 | scanf("%s",&N.NIC); 156 | 157 | printf("\nFirst Name : "); 158 | scanf("%s",&N.F_name); 159 | 160 | printf("\nLast Name : "); 161 | scanf("%s",&N.L_name); 162 | 163 | printf("\nDATE OF BIRTH.."); 164 | 165 | printf("\n\tYear : "); 166 | scanf("\t%s",&N.year); 167 | 168 | printf("\n\tMonth : "); 169 | scanf("\t%s",&N.month); 170 | 171 | printf("\n\tDate : "); 172 | scanf("\t%s",&N.date); 173 | 174 | printf("\nCity : "); 175 | scanf("%s",&N.City); 176 | 177 | printf("\nPhone Number : "); 178 | scanf("%s",&N.P_num); 179 | 180 | printf("\nEmail : "); 181 | scanf("%s",&N.email); 182 | 183 | printf("\nEnter Your Username: "); 184 | scanf("%s",&N.username); 185 | 186 | printf("\nEnter Your Pin Number: "); 187 | scanf("%s",&N.pin); 188 | 189 | fflush(stdin); 190 | fwrite(&N, sizeof(N),1, newaccinputs); 191 | // fprintf(newaccinputs,"%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n",&N.NIC,&N.F_name,&N.L_name,&N.year,&N.month,&N.date,&N.City,&N.P_num,&N.email,&N.username,&N.pin); 192 | // fwrite(&N,sizeof(struct newAcc),1,newaccinputs); 193 | fclose(newaccinputs); 194 | 195 | system("cls"); //Clear Screen 196 | printf("\n====================Temp BANK====================\n"); 197 | printf("\n\n\t1.Account Created Successfully.\t"); 198 | printf("\n\n================================================="); 199 | 200 | getch(); 201 | userscrn(); 202 | 203 | } 204 | 205 | //User Screen Functions 206 | int userscrn(){ 207 | 208 | system("cls"); //Clear Screen 209 | 210 | int userchoice; 211 | //Selection menu 212 | usermenu: 213 | 214 | printf("\n====================Temp BANK====================\n"); 215 | 216 | printf("\n\n\t1.Account Details.\t"); 217 | printf("\n\n\t2.Check Account Balance.\t"); 218 | printf("\n\n\t3.Transfer Money.\t"); 219 | printf("\n\n\t4.Deposit Money.\t"); 220 | printf("\n\n\t5.Delete Account.\t"); 221 | printf("\n\n\t6.Update Account.\t"); 222 | printf("\n\n\t7.Log-Out.\t"); 223 | printf("\n\n\t8.Exit.\t\n"); 224 | printf("\n\n================================================="); 225 | 226 | //Prompting user for input & getting input 227 | printf("\n\nYour selection "); 228 | scanf("%d",&userchoice); 229 | 230 | switch (userchoice){ 231 | case 1: 232 | accdet(); 233 | break; 234 | 235 | case 2: 236 | chkbal(); 237 | break; 238 | 239 | case 3: 240 | tramny(); 241 | break; 242 | 243 | case 4: 244 | depmny(); 245 | break; 246 | 247 | case 5: 248 | delacc(); 249 | break; 250 | 251 | case 6: 252 | updtacc(); 253 | break; 254 | 255 | case 7: 256 | logout(); 257 | break; 258 | 259 | case 8: 260 | Exit(); 261 | break; 262 | 263 | default: 264 | printf ("\nInvalid Selection\n\n"); 265 | goto usermenu; 266 | 267 | } 268 | 269 | } 270 | 271 | //Account Details Screen 272 | int accdet(){ 273 | 274 | FILE *newaccinputs; 275 | newaccinputs = fopen("details.txt", "r"); 276 | struct details N; 277 | system("cls"); //Clear Screen 278 | 279 | printf("\n====================Temp BANK====================\n"); 280 | printf("\n\n\tAccount Details\t\n"); 281 | 282 | 283 | printf("\n\n\tName - %s",N.username); 284 | printf("\n\n\tNIC Number - \t"); 285 | printf("\n\n\tPress Any Key To Go Back.\n\n"); 286 | printf("\n\n================================================="); 287 | 288 | getch(); 289 | userscrn(); 290 | 291 | } 292 | 293 | 294 | //Check Account Balance Screen. 295 | int chkbal(){ 296 | 297 | system("cls"); //Clear Screen 298 | 299 | printf("\n====================Temp BANK====================\n\n"); 300 | printf("\tAccount Balance\t\n"); 301 | 302 | printf("\n\n\tAccount Balance is - \t\n"); 303 | printf("\n\n\tPress Any Key To Go Back.\n\n"); 304 | printf("\n\n================================================="); 305 | 306 | getch(); 307 | userscrn(); 308 | 309 | } 310 | 311 | //Transfer Money Screen 312 | int tramny(){ 313 | 314 | int tramnt; 315 | char R_name[10], S_Name[10], NIC[15], remarks[20]; 316 | time_t t; 317 | time(&t); 318 | 319 | system("cls"); //Clear Screen 320 | 321 | printf("\n====================Temp BANK====================\n\n"); 322 | printf("\tTransfer Money\t\n"); 323 | 324 | printf("\n\n\tReciever's Name - \t"); 325 | scanf("%s",&R_name); 326 | printf("\n\n\tAmount Of Money - \t"); 327 | scanf("%d",&tramnt); 328 | 329 | printf("\n\n\tSender's Name - \t"); 330 | scanf("%s",&S_Name); 331 | printf("\n\n\tNIC Number - \t"); 332 | scanf("%s",&NIC); 333 | printf("\n\n\tRemarks - \t"); 334 | scanf("%s",&remarks); 335 | 336 | system("cls"); 337 | loading(); 338 | 339 | system("cls"); 340 | system("color 0E"); 341 | printf("|==========================================================|\n"); 342 | printf("|\t\t\tTemp BANK\t\t\t |\n"); 343 | printf("|==========================================================|\n"); 344 | printf("| |\n"); 345 | printf("|\t\t ---Transaction Receipt---\t\t |\n"); 346 | printf("| |\n"); 347 | printf("|\t* Receiver Name : %s\t\t\t\t|\n",R_name); 348 | printf("| |\n"); 349 | printf("|\t* Amount\t: %d\t\t\t\t |\n",tramnt); 350 | printf("| |\n"); 351 | printf("| \tSender Details \t\t\t\t\t |\n"); 352 | printf("| |\n"); 353 | printf("| Name - %s\t\t\t\t\t |\n",S_Name); 354 | printf("| |\n"); 355 | printf("| Remarks - %s\t\t\t\t\t |\n",remarks); 356 | printf("| |\n"); 357 | printf("| \tDate & Time - %s|\n",ctime(&t)); 358 | printf("| |\n"); 359 | printf("|==========================================================|\n"); 360 | printf("| **THANK YOU FOR BANKING WITH US** |\n"); 361 | printf("|==========================================================|\n"); 362 | system("color 09"); 363 | printf("\n\t** Press Any Key To Proceed ** \n"); 364 | 365 | getch(); 366 | userscrn(); 367 | } 368 | 369 | //Deposit Money Function 370 | int depmny(){ 371 | 372 | system("cls"); //Clear Screen 373 | 374 | int depamount; 375 | printf("\n====================Temp BANK====================\n\n"); 376 | printf("\tDeposit Money Into Your Account\t"); 377 | printf("\n\n\tAmount Of Money - \t"); 378 | scanf("%d",&depamount); 379 | printf("\n\n================================================="); 380 | system("cls"); //Clear Screen 381 | printf("\n====================Temp BANK====================\n\n"); 382 | printf("\n\n\tUsername Updated Successfully.\t\n"); 383 | printf("\n\n================================================="); 384 | 385 | } 386 | 387 | //Delete Account Screen 388 | int delacc(){ 389 | 390 | system("cls"); //Clear Screen 391 | 392 | printf("\n====================Temp BANK====================\n\n"); 393 | printf("\tDelete Your Account\t\n"); 394 | 395 | printf("\n\n\tHehe :) - \t"); 396 | printf("\n\n\tAi Ithin Delete Karanne?.\n\n"); 397 | printf("\n\n================================================="); 398 | 399 | getch(); 400 | userscrn(); 401 | 402 | } 403 | 404 | //Update Account Details Screen 405 | int updtacc(){ 406 | 407 | system("cls"); //Clear Screen 408 | int updtchoice; 409 | 410 | updtmenu: 411 | printf("\n====================Temp BANK====================\n\n"); 412 | printf("\tUpdate Your Account Details\t"); 413 | 414 | printf("\n\n\t1.Update Username.\n"); 415 | printf("\n\t2.Update PIN Number.\n"); 416 | printf("\n\n================================================="); 417 | 418 | //Prompting user for input & getting input 419 | printf("\n\nYour selection "); 420 | scanf("%d",&updtchoice); 421 | 422 | switch (updtchoice){ 423 | case 1: 424 | updtusrnm(); 425 | break; 426 | 427 | case 2: 428 | updtpin(); 429 | break; 430 | 431 | default: 432 | printf ("\nInvalid Selection\n\n"); 433 | goto updtmenu; 434 | 435 | } 436 | 437 | } 438 | 439 | int updtusrnm(){ 440 | 441 | char newusrnm[20]; 442 | int tempchoice; 443 | 444 | 445 | newusrnmenu: 446 | system("cls"); //Clear Screen 447 | printf("\n====================Temp BANK====================\n\n"); 448 | printf("\t\tUpdate Username\t\n\n"); 449 | printf("\tEnter Your New Username: "); 450 | scanf("%s",&newusrnm); 451 | printf("\n\n================================================="); 452 | system("cls"); //Clear Screen 453 | printf("\n====================Temp BANK====================\n\n"); 454 | printf("\t\tUpdate Username\t\n\n"); 455 | printf("\tYour New Username is %s ",newusrnm); 456 | printf("\n\n================================================="); 457 | printf("\n\n\tDo You Want to Proceed?"); 458 | 459 | printf("\n\n\t1.Yes.\n"); 460 | printf("\n\t2.No.\n"); 461 | printf("\n\n================================================="); 462 | 463 | //Prompting user for input & getting input 464 | printf("\n\nYour selection "); 465 | scanf("%d",&tempchoice); 466 | 467 | switch (tempchoice){ 468 | case 1: 469 | goto successnm; 470 | break; 471 | 472 | case 2: 473 | goto newusrnmenu; 474 | break; 475 | 476 | default: 477 | printf ("\nInvalid Selection\n\n"); 478 | goto newusrnmenu; 479 | 480 | } 481 | 482 | successnm: 483 | system("cls"); //Clear Screen 484 | printf("\n====================Temp BANK====================\n\n"); 485 | printf("\n\n\tUsername Updated Successfully.\t\n"); 486 | printf("\n\n================================================="); 487 | 488 | getch(); 489 | userscrn(); 490 | 491 | 492 | } 493 | 494 | int updtpin(){ 495 | 496 | int newpin; 497 | int tempchoice2; 498 | 499 | newpinnmenu: 500 | system("cls"); //Clear Screen 501 | printf("\n====================Temp BANK====================\n\n"); 502 | printf("\t\tUpdate PIN Number\t\n\n"); 503 | printf("\tEnter Your Current PIN Number: "); 504 | scanf("%d",&newpin); 505 | 506 | // if (newpin == pin){} 507 | printf("\n\n================================================="); 508 | system("cls"); //Clear Screen 509 | printf("\n====================Temp BANK====================\n\n"); 510 | printf("\t\tUpdate PIN Number\t\n\n"); 511 | printf("\tYour New PIN Number is %d ",newpin); 512 | printf("\n\n================================================="); 513 | printf("\n\n\tDo You Want to Proceed?"); 514 | 515 | printf("\n\n\t1.Yes.\n"); 516 | printf("\n\t2.No.\n"); 517 | printf("\n\n================================================="); 518 | 519 | //Prompting user for input & getting input 520 | printf("\n\nYour selection "); 521 | scanf("%d",&tempchoice2); 522 | 523 | switch (tempchoice2){ 524 | case 1: 525 | goto successpin; 526 | break; 527 | 528 | case 2: 529 | goto newpinnmenu; 530 | break; 531 | 532 | default: 533 | printf ("\nInvalid Selection\n\n"); 534 | goto newpinnmenu; 535 | 536 | } 537 | 538 | successpin: 539 | system("cls"); //Clear Screen 540 | printf("\n====================Temp BANK====================\n\n"); 541 | printf("\n\n\tUsername Updated Successfully.\t\n"); 542 | printf("\n\n================================================="); 543 | 544 | getch(); 545 | userscrn(); 546 | 547 | 548 | } 549 | 550 | //Logout Screen 551 | int logout(){ 552 | 553 | system("cls"); //Clear Screen 554 | int logchoice; 555 | 556 | logoutmenu: 557 | printf("\n====================Temp BANK====================\n\n"); 558 | printf("\tLogging Out Of Your Account\t"); 559 | 560 | printf("\n\n\tAre you sure?.\n"); 561 | printf("\n\n\t1.Yes.\n"); 562 | printf("\n\t2.No.\n"); 563 | printf("\n\n================================================="); 564 | 565 | //Prompting user for input & getting input 566 | printf("\n\nYour selection "); 567 | scanf("%d",&logchoice); 568 | 569 | switch (logchoice){ 570 | case 1: 571 | main(); 572 | break; 573 | 574 | case 2: 575 | userscrn(); 576 | break; 577 | 578 | default: 579 | printf ("\nInvalid Selection\n\n"); 580 | goto logoutmenu; 581 | 582 | } 583 | 584 | } 585 | 586 | void Exit(){ 587 | system("cls"); //Clear Screen 588 | printf("\n====================Temp BANK====================\n\n\n"); 589 | 590 | printf("\n\tThank You for Being With Us.\n\n"); 591 | 592 | printf("\n\n================================================="); 593 | 594 | } 595 | 596 | void loading(){ 597 | printf("\n====================Temp BANK====================\n\n\n"); 598 | for (int i=0; i<=100; i++){ 599 | system("color 0A"); 600 | int length = 30; 601 | int display = i * length / 100; 602 | printf("\r"); 603 | printf("\t"); 604 | for (int i=0; i <= display; i++){ 605 | printf("%c",221); 606 | } 607 | for (int i=0; i < length-display; i++){ 608 | printf(">"); 609 | } 610 | printf(" %d%% Done",i); 611 | 612 | } 613 | } 614 | 615 | //done 616 | --------------------------------------------------------------------------------