我正在尝试为学生成绩修复一个小程序。 我为学生上课。在我的主程序中,我通过输入将学生添加到ArrayList。后来我想为那个学生增加很多成绩。
我该怎么办?我更喜欢使用数组。但是我不知道怎么做 。每当我创建一个新学生并添加成绩时,我可以创建一个新数组吗?
#include <iostream>
#include <string>
using namespace std;
struct Planet
{
string name;
int distanceSun;
int diameter;
int mass;
};
int PrintPlanet(Planet planet)
{
cout << "Name: " << planet.name << endl;
cout << "Distance to the sun: " << planet.distanceSun << endl;
cout << "Diameter: " << planet.diameter << endl;
cout << "Mass: " << planet.mass << endl;
return 0;
}
int FindSmallestDiameter(Planet * arr, int n)
{
int resultSmallest = INT_MAX;
for (int j = 1; j < n; j++)
{
if(arr[j].diameter < arr[resultSmallest].diameter)
{
resultSmallest = j;
}
}
return resultSmallest;
}
int main()
{
struct Planet * planet;
int numberPlanet;
cout << "Enter a value for planets: ";
cin >> numberPlanet;
planet = new Planet[numberPlanet];
int enterSelection;
do
{
cout << "Enter selection: \n" <<
"1. Print the planet with the smallest diameter\n" <<
"0. Exit progrma\n";
cin >> enterSelection;
switch(enterSelection)
{
case 1:
{
int heaviest = FindHeaviestPlanet(planet, numberPlanet);
if (heaviest < 0)
{
cout << "No planet defined.\n";
}
else
{
cout << "Heaviest planet: \n";
PrintPlanet(planet[heaviest]);
}
}
break;
}
答案 0 :(得分:0)
只需将等级从浮点数更改为浮点数组。
public class Student{
private String name;
private float[] grades;
public void Student(String name, float[] grades){
this.name = name;
this.courses = Arrays.copyOf(grades, grades.length);
}
public String getName(){
return name;
}
public float getGradeAtIndex(int index){
return grades[index];
}
// Add methods, getters, setters as you wish.
}
注意这个代码还没有经过测试,所以在getGradeAtIndex方法中,你可能会插入一个超出数组边界的索引,在实际尝试提取数据并返回null之前应该进行检查,检查失败。
尝试使用正确的编程格式,以便日后轻松实现您的生活。类名应以大写字母,方法和变量以camelCases开头。
希望这会有所帮助,祝你好运。
答案 1 :(得分:0)
如果您的每个学生的成绩未知,请使用ArrayList
成绩。
public class Student{
private String name;
private ArrayList<float> grades;
public void student(String name){
this.name = name;
}
public String getName(){
return name;
}
public void addGrade(float grade){
this.grades.add(grade);
}
public String toString(){
return String.format(name + " have grades " + grade );
}
不要忘记从java.util.ArrayList
导入它。查看文档here。