我想解决这个问题:
定义一个名为Student的类,其属性为1030Y模块中的学生ID和分数。类Student还必须包含一个默认构造函数以及用于初始化类型为Student的对象的构造函数(该对象具有用户定义的值),每个属性的修改器和访问器方法以及一个显示方法。编写一个测试程序,该程序维护一个学生对象的ArrayList(ID在701-799范围内,并且成绩在0.0到100.0之间)。该程序将允许用户输入学生ID号码和每个学生的分数。在完成所有输入后,程序将显示得分最高和最低的学生的ID。
由于某种原因,我无法获取学生中最低和最高分数的部分不起作用。
以下是我的代码:
Student.java:
package Number5;
public class Student {
private int studentID;
private float mark;
public Student()
{
studentID = 0;
mark = 0;
}
public Student(int id, float marks)
{
this.studentID = id;
this.mark = marks;
}
public void setID(int id)
{
this.studentID = id;
}
public int getID()
{
return studentID;
}
public void setMark(float marks)
{
this.mark = marks;
}
public float getMark()
{
return mark;
}
public void display()
{
System.out.println("Student ID: "+getID());
System.out.println("Marks: "+getMark());
}
}
testStudent.java:
package Number5;
import java.util.ArrayList;
import java.util.Scanner;
public class testStudent {
public static void main(String[] args) {
ArrayList<Student> students = new ArrayList<Student>();
int id=0; float mark=0;
Scanner input = new Scanner(System.in);
do
{
System.out.print("Enter the student ID: ");
id = input.nextInt();
System.out.print("Enter the marks: ");
mark = input.nextFloat();
students.add(new Student(id,mark));
}
while(id != 0 || mark != 0);
int smallest = 9999, largest = -9999;
for(int i=0; i<students.size(); i++)
{
while(smallest > students.get(i).getMark())
{
smallest = students.get(i).getID();
}
while(largest < students.get(i).getMark())
{
largest = students.get(i).getID();
}
}
System.out.println("Smallest is "+smallest);
System.out.println("Largest is "+largest);
}
}
程序在读取用户输入后就停止了。它甚至没有执行for循环。
#define define undef
- Mike G