0% found this document useful (0 votes)
16 views12 pages

Oop Assignment 1

It is assignment which covers all concepts of C++
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views12 pages

Oop Assignment 1

It is assignment which covers all concepts of C++
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

COURSE TITLE: Object Oriented Programming

SUBMITTED TO: Ma’am Saneya


SUBMITTED BY:
Alishba Noor 4838-FOC/BSCS/F23
Syeda Tehreem Tasawar 4845-FOC/BSCS/F23
Laiba Anees 4837-FOC/BSCS/F23
Malaika Shafique 4882-FOC/BSCS/F23
Alisha Rehman 4847-FOC/BSCS/F23

DEPARTMENT: COMPUTER SCIENCE


SECTION: B
SUBMISSION DATE: 24-09-2024
Question:

In the university, there may be up to 70 students in a class at maximum.


Every student must take 5 subjects in a semester, and each subject has a maximum of
100 marks
. Write a C++ program that performs the following operations:
1. Read and Store Data
2. Append new Record
3. Search a Record
4. Delete a Record
5. Update a Record
6. Generate Result Card
7. Display Data
8. Exit
Note: Store the following information:
Student ID, Name, Subject Marks, Date of Birth, Date of Admission
Process and Store these additional information:
Marks Obtained, Percentage, Grade
Use Array of Structures

Output Format:
S.No St.ID Name S1 S2 S3 S4 S5 Mks_OBT %age Grade
1 1234 Ali Khan 92 92 92 92 92 460 92.0 A
2 4321 Azhar K. 80 80 80 80 80 400 80.0 B

Program:

#include <iostream>
#include <string>
using namespace std;

const int MAX_STUDENTS = 70;

struct DOB
{
int day;
int month;
int year;
};

struct AdmissionDate
{
int day;
int month;
int year;
};

struct Student
{
int student_id;
string name;
int subject_marks[5];
DOB dateofbirth;
AdmissionDate admissiondate;
};

int MarksObtained(Student stud);


float Percentage(Student stud);
string Grade(Student stud);
void AppendRecord(Student stud[], int& count);
void SearchRecord(Student stud[], int count);
void DeleteRecord(Student stud[], int& count);
void UpdateRecord(Student stud[], int count);
void GenerateResultCard(Student stud[], int count);
void DisplayData(Student stud[], int count);

int main()
{
Student stud[MAX_STUDENTS];
int count = 0;

cout << "Enter the number of students (max 70): ";


cin >> count;

if (count > MAX_STUDENTS)


{
cout << "Cannot enter more than " << MAX_STUDENTS << " students.\n";
}

// Read initial data


for (int i = 0; i < count; i++)
{
cout << "Enter id of student " << i + 1 << ": ";
cin >> stud[i].student_id;
cout << "Enter name of student " << i + 1 << ": ";
cin >> stud[i].name;
cout << "Enter marks for 5 subjects:" << endl;
for (int j = 0; j < 5; j++)
{
cout << "Subject " << j + 1 << ": ";
cin >> stud[i].subject_marks[j];
}
cout << "Enter date of birth of Student " << i + 1 << ":" << endl;
cout << "Day: ";
cin >> stud[i].dateofbirth.day;
cout << "Month: ";
cin >> stud[i].dateofbirth.month;
cout << "Year: ";
cin >> stud[i].dateofbirth.year;
cout << "Enter admission date of student " << i + 1 << ":" << endl;
cout << "Day: ";
cin >> stud[i].admissiondate.day;
cout << "Month: ";
cin >> stud[i].admissiondate.month;
cout << "Year: ";
cin >> stud[i].admissiondate.year;
}

// Menu options
int choice;
do {
cout << "\nMenu:\n";
cout << "1. Append new Record\n";
cout << "2. Search a Record\n";
cout << "3. Delete a Record\n";
cout << "4. Update a Record\n";
cout << "5. Generate Result Card\n";
cout << "6. Display Data\n";
cout << "7. Exit\n";
cout << "Enter your choice: ";
cin >> choice;

switch (choice)
{
case 1:
AppendRecord(stud, count);
break;
case 2:
SearchRecord(stud, count);
break;
case 3:
DeleteRecord(stud, count);
break;
case 4:
UpdateRecord(stud, count);
break;
case 5:
GenerateResultCard(stud, count);
break;
case 6:
DisplayData(stud, count);
break;
case 7:
cout << "Exiting program...\n";
break;
default:
cout << "Invalid choice, please try again.\n";
}
} while (choice != 7);

return 0;
}

int MarksObtained(Student stud)


{
int total = 0;
for (int i = 0; i < 5; i++)
{
total += stud.subject_marks[i];
}
return total;
}

float Percentage(Student stud)


{
return MarksObtained(stud) / 5.0; // Assuming marks are out of 100
}

string Grade(Student stud)


{
float percentage = Percentage(stud);
if (percentage >= 90)
return "A";
else if (percentage >= 80)
return "B";
else if (percentage >= 70)
return "C";
else if (percentage >= 60)
return "D";
else
return "F";
}

void AppendRecord(Student stud[], int& count)


