Programing Projects

        " STUDENT MANAGEMENT  SYSTEM "


This project will create 3 accounts of SUPER , ADMIN and GUEST... having different authorities. basic working is to keep a track of alot of students data.



*****************************************************


#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>

void create_account();
void create_super_admin();
void create_admin();
void create_guest();
void login();
void login_super_admin();
void login_admin();
void login_guest(); 

void addstudentrecord(FILE*);
void editstudentrecord(FILE*);
void viewstudentrecord(FILE*);
void deletestudentrecord(FILE*);
void searchstudentrecord(FILE*);

struct student
{
       char rn[15];
       char name[30];
       char dob[30];
       char phone[30];
       char cnic[30];
       char course[100];
}s;
  
int main()
{
system("cls");
system ("color 0e");
char a;                 
printf("\n\t\t**********<SELECT YOUR CHOICE>**********\n");
printf("\n\n1. Create Account\n2. Already have an Account\n3. Exit\n");
fflush(stdin);
scanf("%c",&a);
switch(a)
{
   case '1':
create_account();
   break;
case '2':
login();
break;
case '3':
exit(0);
break;
default:
{
printf("\nWrong choice\n");
system("PAUSE");
main();
}
}
char c,d;
printf("\nDo you want to go back to start of program (y/n) ?\n");
scanf("%c",&c);
system("PAUSE");
if(c=='Y'||c=='y')
main();
else
exit (0);
}

