C Program to Personal Dairy Project with Full Source Code For Beginners

Source Code:

Personal Dairy using C Program.

main.c

#include<stdio.h>

#include<stdlib.h>

#include<conio.h>

#include<string.h> 

int password();

void addrecord();

void viewrecord();

void editrecord();

void editpassword();

void deleterecord(); 

struct record

{

char time[6];

char name[30];

char place[25];

char duration[10];

char note[500];

} ; 

int main()

{

int ch;

printf("\n\n\t***********************************\n");

printf("\t*PASSWORD PROTECTED PERSONAL DIARY*\n");

printf("\t***********************************"); 

while(1) 

{

printf("\n\n\t\tMAIN MENU:");

printf("\n\n\tADD RECORD\t[1]");

printf("\n\tVIEW RECORD\t[2]");

printf("\n\tEDIT RECORD\t[3]");

printf("\n\tDELETE RECORD\t[4]");

printf("\n\tEDIT PASSWORD\t[5]");

printf("\n\tEXIT\t\t[6]");

printf("\n\n\tENTER YOUR CHOICE:");

scanf("%d",&ch); 

switch(ch)

{

case 1:

addrecord();

break; 

case 2:

viewrecord();

break; 

case 3:

editrecord();

break; 

case 4:

deleterecord();

break; 

case 5:

editpassword();

break; 

case 6:

printf("\n\n\t\tTHANK YOU FOR USING THE SOFTWARE BY:\n\n\tBIJAY PURI\n\n\tBHANU POUDEL\n\n\tNRIPASH AYER...");

getch();

exit(0); 

default:

printf("\nYOU ENTERED WRONG CHOICE..");

printf("\nPRESS ANY KEY TO TRY AGAIN");

getch();

break;

}

system("cls");

}

return 0;

}

void addrecord( )

{

system("cls");

FILE *fp ;

char another = 'Y' ,time[10];

struct record e ;

char filename[15];

int choice;

printf("\n\n\t\t***************************\n");

printf("\t\t* WELCOME TO THE ADD MENU *");

printf("\n\t\t***************************\n\n");

printf("\n\n\tENTER DATE OF YOUR RECORD:[yyyy-mm-dd]:");

fflush(stdin);

gets(filename);

fp = fopen (filename, "ab+" ) ;

if ( fp == NULL )

{

fp=fopen(filename,"wb+");

if(fp==NULL)

{

printf("\nSYSTEM ERROR...");

printf("\nPRESS ANY KEY TO EXIT");

getch();

return ;

}

} 

while ( another == 'Y'|| another=='y' )

{

choice=0;

fflush(stdin);

printf ( "\n\tENTER TIME:[hh:mm]:");

scanf("%s",time);

rewind(fp);

while(fread(&e,sizeof(e),1,fp)==1)

{

if(strcmp(e.time,time)==0)

{

printf("\n\tTHE RECORD ALREADY EXISTS.\n");

choice=1;

}

}

if(choice==0)

{

strcpy(e.time,time);

printf("\tENTER NAME:");

fflush(stdin);

gets(e.name);

fflush(stdin);

printf("\tENTER PLACE:");

gets(e.place);

fflush(stdin);

printf("\tENTER DURATION:");

gets(e.duration);

fflush(stdin);

printf("\tNOTE:");

gets(e.note);

fwrite ( &e, sizeof ( e ), 1, fp ) ;

printf("\nYOUR RECORD IS ADDED...\n");

}

printf ( "\n\tADD ANOTHER RECORD...(Y/N) " ) ;

fflush ( stdin ) ;

another = getchar( ) ;

} 

fclose ( fp ) ;

printf("\n\n\tPRESS ANY KEY TO EXIT...");

getch();

} 

void viewrecord( )

