Answer to Question #293721 in C++ for Mohammed

Question #293721

About assignment of c++




In put


Each Student name


Each Student father name


Each Student id number


Number of students


Number of subject


Each subject


Each subject credit hours


Each subject grade



Then calculate GPA



Out put


Student name


Student father name


Student Id number


GPA


If grade is F the student is fail.




The program must be display if you ask one student information.




1
Expert's answer
2022-02-04T08:40:19-0500
#include <iostream>
#include <vector>


class Subject
{
private:
	std::string name;
	double mark;
	int credit_value;
public:
	Subject();
	~Subject();


	const std::string& get_name()
	{
		return name;
	}
	const double& get_mark()
	{
		return mark;
	}
	const int& get_credit_value()
	{
		return credit_value;
	}


	void set_credit_value(const int& credit_value)
	{
		this->credit_value = credit_value;
	}
	void set_name(const std::string& name)
	{
		this->name = name;
	}
	void set_mark(const double &mark)
	{
		this->name = name;
	}


	void input_subject()
	{
		std::cout << "Enter subject name : ";
		std::cin >> name;
		std::cout << "Enter mark : ";
		std::cin >> mark;
		std::cout << "Enter credit value : ";
		std::cin >> credit_value;
	}
	void output_subject()
	{
		std::cout << name << " : " << mark<<" , Credit value : "<<credit_value << std::endl;
	}






};


Subject::Subject()
{
}


Subject::~Subject()
{
}




class Student
{
public:
	Student();
	~Student();


	void set_name(const std::string& name)
	{
		this->name = name;
	}
	void set_surname(const std::string& surname)
	{
		this->surname = surname;
	}
	void set_father_name(const std::string& father_name)
	{
		this->father_name = father_name;
	}
	void set_id(const int& id)
	{
		this->id = id;
	}


	const std::string& get_name()
	{
		return name;
	}
	const std::string& get_surname()
	{
		return surname;
	}
	const std::string& get_father_name()
	{
		return father_name;
	}
	const int& get_id()
	{
		return id;
	}
	const std::vector<Subject>& get_marks()
	{
		return marks;
	}
	void add_mark(const Subject& mark)
	{
		marks.push_back(mark);
	}


	void input_student()
	{
		int subjects=0;
		std::cout << "Enter student name : ";
		std::cin >> name;
		std::cout << "Enter student surname : ";
		std::cin >> surname;
		std::cout << "Enter student father name : ";
		std::cin >> father_name;
		std::cout << "Enter student id : ";
		std::cin >> id;
		std::cout << "Number of subjects : ";
		std::cin >> subjects;
		marks.resize(subjects);
		for (int i = 0; i < subjects; i++)
		{
			marks[i].input_subject();
		}
	}


	void output_student()
	{
		std::cout << name << " " << surname << " " << father_name << std::endl;
		std::cout << "Marks : ";
		for (int i = 0; i < marks.size(); i++)
		{
			marks[i].output_subject();
		}
		double gpa = this->calculate_gpa();
		if (gpa >= 90 && gpa <= 100)
		{
			std::cout << "GPA : "<<gpa<<" , A\n";
		}
		else if (gpa >= 85 && gpa < 90)
		{
			std::cout << "GPA : " << gpa << " , B\n";
		}
		else if (gpa >= 75 && gpa < 85)
		{
			std::cout << "GPA : " << gpa << " , C\n";
		}
		else if (gpa >= 65 && gpa < 75)
		{
			std::cout << "GPA : " << gpa << " , D\n";
		}
		else if (gpa >= 60 && gpa < 65)
		{
			std::cout << "GPA : " << gpa << " , E\n";
		}
		else if (gpa >= 0 && gpa < 60)
		{
			std::cout << "GPA : " << gpa << " , F , the student is fail\n";
		}
		std::cout << std::endl;
	}


	double calculate_gpa()
	{
		double res = 0;
		double tmp1 = 0, tmp2 = 0;
		for (int i = 0; i < marks.size(); i++)
		{
			tmp1 += marks[i].get_mark()*marks[i].get_credit_value();
			tmp2 += marks[i].get_credit_value();
		}
		res = (double)tmp1 / (double)tmp2;
		return res;
	}


private:
	std::string name;
	std::string surname;
	std::string father_name;


	int id;


	std::vector<Subject> marks;


};


Student::Student()
{
}


Student::~Student()
{
}




int main()
{
	std::vector<Student> students;


	int size = 0;


	std::cout << "Enter number of students : ";
	std::cin >> size;


	students.resize(size);
	for (int i = 0; i < size; i++)
	{
		students[i].input_student();
	}




	std::cout << "\nStudents :";
	for (int i = 0; i < size; i++)
	{
		std::cout <<'\n' << i + 1 << ".";
		students[i].output_student();
	}


	int id = 0;
	std::cout << "Enter student id : ";
	std::cin >> id;


	bool found = 0;
	for (int i = 0; i < students.size(); i++)
	{
		if (students[i].get_id() == id)
		{
			std::cout << "\n";
			students[i].output_student();
			std::cout << "\n";
			found = 1;
			break;
		}
	}


	if(!found)
	{
		std::cout << "There is no student with such id\n";
	}


	system("pause");
	return 0;


}



Need a fast expert's response?

Submit order

and get a quick answer at the best price

for any assignment or question with DETAILED EXPLANATIONS!

Comments

No comments. Be the first!

Leave a comment

LATEST TUTORIALS
New on Blog