【发布时间】:2020-03-15 13:07:56
【问题描述】:
import java.io.*;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Probability {
public static void main(String[] args)throws FileNotFoundException {
String fileName;
Scanner input = new Scanner(System.in);
System.out.println("Please enter the file name: ");
fileName = input.nextLine();
System.out.println("How many students do you have listed in the file?");
int numStudents = input.nextInt();
input.close();
Student[] students = new Student[numStudents];
//readStudents(students, numStudents, fileName);
// calls the readStudents method
//Student myStudent = new Student(name, gpa);
//System.out.println(myStudent);
// creates and prints an object of the Student class
for(int i = 0; i < students.length; i++){
System.out.println("students [" + i + "] = " + students[i]);
} // for
} // main
public static void readStudents(Student[] students, int numStudents, String fileName)throws FileNotFoundException {
Scanner fin = new Scanner(new File(fileName));
while(fin.hasNext()){
String name = fin.next();
double gpa = fin.nextDouble();
students[0] = new Student(name, gpa);
} // while
fin.close();
} // readStudents
} // class
我正在尝试从这个数据文件中读取:datafile.txt
艾米 3.5
史蒂文 3.2
奥斯卡 3.8
蒂姆 2.7
安 2.1
吉米 3.9
我也在用这个程序:
public class Student {
private String name;
private double gpa;
public Student(String name, double gpa){
this.name = name;
this.gpa = gpa;
} //Student
public String getName(){
return name;
}
public double getGPA(){
return gpa;
}
public void setName(){
this.name = name;
}
public void setGPA(){
this.gpa = gpa;
}
public String toString(){
return("The student's name is " + name + "\n" + "The student's grade point average is " + gpa);
}
} //class
你可以看到我试过了
//readStudents(students, numStudents, fileName); 和
Student myStudent = new Student(name, gpa);
System.out.println(myStudent);
但两者都不起作用。
当我尝试//readStudents(students, numStudents, fileName); 时,这是我收到的错误消息:
Exception in thread "main" java.io.FileNotFoundException: datafile (The system cannot find the file specified)
at java.base/java.io.FileInputStream.open0(Native Method)
at java.base/java.io.FileInputStream.open(FileInputStream.java:220)
at java.base/java.io.FileInputStream.<init>(FileInputStream.java:158)
at java.base/java.util.Scanner.<init>(Scanner.java:639)
at Probability.readStudents(Probability.java:44)
at Probability.main(Probability.java:29)
当我尝试时
Student myStudent = new Student(name, gpa);
System.out.println(myStudent);
这是我收到的错误消息:
Probability.java:32: error: cannot find symbol
Student myStudent = new Student(name, gpa);
^
symbol: variable name
location: class Probability
Probability.java:32: error: cannot find symbol
Student myStudent = new Student(name, gpa);
^
symbol: variable gpa
location: class Probability
2 errors
这是我的教授希望我完成的:
使用以下属性实现一个名为“Student”的类:
名称:字符串类型
gpa: 双重类型
还有以下方法:
一个构造函数Student(String name, double gpa)
每个属性的getter和setter
toString():在屏幕上打印类的属性(每行一个属性)
使用以下方法在单独的类中编写一个主方法:
public static void readStudents(Student[] students, int numStudents, String fileName):接受学生数据文件的名称,并返回一个包含文件中学生的一维数组。
main方法应该:
询问用户有多少学生(1pts)和数据文件的名称,然后调用 readStudents 从数据文件中获取学生列表。 显示数组。
【问题讨论】:
标签: java arrays methods parameters