{

FILE *fpte ;

system("cls");

struct record customer ;

char time[6],choice,filename[14];

int ch;

printf("\n\n\t\t*******************************\n");

printf("\t\t* HERE IS THE VIEWING MENU *");

printf("\n\t\t*******************************\n\n");

choice=password();

if(choice!=0)

{

return ;

}

do

{

printf("\n\tENTER THE DATE OF RECORD TO BE VIEWED:[yyyy-mm-dd]:");

fflush(stdin);

gets(filename); 

fpte = fopen ( filename, "rb" ) ;

if ( fpte == NULL )

{

puts ( "\nTHE RECORD DOES NOT EXIST...\n" ) ;

printf("PRESS ANY KEY TO EXIT...");

getch();

return ;

}

system("cls");

printf("\n\tHOW WOULD YOU LIKE TO VIEW:\n");

printf("\n\t1.WHOLE RECORD OF THE DAY.");

printf("\n\t2.RECORD OF FIX TIME.");

printf("\n\t\tENTER YOUR CHOICE:");

scanf("%d",&ch);

switch(ch)

{

case 1:

printf("\nTHE WHOLE RECORD FOR %s IS:",filename);

while ( fread ( &customer, sizeof ( customer ), 1, fpte ) == 1 )

{

printf("\n");

printf("\nTIME: %s",customer.time);

printf("\nMEETING WITH: %s",customer.name);

printf("\nMEETING AT: %s",customer.place);

printf("\nDURATION: %s",customer.duration);

printf("\nNOTE: %s",customer.note);

printf("\n");

}

break; 

case 2:

fflush(stdin);

printf("\nENTER TIME:[hh:mm]:");

gets(time);

while ( fread ( &customer, sizeof ( customer ), 1, fpte ) == 1 ) 

{

if(strcmp(customer.time,time)==0)

{

printf("\nYOUR RECORD IS:");

printf("\nTIME: %s",customer.time);

printf("\nMEETING WITH: %s",customer.name);

printf("\nMEETING AT: %s",customer.place);

printf("\nDUARATION: %s",customer.duration);

printf("\nNOTE: %s",customer.note);

}

}

break; 

default: printf("\nYOU TYPED SOMETHING ELSE...\n");

break;

} 

printf("\n\nWOULD YOU LIKE TO CONTINUE VIEWING...(Y/N):");

fflush(stdin);

scanf("%c",&choice);

}while(choice=='Y'||choice=='y');

fclose ( fpte ) ;

return ;

}

void editrecord()

