Sample 2
Sample 2
#include <string>
using namespace std;
#define MAX_STUDENTS 50
#define MAX_SUBJECTS 5
// FUNCTION PROTOTYPES
void input_student(studInfo students[], int& count);
void add_student(studInfo students[], int& count);
int find_student(const studInfo students[], int count, int id);
void update_student(studInfo students[], int count, int id);
void sort_student(studInfo students[], int count);
void remove_student(studInfo students[], int& count, int id);
void display_students(const studInfo students[], int count);
void fill_student_info(studInfo& student);
// FUNCTION DEFINITIONS
void fill_student_info(studInfo& student) {
cout << "NAME: " << endl;
cin.ignore();
getline(cin, student.name);
do {
cout << "ID (4 digits): " << endl;
cin >> student.id;
if (student.id < 1000 || student.id > 9999) {
cout << "Invalid ID! It must be a 4-digit number." << endl;
}
} while (student.id < 1000 || student.id > 9999);
student.total_marks = 0;
cout << "Enter marks for " << MAX_SUBJECTS << " subjects:" << endl;
for (int j = 0; j < MAX_SUBJECTS; j++) {
do {
cout << "Subject " << j + 1 << " (0-100): " << endl;
cin >> student.marks[j];
if (student.marks[j] < 0 || student.marks[j] > 100) {
cout << "Invalid marks! Please enter a value between 0 and 100." <<
endl;
}
} while (student.marks[j] < 0 || student.marks[j] > 100);
student.total_marks += student.marks[j];
}
do {
cout << "Enter GPA (0.0 - 4.0): " << endl;
cin >> student.gpa;
if (student.gpa < 0.0 || student.gpa > 4.0) {
cout << "Invalid GPA! Please enter a value between 0.0 and 4.0." <<
endl;
}
} while (student.gpa < 0.0 || student.gpa > 4.0);
}
int main() {
studInfo students[MAX_STUDENTS];
int count = 0;
int choice, id;
do {
cout << "Menu:" << endl;
cout << "1. Input Students" << endl;
cout << "2. Add Student" << endl;
cout << "3. Update Student" << endl;
cout << "4. Remove Student" << endl;
cout << "5. Sort Students" << endl;
cout << "6. Display Students" << endl;
cout << "7. Search Student" << endl; // New option
cout << "8. Exit" << endl;
cout << "Choose an option: " << endl;
cin >> choice;
switch (choice) {
case 1:
input_student(students, count);
break;
case 2:
add_student(students, count);
break;
case 3:
cout << "Enter ID of student to update: " << endl;
cin >> id;
update_student(students, count, id);
break;
case 4:
cout << "Enter ID of student to remove: " << endl;
cin >> id;
remove_student(students, count, id);
break;
case 5:
sort_student(students, count);
break;
case 6:
display_students(students, count);
break;
case 7: // Search student case
cout << "Enter ID of student to search: " << endl;
cin >> id;
search_student(students, count, id);
break;
case 8:
cout << "Exiting program." << endl;
return 0;
default:
cout << "Invalid choice. Please try again." << endl;
}
} while (true);
return 0;
}