#c
Вопрос:
#include <fstream> // For file handling
#include <iomanip> // For formatted output
#include <iostream> // For cin, cout, and system
#include <string> // For string data type
#include "CourseGrade.h"
using namespace std;
CourseGrade* maximumGrade(CourseGrade* course0, CourseGrade* course1)
{
}
int main()
{
cout << "Course Grade App!" << endl;
cout << "--------------------------" << endl;
cout << endl;
//Prompting and creating CourseGrade objects and pointer values from inputs
int c1;
float g1;
cout << "Please enter the first course and its grade: ";
cin >> c1 >> g1;
CourseGrade Course0(c1, g1);
CourseGrade* ptrCourse0;
ptrCourse0 = amp;Course0;
int c2;
float g2;
cout << "Please enter the second course and its grade: ";
cin >> c2 >> g2;
CourseGrade Course1(c2, g2);
CourseGrade* ptrCourse1;
ptrCourse1 = amp;Course1;
int c3;
float g3;
cout << "Please enter the third course and its grade: ";
cin >> c3 >> g3;
CourseGrade Course2(c3, g3);
CourseGrade* ptrCourse2;
ptrCourse2 = amp;Course2;
cout << "-----------------------------------" << endl;
cout << "Course" << setw(10) << "Grade" << endl;
cout << "-----------------------------------" << endl;
cout << ptrCourse0->getCourse() << setw(10) << ptrCourse0->getGrade() << endl;
cout << ptrCourse1->getCourse() << setw(10) << ptrCourse1->getGrade() << endl;
cout << ptrCourse2->getCourse() << setw(10) << ptrCourse2->getGrade() << endl;
cout << "-----------------------------------" << endl;
cout << "The course with the maximum grade is: " << maximumGrade(ptrCourse0, ptrCourse1) << endl;
cout << "The average grade is: " << (ptrCourse0->getGrade() ptrCourse1->getGrade() ptrCourse2->getGrade()) / 3 << endl;
}
// End of main.cpp
void CourseGrade::setCourse(int c)
{
if (c >= 1000 amp;amp; c <= 9999)
{
course = c;
}
}
void CourseGrade::setGrade(float g)
{
if (g >= 0.00 amp;amp; g <= 100.00)
{
grade = g;
}
}
int CourseGrade::getCourse() const
{
return course;
}
float CourseGrade::getGrade() const
{
return grade;
}
CourseGrade::CourseGrade(int c, float g)
{
if (c >= 1000 amp;amp; c <= 9999)
{
course = c;
}
else
{
course = 1000;
}
if (g >= 0.00 amp;amp; g <= 100.00)
{
grade = g;
}
else
{
grade = 0.00;
}
}
Не могли бы вы, ребята, пожалуйста, помочь мне? У меня есть три объекта из-за запроса, но он запрашивает только два указателя? Я совершенно не знаю, как получить максимальную оценку, чтобы показать курс с наибольшей оценкой. Я попытался использовать операторы if для сравнения оценок двух указателей, показывающих значения оценок. Он ДОЛЖЕН использовать указатели для сравнения оценок курса. Спасибо вам, ребята!
Ответ №1:
У меня есть три объекта из-за запроса, но он запрашивает только два указателя?
Единственный способ понять смысл двух переданных указателей maximumGrade
-это предположить, что они являются началом и концом массива, содержащего три объекта.
CourseGrade courses[3] = { Course0, Course1, Course2 };
cout << "The course with the maximum grade is: "
<< maximumGrade(courses, courses 3)->getCourse() << endl;
Тело maximumGrade
может тогда быть, например.
CourseGrade *c = NULL;
float g = 0; // current maximum
for (; course0 < course1; course0) if (g <= course0->getGrade())
g = (c = course0)->getGrade();
return c;
Комментарии:
1. Спасибо, но я решил эту проблему целую вечность назад.