C++ 如何在c++;

C++ 如何在c++;,c++,arrays,struct,C++,Arrays,Struct,因此,我编写了一个程序,使用结构和数组从一个文件中计算学生的最大/最小成绩(很快会是平均成绩)。在我计算出最低和最高分数的同时,我还想添加哪个学生的分数最高和最低。如何找到数组行并显示结构的.first和.last #include <iostream> #include <string> #include <fstream> #include <array> using namespace std; struct student {

因此,我编写了一个程序,使用结构和数组从一个文件中计算学生的最大/最小成绩(很快会是平均成绩)。在我计算出最低和最高分数的同时,我还想添加哪个学生的分数最高和最低。如何找到数组行并显示结构的.first和.last

#include <iostream>
#include <string>
#include <fstream>
#include <array>

using namespace std;

struct student {

    int id;
    string first;
    string last;
    float grade;
};

string getFileName();
void fillArrayFromFile(ifstream&, student[], int&);
float calculateMaximumGrade(student[], int);
float calculateMinimumGrade(student[], int);
float calculateAverageGrade(student[], int);



int main() {

    int numofStudents = 5;

    const int NUM_VALS = 5;

    student studentArray[NUM_VALS];
    ifstream filename;
    //filename.open(getFileName() + ".txt");

    fillArrayFromFile(filename, studentArray, numofStudents);

cout << "Highest grade: " << calculateMaximumGrade(studentArray,     numofStudents) << endl;
cout << "Lowest grade: " << calculateMinimumGrade(studentArray, numofStudents) << endl;
//cout << "Average grade: " << calculateAverageGrade(studentArray, numofStudents) << endl;

return 0;
}

string getFileName()
{
// To be completed

return 0;
}

void fillArrayFromFile(ifstream& ins, student studentArray[], int&   numberOfStudents)
{
ins.open("input.txt");



for (int i = 0; i < numberOfStudents; i++) {

    ins >> studentArray[i].id;
    ins >> studentArray[i].first;
    ins >> studentArray[i].last;
    ins >> studentArray[i].grade;

}

ins.close();

return;
}

// calculate the maximum grade in the array
float calculateMaximumGrade(student studentArray[], int numberOfStudents)
{
float max = 0;
max = studentArray[0].grade;

for (int i = 0; i < numberOfStudents; i++) {

    if (studentArray[i].grade > max) {

        max = studentArray[i].grade;

    }

}
return max;
}

// calculate the minimum grade in the array
float calculateMinimumGrade(student studentArray[], int numberOfStudents)
{
float min = 0;
min = studentArray[0].grade;

for (int i = 0; i < numberOfStudents; i++) {

    if (studentArray[i].grade < min) {

        min = studentArray[i].grade;

    }

}
return min;
}

// calculate the average grade in the array
float calculateAverageGrade(student studentArray[], int numberOfStudents)
{
// To be completed
return 0;
}
#包括
#包括
#包括
#包括
使用名称空间std;
结构学生{
int-id;
先串;
最后一串;
浮子等级;
};
字符串getFileName();
无效fillArrayFromFile(ifstream&,student[],int&);
浮动计算最大成绩(学生[],整数);
浮动计算最小分数(学生[],整数);
浮动计算器(学生[],整数);
int main(){
int=5;
const int NUM_VALS=5;
学生人数;
ifstream文件名;
//打开(getFileName()+“.txt”);
fillArrayFromFile(文件名,studentArray,numofStudents);
库特(最大){
max=学生阵列[i]。成绩;
}
}
返回最大值;
}
//计算阵列中的最小坡度
浮动计算最小分数(学生数组[],学生整数)
{
浮动最小值=0;
min=学生阵列[0]。成绩;
for(int i=0;i
您不仅需要在
calculateMaximumGrade
函数中存储
max
,还需要存储具有该
max
等级的元素的索引。 即:


对于
Average
Min
函数,您也应该这样做。

您不仅需要在
calculateMaximumGrade
函数中存储
max
,还需要存储具有
max
等级的元素的索引。 即:

您应该对
Average
Min
函数执行相同的操作。

您可以更改(并重命名)您的
CalculateMinumGrade
函数,以记录成绩最低的学生的索引,并返回该索引,而不是成绩本身

// find the student with the lowest grade
int findLowestStudent(student studentArray[], int numberOfStudents)
{
int lowest = 0;
float min = 0;
min = studentArray[0].grade;

for (int i = 0; i < numberOfStudents; i++) {

    if (studentArray[i].grade < min) {

        min = studentArray[i].grade;
        lowest = i;
    }

}
return lowest;
}
//找到成绩最低的学生
int FindLowerstudent(学生阵列[],int numberOfStudents)
{
int最低=0;
浮动最小值=0;
min=学生阵列[0]。成绩;
for(int i=0;i
然后可以使用索引访问学生的成绩

int lowest = findLowestStudent(studentArray, numofStudents);
cout << "Lowest grade: " << studentArray[lowest].grade << endl;
int lowest=findLowestStudent(studentArray,numofStudents);
cout您可以更改(并重命名)您的
calculateMinimumGrade
函数,以记录成绩最低的学生的索引,并返回该索引,而不是成绩本身

// find the student with the lowest grade
int findLowestStudent(student studentArray[], int numberOfStudents)
{
int lowest = 0;
float min = 0;
min = studentArray[0].grade;

for (int i = 0; i < numberOfStudents; i++) {

    if (studentArray[i].grade < min) {

        min = studentArray[i].grade;
        lowest = i;
    }

}
return lowest;
}
//找到成绩最低的学生
int FindLowerstudent(学生阵列[],int numberOfStudents)
{
int最低=0;
浮动最小值=0;
min=学生阵列[0]。成绩;
for(int i=0;i
然后可以使用索引访问学生的成绩

int lowest = findLowestStudent(studentArray, numofStudents);
cout << "Lowest grade: " << studentArray[lowest].grade << endl;
int lowest=findLowestStudent(studentArray,numofStudents);

最后一个是studentArray[numberOfStudents-1],第一个是studentArray[0]您可以执行以下操作。。。。在计算“最大值”时,不仅要跟踪“最大值”,还要跟踪指定给“最大变量”的等级的对象。为此,创建一个学生类型的对象,让我们假设MaxObject,并在if沿边max=。。。循环后显示您创建的对象的字段。如果您不想在该函数中显示,则可以将对student对象的引用传递给该函数,在该函数结束后,发送的引用对象将保留max students的值。显示Min Studentlast是studentArray[numberOfStudents-1],first是studentArray[0]您可以执行以下操作。。。。在计算“最大值”时,不仅要跟踪“最大值”,还要跟踪指定给“最大变量”的等级的对象。为此,创建一个学生类型的对象,让我们假设MaxObject,并在if沿边max=。。。循环后显示您创建的对象的字段。如果您不想在该函数中显示,则可以将对student对象的引用传递给该函数,在该函数结束后,发送的引用对象将保留max students的值。显示Min Student时相同