Untitled
unknown
plain_text
a year ago
4.2 kB
5
Indexable
#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
#include <string.h>
union format
{
int marks;
float cgpa;
};
enum tagtype
{
MARK = 1,
CGPA
};
enum display
{
take_input = 1,
show_info,
end
};
typedef struct
{
int ID;
char name[100];
union format result;
int type;
char gender[6];
char division[30];
} studentinfo;
int main()
{
int choose, id;
while (1)
{
printf("Welcome to BUET CSE Student's Forum.\n\nChoose one of the options:\n");
printf("1. Take input for a student\n");
printf("2. Take ID to show information of a student\n");
printf("3. End program\n");
scanf("%d", &choose);
if (choose == take_input)
{
FILE *infofile = fopen("D:\\CSE101 ASSIGNMENT\\output\\studatabase.txt", "a");
assert(infofile);
studentinfo student;
int option;
printf("ENTER THE ID OF THE STUDENT: ");
scanf("%d", &student.ID);
getchar();
printf("ENTER THE NAME OF THE STUDENT: ");
fgets(student.name, sizeof(student.name), stdin);
student.name[strcspn(student.name, "\n")] = 0;
printf("MARKS OR CGPA? (1 FOR MARKS, 2 FOR CGPA): ");
scanf("%d", &option);
if (option == 1)
student.type = 1;
if (option == 2)
student.type = 2;
if (student.type == 1)
{
printf("ENTER MARKS: ");
scanf("%d", &student.result.marks);
}
if (student.type == 2)
{
printf("ENTER CGPA: ");
scanf("%f", &student.result.cgpa);
}
printf("ENTER THE GENDER OF THE STUDENT: ");
scanf("%s", student.gender);
printf("ENTER THE DIVISION OF THE RESIDENCE: ");
scanf("%s", student.division);
getchar();
fprintf(infofile, "%d %s %d ", student.ID, student.name, student.type);
if (student.type == 1)
{
fprintf(infofile, "%d", student.result.marks);
}
if (student.type == 2)
{
fprintf(infofile, "%f ", student.result.cgpa);
}
fprintf(infofile, "%s %s\n", student.gender, student.division);
fclose(infofile);
}
if (choose == show_info)
{
printf("ENTER AN ID: ");
scanf("%d", &id);
FILE *infofile = fopen("D:\\CSE101 ASSIGNMENT\\output\\studatabase.txt", "r");
assert(infofile);
int got = 0;
studentinfo student;
// int show=student.result_type;
while (fscanf(infofile, "%d %s %d %d %f %s %s",
&student.ID, student.name, &student.type, &student.result.marks, &student.result.cgpa, student.gender, student.division) != EOF)
{
if (student.ID == id)
{
printf("\nID NUMBER: %d\n", student.ID);
printf("NAME: %s\n", student.name);
if (student.type == 1)
printf("MARKS: %d\n", student.result.marks);
if (student.type == 2)
printf("CGPA: %.2f\n", student.result.cgpa);
printf("GENDER: %s\n", student.gender);
printf("DIVISION OF RESIDENCE: %s\n", student.division);
got = 1;
break;
}
}
if (got == 0)
{
printf("THE PROVIDED ID IS NOT PRESENT HERE.\n");
}
fclose(infofile);
}
if (choose == end)
{
printf("PROGRAM TERMINATED, THANK YOU\n");
exit(0);
}
if (choose != take_input && choose != show_info && choose != end)
{
printf("INVALID CHOICE. RETRY\n");
}
}
return 0;
}Editor is loading...
Leave a Comment