void create_account()
{
char a;
system("cls");
printf("Select S/s for Super admin:\nSelect A/a for Admin:\nSelect G/g for Guest:\n\n");
fflush(stdin);
scanf("%c",&a);
switch(a)
{
case 'S':
case 's':
create_super_admin();
break;
case 'A':
case 'a':
create_admin();
break;
case 'G':
case 'g':
create_guest();
break;
default:
{
printf("\nWrong choice. . .\n");
create_account();
}
}
}
void create_super_admin()
{
    
int d,e;
struct super
{
char username[11];
char pass[11];
char confirm_pass[11];
}a;
system("cls");
FILE *sa,*ps;
    sa=fopen("super_username.txt","r");
    if(sa!=NULL){
    printf("\nAccount already exist\n");
    system("PAUSE");
    main();         
}
    else
{
    sa=fopen("super_username.txt","w");
us:
printf("\nEnter Username: ");
fflush(stdin);
gets(a.username);
d=strlen(a.username);
if(d<6||d>10)
{
printf("\n\nUsername must be from 6-10 characters");
goto us;
}
fprintf(sa,"%s",a.username);
fclose(sa);
ps=fopen("super_password.txt","w");
if(ps==NULL) 
{
printf("Cannot open FILE. . . ");
exit (0);
}
   }
ps:
char ch;
int i=0;
printf("\nEnter Password: ");
while((ch = getch())!='\r')
     {
      int checkback = ch;
if(checkback != 8)
//8 is the ascii value of "backspace" so we check whether it is pressed or not
//if it is pressed we use "\b" to move cursor 1 space back and remove that "*"
             {
             a.pass[i]=ch;
               printf("*");
               i++;
           }
           else{
            printf("\b");
printf(" ");
printf("\b");
i--;
           }
     }
a.pass[i]= '\0';
fflush(stdin);
e=strlen(a.pass);
if(e<6||e>10)
{
printf("\n\nPassword must be from 6-10 characters");
goto ps;
}
fprintf(ps,"%s",a.pass);
fclose(ps);
int j=0;
char cg=0;
printf("\nConfirm Password: ");
while((cg = getch())!='\r')
     {
      int checkback = cg;
if(checkback != 8){
             a.confirm_pass[j]=cg;
               printf("*");
               j++;
           }
           else{
            printf("\b");
printf(" ");
printf("\b");
j--;
           }
     }
a.confirm_pass[j]= '\0';
if(strcmp(a.pass,a.confirm_pass)!=0)
{
printf("\n\nPassword doesn't Match. . . .");
goto ps;
}
}
void create_admin()
{
int d,e;
struct admin
{
char username[11];
char pass[11];
char confirm_pass[11];
};
struct admin a;
system("cls");
FILE *sa,*ps;
sa=fopen("admin_username.txt","r");
if(sa!=NULL)
{
printf("\nAccount already exist\n");
system("PAUSE");
main();
}
else
{
        sa=fopen("admin_username.txt","w");
us:
printf("\nEnter Username: ");
fflush(stdin);
gets(a.username);
d=strlen(a.username);
if(d<6||d>10)
{
printf("\n\nUsername must be from 6-10 characters");
goto us;
}
fprintf(sa,"%s",a.username);
fclose(sa);
}
ps=fopen("admin_password.txt","w");
if(ps==NULL)
{
printf("Cannot open FILE. . . ");
exit (0);
}
ps:
char ch;
int i=0;
printf("\nEnter Password: ");
while((ch = getch())!='\r')
     {
      int checkback = ch;
      if(checkback != 8){
             a.pass[i]=ch;
               printf("*");
               i++;
           }
           else{
            printf("\b");
            printf(" ");
            printf("\b");
            i--;
           }
     }
a.pass[i]= '\0';
fflush(stdin);
e=strlen(a.pass);
if(e<6||e>10)
{
printf("\n\nPassword must be from 6-10 characters");
goto ps;
}
fprintf(ps,"%s",a.pass);
fclose(ps);
int j=0;
char cg=0;
printf("\nConfirm Password: ");
while((cg = getch())!='\r')
     {
      int checkback = cg;
      if(checkback != 8)
      {
             a.confirm_pass[j]=cg;
               printf("*");
               j++;
           }
           else{
            printf("\b");
            printf(" ");
            printf("\b");
            j--;
           }
     }
a.confirm_pass[j]= '\0';
if(strcmp(a.pass,a.confirm_pass)!=0)
{
printf("\n\nPassword doesn't Match. . . .");
goto ps;
}
}
void create_guest()
{
int d,e;
struct guest
{
char username[11];
char pass[11];
char confirm_pass[11];
}a;
system("cls");
FILE *sa,*ps;
sa=fopen("guest_username.txt","r");
if(sa!=NULL)
{
printf("\nAccount already exist\n");
system("PAUSE");
main();
}
else
{
   sa=fopen("guest_username.txt","w");
us:
printf("\nEnter Username: ");
fflush(stdin);
gets(a.username);
d=strlen(a.username);
if(d<6||d>10)
{
printf("\n\nUsername must be from 6-10 characters");
goto us;
}
fprintf(sa,"%s",a.username);
fclose(sa);
}
ps=fopen("guest_password.txt","w");
if(ps==NULL)
{
printf("Cannot open FILE. . . ");
exit (0);
}
ps:
char ch;
int i=0;
printf("\nEnter Password: ");
while((ch = getch())!='\r')
     {
      int checkback = ch;
      if(checkback != 8)
      {
             a.pass[i]=ch;
               printf("*");
               i++;
           }
           else{
            printf("\b");
            printf(" ");
            printf("\b");
            i--;
           }
     }
a.pass[i]= '\0';
fflush(stdin);
e=strlen(a.pass);
if(e<6||e>10)
{
printf("\n\nPassword must be from 6-10 characters");
goto ps;
}
fprintf(ps,"%s",a.pass);
fclose(ps);
int j=0;
char cg=0;
printf("\nConfirm Password: ");
while((cg = getch())!='\r')
     {
      int checkback = cg;
      if(checkback != 8)
      {
             a.confirm_pass[j]=cg;
               printf("*");
               j++;
           }
           else{
            printf("\b");
            printf(" ");
            printf("\b");
            j--;
           }
     }
a.confirm_pass[j]= '\0';
if(strcmp(a.pass,a.confirm_pass)!=0)
{
printf("\n\nPassword doesn't Match. . . .");
goto ps;
}
}
void login()
{
char a;
system("cls");
printf("Select S for Super admin:\nSelect A for Admin:\nSelect G for Guest:\n\n");
fflush(stdin);
scanf("%c",&a);
switch(a)
{
case 'S':
case 's':
login_super_admin();
break;
case 'A':
case 'a':
login_admin();    
break;
case 'G':
case 'g':
login_guest();
break;
default:
{
printf("\nWrong choice. . .\n");
system("PAUSE");
main();
}
}
}
void login_super_admin()
{
struct super
{
char username[11];
char pass[11];
};
struct super a;  
char option;                    
ss:
printf("\nEnter Username: ");
fflush(stdin);
getch();
if ((getch())==13)
goto ss;
gets(a.username);

FILE *fu ;                     
char cg ;
char cc[11];
int i=0;
fu = fopen ( "super_username.txt", "r" ) ;
while ( i>=0 )
{
cg = fgetc ( fu ) ;
if ( cg == EOF )
break ;
cc[i]=cg;
i++;
}
cc[i]='\0';
if((strcmp(a.username,cc))!=0)
{
printf("\nWrong Username. . . ");
goto ss;
}
fclose(fu);
yy:
char x1;
int j=0;
printf("\nEnter Password: ");
while((x1 = getch())!='\r')
      {
      int checkback =x1;
      if(checkback !=8)
      {
             a.pass[j]=x1;
               printf("*");
               j++;
           }
           else{
            printf("\b");
            printf(" ");
            printf("\b");
            j--;
           }
    }
    a.pass[j]='\0';
FILE *fp ;
char ch ;
char bb[11];
int k=0;
fp = fopen ( "super_password.txt", "r" ) ;
while ( k>=0 )
{
ch = fgetc ( fp ) ;
if ( ch == EOF )
break ;
bb[k]=ch;
k++;
}
bb[k]='\0';
if((strcmp(a.pass,bb))!=0)
{
printf("\nWrong password. . . ");
goto yy;
}
else
{
sm:
  char option1;
        FILE *fq;         
                      fq=fopen("student.txt","r+");
                      if(fq==NULL)
 {                
                      fq=fopen("student.txt","w+");
                      if(fq==NULL)
                      {
                     
                                              printf("File can not be opened");
                                              exit (0);
                                          }
                                          }
                                      
                                                                // Menu
                              system("cls");
                              printf("\n\t\t**********<WELCOME TO STUDENT RECORD>**********\n\n\n");
                              // Following are the different operations of the program for student records
                              printf("Press 1 to Add records\n");
                              
                              printf("Press 2 to View records\n");
                              
                              printf("Press 3 to Edit records\n");
                              
                              printf("Press 4 to Delete records\n");
                              
                              printf("Press 5 to Search record by registration-no/name\n");
                              
                              printf("Press 0 to logout\n");
                              
                              fflush(stdin); // Clear buffer
                              option1 = getche();
                              system("cls"); // Clearing screen
                              switch(option1)
                              {
                                            case '1':
                                                 addstudentrecord(fq); // Function to add student records
                                                 break;
                                            case '2':
                                                 viewstudentrecord(fq); // Function to view student records
                                                 break;
                                            case '3':
                                                 editstudentrecord(fq); // Function to edit student records
                                                 break;
                                            case '4':
                                                 deletestudentrecord(fq); // Function to delete student records
                                                 break;
                                            case '5':
                                                 searchstudentrecord(fq);   // Function to search student records
                                                 break; 
                                            case '0':                                          
                                                 fclose(fq);
                                                 main();  
                                                 break;
                                            default:
                                                    printf("Invalid input\n");
                                                    system("PAUSE");

                              }    // End of switch
                              char m;
                              printf("\nDo you want to go back to menu (y/n) ?\n");  // asking student if he wants to go back to menu
                              scanf("%c",&m);
                              if(m=='y' || m=='Y')
                              goto sm;
                              else
                              exit (0);
}
}

