Test Project Dsa
Test Project Dsa
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***********************************");
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]");
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:
getch();
exit(0);
default:
getch();
break;
system("cls");
}
return 0;
void addrecord( )
system("cls");
FILE *fp ;
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");
fflush(stdin);
gets(filename);
if ( fp == NULL )
fp=fopen(filename,"wb+");
if(fp==NULL)
printf("\nSYSTEM ERROR...");
return ;
choice=0;
fflush(stdin);
scanf("%s",time);
rewind(fp);
while(fread(&e,sizeof(e),1,fp)==1)
{
if(strcmp(e.time,time)==0)
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);
}
printf ( "\n\tADD ANOTHER RECORD...(Y/N) " ) ;
fflush ( stdin ) ;
another = getchar( ) ;
fclose ( fp ) ;
getch();
void viewrecord( )
FILE *fpte ;
system("cls");
int ch;
printf("\n\n\t\t*******************************\n");
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);
if ( fpte == NULL )
getch();
return ;
system("cls");
scanf("%d",&ch);
switch(ch)
case 1:
printf("\n");
printf("\nTIME: %s",customer.time);
printf("\nMEETING WITH: %s",customer.name);
printf("\nDURATION: %s",customer.duration);
printf("\nNOTE: %s",customer.note);
printf("\n");
break;
case 2:
fflush(stdin);
printf("\nENTER TIME:[hh:mm]:");
gets(time);
{
if(strcmp(customer.time,time)==0)
printf("\nTIME: %s",customer.time);
printf("\nDUARATION: %s",customer.duration);
printf("\nNOTE: %s",customer.note);
break;
default:
fflush(stdin);
scanf("%c",&choice);
while(choice=='Y'||choice=='y');
fclose ( fpte ) ;
return ;
void editrecord()
system("cls");
FILE *fpte ;
char time[6],choice,filename[14];
int num,count=0;
printf("\n\n\t\t*******************************\n");
printf("\n\t\t*******************************\n\n");
choice=password();
if(choice!=0)
return ;
}
do
fflush(stdin);
gets(filename);
printf("\n\tENTER TIME:[hh:mm]:");
gets(time);
if ( fpte == NULL )
getch();
return;
if(strcmp(customer.time,time)==0)
printf("\nTIME: %s",customer.time);
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.");
do
fflush(stdin);
scanf("%d",&num);
fflush(stdin);
switch(num)
case 1:
printf("\nNEW TIME:[hh:mm]:");
gets(customer.time);
break;
case 2:
gets(customer.name);
break;
case 3:
gets(customer.place);
break;
case 4:
printf("\nDURATION:");
gets(customer.duration);
break;
case 5:
printf("\nNOTE:");
gets(customer.note);
break;
case 6:
printf("\nNEW TIME:[hh:mm]:");
gets(customer.time);
gets(customer.name);
gets(customer.place);
printf("\nDURATION:");
gets(customer.duration);
printf("\nNOTE:");
gets(customer.note);
break;
case 7:
getch();
return ;
break;
default:
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("--------------------\n");
printf("\nTIME: %s",customer.time);
printf("\nDURATION: %s",customer.duration);
printf("\nNOTE: %s",customer.note);
fclose(fpte);
scanf("%c",&choice);
count++;
else
{
printf("\nTHE RECORD DOES NOT EXIST::\n");
scanf("%c",&choice);
while(choice=='Y'||choice=='y');
fclose ( fpte ) ;
if(count==1)
else if(count>1)
else
getch();
int password()
FILE *fpp;
int i=0,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)
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\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");
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);
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);
getch();
void deleterecord( )
system("cls");
FILE *fp,*fptr ;
struct record file ;
int choice,check;
printf("\n\n\t\t*************************\n");
printf("\n\t\t*************************\n\n");
check = password();
if(check==1)
return ;
do
scanf("%d",&choice);
switch(choice)
case 1:
fflush(stdin);
gets(filename);
if ( fp == NULL )
getch();
return ;
fclose(fp);
remove(filename);
printf("\nDELETED SUCCESFULLY...");
break;
case 2:
fflush(stdin);
gets(filename);
if ( fp == NULL )
getch();
return ;
}
fptr=fopen("temp","wb");
if(fptr==NULL)
printf("\nSYSTEM ERROR");
getch();
return ;
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:
break;
}
while(choice<1||choice>2);
fflush(stdin);
scanf("%c",&another);
getch();