" 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