void login_admin()
{
struct admin
{
char username[11];
char pass[11];
};
struct admin a;
FILE *fq;  
char option; 
ss:
printf("\nEnter Username: ");
fflush(stdin);
getch();
if ((getch())==13)
goto ss;
gets(a.username);
FILE *fu ;
char cg ;
char cc[11];
int i=0;
fu = fopen ( "admin_username.txt", "r" ) ;
while ( i>=0 )
{
cg = fgetc ( fu ) ;
if ( cg == EOF )
break ;
cc[i]=cg;
i++;
}
cc[i]='\0';
if((strcmp(a.username,cc))!=0)
{
printf("\nWrong Username. . . ");
goto ss;
}
fclose(fu);
yy:
char x1;
int j=0;
printf("\nEnter Password: ");
while((x1 = getch())!='\r')
      {
      int checkback = x1;
      if(checkback != 8)
      {
             a.pass[j]=x1;
               printf("*");
               j++;
           }
           else{
            printf("\b");
            printf(" ");
            printf("\b");
            j--;
           }
    }
    a.pass[j]='\0';
FILE *fp ;
char ch ;
char bb[11];
int k=0;
fp = fopen ( "admin_password.txt", "r" ) ;
while ( k>=0 )
{
ch = fgetc ( fp ) ;
if ( ch == EOF )
break ;
bb[k]=ch;
k++;
}
bb[k]='\0';
if((strcmp(a.pass,bb))!=0)
{
printf("\nWrong password. . . ");
goto yy;
}
else
{
sm:
       char option1;
        FILE *fq;         
                      fq=fopen("student.txt","r+");
                      if(fq==NULL)
 {                
                      fq=fopen("student.txt","w+");
                      if(fq==NULL)
                      {
                     
                                              printf("File can not be opened");
                                              exit (0);
                                          }
                                          }
                                             
                                                             // Menu
                              system("cls");
                              printf("\n\t\t**********<WELCOME TO STUDENT RECORD>**********\n\n\n");
                              // Following are the different operations of the program for student records
                              printf("Press 1 to Add records\n");
                              
                              printf("Press 2 to View records\n");
                              
                              printf("Press 3 to Edit records\n");
                              
                              printf("Press 4 to Search record by registration-no/name\n");
                              
                              printf("Press 0 to logout\n");
                              
                              fflush(stdin); // Clear buffer
                              option1 = getche();
                              system("cls"); // Clearing screen
                              switch(option1)
                              {
                                            case '1':
                                                 addstudentrecord(fq); // Function to add student records
                                                 break;
                                            case '2':
                                                 viewstudentrecord(fq); // Function to view student records
                                                 break;
                                            case '3':
                                                 editstudentrecord(fq); // Function to edit student records
                                                 break;
                                            case '4':
                                                 searchstudentrecord(fq); // Funtion to search student records
                                                 break;                                          
                                            case '0':                                            
                                                 fclose(fq);
                                                 main();  
                                                 break;
                                            default:
                                                    printf("Invalid input\n");
                                                    system("PAUSE");

                              }    // End of switch
                              char m;
                              printf("\nDo you want to go back to menu (y/n) ?\n");
                              scanf("%c",&m);
                              if(m=='y' || m=='Y')
                              goto sm;
                              else 
                              exit (0);
  }
}
void login_guest()
{
struct guest
{
char username[11];
char pass[11];
};
struct guest a;
FILE *fq;  
char option;
ss:
printf("\nEnter Username: ");
fflush(stdin);
getch();
if ((getch())==13)
goto ss;
gets(a.username);
FILE *fu ;
char cg ;
char cc[11];
int i=0;
fu = fopen ( "guest_username.txt", "r" ) ;
while ( i>=0 )
{
cg = fgetc ( fu ) ;
if ( cg == EOF )
break ;
cc[i]=cg;
i++;
}
cc[i]='\0';
if((strcmp(a.username,cc))!=0)
{
printf("\nWrong Username. . . ");
goto ss;
}
fclose(fu);
yy:
char x1;
int j=0;
printf("\nEnter Password: ");
while((x1 = getch())!='\r')
      {
      int checkback = x1;
      if(checkback != 8)
      {
             a.pass[j]=x1;
               printf("*");
               j++;
           }
           else{
            printf("\b");
            printf(" ");
            printf("\b");
            j--;
           }
    }
    a.pass[j]='\0';
FILE *fp ;
char ch ;
char bb[11];
int k=0;
fp = fopen ( "guest_password.txt", "r" ) ;
while ( k>=0 )
{
ch = fgetc ( fp ) ;
if ( ch == EOF )
break ;
bb[k]=ch;
k++;
}
bb[k]='\0';
if((strcmp(a.pass,bb))!=0)
{
printf("\nWrong password. . . ");
goto yy;
}  
else
{
sm:
                     char option1;
        FILE *fq;         
                      fq=fopen("student.txt","r+");
                      if(fq==NULL)
 {                
                      fq=fopen("student.txt","w+");
                      if(fq==NULL)
                      {
                                              printf("File can not be opened");
                                              exit (0);
                                          }
                                          }
                                      
                                                                 // Menu
                              system("cls");
                              printf("\n\t\t**********<WELCOME TO STUDENT RECORD>**********\n\n\n");
                              // Following are the different operations of the program for student records
                              printf("Press 1 to View records\n");
                              
                              printf("Press 2 to Search record by registration-no/name\n");
                              
                              printf("Press 0 to logout\n");
                              
                              fflush(stdin); // Clear buffer
                              option1 = getche();
                              system("cls"); // Clearing screen
                              switch(option1)
                              {
                                            case '1':
                                                 viewstudentrecord(fq);     // Function to view student records
                                                 break;                                           
                                            case '2':
                                                 searchstudentrecord(fq);   // Fuuntion to search student records
                                                 break; 
                                            case '0':
                                                 fclose(fq);
                                                 main();  
                                                 break;
                                            default:
                                                    printf("Invalid input\n");
                                                    system("PAUSE");

                              }    // End of switch
                              char m;
                              printf("\nDo you want to go back to menu (y/n) ?\n");
                              scanf("%c",&m);
                              if(m=='y' || m=='Y')
                              goto sm;
                              else 
                              exit (0);
  }
}
// Start of add student record function
void addstudentrecord(FILE *fq) 
{
fseek(fq,0,SEEK_END); // Moving file pointer to end of file
     char another;
     another='y';
     printf("\n\t\t**********<WELCOME TO ADD RECORDS>**********\n\n\n\n");
     while(another=='y'||another=='Y')
     {
       // Storing the record in the student structure
       fflush(stdin);   // Cleaning of buffer
       printf("Enter student Reg-no:  ");
       gets(s.rn);
       fflush(stdin);
       printf("Enter name of student:  ");
       gets(s.name);
       fflush(stdin);
       printf("Enter DOB:  ");
       gets(s.dob);
       fflush(stdin);
       printf("Enter Phone-no:");
       gets(s.phone);
       fflush(stdin);
       printf("Enter CNIC-no:  ");
       gets(s.cnic);
       fflush(stdin);
       printf("Enter Courses:  ");
       gets(s.course);
       fflush(stdin);
       fwrite(&s,sizeof(s),1,fq); // Writing the record stored in structure in file
       printf("Add another record (Y/N)\n");
       fflush(stdin);
       another = getche();
       
     }
     fclose(fq);
}  // End of function addrecord

