所以我得到了这个设定主题并对其进行评分的程序。
现在我得到了这段代码:
package ectsmonitor;
import java.util.Scanner;
import java.util.stream.IntStream;
/**
*
* @author JasperF
*/
public class ECTSMonitor {
private int aantalvakken;
private final double voldoende = 5.5;
private String[] vak = new String[aantalvakken];
private Scanner input = new Scanner(System.in);
private int[] ECTS = new int[aantalvakken];
private double[] Cijfer = new double[aantalvakken];
private int totaalECTS;
/**
* @param args the command line arguments
*/
/**
* Asks for amount of Subjects, and sets instance variable for size of
* Arrays
*/
public void setSubjects() {
//System.out.println("Hoeveel vakken heb je?");
//aantalvakken = input.nextInt();
System.out.println(vak.length);
for (int x = 0; x < getAantalvakken(); x++) {
System.out.println("Voer de naam in van je vak!");
vak[x] = input.next();
System.out.println("Voer het aantal punten in voor " + vak[x]);
ECTS[x] = input.nextInt();
System.out.println("Vak Toegevoegd!!");
}
}
public void setCijfer() {
for (int x = 0; x < vak.length; x++) {
System.out.println("Wat is je Cijfer voor " + vak[x] + "?");
Cijfer[x] = input.nextDouble();
System.out.println("Voor het vak " + vak[x] + "heb je als cijfer ingevuld " + Cijfer[x]);
}
}
public void Checkscore() {
for (int x = 0; x < vak.length; x++) {
if (Cijfer[x] >= voldoende) {
System.out.println("vak:" + vak[x] + "\t\t\t\t Cijfer: " + Cijfer[x] + "ECTS behaald: " + ECTS[x]);
} else {
System.out.println("vak:" + vak[x] + "\t\t\t\t Cijfer: " + Cijfer[x] + "ECTS behaald: 0");
}
}
}
public void BAS() {
totaalECTS = IntStream.of(ECTS).sum();
if (totaalECTS < (totaalECTS * (5 / 6))) {
System.out.println("PAS OP!!: Je ligt op schema voor een BAS!");
} else {
System.out.println("Gefeliciteerd!!: Je bent op weg naar je Propodeuse!!");
}
}
/**
* @return the aantalvakken
*/
public int getAantalvakken() {
return aantalvakken;
}
/**
* @param aantalvakken the aantalvakken to set
*/
public void setAantalvakken(int aantalvakken) {
this.aantalvakken = aantalvakken;
}
}
我得到了这段代码来运行它:
public class Run {
/**
*
* @author JasperF
* @param args
*/
public static void main(String[] args) {
ECTSMonitor mon = new ECTSMonitor();
mon.setSubjects();
mon.setCijfer();
mon.Checkscore();
mon.BAS();
}
}
现在在第一个代码中,数组的长度由变量&#39; aantalvakken&#39;设置, 但是当我运行我的程序并打印te数组的长度时,它会显示0。
如何设置变量aantalvakken来设置数组长度
答案 0 :(得分:1)
将aantalvakken值传递给构造函数。并且创建ArrayList取决于构造函数中的aantalvakken。
public class ECSTMonitor {
private int aantalvakken;
private final double voldoende = 5.5;
private String[] vak;
private Scanner input = new Scanner(System.in);
private int[] ECTS;
private double[] Cijfer;
private int totaalECTS;
public ECSTMonitor(int aantalvakken) {
this.aantalvakken = aantalvakken;
vak = new String[aantalvakken];
ECTS = new int[aantalvakken];
Cijfer = new double[aantalvakken];
}
答案 1 :(得分:0)
private int aantalvakken;
未初始化,因此默认为0
。
答案 2 :(得分:0)
尝试使用如下的静态变量,初始化变量(aantalvakken)你想要多少数组长度。
public static final int aantalvakken;
或
public static final int aantalvakken=10;