Untitled
unknown
plain_text
4 months ago
4.1 kB
4
Indexable
#include <stdio.h> #include <assert.h> #include <stdlib.h> #include <string.h> enum tagtype { MARK = 1, CGPA }; enum display { take_input = 1, show_info, end }; typedef struct { int ID; char name[100]; enum tagtype result_type; int cs; int math; int physics; int econ; float cgpa_maths; float cgpa_cs; float cgpa_physics; float cgpa_econ; char gender[6]; char division[30]; } studentinfo; void takeinfo() { FILE *infofile = fopen("database.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: "); gets(student.name); printf("MARKS OR CGPA? (1 FOR MARKS, 2 FOR CGPA): "); scanf("%d", &option); if (option == 1) student.result_type = MARK; if (option == 2) student.result_type = CGPA; if (student.result_type == MARK) { printf("ENTER MARKS FOR MATHS: "); scanf("%d", &student.math); printf("ENTER MARKS FOR PHYSICS: "); scanf("%d", &student.physics); printf("ENTER MARKS FOR COMPUTER SCIENCE: "); scanf("%d", &student.cs); printf("ENTER MARKS FOR ECONOMICS: "); scanf("%d", &student.econ); } if (student.result_type == CGPA) { printf("ENTER CGPA FOR MATHS: "); scanf("%f", &student.cgpa_maths); printf("ENTER CGPA FOR PHYSICS: "); scanf("%f", &student.cgpa_physics); printf("ENTER CGPA FOR COMPUTER SCIENCE: "); scanf("%f", &student.cgpa_cs); printf("ENTER CGPA FOR ECONOMICS: "); scanf("%f", &student.cgpa_econ); } printf("ENTER THE GENDER OF THE STUDENT: "); scanf("%s", student.gender); printf("ENTER THE DIVISION OF THE RESIDENCE: "); scanf("%s", student.division); getchar(); fwrite(&student, sizeof(studentinfo), 1, infofile); fclose(infofile); } void search(int id) { FILE *infofile = fopen("database.txt", "r"); assert(infofile); int got = 0; studentinfo student; // int show=student.result_type; while (fread(&student, sizeof(studentinfo), 1, infofile)) { if (student.ID == id) { printf("\nID NUMBER: %d\n", student.ID); printf("NAME: %s\n", student.name); if (student.result_type == MARK) printf("MARKS FOR MATHS: %d\nMARKS FOR PHYSICS: %d\nMARKS FOR COMP SCI: %d\nMARKS FOR ECONOMICS: %d\n", student.math, student.physics, student.cs, student.econ); if (student.result_type == CGPA) printf("CGPA FOR MATHS: %g\nCGPA FOR PHYSICS: %g\nCGPA FOR COMP SCI: %g\nCGPA FOR ECONOMICS: %g\n", student.cgpa_maths, student.cgpa_physics, student.cgpa_cs, student.cgpa_econ); 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); } 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) { takeinfo(); } if (choose == show_info) { printf("ENTER AN ID: "); scanf("%d", &id); search(id); } 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