Java Getter和setter方法并读取txt文件
本质上,我在我的驱动程序类中读取一个文本文件,但是我在调用另一个类中的一个方法,并带有从另一个类中读取文本文件的指令,但是它不起作用。这是迄今为止我在驾驶课上学到的:Java Getter和setter方法并读取txt文件,java,text,setter,getter,Java,Text,Setter,Getter,本质上,我在我的驱动程序类中读取一个文本文件,但是我在调用另一个类中的一个方法,并带有从另一个类中读取文本文件的指令,但是它不起作用。这是迄今为止我在驾驶课上学到的: import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; public class CourseGrade { static int numberOfStudents; private int numb
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class CourseGrade {
static int numberOfStudents;
private int numberOfAssignAndLabs;
private int numberOfTestsAndQuiz;
private static int patZyanteAttend = 3;
static int patZyanteAttendScore = 0;
public void setNumberOfAssignAndLabs() {
numberOfAssignAndLabs = 21;
}
public int getNumberOfAssignAndLabs() {
return numberOfAssignAndLabs;
}
public void setNumberOfTestsAndQuiz() {
numberOfTestsAndQuiz = 4;
}
public int getNumberOfTestsAndQuiz() {
return numberOfTestsAndQuiz;
}
public static void main(String[] args) {
Student myStudent = new Student();
Scanner scanner = new Scanner(System.in);
try {
scanner = new Scanner(new File("grades.txt"));
} catch (FileNotFoundException e) {
System.out
.println("Error opening file. Please make sure that you have a grades.txt file in the same folder as GradeCalculator.class");
System.exit(0);
}
System.out.println("Name" + "\t" + "\t" + "Assignment Score" + "\t"
+ "Test Score");
numberOfStudents = scanner.nextInt();
for (int i = 0; i < numberOfStudents; i++) {
myStudent.setFirstName();
System.out.print(myStudent.getFirstName() + " ");
myStudent.setLastName();
System.out.print(myStudent.getLastName());
myStudent.setHomeworkScore();
System.out.print(myStudent.getHomeworkScore() + " ");
myStudent.setTestScore();
System.out.print(myStudent.getTestScore());
myStudent.computeGrade();
System.out.println(myStudent.getGrade());
for (int l = 0; l < patZyanteAttend; l++) {
int temp;
temp = scanner.nextInt();
patZyanteAttendScore += temp;
}
}
}
}
导入java.io.File;
导入java.io.FileNotFoundException;
导入java.util.Scanner;
公开课{
学生的静态智力;
私人国际电话号码;
私人智力测验;
私有静态int-patzyanteatt=3;
静态int-patZyanteAttendScore=0;
public void setNumberOfAssignAndLabs(){
AssignandLabs的数量=21;
}
public int getNumberOfAssignAndLabs(){
返回AssignandLabs的编号;
}
public void setNumberOfTestsAndQuike(){
numberoftests和quick=4;
}
public int getNumberOfTestsAndQuike(){
返回numberoftests和quick;
}
公共静态void main(字符串[]args){
学生myStudent=新学生();
扫描仪=新的扫描仪(System.in);
试一试{
扫描仪=新扫描仪(新文件(“grades.txt”);
}catch(filenotfounde异常){
系统输出
.println(“打开文件时出错。请确保与GradeCalculator.class位于同一文件夹中的grades.txt文件”);
系统出口(0);
}
System.out.println(“名称”+“\t”+“\t”+“作业分数”+“\t”
+“考试成绩”);
numberOfStudents=scanner.nextInt();
for(int i=0;i
这是我打电话给的班级:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Student {
private String firstName;
private String lastName;
private String letterGrade;
private int homeworkScore;
private int testScore;
CourseGrade myCourseGrade = new CourseGrade();
Scanner scanner = new Scanner(System.in);
public Student() {
homeworkScore = 0;
testScore = 0;
}
public void setFirstName() {
firstName = scanner.next();
}
public String getFirstName() {
return firstName;
}
public void setLastName() {
lastName = scanner.next();
}
public String getLastName() {
return lastName;
}
public void setHomeworkScore() {
int temp;
for (int j = 0; j < myCourseGrade.getNumberOfAssignAndLabs(); j++) {
temp = scanner.nextInt();
homeworkScore += temp;
}
}
public int getHomeworkScore() {
return homeworkScore;
}
public void setTestScore() {
int temp;
for (int k = 0; k < myCourseGrade.getNumberOfTestsAndQuiz(); k++) {
temp = scanner.nextInt();
testScore += temp;
}
}
public int getTestScore() {
return testScore;
}
public void computeGrade() {
if (homeworkScore <= 599 || testScore <= 149 || homeworkScore <= 719
&& testScore <= 179 || homeworkScore <= 779 && testScore <= 164
|| homeworkScore <= 659 && testScore <= 209) {
letterGrade = "P";
}
if (homeworkScore >= 1140 && testScore >= 180 || homeworkScore >= 1080
&& testScore >= 195 || homeworkScore >= 960 && testScore >= 210
|| homeworkScore >= 900 && testScore >= 225
|| homeworkScore >= 840 && testScore >= 240
|| homeworkScore >= 780 && testScore >= 255
|| homeworkScore >= 720 && testScore >= 285) {
letterGrade = "G";
} else {
letterGrade = "A";
}
}
public String getGrade() {
return letterGrade;
}
}
导入java.io.File;
导入java.io.FileNotFoundException;
导入java.util.Scanner;
公立班学生{
私有字符串名;
私有字符串lastName;
私人字符串字母等级;
私人int homeworkScore;
私人智力测验分数;
CourseGrade myCourseGrade=新CourseGrade();
扫描仪=新的扫描仪(System.in);
公立学生(){
homeworkScore=0;
testScore=0;
}
public void setFirstName(){
firstName=scanner.next();
}
公共字符串getFirstName(){
返回名字;
}
public void setLastName(){
lastName=scanner.next();
}
公共字符串getLastName(){
返回姓氏;
}
public void setHomeworkScore(){
内部温度;
对于(int j=0;j=840&&testScore>=240
||homeworkScore>=780&&testScore>=255
||homeworkScore>=720&&testScore>=285){
letterGrade=“G”;
}否则{
letterGrade=“A”;
}
}
公共字符串getGrade(){
返回等级;
}
}
无论出于何种原因,当我进入For循环时,程序终止您的设置程序应该接受一个参数,以便它知道要设置什么值 例如,在学生中:
public void setFirstName(String fName) {
firstName = fName;
}
根据fName
方法参数的值设置Student
类中的字段firstname
从main
调用该方法时,请包含正在读取的文件中的名称:
myStudent.setFirstName(scanner.next());
在学生课堂上你不需要扫描仪
更改所有设置器以获取参数,并使用
main
中的Scanner
提供值。是否收到错误消息?它仅打印System.out.println(“名称”+“\t”+“\t”+“作业分数”+“\t”+“测试分数”);,然后是nothingFYI:当在字符串中使用转义字符(“\n”、“\t”、…)时,您不必将该特殊字符与其余字符分开。您也可以写“姓名\t\t签名分数\t签名分数”。执行scanner.nextInt()
行后,numberOfStudents
的内容是什么?