{
if (count >= MAX_STUDENTS)
{
cout << "Cannot append more records, maximum limit reached.\n";
}
else
{
cout << "Enter id of new student: ";
cin >> stud[count].student_id;
cout << "Enter name of new student: ";
cin >> stud[count].name;
cout << "Enter marks for 5 subjects:" << endl;
for (int j = 0; j < 5; j++)
{
cout << "Subject " << j + 1 << ": ";
cin >> stud[count].subject_marks[j];
}
cout << "Enter date of birth of the student:" << endl;
cout << "Day: ";
cin >> stud[count].dateofbirth.day;
cout << "Month: ";
cin >> stud[count].dateofbirth.month;
cout << "Year: ";
cin >> stud[count].dateofbirth.year;
cout << "Enter admission date of the student:" << endl;
cout << "Day: ";
cin >> stud[count].admissiondate.day;
cout << "Month: ";
cin >> stud[count].admissiondate.month;
cout << "Year: ";
cin >> stud[count].admissiondate.year;
}
count++;
cout << "New record appended successfully.\n";
}
//to search record
void SearchRecord(Student stud[], int count)
{
int id;
cout << "Enter student ID to search: ";
cin >> id;
for (int i = 0; i < count; i++)
{
if (stud[i].student_id == id)
{
cout << "Record found: " << endl;
cout <<"Name:"<< stud[i].name << endl;
cout << "Date of Birth:" << stud[i].dateofbirth.day << "/"
<< stud[i].dateofbirth.month << "/" << stud[i].dateofbirth.year << endl;
cout << "Date of Admission:" << stud[i].admissiondate.day << "/"
<< stud[i].admissiondate.month << "/" << stud[i].admissiondate.year << endl;
for (int j = 0; j < 5; j++)
{
cout << "Subject " << j + 1 << ":";
cout << stud[i].subject_marks[j]<<endl;
}
int totalMarks = MarksObtained(stud[i]);
float percentage = Percentage(stud[i]);
string grade = Grade(stud[i]);

cout <<"Total Marks:"<< totalMarks << endl;


cout <<"Percentage:"<< percentage << endl;
cout <<"Grade:"<< grade << endl;
}
else
cout << "Record not found.\n";
}
}

void DeleteRecord(Student stud[], int& count)


{
int id;
cout << "Enter student ID to delete: ";
cin >> id;
for (int i = 0; i < count; i++)
{
if (stud[i].student_id == id)
{
for (int j = i; j < count - 1; j++)
{
stud[j] = stud[j + 1];
}
count--;
cout << "Record deleted successfully.\n";
}
else
cout << "Record not found.\n";
}
}

void UpdateRecord(Student stud[], int count)


{
int id;
cout << "Enter student ID to update: ";
cin >> id;
for (int i = 0; i < count; i++)
{
if (stud[i].student_id == id)
{
cout << "Updating record for " << stud[i].name << endl;
cout << "Enter new marks for 5 subjects:" << endl;
for (int j = 0; j < 5; j++)
{
cout << "Subject " << j + 1 << ": ";
cin >> stud[i].subject_marks[j];
}
cout << "Enter new date of birth:" << endl;
cout << "Day: ";
cin >> stud[i].dateofbirth.day;
cout << "Month: ";
cin >> stud[i].dateofbirth.month;
cout << "Year: ";
cin >> stud[i].dateofbirth.year;
cout << "Enter new admission date:" << endl;
cout << "Day: ";
cin >> stud[i].admissiondate.day;
cout << "Month: ";
cin >> stud[i].admissiondate.month;
cout << "Year: ";
cin >> stud[i].admissiondate.year;
cout << "Record updated successfully.\n";
}
else
cout << "Record not found.\n";
}
}

void GenerateResultCard(Student stud[], int count)


{
cout << "\nResult Cards:\n";
cout << "S.No\tSt.ID\tName\tS1\tS2\tS3\tS4\tS5\tMks_OBT\t%age\tGrade\n";
for (int i = 0; i < count; i++) {
cout << i + 1 << "\t"
<< stud[i].student_id << "\t"
<< stud[i].name << "\t";
for (int j = 0; j < 5; j++)
{
cout << stud[i].subject_marks[j] << "\t";
}
int totalMarks = MarksObtained(stud[i]);
float percentage = Percentage(stud[i]);
string grade = Grade(stud[i]);

cout << totalMarks << "\t" << percentage << "\t" << grade << endl;
}
}

void DisplayData(Student stud[], int count) {


cout << "\nS.No\tSt.ID\tName\tS1\tS2\tS3\tS4\tS5\tMks_OBT\t%age\tGrade\n";
for (int i = 0; i < count; i++)
{
cout << i + 1 << "\t"
<< stud[i].student_id << "\t"
<< stud[i].name << "\t";
for (int j = 0; j < 5; j++)
{
cout << stud[i].subject_marks[j] << "\t";
}
int totalMarks = MarksObtained(stud[i]);
float percentage = Percentage(stud[i]);
string grade = Grade(stud[i]);

cout << totalMarks << "\t" << percentage << "\t" << grade << endl;
}
}

Output:

You might also like