// Start of edit student record function
void editstudentrecord(FILE *fq) 
{
     char newname[40]; // Declaring string to compare with the name in record
     int x;
     char another;
     char choice;
     another='y';
     printf("\n\t\t**********<WELCOME TO EDIT RECORDS>**********\n\n\n");
     while(another=='y'||another=='Y')
     {
       printf("Enter student name to edit record\n");
       fflush(stdin);
       gets(newname);
       rewind(fq);                        // Moving file pointer to start of file
       while(fread(&s,sizeof(s),1,fq)==1)
       {
         if(strcmp(s.name,newname)==0) // This function return zero if name entered and name in file are same
         {
          
           printf("\nReg-No:\t%s\n Name:\t%s\n DOB:\t%s\n Phone-No:\t%s\n CNIC-No:\t%s\n Courses:\t%s\n\n",s.rn,s.name,s.dob,s.phone,s.cnic,s.course); // Displays the record we want to edit
           // Following are different operations of edit record function
            printf("\n1. Modify student Reg-no\n2. Modify student Name\n3. Modify DOB\n4. Modify Phone-no\n5. Modify CNIC-no\n6. Modify Courses\n7. Modify full record");
           choice = getche();  // Select the operation we want to perform
           switch(choice)
           {
             case'1': // Modifying student Reg-no only
                     printf("\nEnter new student Reg-no : ");
                     fflush(stdin);  // cleaning buffer
                     gets(s.rn);
                     fseek(fq,-sizeof(s),SEEK_CUR);    // moving file pointer backwards
                     fwrite(&s,sizeof(s),1,fq);        // Writing the record in file
                     break;
             case'2': // Modifying student name only
                     printf("\nEnter new student name : ");
                     fflush(stdin);
                     gets(s.name);
                     fseek(fq,-sizeof(s),SEEK_CUR);    // Moving file pointer backwards
                     fwrite(&s,sizeof(s),1,fq);        // Writing the record in file
                     break;
             case'3': // Modifying DOB only
                     printf("Enter new DOB");
                     fflush(stdin);
                     gets(s.dob);
                     fseek(fq,-sizeof(s),SEEK_CUR);    // Moving file pointer backwards
                     fwrite(&s,sizeof(s),1,fq);        // Writing the record in file
                     break;
             case'4': // Modifying phone-no of student only
                     printf("\nEnter new class of student : ");
                     fflush(stdin);          
                     gets(s.phone);
                     fseek(fq,-sizeof(s),SEEK_CUR);   // Moving file pointer backwards
                     fwrite(&s,sizeof(s),1,fq);       // Writing in file
                     break;
             case'5':  // Modifying CNIC of student only
                     printf("\nEnter new CNIC : ");
                     fflush(stdin);
                     gets(s.cnic);
                     fseek(fq,-sizeof(s),SEEK_CUR);   // Moving file pointer backwards
                     fwrite(&s,sizeof(s),1,fq);       // Writing in file
                     break;
             case'6': // Modifying COURSEs of student only
                     printf("\nEnter new Course : ");
                     fflush(stdin);
                     gets(s.course);
                     fseek(fq,-sizeof(s),SEEK_CUR);   // Moving file pointer backwards
                     fwrite(&s,sizeof(s),1,fq);       // Writing in file
                     break;
             case'7': // Modifying full student record
                     fflush(stdin);
                     printf("Enter new Reg-no\n");
                     gets(s.rn);
                     fflush(stdin);
                     printf("Enter new name\n");
                     gets(s.name);
                     fflush(stdin);
                     printf("Enter new DOB\n");
                     gets(s.dob);
                     fflush(stdin);
                     printf("Enter new Phone-no\n");
                     gets(s.phone);
                     fflush(stdin);
                     printf("Enter new CNIC of the student\n");
                     gets(s.cnic);
                     fflush(stdin);
                     printf("Enter new course of the student\n");
                     gets(s.course);
                     fflush(stdin);
                     fseek(fq,-sizeof(s),SEEK_CUR);
                     fwrite(&s,sizeof(s),1,fq);   /* Writing the record in file.*/
                     break;
             default:
                             printf("\nInvalid option");
                             system("PAUSE");
             }   // End of switch
             break;
         }       // End of if statement
     } // End of while loop
     
       fflush(stdin);
       printf("Edit another record (Y/N)");
       another = getche();
            }        // End of main while loop
            fclose(fq);
} // End of Edit Record

