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