Question: Write a C program using the macro definitions and structure definitions as detailed below to store data for courses offered at a department at a


Write a C program using the macro definitions and structure definitions as detailed below to store data for courses offered at a department at a university and the record of students registered to these courses. #define CLASSSIZE 35 // SINIFKAPASITE #define STUDENTNUMBERLENGTH 10 11 OGRENCINUMARAUZUNLUGU #define NAMELENGTH 25 // ADIUZUNLUGU #define COURSENAMELENGTH 50 // DERSADIUZUNLUGU #define COURSECODELENGTH 10 // DERSKODUZUNLUGU #define COURSESREGISTERED 5 1/ KAYITLIDERSLER #define MIDTERMWEIGHT 30 // VIZEAGIRLIK #define FINALWEIGHT 30 // FINALAGIRLIK #define QUIZWEIGHT 20 // QUIZAGIRLIK #define HOMEWORKWEIGHT 20 // ODEVAGIRLIK typedef struct fullName{ //tam adi char *name; //adi char *surname; 1/ soyadi }name_t; typedef struct examGrades{ //sinav not double midterm; //vize double final; //final double quiz; //quiz double homework; //odev }grades_t; typedef struct courseRegistered { //kayitliDersler char courseName [COURSENAMELENGTH]; //ders adi char courseCode [COURSECODELENGTH]; //ders kodu grades_t grades; /otler char letterGrade [2]; //herf notu double numericGrade; /umerik notu } courseReg_t; typedef struct student Info //ogrenci bilgi name_t studentName; //ogrenci adi char *stNo; //ogrenci numara courseReg_t *courses [COURSESREGISTERED); //dersler double gpa; //ortalama }student_t; typedef struct courseInfo{ //ders bilgi char courseName [COURSENAMELENGTH); 1/ders adi char courseCode [COURSECODELENGTH] //ders kodu student_t students (CLASSSIZE); 7/ogrenciler double courseAverage; //ders ortalama } courses_t; Programnzda ogrenciEkle(). dersEkle(), OgrencininDersNotuHesapla(), OgrenciOrtalamHesapla), OgrenciBilgiGoster(). DersBilgiGoster(). SinifGoster() ve DersOrtalamaHesapla() ilevleri gerekletirin. In your program perform functions to addStudent(). addCourse(). calculateStudent CourseGrade), calculateStudentGPA). displayStudentInfo(). displayCourseInfo(), printClass() and calculateCourseAverage(). Please remember that you are not allowed to use any global variables. ALL variables used must be local variables. Please detail variables as they appear in memory using a diagram. Please provide your flowcharts and technical explanations to the programs along with well documented source code files. main() ilevin iinde, ihtiyacnz olan dier deikenlerle birlikte course_t courseClass deikenini kullann; hem snf verilerini hem de renci verilerini doldurmak ve bunlar grntlemek iin. Bir rencinin herhangi bir snavdan O'n altnda bir not veya 100'n zerinde bir not alamayacan ve programnzn kullanc tarafndan verilen girdinin aralk iinde olduundan emin olmas gerektiini ltfen unutmayn. Ayrca, harf notlarnn "AA" 4,00 olduunu ve 100 - 90 notlar iin verildiini, "BA" 3,50 olduunu ve 85 - 89 notlar iin verildiini, "BB" 3,00 olduunu ve 84 - 80 notlar iin verildiini ltfen unutmayn, "CB "2.50'dir ve 79-75 notu iin verilir," CC "2.00'dr ve 74 - 70 notu iin verilir," DC "1.50'dir ve 69 - 60 notu iin verilir," DD "1.00'dir ve bir 59 - 50 ve "FF" 0,00 olup 49 - 0 notu iin verilir. Not ortalamas 0,00 ile 4,00 arasnda olmal ve her zaman doru biimde gsterilmelidir. Inside the main() function, along with other variables you need, use the variable courses_t courseClass; to both populate the class data and student data, as well as to display them. Please note that a student cannot get a grade below or a grade above 100 for any exam and your program must make sure that input given by user is within the range. Please also note that letter grades are "AA" is 4.00 and awarded for a grade 100 - 90, "BA" is 3.5 and awarded for a grade 85 - 89, "BB" is 3.00 and awarded for a grade 84 - 80, "CB" is 2.50 and awarded for a grade 79 - 75, "CC" is 2.00 and awarded for a grade 74 - 70, "DC" is 1.50 and awarded for a grade 69 - 60, "D" is 1.00 and awarded for a grade 59 - 50 and "FF" is 0.00 and awarded for a grade 49 - 0. The GPA must be between 0.00 to 4.00 and should always be displayed in the correct format. Bilginizi ne kadar iyi sergilediinize gre derecelendirileceinizi ltfen unutmayn. Verilen ilevselliin tamamen uygulanmas ve ayrntl olmas kouluyla, programnza baka ilevler eklemekten ekinmeyin. Bir renci programdaki her eyi yapamazsa, yine de ksmi bir alma yapabilir ve almalarn hem ematik hem de szl olarak (bir belge eklinde aklayp detaylandrmalar kouluyla notlandrlacaktr. Ksmi almalar kismi olarak notlandrlacaktr. Please remember you will be graded based on how well you showcase your knowledge. Feel free to add any further functionality to your program provided the given functionality is completely implemented and detailed. If a student cannot do everything in the program they can still do partial work and that will be graded provided they can explain and detail their work both schematically and verbally (in form of a document). Partial work will be partially graded Write a C program using the macro definitions and structure definitions as detailed below to store data for courses offered at a department at a university and the record of students registered to these courses. #define CLASSSIZE 35 // SINIFKAPASITE #define STUDENTNUMBERLENGTH 10 11 OGRENCINUMARAUZUNLUGU #define NAMELENGTH 25 // ADIUZUNLUGU #define COURSENAMELENGTH 50 // DERSADIUZUNLUGU #define COURSECODELENGTH 10 // DERSKODUZUNLUGU #define COURSESREGISTERED 5 1/ KAYITLIDERSLER #define MIDTERMWEIGHT 30 // VIZEAGIRLIK #define FINALWEIGHT 30 // FINALAGIRLIK #define QUIZWEIGHT 20 // QUIZAGIRLIK #define HOMEWORKWEIGHT 20 // ODEVAGIRLIK typedef struct fullName{ //tam adi char *name; //adi char *surname; 1/ soyadi }name_t; typedef struct examGrades{ //sinav not double midterm; //vize double final; //final double quiz; //quiz double homework; //odev }grades_t; typedef struct courseRegistered { //kayitliDersler char courseName [COURSENAMELENGTH]; //ders adi char courseCode [COURSECODELENGTH]; //ders kodu grades_t grades; /otler char letterGrade [2]; //herf notu double numericGrade; /umerik notu } courseReg_t; typedef struct student Info //ogrenci bilgi name_t studentName; //ogrenci adi char *stNo; //ogrenci numara courseReg_t *courses [COURSESREGISTERED); //dersler double gpa; //ortalama }student_t; typedef struct courseInfo{ //ders bilgi char courseName [COURSENAMELENGTH); 1/ders adi char courseCode [COURSECODELENGTH] //ders kodu student_t students (CLASSSIZE); 7/ogrenciler double courseAverage; //ders ortalama } courses_t; Programnzda ogrenciEkle(). dersEkle(), OgrencininDersNotuHesapla(), OgrenciOrtalamHesapla), OgrenciBilgiGoster(). DersBilgiGoster(). SinifGoster() ve DersOrtalamaHesapla() ilevleri gerekletirin. In your program perform functions to addStudent(). addCourse(). calculateStudent CourseGrade), calculateStudentGPA). displayStudentInfo(). displayCourseInfo(), printClass() and calculateCourseAverage(). Please remember that you are not allowed to use any global variables. ALL variables used must be local variables. Please detail variables as they appear in memory using a diagram. Please provide your flowcharts and technical explanations to the programs along with well documented source code files. main() ilevin iinde, ihtiyacnz olan dier deikenlerle birlikte course_t courseClass deikenini kullann; hem snf verilerini hem de renci verilerini doldurmak ve bunlar grntlemek iin. Bir rencinin herhangi bir snavdan O'n altnda bir not veya 100'n zerinde bir not alamayacan ve programnzn kullanc tarafndan verilen girdinin aralk iinde olduundan emin olmas gerektiini ltfen unutmayn. Ayrca, harf notlarnn "AA" 4,00 olduunu ve 100 - 90 notlar iin verildiini, "BA" 3,50 olduunu ve 85 - 89 notlar iin verildiini, "BB" 3,00 olduunu ve 84 - 80 notlar iin verildiini ltfen unutmayn, "CB "2.50'dir ve 79-75 notu iin verilir," CC "2.00'dr ve 74 - 70 notu iin verilir," DC "1.50'dir ve 69 - 60 notu iin verilir," DD "1.00'dir ve bir 59 - 50 ve "FF" 0,00 olup 49 - 0 notu iin verilir. Not ortalamas 0,00 ile 4,00 arasnda olmal ve her zaman doru biimde gsterilmelidir. Inside the main() function, along with other variables you need, use the variable courses_t courseClass; to both populate the class data and student data, as well as to display them. Please note that a student cannot get a grade below or a grade above 100 for any exam and your program must make sure that input given by user is within the range. Please also note that letter grades are "AA" is 4.00 and awarded for a grade 100 - 90, "BA" is 3.5 and awarded for a grade 85 - 89, "BB" is 3.00 and awarded for a grade 84 - 80, "CB" is 2.50 and awarded for a grade 79 - 75, "CC" is 2.00 and awarded for a grade 74 - 70, "DC" is 1.50 and awarded for a grade 69 - 60, "D" is 1.00 and awarded for a grade 59 - 50 and "FF" is 0.00 and awarded for a grade 49 - 0. The GPA must be between 0.00 to 4.00 and should always be displayed in the correct format. Bilginizi ne kadar iyi sergilediinize gre derecelendirileceinizi ltfen unutmayn. Verilen ilevselliin tamamen uygulanmas ve ayrntl olmas kouluyla, programnza baka ilevler eklemekten ekinmeyin. Bir renci programdaki her eyi yapamazsa, yine de ksmi bir alma yapabilir ve almalarn hem ematik hem de szl olarak (bir belge eklinde aklayp detaylandrmalar kouluyla notlandrlacaktr. Ksmi almalar kismi olarak notlandrlacaktr. Please remember you will be graded based on how well you showcase your knowledge. Feel free to add any further functionality to your program provided the given functionality is completely implemented and detailed. If a student cannot do everything in the program they can still do partial work and that will be graded provided they can explain and detail their work both schematically and verbally (in form of a document). Partial work will be partially graded
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