// Start of student list record function
void viewstudentrecord(FILE *fq) 
{
     char another;
     another = 'y';
     printf("\n\t\t**********<WELCOME TO VIEW RECORDS>**********\n\n\n");
     rewind(fq);
     while(fread(&s,sizeof(s),1,fq)==1)   // Read contents from file
       {
         printf("\n Reg-No:\t%s\n Name:\t%s\n DOB:\t%s\n Phone-No:\t%s\n CNIC-NO:\t%s\n Cources:\t%s\n\n",s.rn,s.name,s.dob,s.phone,s.cnic,s.course);
       }
       system("PAUSE");   
       fclose(fq);
}  // End of view record function

// Deleting Recored 
void deletestudentrecord(FILE *fq)
{
     char c;    
     FILE *ft;      
     char newname[40];
     char another='y';
     printf("\n\t\t**********<WELCOME TO DELETE RECORDS>**********\n\n\n");
        while(another=='y' || another=='Y')
        {
        fflush(stdin);
        printf("Enter name of student to delete\n");
        gets(newname);
        rewind(fq);
        while(fread(&s,sizeof(s),1,fq)==1)
        {
           if(strcmp(s.name,newname)==0)  
           {
              printf("\nReg-No:\t%s\n Namr:\t%s\n DOB:\t%s\n Phone-No:\t%s\n CNIC-No:\t%s\n COURSES:\t%s\n\n",s.rn,s.name,s.dob,s.phone,s.cnic,s.course); // Display the record we want to delete
              printf("Are u Sure?(y/n)\n");
              scanf("%c",&c);
              if(c=='y'|| c=='Y')
              {              
                 ft=fopen("newstudent.txt","w");   // Creating new temporary file
                 while(fread(&s,sizeof(s),1,fq)==1)
                 {
                    if(strcmp(s.name,newname)!=0)  /* String compares gives us zero at the record we want
                                                to delete so we write all the records in new file accept
                                                that record using fwrite*/
                    fwrite(&s,sizeof(s),1,ft); /* Writing the record in file.
                                                1st parameter gives us base address of the structure , 
                                                2nd gives size of structure, 
                                                3rd increment the file pointer,
4th name of the file*/
                                                }
               fclose(fq);   // closing files
               fclose(ft);
               remove("student.txt");                    // Deleting of file
               rename("newstudent.txt","student.txt");   // Renaming of file
               fq = fopen("student.txt","r");            // opening of file 
  printf("\nRecord deleted\n");             
               }  //end of if block
     }     //end of if block
}        //end of while
if(fread(&s,sizeof(s),1,fq)==1)
printf("\nNo record present of this name\n");

     printf("\nDelete another record (Y/N) ?\n");
     fflush(stdin);
     another = getche();
}    //end of main while loop
system("PAUSE");
} // End of delete record

