#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
void start(void);
void checkbalance(char *);
void transfermoney(void);
void display(char *, char *);
void login(void);
void loginsu(void);
void account(void);
void logout(void);
char username[50];
char password[50];
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];
char password[20];
};
struct money
{
char userto[50];
char userfrom[50];
long int money1;
};
void start()
{
system("cls");
system("color 9");
int i, a, b, choice;
printf("\n\n\t\tWELCOME TO BANK ACCOUNT SYSTEM\n\n");
printf("\t\t1)CREATE A BANK ACCOUNT\n");
printf("\t\t2)ALREADY A USER? SIGN IN\n");
printf("\t\t3)EXIT\n\n");
printf("\n\n\t\tENTER YOUR CHOICE : ");
scanf("%d", &choice);
switch (choice)
{
case 1:
system("cls");
account();
break;
case 2:
login();
break;
case 3:
exit(0);
break;
default:
printf("\n\n\t\tInvalid input");
getch();
start();
break;
}
}
void account(void)
{
int c, p;
char password[20];
char username[50];
FILE *fp, *fm;
// FILE *mp;
struct pass u1;
// struct money m;
fp = fopen("username.txt", "ab");
system("cls");
printf("\n\n\t\t!!!!!CREATE ACCOUNT!!!!!");
printf("\n\n\t\tFIRST NAME : ");
scanf("%s", &u1.fname);
printf("\n\t\tLAST NAME : ");
scanf("%s", &u1.lname);
printf("\n\t\tFATHER NAME : ");
fflush(stdin);
gets(u1.fathname);
printf("\n\t\tMOTHER NAME : ");
fflush(stdin);
gets(u1.mothname);
printf("\n\t\tADDRESS : ");
fflush(stdin);
gets(u1.address);
printf("\n\t\tACCOUNT TYPE : ");
scanf("%s", &u1.typeaccount);
dob:
printf("\n\t\tENTER THE VALID DATE OF BIRTH..");
printf("\n\t\tDATE-MONTH-YEAR IN THE FOLLOWING FORMATE ONLY (dd/mm/yyyy) : ");
scanf("%d/%d/%d", &u1.date, &u1.month, &u1.year);
if (u1.date > 31 || u1.month > 12 || u1.year > 2022 || u1.year < 1947)
{
goto dob;
}
adhcrt:
printf("\n\t\tENTER 16 DIGIT ADHAR NUMBER : ");
scanf("%s", u1.adharnum);
c = strlen(u1.adharnum);
if (c != 16)
{
goto adhcrt;
}
pnnumber:
printf("\n\t\tENTER THE 10 DIGIT PHONE NUMBER : ");
scanf("%s", u1.pnumber);
p = strlen(u1.pnumber);
if (p != 10)
{
goto pnnumber;
}
fm = fopen("username.txt", "rb");
printf("\n\n\t\tSET YOUR USERNAME : ");
scanf("%s", &u1.username);
printf("\n\t\tSET YOUR PASSWORD : ");
scanf("%s", &u1.password);
// amt:
// mp = fopen("mon.txt","ab");
// printf("\n\t\tDeposite minimum 100rs to create account : ");
//// scanf("%d",&m.money1);
// if (m.money1 < 100)
// {
// printf("\n\t\tMinimum amount is 100\n");
// fclose(mp);
/// goto amt;
// }
fwrite(&u1, sizeof(u1), 1, fp);
// fwrite(&m,sizeof(mp),1,mp);
fclose(fp);
// fclose(mp);
printf("\n\n\t\tAccount created sucessfull Enter any key to login\n");
getch();
login();
}
void login(void)
{
system("cls");
int n = 0;
// char username[50];
// char password[50];
int i, j, k, N = 1;
char ch;
FILE *fp;
struct pass u1;
fp = fopen("username.txt", "rb");
if (fp == NULL)
{
printf("ERROR IN OPENING FILE");
}
printf(" \t\t\tACCOUNT LOGIN \n\n");
printf("***********************************************"
"********************************");
printf("\n\t\t========= LOG IN =========\n\n");
printf("\n\t\tUSERNAME : ");
scanf("%s", &username);
printf("\n\t\tPASSWORD : ");
scanf("%s", &password);
while (fread(&u1, sizeof(u1), 1, fp))
{
if (strcmp(username, u1.username) == 0)
{
if (strcmp(password, u1.password) == 0)
{
--N;
loginsu();
display(username, password);
}
}
}
if (N = 1)
{
fclose(fp);
printf("\n\n\t\t******Invalid input******\n");
getch();
login();
}
fclose(fp);
}
void loginsu(void)
{
int i;
FILE *fp;
struct pass u1;
system("cls");
printf("\n\n\n\t\t\tFetching account details.....");
for (i = 0; i < 20000; i++)
{
i++;
i--;
}
printf("\n\n\n\t\t\tLOGIN SUCCESSFUL....");
printf("\n\n\n\t\t\tPress enter to continue");
getch();
}
void display(char username1[], char password1[])
{
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)
{
if (strcmp(password1, u1.password) == 0)
{
printf("WELCOME, %s %s", u1.fname, u1.lname);
printf("\n==== YOUR ACCOUNT INFO ====\n");
printf("NAME : %s %s\n", u1.fname, u1.lname);
printf("FATHER NAME : %s \n", u1.fathname);
printf("MOTHER NAME : %s\n", u1.mothname);
printf("ADHAR CARD NUMBER : %s\n", u1.adharnum);
printf("MOBILE NUMBER : %s\n", u1.pnumber);
printf("DATE OF BIRTH : %d-%d-%d\n", u1.date, u1.month, u1.year);
printf("ADDRESS : %s\n", u1.address);
printf("ACCOUNT TYPE : %s\n", u1.typeaccount);
}
}
}
fclose(fp);
printf("\n\n******HOME****** \n\n");
printf(" 1)CHECK BALANCE\n");
printf(" 2)TRANSFER MONEY\n");
printf(" 3)LOG OUT\n");
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;
}
}
void transfermoney(void)
{
int i, j, q = 1;
FILE *fm, *fp;
struct pass u1;
struct money m1;
char usernamet[20];
char usernamep[20];
char pin[20];
system("cls");
fp = fopen("username.txt", "rb");
fm = fopen("mon.txt", "ab");
printf("========================---- TRANSFER MONEY ----========================");
printf("\n\t\tFROM (your username) : ");
scanf("%s", &usernamet);
printf("\n\t\tEnter your pin : ");
scanf("%s", &pin);
printf("\n\t\tTO (username of person) : ");
scanf("%s", &usernamep);
while (fread(&u1, sizeof(u1), 1, fp))
{
if (strcmp(usernamet, u1.username) == 0 && strcmp(usernamet, username) == 0)
{
if (strcmp(pin, u1.password) == 0)
{
--q;
strcpy(m1.userto, usernamep);
strcpy(m1.userfrom, u1.username);
}
}
}
if (q == 1)
{
printf("\n\n\t\tInvalid Username / Password\n");
getch();
fclose(fp);
fclose(fm);
transfermoney();
}
printf("\n\t\tENTER THE AMOUNT TO BE TRANSFERRED : ");
scanf("%d", &m1.money1);
// if (m1.money1>)
//{
// printf("\n\n \t\tInsufficient funds\n\n");
// getch();
// checkbalance(username);
//}
fwrite(&m1, sizeof(m1), 1, fm);
printf("\n\n\t\ttransfering amount, Please wait..\n");
for (i = 0; i < 70; i++)
{
for (j = 0; j < 1200000; j++)
{
j++;
j--;
}
printf("*");
}
printf("\n\t\tAMOUNT SUCCESSFULLY TRANSFERRED....");
fclose(fp);
fclose(fm);
getch();
display(username, password);
}
void checkbalance(char username2[])
{
system("cls");
FILE *fm;
struct money m1;
char ch;
int i = 1, summoney = 0;
fm = fopen("mon.txt", "rb");
printf("==== BALANCE DASHBOARD ====");
printf("***************************");
printf("\n\nS no.\t");
printf("TRANSACTION ID");
printf("\tAMOUNT");
while (fread(&m1, sizeof(m1), 1, fm))
{
if (strcmp(username2, m1.userto) == 0)
{
printf("\n\n%d", i);
i++;
printf("\t%s", m1.userfrom);
printf("\t\t%d", m1.money1);
summoney = summoney + m1.money1;
}
}
printf("\tTOTAL AMOUNT = ");
printf("\t%d\n\n", summoney);
fclose(fm);
getch();
display(username, password);
}
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(".");
}
printf("Sign out successfully..\n");
printf("press any key to continue..");
getch();
}
int main()
{
start();
return 0;
}