/****************************************** * studentDatabase.c * Unit 3.1 * Allow the user to enter in student data * then print out the data. *****************************************/ #include #include #include #include "inputlib.h" #define MAX_NAME_LEN 80 #define MAX_STUDENTS 4 /* Declare structure to hold student info */ typedef struct Student { char firstName[MAX_NAME_LEN]; char lastName[MAX_NAME_LEN]; int yearOfBirth; float GPA; } Student; /* Function prototype */ void printStudents(Student database[], int numEntries); int main(int argc, char *argv[]) { int numEntries; int i; char *buffer; Student database[MAX_STUDENTS]; /* Ask user to input in the total number of students */ printf("How many students would you like to enter? (enter number less than or equal to %d) ", MAX_STUDENTS); numEntries = getInt(); /* Get information about each student from user */ for (i = 0; i < numEntries; i++) { printf("ENTRY %d:\n", i+1); /* Ask user to input in a first name */ printf("Enter first name: "); buffer = getString(); /* If user enters a name that's too long, exit. */ if (strlen(buffer) > MAX_NAME_LEN) { printf("Name must be less than %d characters long\n", MAX_NAME_LEN-1); exit(1); } /* Copy first name from input buffer to the struct */ strcpy(database[i].firstName, buffer); printf("Enter last name: "); buffer = getString(); if (strlen(buffer) > MAX_NAME_LEN) { printf("Name must be less than %d characters long\n", MAX_NAME_LEN-1); exit(1); } strcpy(database[i].lastName, buffer); printf("Enter year of birth: "); database[i].yearOfBirth = getInt(); printf("Enter GPA: "); database[i].GPA = getFloat(); } printStudents(database, numEntries); return 0; } /* Function that prints out all the elements in the array of Student structs */ void printStudents(Student database[], int numEntries) { int i; for (i = 0; i < numEntries; i++) { printf("========\nENTRY %d: \n========\n", i+1); printf("First name: %s\nLast name: %s\nYear: %d\nGPA: %.2f\n", database[i].firstName, database[i].lastName, database[i].yearOfBirth, database[i].GPA); } }