0% found this document useful (0 votes)
8 views

Itc Finale

The document contains the code for a C++ program that stores student data like roll numbers, marks, grades etc. in arrays. It provides a menu driven interface for the user to sort and display the records in different orders like ascending/descending by roll number, midterm marks, final marks or grade. The user can also add, delete records or filter records based on marks or grade thresholds.

Uploaded by

mazharyt1840
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views

Itc Finale

The document contains the code for a C++ program that stores student data like roll numbers, marks, grades etc. in arrays. It provides a menu driven interface for the user to sort and display the records in different orders like ascending/descending by roll number, midterm marks, final marks or grade. The user can also add, delete records or filter records based on marks or grade thresholds.

Uploaded by

mazharyt1840
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 18

// mazhar0255.cpp : This file contains the 'main' function.

Program execution
begins and ends there.
//

#include <iostream>
using namespace std;
int main()
{
const int ARRAY_SIZE = 100;
int rollNumbers[ARRAY_SIZE] = { 73, 42, 91, 28, 15, 68, 37, 54, 89, 63, 12,
76, 98, 24, 51, 84, 19, 33, 77, 46, 59, 81, 36, 22, 67, 93, 58, 14, 72, 31, 88, 49,
26, 61, 82, 18, 95, 29, 44, 71, 97, 23, 39, 66, 13, 78, 55, 86, 32 };

float midtermMarks[ARRAY_SIZE] = { 25.5, 18.8, 36.3, 29.1, 41.7, 14.2, 38.6,


56.7, 30.9, 48.2, 19.4, 33.8, 22.6, 45.3, 39.8, 17.2, 27.5, 12.8, 37.4, 44.6, 52.9,
21.4, 31.7, 49.3, 15.6, 24.8, 40.1, 35.7, 50.5, 16.9, 28.3, 42.9, 34.6, 23.7, 19.2,
54.6, 11.3, 46.9, 38.1, 58.4, 26.2, 32.4, 14.8, 43.7, 51.1, 49.7, 29.8, 37.2,
20.3 };

float finalMarks[ARRAY_SIZE] = { 85.3, 78.6, 93.2, 67.1, 76.8, 89.4, 82.1,


94.7, 71.5, 64.2, 78.9, 90.6, 84.3, 97.8, 73.4, 65.9, 79.2, 88.7, 91.4, 74.6, 62.1,
87.5, 80.3, 69.7, 96.2, 82.9, 75.6, 70.4, 94.1, 68.2, 81.7, 77.9, 92.3, 86.5, 79.8,
83.6, 95.6, 72.3, 76.1, 60.9, 99.2, 66.7, 84.9, 92.8, 98.4, 61.5, 63.7, 89.9,
80.5 };

int studentClass[ARRAY_SIZE] = { 3, 2, 1, 3, 2, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1,
2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2,
3, 1, 2, 3, 1, 2, 3, 1 };

char grades[ARRAY_SIZE] = { 'B', 'C', 'A', 'B', 'C', 'A', 'C', 'B', 'A', 'B',
'A', 'C', 'B', 'A', 'B', 'C', 'A', 'B', 'C', 'B', 'A', 'C', 'B', 'A', 'C', 'B',
'A', 'C', 'B', 'A', 'C', 'B', 'A', 'C', 'B', 'A', 'C', 'B', 'A', 'C', 'B', 'A',
'C', 'B', 'A', 'C', 'B', 'A', 'C', 'B', 'A' };

char choice;
int curr_size = 50;
do {
cout << "\nMain Menu:\n";
cout << "Press 'A' to Sort and display all records roll number wise in
ascending order.\n";
cout << "Press 'B' to Sort and display all records roll number wise in
descending order.\n";
cout << "Press 'C' to Sort and display all records in ascending order
based on marks in Midterm.\n";
cout << "Press 'D' to Sort and display all records in descending order
based on marks in Midterm.\n";
cout << "Press 'F' to Sort and display all records in ascending order
based on marks in Final.\n";
cout << "Press 'G' to Sort and display all records in descending order
based on marks in Final.\n";
cout << "Press 'H' to Sort and display all records in ascending order
based on Grade.\n";
cout << "Press 'I' to Sort and display all records in descending order
based on Grade.\n";
cout << "Press 'J' to Add a new entry of a student.\n";
cout << "Press 'K' to Delete a student record based on his roll
number.\n";
cout << "Press 'L' to Display record of all the students greater than X
marks in final exam (in descending order with respect to marks obtained in final
exam).\n";
cout << "Press 'M' to Display record of all the students greater than X
marks in final exam (in ascending order with respect to marks obtained in final
exam).\n";
cout << "Press 'N' to Display record of all the students less than or
equal to X marks in final exam (in descending order with respect to marks obtained
in final exam).\n";
cout << "Press 'O' to Display record of all the students less than or
equal to X marks in final exam (in ascending order with respect to marks obtained
in final exam).\n";
cout << "Press 'P' to Display record of all the students greater than X
grade (in descending order with respect to grade).\n";
cout << "Press 'Q' to Display record of all the students greater than X
grade (in ascending order with respect to grade).\n";
cout << "Press 'R' to Display record of all the students less than or
equal to X grade (in descending order with respect to grade).\n";
cout << "Press 'S' to Display record of all the students less than or
equal to X grade (in ascending order with respect to grade).\n";
cout << "Press 'E' to Exit\n";
cout << "Enter your choice: ";
cin >> choice;

int deleteIndex = -1;


int threshold = 0;
char thres = 0;
switch (choice)
{
case 'A':
// Sort and display all records roll number wise in ascending
order
for (int i = 0; i < curr_size - 1; ++i)
{
for (int j = 0; j < curr_size - i - 1; ++j)
{
if (rollNumbers[j] > rollNumbers[j + 1])
{
int tempRoll = rollNumbers[j];
rollNumbers[j] = rollNumbers[j + 1];
rollNumbers[j + 1] = tempRoll;

float tempMidterm = midtermMarks[j];


midtermMarks[j] = midtermMarks[j + 1];
midtermMarks[j + 1] = tempMidterm;

float tempFinal = finalMarks[j];


finalMarks[j] = finalMarks[j + 1];
finalMarks[j + 1] = tempFinal;

int tempClass = studentClass[j];


studentClass[j] = studentClass[j + 1];
studentClass[j + 1] = tempClass;

char tempGrade = grades[j];


grades[j] = grades[j + 1];
grades[j + 1] = tempGrade;
}
}
}
// Display the sorted records in ascending order
cout << "\nSorted Records in Ascending Order:\n";
for (int i = 0; i < curr_size; ++i)
{
cout << "Roll No: " << rollNumbers[i]
<< " Midterm Marks: " << midtermMarks[i]
<< " Final Marks: " << finalMarks[i]
<< " Class: " << studentClass[i]
<< " Grade: " << grades[i] << "\n";
}
break;
case 'B':
// Sort and display all records roll number wise in descending
order
for (int i = 0; i < curr_size - 1; ++i)
{
for (int j = 0; j < curr_size - i - 1; ++j)
{
if (rollNumbers[j] < rollNumbers[j + 1])
{
int tempRoll = rollNumbers[j];
rollNumbers[j] = rollNumbers[j + 1];
rollNumbers[j + 1] = tempRoll;

float tempMidterm = midtermMarks[j];


midtermMarks[j] = midtermMarks[j + 1];
midtermMarks[j + 1] = tempMidterm;

float tempFinal = finalMarks[j];


finalMarks[j] = finalMarks[j + 1];
finalMarks[j + 1] = tempFinal;

int tempClass = studentClass[j];


studentClass[j] = studentClass[j + 1];
studentClass[j + 1] = tempClass;

char tempGrade = grades[j];


grades[j] = grades[j + 1];
grades[j + 1] = tempGrade;
}
}
}

// Display the sorted records in descending order


cout << "\nSorted Records in Descending Order:\n";
for (int i = 0; i < curr_size; ++i)
{
cout << "Roll No: " << rollNumbers[i]
<< " Midterm Marks: " << midtermMarks[i]
<< " Final Marks: " << finalMarks[i]
<< " Class: " << studentClass[i]
<< " Grade: " << grades[i] << "\n";
}
break;
case 'C':
// Sort and display all records in ascending order based on marks
in Midterm

for (int i = 0; i < curr_size - 1; ++i) {


for (int j = 0; j < curr_size - i - 1; ++j)
{
if (midtermMarks[j] > midtermMarks[j + 1])
{
int tempRoll = rollNumbers[j];
rollNumbers[j] = rollNumbers[j + 1];
rollNumbers[j + 1] = tempRoll;

float tempMidterm = midtermMarks[j];


midtermMarks[j] = midtermMarks[j + 1];
midtermMarks[j + 1] = tempMidterm;

float tempFinal = finalMarks[j];


finalMarks[j] = finalMarks[j + 1];
finalMarks[j + 1] = tempFinal;

int tempClass = studentClass[j];


studentClass[j] = studentClass[j + 1];
studentClass[j + 1] = tempClass;

char tempGrade = grades[j];


grades[j] = grades[j + 1];
grades[j + 1] = tempGrade;
}
}
}

// Display the sorted records in ascending order based on Midterm


Marks
cout << "\nSorted Records in Ascending Order based on Midterm
Marks:\n";
for (int i = 0; i < curr_size; ++i) {
cout << "Roll No: " << rollNumbers[i]
<< " Midterm Marks: " << midtermMarks[i]
<< " Final Marks: " << finalMarks[i]
<< " Class: " << studentClass[i]
<< " Grade: " << grades[i] << "\n";
}
break;
case 'D':
// Sort and display all records in descending order based on
marks in Midterm
for (int i = 0; i < curr_size - 1; ++i)
{
for (int j = 0; j < curr_size - i - 1; ++j)
{
if (midtermMarks[j] < midtermMarks[j + 1])
{
// Inline swapping logic without using
std::swap or void
int tempRoll = rollNumbers[j];
rollNumbers[j] = rollNumbers[j + 1];
rollNumbers[j + 1] = tempRoll;

float tempMidterm = midtermMarks[j];


midtermMarks[j] = midtermMarks[j + 1];
midtermMarks[j + 1] = tempMidterm;

float tempFinal = finalMarks[j];


finalMarks[j] = finalMarks[j + 1];
finalMarks[j + 1] = tempFinal;

int tempClass = studentClass[j];


studentClass[j] = studentClass[j + 1];
studentClass[j + 1] = tempClass;

char tempGrade = grades[j];


grades[j] = grades[j + 1];
grades[j + 1] = tempGrade;
}
}
}

// Display the sorted records in descending order based on


Midterm Marks
cout << "\nSorted Records in Descending Order based on Midterm
Marks:\n";
for (int i = 0; i < curr_size; ++i)
{
cout << "Roll No: " << rollNumbers[i]
<< " Midterm Marks: " << midtermMarks[i]
<< " Final Marks: " << finalMarks[i]
<< " Class: " << studentClass[i]
<< " Grade: " << grades[i] << "\n";
}
break;
case 'F':
// Sort and display all records in ascending order based on marks
in Final
for (int i = 0; i < curr_size - 1; ++i)
{
for (int j = 0; j < curr_size - i - 1; ++j)
{
if (finalMarks[j] > finalMarks[j + 1])
{
// Inline swapping logic without using
std::swap or void
int tempRoll = rollNumbers[j];
rollNumbers[j] = rollNumbers[j + 1];
rollNumbers[j + 1] = tempRoll;

float tempMidterm = midtermMarks[j];


midtermMarks[j] = midtermMarks[j + 1];
midtermMarks[j + 1] = tempMidterm;

float tempFinal = finalMarks[j];


finalMarks[j] = finalMarks[j + 1];
finalMarks[j + 1] = tempFinal;

int tempClass = studentClass[j];


studentClass[j] = studentClass[j + 1];
studentClass[j + 1] = tempClass;

char tempGrade = grades[j];


grades[j] = grades[j + 1];
grades[j + 1] = tempGrade;
}
}
}

// Display the sorted records in ascending order based on Final


Marks
cout << "\nSorted Records in Ascending Order based on Final
Marks:\n";
for (int i = 0; i < curr_size; ++i)
{
cout << "Roll No: " << rollNumbers[i]
<< " Midterm Marks: " << midtermMarks[i]
<< " Final Marks: " << finalMarks[i]
<< " Class: " << studentClass[i]
<< " Grade: " << grades[i] << "\n";
}
break;
case 'G':
// Sort and display all records in descending order based on
marks in Final
for (int i = 0; i < curr_size - 1; ++i)
{
for (int j = 0; j < curr_size - i - 1; ++j)
{
if (finalMarks[j] < finalMarks[j + 1])
{
// Inline swapping logic without using
std::swap or void
int tempRoll = rollNumbers[j];
rollNumbers[j] = rollNumbers[j + 1];
rollNumbers[j + 1] = tempRoll;

float tempMidterm = midtermMarks[j];


midtermMarks[j] = midtermMarks[j + 1];
midtermMarks[j + 1] = tempMidterm;

float tempFinal = finalMarks[j];


finalMarks[j] = finalMarks[j + 1];
finalMarks[j + 1] = tempFinal;

int tempClass = studentClass[j];


studentClass[j] = studentClass[j + 1];
studentClass[j + 1] = tempClass;

char tempGrade = grades[j];


grades[j] = grades[j + 1];
grades[j + 1] = tempGrade;
}
}
}

// Display the sorted records in descending order based on Final


Marks
cout << "\nSorted Records in Descending Order based on Final
Marks:\n";
for (int i = 0; i < curr_size; ++i)
{
cout << "Roll No: " << rollNumbers[i]
<< " Midterm Marks: " << midtermMarks[i]
<< " Final Marks: " << finalMarks[i]
<< " Class: " << studentClass[i]
<< " Grade: " << grades[i] << "\n";
}
break;
case 'H':
// Sort and display all records in ascending order based on Grade
for (int i = 0; i < curr_size - 1; ++i)
{
for (int j = 0; j < curr_size - i - 1; ++j)
{
if (grades[j] > grades[j + 1])
{

int tempRoll = rollNumbers[j];


rollNumbers[j] = rollNumbers[j + 1];
rollNumbers[j + 1] = tempRoll;

float tempMidterm = midtermMarks[j];


midtermMarks[j] = midtermMarks[j + 1];
midtermMarks[j + 1] = tempMidterm;

float tempFinal = finalMarks[j];


finalMarks[j] = finalMarks[j + 1];
finalMarks[j + 1] = tempFinal;

int tempClass = studentClass[j];


studentClass[j] = studentClass[j + 1];
studentClass[j + 1] = tempClass;

char tempGrade = grades[j];


grades[j] = grades[j + 1];
grades[j + 1] = tempGrade;
}
}
}

// Display the sorted records in ascending order based on Grade


cout << "\nSorted Records in Ascending Order based on Grade:\n";
for (int i = 0; i < curr_size; ++i)
{
cout << "Roll No: " << rollNumbers[i]
<< " Midterm Marks: " << midtermMarks[i]
<< " Final Marks: " << finalMarks[i]
<< " Class: " << studentClass[i]
<< " Grade: " << grades[i] << "\n";
}
break;
case 'I':
// Sort and display all records in descending order based on
Grade
for (int i = 0; i < curr_size - 1; ++i)
{
for (int j = 0; j < curr_size - i - 1; ++j)
{
if (grades[j] < grades[j + 1])
{

int tempRoll = rollNumbers[j];


rollNumbers[j] = rollNumbers[j + 1];
rollNumbers[j + 1] = tempRoll;
float tempMidterm = midtermMarks[j];
midtermMarks[j] = midtermMarks[j + 1];
midtermMarks[j + 1] = tempMidterm;

float tempFinal = finalMarks[j];


finalMarks[j] = finalMarks[j + 1];
finalMarks[j + 1] = tempFinal;

int tempClass = studentClass[j];


studentClass[j] = studentClass[j + 1];
studentClass[j + 1] = tempClass;

char tempGrade = grades[j];


grades[j] = grades[j + 1];
grades[j + 1] = tempGrade;
}
}
}

// Display the sorted records in descending order based on Grade


cout << "\nSorted Records in Descending Order based on Grade:\n";
for (int i = 0; i < curr_size; ++i)
{
cout << "Roll No: " << rollNumbers[i]
<< " Midterm Marks: " << midtermMarks[i]
<< " Final Marks: " << finalMarks[i]
<< " Class: " << studentClass[i]
<< " Grade: " << grades[i] << "\n";
}
break;
case 'J':
// Add a new entry of a student
if (curr_size < ARRAY_SIZE) {
// Assuming arrays are not full
cout << "Enter Roll Number: ";
cin >> rollNumbers[curr_size];

cout << "Enter Midterm Marks: ";


cin >> midtermMarks[curr_size];

cout << "Enter Final Marks: ";


cin >> finalMarks[curr_size];

cout << "Enter Class: ";


cin >> studentClass[curr_size];

cout << "Enter Grade: ";


cin >> grades[curr_size];

// Sort the arrays after adding a new entry using Bubble


Sort
for (int i = 0; i < curr_size - 1; ++i)
{
for (int j = 0; j < curr_size - i - 1; ++j)
{
if (rollNumbers[j] > rollNumbers[j + 1])
{
// Inline swapping logic without using
std::swap or void
int tempRoll = rollNumbers[j];
rollNumbers[j] = rollNumbers[j + 1];
rollNumbers[j + 1] = tempRoll;

float tempMidterm = midtermMarks[j];


midtermMarks[j] = midtermMarks[j + 1];
midtermMarks[j + 1] = tempMidterm;

float tempFinal = finalMarks[j];


finalMarks[j] = finalMarks[j + 1];
finalMarks[j + 1] = tempFinal;

int tempClass = studentClass[j];


studentClass[j] = studentClass[j + 1];
studentClass[j + 1] = tempClass;

char tempGrade = grades[j];


grades[j] = grades[j + 1];
grades[j + 1] = tempGrade;
}
}
}
++curr_size; // Increase the size after adding a new entry
cout << "New entry added successfully.\n";
// Display the sorted records in ascending order
cout << "\nSorted Records in Ascending Order:\n";
for (int i = 0; i < curr_size; ++i)
{
cout << "Roll No: " << rollNumbers[i]
<< " Midterm Marks: " << midtermMarks[i]
<< " Final Marks: " << finalMarks[i]
<< " Class: " << studentClass[i]
<< " Grade: " << grades[i] << "\n";
}
}
else
{
cout << "Cannot add a new entry. Arrays are full.\n";
}
break;
case 'K':
// Delete a student record based on his roll number
int rollToDelete;
cout << "Enter Roll Number to delete: ";
cin >> rollToDelete;

for (int i = 0; i < curr_size; ++i)


{
if (rollNumbers[i] == rollToDelete)
{
deleteIndex = i;
break;
}
}

if (deleteIndex != -1)
{
// Shift the entries to remove the record
for (int i = deleteIndex; i < curr_size - 1; ++i)
{
rollNumbers[i] = rollNumbers[i + 1];
midtermMarks[i] = midtermMarks[i + 1];
finalMarks[i] = finalMarks[i + 1];
studentClass[i] = studentClass[i + 1];
grades[i] = grades[i + 1];
}

// Sort the arrays after deleting a record using Bubble


Sort
for (int i = 0; i < curr_size - 1; ++i)
{
for (int j = 0; j < curr_size - i - 1; ++j)
{
if (rollNumbers[j] > rollNumbers[j + 1])
{

int tempRoll = rollNumbers[j];


rollNumbers[j] = rollNumbers[j + 1];
rollNumbers[j + 1] = tempRoll;

float tempMidterm = midtermMarks[j];


midtermMarks[j] = midtermMarks[j + 1];
midtermMarks[j + 1] = tempMidterm;

float tempFinal = finalMarks[j];


finalMarks[j] = finalMarks[j + 1];
finalMarks[j + 1] = tempFinal;

int tempClass = studentClass[j];


studentClass[j] = studentClass[j + 1];
studentClass[j + 1] = tempClass;

char tempGrade = grades[j];


grades[j] = grades[j + 1];
grades[j + 1] = tempGrade;
}
}
}

--curr_size; // Decrease the size after deleting a record


cout << "Student record deleted successfully.\n";
for (int i = 0; i < curr_size; ++i)
{
cout << "Roll No: " << rollNumbers[i]
<< " Midterm Marks: " << midtermMarks[i]
<< " Final Marks: " << finalMarks[i]
<< " Class: " << studentClass[i]
<< " Grade: " << grades[i] << "\n";
}
}
else
{
cout << "Student record with Roll Number " << rollToDelete
<< " not found.\n";
}
break;
case 'L':
// Display record of all the students greater than X marks in
final exam (in descending order with respect to marks obtained in final exam)

cout << "Enter the threshold for final exam marks: ";
cin >> threshold;

std::cout << "\nRecords with Final Exam Marks greater than " <<
threshold << " (Descending Order):\n";

// Bubble sort in descending order based on finalMarks


for (int i = 0; i < curr_size - 1; ++i) {
for (int j = 0; j < curr_size - i - 1; ++j) {
if (finalMarks[j] < finalMarks[j + 1]) {
// Swap the records manually
int tempRoll = rollNumbers[j];
rollNumbers[j] = rollNumbers[j + 1];
rollNumbers[j + 1] = tempRoll;

float tempMidterm = midtermMarks[j];


midtermMarks[j] = midtermMarks[j + 1];
midtermMarks[j + 1] = tempMidterm;

float tempFinal = finalMarks[j];


finalMarks[j] = finalMarks[j + 1];
finalMarks[j + 1] = tempFinal;

int tempClass = studentClass[j];


studentClass[j] = studentClass[j + 1];
studentClass[j + 1] = tempClass;

char tempGrade = grades[j];


grades[j] = grades[j + 1];
grades[j + 1] = tempGrade;
}
}
}

// Print the records


for (int i = 0; i < curr_size; ++i) {
if (finalMarks[i] > threshold) {
std::cout << "Roll No: " << rollNumbers[i]
<< " Midterm Marks: " << midtermMarks[i]
<< " Final Marks: " << finalMarks[i]
<< " Class: " << studentClass[i]
<< " Grade: " << grades[i] << "\n";
}
}

break;
case 'M':
// Display record of all the students greater than X marks in
final exam (in ascending order with respect to marks obtained in final exam)

cout << "Enter the threshold for final exam marks: ";
cin >> threshold;

cout << "\nRecords with Final Exam Marks greater than " <<
threshold << " (Ascending Order):\n";
// Bubble sort in ascending order based on finalMarks
for (int i = 0; i < curr_size - 1; ++i)
{
for (int j = 0; j < curr_size - i - 1; ++j)
{
if (finalMarks[j] > finalMarks[j + 1])
{
// Swap the records manually
int tempRoll = rollNumbers[j];
rollNumbers[j] = rollNumbers[j + 1];
rollNumbers[j + 1] = tempRoll;

float tempMidterm = midtermMarks[j];


midtermMarks[j] = midtermMarks[j + 1];
midtermMarks[j + 1] = tempMidterm;

float tempFinal = finalMarks[j];


finalMarks[j] = finalMarks[j + 1];
finalMarks[j + 1] = tempFinal;

int tempClass = studentClass[j];


studentClass[j] = studentClass[j + 1];
studentClass[j + 1] = tempClass;

char tempGrade = grades[j];


grades[j] = grades[j + 1];
grades[j + 1] = tempGrade;
}
}
}

// Print the records


for (int i = 0; i < curr_size; ++i)
{
if (finalMarks[i] > threshold)
{
cout << "Roll No: " << rollNumbers[i]
<< " Midterm Marks: " << midtermMarks[i]
<< " Final Marks: " << finalMarks[i]
<< " Class: " << studentClass[i]
<< " Grade: " << grades[i] << "\n";
}
}
break;
case 'N':
// Display record of all the students less than or equal to X
marks in final exam (in descending order with respect to marks obtained in final
exam)

cout << "Enter the threshold for final exam marks: ";
cin >> threshold;

cout << "\nRecords with Final Exam Marks less than or equal to "
<< threshold << " (Descending Order):\n";

// Bubble sort in descending order based on finalMarks


for (int i = 0; i < curr_size - 1; ++i)
{
for (int j = 0; j < curr_size - i - 1; ++j)
{
if (finalMarks[j] < finalMarks[j + 1])
{
// Swap the records manually
int tempRoll = rollNumbers[j];
rollNumbers[j] = rollNumbers[j + 1];
rollNumbers[j + 1] = tempRoll;

float tempMidterm = midtermMarks[j];


midtermMarks[j] = midtermMarks[j + 1];
midtermMarks[j + 1] = tempMidterm;

float tempFinal = finalMarks[j];


finalMarks[j] = finalMarks[j + 1];
finalMarks[j + 1] = tempFinal;

int tempClass = studentClass[j];


studentClass[j] = studentClass[j + 1];
studentClass[j + 1] = tempClass;

char tempGrade = grades[j];


grades[j] = grades[j + 1];
grades[j + 1] = tempGrade;
}
}
}

// Print the records


for (int i = 0; i < curr_size; ++i)
{
if (finalMarks[i] <= threshold)
{
cout << "Roll No: " << rollNumbers[i]
<< " Midterm Marks: " << midtermMarks[i]
<< " Final Marks: " << finalMarks[i]
<< " Class: " << studentClass[i]
<< " Grade: " << grades[i] << "\n";
}
}
break;
case 'O':
// Display record of all the students less than or equal to X
marks in final exam (in ascending order with respect to marks obtained in final
exam)

cout << "Enter the threshold for final exam marks: ";
cin >> threshold;

cout << "\nRecords with Final Exam Marks less than or equal to "
<< threshold << " (Ascending Order):\n";

// Bubble sort in ascending order based on finalMarks


for (int i = 0; i < curr_size - 1; ++i) {
for (int j = 0; j < curr_size - i - 1; ++j)
{
if (finalMarks[j] > finalMarks[j + 1])
{
// Swap the records manually
int tempRoll = rollNumbers[j];
rollNumbers[j] = rollNumbers[j + 1];
rollNumbers[j + 1] = tempRoll;

float tempMidterm = midtermMarks[j];


midtermMarks[j] = midtermMarks[j + 1];
midtermMarks[j + 1] = tempMidterm;

float tempFinal = finalMarks[j];


finalMarks[j] = finalMarks[j + 1];
finalMarks[j + 1] = tempFinal;

int tempClass = studentClass[j];


studentClass[j] = studentClass[j + 1];
studentClass[j + 1] = tempClass;

char tempGrade = grades[j];


grades[j] = grades[j + 1];
grades[j + 1] = tempGrade;
}
}
}
// Print the records
for (int i = 0; i < curr_size; ++i)
{
if (finalMarks[i] <= threshold)
{
cout << "Roll No: " << rollNumbers[i]
<< " Midterm Marks: " << midtermMarks[i]
<< " Final Marks: " << finalMarks[i]
<< " Class: " << studentClass[i]
<< " Grade: " << grades[i] << "\n";
}
}
break;
case 'P':
// Display record of all the students greater than X grade (in
descending order with respect to grade)

cout << "Enter the threshold grade (character): ";


cin >> thres;

cout << "\nRecords with Grade greater than " << thres << "
(Descending Order):\n";

// Bubble sort in descending order based on grades


for (int i = 0; i < curr_size - 1; ++i)
{
for (int j = 0; j < curr_size - i - 1; ++j)
{
if (grades[j] < grades[j + 1])
{ // Change the condition here
// Swap the records manually
int tempRoll = rollNumbers[j];
rollNumbers[j] = rollNumbers[j + 1];
rollNumbers[j + 1] = tempRoll;

float tempMidterm = midtermMarks[j];


midtermMarks[j] = midtermMarks[j + 1];
midtermMarks[j + 1] = tempMidterm;
float tempFinal = finalMarks[j];
finalMarks[j] = finalMarks[j + 1];
finalMarks[j + 1] = tempFinal;

int tempClass = studentClass[j];


studentClass[j] = studentClass[j + 1];
studentClass[j + 1] = tempClass;

char tempGrade = grades[j];


grades[j] = grades[j + 1];
grades[j + 1] = tempGrade;
}
}
}
// Print the records
for (int i = 0; i < curr_size; ++i)
{
if (grades[i] > thres)
{
cout << "Roll No: " << rollNumbers[i]
<< " Midterm Marks: " << midtermMarks[i]
<< " Final Marks: " << finalMarks[i]
<< " Class: " << studentClass[i]
<< " Grade: " << grades[i] << "\n";
}
}
break;
case 'Q':
// Display record of all the students greater than X grade (in
ascending order with respect to grade)

cout << "Enter the threshold grade (character): ";


cin >> thres;

cout << "\nRecords with Grade greater than " << thres << "
(Ascending Order):\n";

// Bubble sort in ascending order based on grades


for (int i = 0; i < curr_size - 1; ++i)
{
for (int j = 0; j < curr_size - i - 1; ++j)
{
if (grades[j] > thres) {
// Swap the records manually
int tempRoll = rollNumbers[j];
rollNumbers[j] = rollNumbers[j + 1];
rollNumbers[j + 1] = tempRoll;

float tempMidterm = midtermMarks[j];


midtermMarks[j] = midtermMarks[j + 1];
midtermMarks[j + 1] = tempMidterm;

float tempFinal = finalMarks[j];


finalMarks[j] = finalMarks[j + 1];
finalMarks[j + 1] = tempFinal;

int tempClass = studentClass[j];


studentClass[j] = studentClass[j + 1];
studentClass[j + 1] = tempClass;

char tempGrade = grades[j];


grades[j] = grades[j + 1];
grades[j + 1] = tempGrade;
}
}
}
// Print the records
for (int i = 0; i < curr_size; ++i) {
if (grades[i] > thres) {
std::cout << "Roll No: " << rollNumbers[i]
<< " Midterm Marks: " << midtermMarks[i]
<< " Final Marks: " << finalMarks[i]
<< " Class: " << studentClass[i]
<< " Grade: " << grades[i] << "\n";
}
}

break;
case 'R':
// Display record of all the students less than or equal to X
grade (in descending order with respect to grade)
float thres;
cout << "Enter the threshold grade (character): ";
cin >> thres;

std::cout << "\nRecords with Grade less than or equal to " <<
thres << " (Descending Order):\n";

// Bubble sort in descending order based on grades


for (int i = 0; i < curr_size - 1; ++i) {
for (int j = 0; j < curr_size - i - 1; ++j) {
if (grades[j] < thres) {
// Swap the records manually
int tempRoll = rollNumbers[j];
rollNumbers[j] = rollNumbers[j + 1];
rollNumbers[j + 1] = tempRoll;

float tempMidterm = midtermMarks[j];


midtermMarks[j] = midtermMarks[j + 1];
midtermMarks[j + 1] = tempMidterm;

float tempFinal = finalMarks[j];


finalMarks[j] = finalMarks[j + 1];
finalMarks[j + 1] = tempFinal;

int tempClass = studentClass[j];


studentClass[j] = studentClass[j + 1];
studentClass[j + 1] = tempClass;

char tempGrade = grades[j];


grades[j] = grades[j + 1];
grades[j + 1] = tempGrade;
}
}
}
// Print the records
for (int i = 0; i < curr_size; ++i) {
if (grades[i] <= thres) {
cout << "Roll No: " << rollNumbers[i]
<< " Midterm Marks: " << midtermMarks[i]
<< " Final Marks: " << finalMarks[i]
<< " Class: " << studentClass[i]
<< " Grade: " << grades[i] << "\n";
}
}
break;
case 'S':
// Display record of all the students less than or equal to X
grade (in ascending order with respect to grade)

cout << "Enter the threshold grade (character): ";


cin >> thres;

cout << "\nRecords with Grade less than or equal to " << thres <<
" (Ascending Order):\n";

// Bubble sort in ascending order based on grades


for (int i = 0; i < curr_size - 1; ++i) {
for (int j = 0; j < curr_size - i - 1; ++j) {
if (grades[j] > thres) {
// Swap the records manually
int tempRoll = rollNumbers[j];
rollNumbers[j] = rollNumbers[j + 1];
rollNumbers[j + 1] = tempRoll;

float tempMidterm = midtermMarks[j];


midtermMarks[j] = midtermMarks[j + 1];
midtermMarks[j + 1] = tempMidterm;

float tempFinal = finalMarks[j];


finalMarks[j] = finalMarks[j + 1];
finalMarks[j + 1] = tempFinal;

int tempClass = studentClass[j];


studentClass[j] = studentClass[j + 1];
studentClass[j + 1] = tempClass;

char tempGrade = grades[j];


grades[j] = grades[j + 1];
grades[j + 1] = tempGrade;
}
}
}

// Print the records


for (int i = 0; i < curr_size; ++i) {
if (grades[i] <= thres) {
cout << "Roll No: " << rollNumbers[i]
<< " Midterm Marks: " << midtermMarks[i]
<< " Final Marks: " << finalMarks[i]
<< " Class: " << studentClass[i]
<< " Grade: " << grades[i] << "\n";
}
}

break;
case 'E':
case 'e':
cout << "Exiting the program.\n";
break;
default:
cout << "Invalid choice. Please enter a valid option.\n";
}

} while (choice != 'E' && choice != 'e');

return 0;
}

You might also like