// menudriven program for project of class 12 final grade
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void login();
void write();
void read();
void read18up();
void deletefile();
void menu();
FILE * fptr, * fptr1;
struct students {
int roll;
char fname[20];
char lname[20];
int grade;
int age;
}
std;
void delay(int j) {
int i, k;
for (i = 1; i <= j; i++) {
k = i;
}
}
void login ()
{
int i ,password=1111,pass,count=2,j;
login:
system("cls");
printf("\n\n\t-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-\n");
printf("\n\n\t\t\t\tEnter the password :\t");
scanf("%d",&pass);
// printf("%d",pass);
if ( pass == password){
printf("n\n\n\n\n\n\n\n\t\t\tPassword matched Press any key to continue");
menu();
}
else{
if( count >=1){
system("cls");
printf("\n\n\n\n\n\n\n\n\t\t\tThe password you entered is incorrect || Please try again \n\n");
count--;
for (i = 1; i <= 3; i++) {
delay(300000000);
printf(".");
}
goto login;
}
else {
for( i=30 ; i>=0; i--)
{
system("cls");
printf ("\n\n\n\n\n\n\n\n\t\t\tTry again after %d seconds ", i);
delay(500000000);
}
goto login;
}
}
}
int main() {
system("COLOR 0B");
printf("\n\n\n\n\n\n\n\n\t\t\tWELCOME TO THE PROGRAM!!!");
getch();
login();
}
void menu() {
int ch;
start:
system("cls");
printf("\n\t\tSTUDENT RECORD MANAGEMENT SYSTEM\n\n");
printf("\n\n\t\t[1] Write records to the file.\n");
printf("\t\t[2] Read records from the file.\n");
printf("\t\t[3] Read records whose age is more then 18.\n");
printf("\t\t[4] Delete the particular record.\n");
printf("\t\t[5] Exit the program.\n");
printf("\t\t___________________________________________\n\n");
printf("\n\t\t\t Enter your choice (1-5):\t");
scanf("%d", & ch);
switch (ch) {
case 1:
write();
break;
case 2:
read();
break;
case 3:
read18up();
break;
case 4:
deletefile();
break;
case 5:
system("cls");
printf("\n\n\n\n\n\n\n\n\t\tThank you for using this program(^_^)");
printf("\n\n\n\t\tPress any key to exit...");
getch();
exit(0);
break;
default:
system("cls");
printf("\n\n\t\tThe Choice You Entered Is Invalid");
break;
}
char choice;
int i;
printf("\n\n\t press any to return to the menu || press 'e' for exit");
choice = getch();
if (choice == 'e') {
printf("\n\n\n\t\tExiting");
for (i = 1; i <= 3; i++) {
delay(200000000);
printf(".");
}
exit(0);
} else {
printf("\n\n\n\t\t Returning to the main menu");
for (i = 1; i <= 3; i++) {
delay(200000000);
printf(".");
}
goto start;
}
}
void write() {
system("cls");
char ch;
fptr = fopen("class12.dat", "w");
printf("\n\t<===================== Write Mode ========================>\n");
do {
printf("\n\n\t-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-\n");
printf("\n\t\tEnter your roll number :");
scanf("%d", & std.roll);
printf("\t\tEnter your first name :\t");
scanf("%s", & std.fname);
printf("\t\tEnter your lastname:\t");
scanf("%s", & std.lname);
printf("\t\tEnter your class :\t");
scanf("%d", & std.grade);
printf("\t\tEnter your age :\t");
scanf("%d", & std.age);
fprintf(fptr, "\n%d\t%s\t%s\t%d\t%d",
std.roll, std.fname, std.lname, std.grade, std.age);
printf("\t\tDo you want to add more records(y-yes|n-no):\t");
ch = getche();
} while (ch != 'n');
fclose(fptr);
}
void read() {
system("cls");
printf("\n\t<===================== Read Mode ========================>\n");
fptr = fopen("class12.dat", "r");
printf("\n\tROll NO\tFIRSTNAME\tLASTNAME\tCLASS\tAGE\n");
printf("\t___________________________________________________\n");
while (fscanf(fptr, "%d%s%s%d%d", &
std.roll, & std.fname, & std.lname, & std.grade, & std.age) != EOF) {
printf("\n\t%d\t%s\t\t%s\t\t%d\t%d", std.roll, std.fname, std.lname, std.grade, std.age);
}
printf("\n\t___________________________________________________\n");
fclose(fptr);
}
void read18up() {
system("cls");
printf("\n\t<===================== Read Mode ========================>\n");
fptr = fopen("class12.dat", "r");
printf("\n\tStudents whose age are greater then 18 are\n");
printf("\n\tROll NO\tFIRSTNAME\tLASTNAME\tCLASS\tAGE\n");
printf("\t___________________________________________________\n");
while ((fscanf(fptr, "\n%d\t%s\t%s\t%d\t%d", &
std.roll, & std.fname, & std.lname, & std.grade, & std.age)) != EOF) {
if (std.age > 18) {
printf("\n\t%d\t%s\t\t%s\t\t%d\t%d", std.roll,
std.fname, std.lname, std.grade, std.age);
}
}
printf("\n\t___________________________________________________\n");
fclose(fptr);
}
void deletefile() {
system("cls");
printf("\n\t<===================== Delete Mode ========================>\n");
int f = 0;
fptr = fopen("class12.dat", "r");
printf("\n\tROll NO\tFIRSTNAME\tLASTNAME\tCLASS\tAGE\n");
printf("\t___________________________________________________\n");
while (fscanf(fptr, "%d%s%s%d%d", & std.roll, & std.fname, & std.lname, & std.grade, & std.age) != EOF) {
printf("\n\t%d\t%s\t\t%s\t\t%d\t%d", std.roll, std.fname, std.lname, std.grade, std.age);
}
printf("\n\t___________________________________________________\n");
fclose(fptr);
int roll;
fptr = fopen("class12.dat", "r+");
fptr1 = fopen("copy.dat", "w+");
printf("\n\n\tEnter the Roll Number to delete the records \t");
scanf("%d", & roll);
while ((fscanf(fptr, "\n%d\t%s\t%s\t%d\t%d", & std.roll, &
std.fname, & std.lname, & std.grade, & std.age)) != EOF) {
if (std.roll != roll) {
fprintf(fptr1, "\n%d\t%s\t\t%s\t\t%d\t%d", std.roll, std.fname, std.lname, std.grade, std.age);
} else {
f++;
}
}
fclose(fptr);
fclose(fptr1);
if (f != 0) {
printf("\n\n\tThe record was deleted successfully\t\n");
} else {
printf("\n\n\tThe roll no you entered doesn't exist\t ");
}
remove("class12.dat");
rename("copy.dat", "class12.dat");
}