我一直在这方面,似乎无法找到正确的方法。我只留下了有效的代码,因为剩下的只是令人尴尬......
使用2个数组创建一个程序,该数组包含10个学生的类数据集: 第一个数组包含学生的名字和姓氏(在不同的单元格中) 第二个数组保存每个学生的成绩(总共5个) 创建适当的函数来加载和显示数组,包括平均值 和学生的字母等级。从学生的平均成绩中删除最低成绩。
我不是要求某人为我做这件事,我只是想要一些帮助。
#include <cstdlib>
#include <iostream>
using namespace std;
const int CLASSIZE = 1;
struct student
{
string firstName;
string lastName;
void printTheInfo()
{
cout << "Name: " << firstName << " " << lastName;
}
void loadMe()
{
cout << "First Name: ";
cin >> firstName;
cout << "Last Name: ";
cin >> lastName;
}
};
struct grades
{
int grade1;
int grade2;
int grade3;
int grade4;
int grade5;
void printTheGrades()
{
cout << " Grades: " << grade1 << " " << grade2 << " " << grade3
<< " " << grade4 << " " << grade5 << endl;
}
void loadGrades()
{
cout << "Grade 1: ";
cin >> grade1;
cout << "Grade 2: ";
cin >> grade2;
cout << "Grade 3: ";
cin >> grade3;
cout << "Grade 4: ";
cin >> grade4;
cout << "Grade 5: ";
cin >> grade5;
}
};
void printAllStudents(student [], grades [], int);
void loadAllStudents(student [], grades [], int);
int main(int argc, char *argv[])
{
student theStudent[CLASSIZE];
grades theGrade[CLASSIZE];
loadAllStudents(theStudent, theGrade, CLASSIZE);
printAllStudents(theStudent, theGrade, CLASSIZE);
system("PAUSE");
return EXIT_SUCCESS;
}
void loadAllStudents(student theStudents[], grades theGrades[], int s)
{
for(int i = 0; i < s; i++)
{
theStudents[i].loadMe();
theGrades[i].loadGrades();
}
}
void printAllStudents(student theStudents[], grades theGrades[], int s)
{
for(int i = 0; i < s; i++)
{
theStudents[i].printTheInfo();
theGrades[i].printTheGrades();
}
}
答案 0 :(得分:1)
首先创建一系列成绩。您可以使用double: 双等级[5],而不是1级,......,5级。 然后更容易计算平均值。 在计算每个学生的平均值时,您可以在变量中存储当前的最小值。