// Start of search student record
void searchstudentrecord(FILE *fq) 
{
    char another='y';     
    char name[50], rn[50];     // Declaring variables to compare with structure elements
    int choice;
    while(another=='y'||another=='Y')
    {
      system("cls");
      printf("\n\t\t**********<WELCOME TO SEARCH RECORDS>**********\n\n\n");
      // Following are different operations of this function
      printf("\n1. Search By  Name");
      printf("\n2. Search By  Reg-no\n");
      fflush(stdin);
      choice=getch();  // Choice to select the operation we want to do
      system("cls");

      switch(choice)
      {
           case '1':
             printf("\n Enter Name ");
             fflush(stdin);
             gets(name);
             rewind(fq);
             printf("\n");
             while(fread(&s,sizeof(s),1,fq)==1)
             {
               if(strcmp(s.name,name)==0)               
                  printf("\nReg-No:\t%s\n Name:\t%s\n DOB:\t%s\n Phone-No:\t%s\n CNIC-No:\t%s\n Courses:\t%s\n\n",s.rn,s.name,s.dob,s.phone,s.cnic,s.course);
          }
                  system("PAUSE");                                                                                             
             break;
          
          case '2':
            printf("\n Enter Reg-no :");
            gets(rn);
            rewind(fq);
            printf("\n");
            while(fread(&s,sizeof(s),1,fq )==1)
            {
              if(strcmp(s.rn,rn)==0)
                printf("\nReg-No:\t%s\n Name:\t%s\n DOB:\t%s\n Phone-No:\t%s\n CNIC-No:\t%s\n Courses:\t%s\n\n",s.rn,s.name,s.dob,s.phone,s.cnic,s.course);
          }
              system("PAUSE");        
            break;
        }
        printf("\n\n\n Search Another Record (y/n)");
        fflush(stdin);
        another=getch();
      }
      fclose(fq); // Closing the file.
      getch();
} // End of Search


                                                     // WE DID THE BEST WE COULD! :)


No comments:

Post a Comment