学生阵列的许多等级

时间:2016-01-10 21:46:19

标签: java arrays arraylist

我正在尝试为学生成绩修复一个小程序。 我为学生上课。在我的主程序中,我通过输入将学生添加到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;
   } 

2 个答案:

答案 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