{

system("cls");

FILE *fpte ;

struct record customer ;

char time[6],choice,filename[14];

int num,count=0;

printf("\n\n\t\t*******************************\n");

printf("\t\t* WELCOME TO THE EDITING MENU *");

printf("\n\t\t*******************************\n\n");

choice=password();

if(choice!=0)

{

return ;

}

do

{

printf("\n\tENTER THE DATE OF RECORD TO BE EDITED:[yyyy-mm-dd]:");

fflush(stdin);

gets(filename);

printf("\n\tENTER TIME:[hh:mm]:");

gets(time);

fpte = fopen ( filename, "rb+" ) ;

if ( fpte == NULL )

{

printf( "\nRECORD DOES NOT EXISTS:" ) ;

printf("\nPRESS ANY KEY TO GO BACK");

getch();

return;

}

while ( fread ( &customer, sizeof ( customer ), 1, fpte ) == 1 )

{

if(strcmp(customer.time,time)==0)

{

printf("\nYOUR OLD RECORD WAS AS:");

printf("\nTIME: %s",customer.time);

printf("\nMEETING WITH: %s",customer.name);

printf("\nMEETING AT: %s",customer.place);

printf("\nDURATION: %s",customer.duration);

printf("\nNOTE: %s",customer.note); 

printf("\n\n\t\tWHAT WOULD YOU LIKE TO EDIT..");

printf("\n1.TIME.");

printf("\n2.MEETING PERSON.");

printf("\n3.MEETING PLACE.");

printf("\n4.DURATION.");

printf("\n5.NOTE.");

printf("\n6.WHOLE RECORD.");

printf("\n7.GO BACK TO MAIN MENU.");

do

{

printf("\n\tENTER YOUR CHOICE:");

fflush(stdin);

scanf("%d",&num);

fflush(stdin);

switch(num)

{

case 1: printf("\nENTER THE NEW DATA:");

printf("\nNEW TIME:[hh:mm]:");

gets(customer.time);

break; 

case 2: printf("\nENTER THE NEW DATA:");

printf("\nNEW MEETING PERSON:");

gets(customer.name);

break; 

case 3: printf("\nENTER THE NEW DATA:");

printf("\nNEW MEETING PLACE:");

gets(customer.place);

break; 

case 4: printf("\nENTER THE NEW DATA:");

printf("\nDURATION:");

gets(customer.duration);

break; 

case 5: printf("ENTER THE NEW DATA:");

printf("\nNOTE:");

gets(customer.note);

break; 

case 6: printf("\nENTER THE NEW DATA:");

printf("\nNEW TIME:[hh:mm]:");

gets(customer.time);

printf("\nNEW MEETING PERSON:");

gets(customer.name);

printf("\nNEW MEETING PLACE:");

gets(customer.place);

printf("\nDURATION:");

gets(customer.duration);

printf("\nNOTE:");

gets(customer.note);

break; 

case 7: printf("\nPRESS ANY KEY TO GO BACK...\n");

getch();

return ;

break; 

default: printf("\nYOU TYPED SOMETHING ELSE...TRY AGAIN\n");

break;

} 

}while(num<1||num>8);

fseek(fpte,-sizeof(customer),SEEK_CUR);

fwrite(&customer,sizeof(customer),1,fpte);

fseek(fpte,-sizeof(customer),SEEK_CUR);

fread(&customer,sizeof(customer),1,fpte);

choice=5;

break;

}

}

if(choice==5)

{

system("cls");

printf("\n\t\tEDITING COMPLETED...\n");

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

printf("THE NEW RECORD IS:\n");

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

printf("\nTIME: %s",customer.time);

printf("\nMEETING WITH: %s",customer.name);

printf("\nMEETING AT: %s",customer.place);

printf("\nDURATION: %s",customer.duration);

printf("\nNOTE: %s",customer.note);

fclose(fpte);

printf("\n\n\tWOULD YOU LIKE TO EDIT ANOTHER RECORD.(Y/N)");

scanf("%c",&choice);

count++;

}

else

{

printf("\nTHE RECORD DOES NOT EXIST::\n");

printf("\nWOULD YOU LIKE TO TRY AGAIN...(Y/N)");

scanf("%c",&choice);

} 

}while(choice=='Y'||choice=='y');

fclose ( fpte ) ; 

if(count==1)

printf("\n%d FILE IS EDITED...\n",count);

else if(count>1)

printf("\n%d FILES ARE EDITED..\n",count);

else

printf("\nNO FILES EDITED...\n");

printf("\tPRESS ENTER TO EXIT EDITING MENU.");

getch();

}

int password()

{

char pass[15]={0},check[15]={0},ch;

FILE *fpp;

int i=0,j;

printf("::FOR SECURITY PURPOSE::");

printf("::ONLY THREE TRIALS ARE ALLOWED::");

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

{

i=0;

printf("\n\n\tENTER THE PASSWORD:");

pass[0]=getch();

while(pass[i]!='\r')

{

if(pass[i]=='\b')

{

i--;

printf("\b");

printf(" ");

printf("\b");

pass[i]=getch();

}

else

{

printf("*");

i++;

pass[i]=getch();

}

}

pass[i]='\0';

fpp=fopen("SE","r");

if (fpp==NULL)

{

printf("\nERROR WITH THE SYSTEM FILE...[FILE MISSING]\n");

getch();

return 1;

}

else

i=0;

while(1)

{

ch=fgetc(fpp);

if(ch==EOF)

{

check[i]='\0';

break;

}

check[i]=ch-5;

i++;

}

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

{

printf("\n\n\tACCESS GRANTED...\n");

return 0;

}

else

{

printf("\n\n\tWRONG PASSWORD..\n\n\tACCESS DENIED...\n");

}

}

printf("\n\n\t::YOU ENTERED WRONG PASSWORD::YOU ARE NOT ALLOWED TO ACCESS ANY FILE::\n\n\tPRESS ANY KEY TO GO BACK...");

getch();

return 1;

}

void editpassword()

