Untitled
unknown
plain_text
4 months ago
4.2 kB
4
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