johnmarkthegreat

i love ryle

May 17th, 2024 (edited)
446
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.25 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <conio.h>
  5. #include "MYTOOLS.h"
  6.  
  7. #define MAX_SUBJECTS 10
  8. #define MAX_NAME_LENGTH 50
  9. #define MAX_COURSE_LENGTH 10
  10.  
  11. struct name {
  12.     char firstName[MAX_NAME_LENGTH];
  13.     char middleName[MAX_NAME_LENGTH];
  14.     char lastName[MAX_NAME_LENGTH];
  15. };
  16.  
  17. struct birth {
  18.     char month[MAX_NAME_LENGTH];
  19.     int day;
  20.     long year;
  21. };
  22.  
  23. struct mysubject {
  24.     char subject[MAX_NAME_LENGTH];
  25.     float unit_per_subject;
  26.     float finalGrade_per_subject;
  27. };
  28.  
  29. struct studentRec {
  30.     long idnumber;
  31.     struct name students_name;
  32.     char gender;
  33.     struct birth birthdate;
  34.     char courseYear[MAX_COURSE_LENGTH];
  35.     int numberOfSubjectsEnrolled;
  36.     struct mysubject subjects[MAX_SUBJECTS];
  37. };
  38.  
  39. void clearInputBuffer() {
  40.     int c;
  41.     while ((c = getchar()) != '\n' && c != EOF);
  42. }
  43.  
  44. int main() {
  45.     int choice;
  46.     int i;
  47.     struct studentRec student;
  48.     gotoxy(34,34);
  49.     do {
  50.         clrscr();
  51.         drawDBox(3,3,65,26);
  52.  
  53.         gotoxy(10, 5); printf("I.D. number : ");
  54.         scanf("%ld", &student.idnumber);
  55.         clearInputBuffer();  
  56.  
  57.         gotoxy(10, 6); printf("N A M E : ");
  58.         scanf("%s %s %s", student.students_name.firstName, student.students_name.middleName, student.students_name.lastName);
  59.         clearInputBuffer();
  60.  
  61.  
  62.         gotoxy(10, 7); printf("GENDER[M/F] : ");
  63.         scanf(" %c", &student.gender);
  64.         clearInputBuffer();
  65.  
  66.  
  67.         gotoxy(10, 8); printf("BIRTHDATE : ");
  68.         scanf("%s %d %ld", student.birthdate.month, &student.birthdate.day, &student.birthdate.year);
  69.         clearInputBuffer();  
  70.  
  71.  
  72.         gotoxy(10, 9); printf("COURSE & YR : ");
  73.         fgets(student.courseYear, MAX_COURSE_LENGTH, stdin);
  74.         student.courseYear[strcspn(student.courseYear, "\n")] = 0;
  75.  
  76.         gotoxy(20, 11); printf("Total no. of subjects: ");
  77.         scanf("%d", &student.numberOfSubjectsEnrolled);
  78.         clearInputBuffer();
  79.        
  80.         gotoxy(10, 13); printf("SUBJECT");
  81.         gotoxy(30, 13); printf("UNIT");
  82.         gotoxy(50, 13); printf("GRADE");
  83.  
  84.  
  85.         for (i = 0; i < student.numberOfSubjectsEnrolled; i++) {
  86.             gotoxy(10, 14 + i); fgets(student.subjects[i].subject, MAX_NAME_LENGTH, stdin);
  87.             student.subjects[i].subject[strcspn(student.subjects[i].subject, "\n")] = 0;
  88.  
  89.             gotoxy(30, 14 + i); scanf("%f", &student.subjects[i].unit_per_subject);
  90.             clearInputBuffer();  
  91.  
  92.             gotoxy(50, 14 + i); scanf("%f", &student.subjects[i].finalGrade_per_subject);
  93.             clearInputBuffer();
  94.         }
  95.  
  96.  
  97.         float sumProduct = 0;
  98.         float total_units = 0;
  99.         for (i = 0; i < student.numberOfSubjectsEnrolled; i++) {
  100.             sumProduct += (student.subjects[i].unit_per_subject * student.subjects[i].finalGrade_per_subject);
  101.             total_units += student.subjects[i].unit_per_subject;
  102.         }
  103.         float gpa = sumProduct / total_units;
  104.  
  105.         gotoxy(10, 15 + student.numberOfSubjectsEnrolled); printf("GPA : %.2f\n", gpa);
  106.         gotoxy(10, 17 + student.numberOfSubjectsEnrolled); printf("Press 1 to continue or 0 to exit... ");
  107.         scanf("%d", &choice);
  108.  
  109.     } while (choice == 1);
  110.  
  111.     return 0;
  112. }
Add Comment
Please, Sign In to add comment