{

system("cls");

printf("\n");

char pass[15]={0},confirm[15]={0},ch;

int choice,i,check;

FILE *fp;

fp=fopen("SE","rb");

if(fp==NULL)

{

fp=fopen("SE","wb");

if(fp==NULL)

{

printf("SYSTEM ERROR...");

getch();

return ;

}

fclose(fp);

printf("\nSYSTEM RESTORED...\nYOUR PASSWORD IS 'ENTER'\n PRESS ENTER TO CHANGE PASSWORD\n\n");

getch();

}

fclose(fp);

check=password();

if(check==1)

{

return ;

}

do

{

if(check==0)

{

i=0;

choice=0;

printf("\n\n\tENTER THE NEW PASSWORD:");

fflush(stdin);

pass[0]=getch();

while(pass[i]!='\r')

{

if(pass[i]=='\b')

{

i--;

printf("\b");

printf(" ");

printf("\b");

pass[i]=getch();

}

else

{

printf("*");

i++;

pass[i]=getch();

}

}

pass[i]='\0';

i=0;

printf("\n\tCONFIRM PASSWORD:");

confirm[0]=getch();

while(confirm[i]!='\r')

{

if(confirm[i]=='\b')

{

i--;

printf("\b");

printf(" ");

printf("\b");

confirm[i]=getch();

}

else

{

printf("*");

i++;

confirm[i]=getch();

}

}

confirm[i]='\0';

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

{

fp=fopen("SE","wb");

if(fp==NULL)

{

printf("\n\t\tSYSTEM ERROR");

getch();

return ;

}

i=0;

while(pass[i]!='\0')

{

ch=pass[i];

putc(ch+5,fp);

i++;

}

putc(EOF,fp);

fclose(fp);

}

else

{

printf("\n\tTHE NEW PASSWORD DOES NOT MATCH.");

choice=1; 

} 

}

}while(choice==1); 

printf("\n\n\tPASSWORD CHANGED...\n\n\tPRESS ANY KEY TO GO BACK...");

getch();

} 

void deleterecord( )

{

system("cls");

FILE *fp,*fptr ;

struct record file ;

char filename[15],another = 'Y' ,time[10];;

int choice,check;

printf("\n\n\t\t*************************\n");

printf("\t\t* WELCOME TO DELETE MENU*");

printf("\n\t\t*************************\n\n");

check = password();

if(check==1)

{

return ;

} 

while ( another == 'Y' )

{

printf("\n\n\tHOW WOULD YOU LIKE TO DELETE.");

printf("\n\n\t#DELETE WHOLE RECORD\t\t\t[1]");

printf("\n\t#DELETE A PARTICULAR RECORD BY TIME\t[2]"); 

do

{

printf("\n\t\tENTER YOU CHOICE:");

scanf("%d",&choice); 

switch(choice)

{

case 1:

printf("\n\tENTER THE DATE OF RECORD TO BE DELETED:[yyyy-mm-dd]:");

fflush(stdin);

gets(filename);

fp = fopen (filename, "wb" ) ;

if ( fp == NULL )

{

printf("\nTHE FILE DOES NOT EXISTS");

printf("\nPRESS ANY KEY TO GO BACK.");

getch();

return ;

}

fclose(fp);

remove(filename);

printf("\nDELETED SUCCESFULLY...");

break; 

case 2:

printf("\n\tENTER THE DATE OF RECORD:[yyyy-mm-dd]:");

fflush(stdin);

gets(filename);

fp = fopen (filename, "rb" ) ;

if ( fp == NULL )

{

printf("\nTHE FILE DOES NOT EXISTS");

printf("\nPRESS ANY KEY TO GO BACK.");

getch();

return ;

}

fptr=fopen("temp","wb");

if(fptr==NULL)

{

printf("\nSYSTEM ERROR");

printf("\nPRESS ANY KEY TO GO BACK");

getch();

return ;

}

printf("\n\tENTER THE TIME OF RECORD TO BE DELETED:[hh:mm]:");

fflush(stdin);

gets(time);

while(fread(&file,sizeof(file),1,fp)==1)

{

if(strcmp(file.time,time)!=0)

fwrite(&file,sizeof(file),1,fptr);

} 

fclose(fp);

fclose(fptr);

remove(filename);

rename("temp",filename);

printf("\nDELETED SUCCESFULLY...");

break; 

default:

printf("\n\tYOU ENTERED WRONG CHOICE");

break;

}

}while(choice<1||choice>2); 

printf("\n\tDO YOU LIKE TO DELETE ANOTHER RECORD.(Y/N):");

fflush(stdin);

scanf("%c",&another);

}

printf("\n\n\tPRESS ANY KEY TO EXIT...");

getch();

}
Code language: PHP (php)

Leave a Comment