Citat:
Ursprungligen postat av MindControll
skratta inte nu

Men är så att jag vill göra en fullständig uträkning av mitt betygs snitt från gymnasiet. Men vet inte riktigt hur jag ska gå tillväga. Jag skrev ett exempel nedan:
[PHP]import java.util.*;
public class betyg{
public static void main (String[] args){
Scanner in = new Scanner(System.in);
System.out.println("Ange antal 100p kurser samt betyg");
System.out.println("");
System.out.println("");
System.out.println("Ange antal g");
int hg = in.nextInt();
System.out.println("ange antal vg");
int hvg = in.nextInt();
System.out.println("ange antal mvg");
int hmvg = in.nextInt();
//antal kurs poänng
int hgg = hg * 100;
int hvgg = hvg * 100;
int hmvgg= hmvg * 100;
//antal betygs poäng
int gPoints = hgg*10;
int vgPoints= hvgg*15;
int mvgPints= hmvgg*20;
//kontroll
int totalpoint = gPoints + vgPoints + mvgPints;
int totalgrade = hgg+hvgg+hmvg;
System.out.println("total betygs poäng : "+totalpoint);
System.out.println("total studie poäng : "+totalgrade);
//snittet
int snitt=totalpoint/totalgrade;
System.out.println("");
System.out.println("snittet är : "+snitt);
}
} [/PHP]
Saken är den att jag vill att jag ska kunna göra en fullständig uträkning på alla kurser.
Denna gör endast över antalet 100p kurser. Och jag tycker att det är blir på tok förmycket kod om jag ska upprepa denna kod för varje 50,100,150,200poängs kurser. Men snitt värdet blir korrekt om man har runt 2500poäng av kurser.
Nån som kan hjäpa till att göra denna uträkning lite mer lättanvänlig?
Tricket i detta fall är ju att låta beräkningarna hamna i en egen metod och endast skicka in dels multiplerna, och en Map som håller betygen åt dej.
[PHP]
import java.util.*;
public class betyg{
public static void main (String[] args){
int totalPoints = 0;
int totalGrade = 0;
Scanner in = new Scanner(System.in);
Map<String,Integer> grades = new HashMap<String,Grades>();
for(int i = 50; i < 201; i += 50){
grades.clear();
System.out.println("Ange antal " + i +"p kurser samt betyg");
System.out.println("");
System.out.println("");
System.out.println("Ange antal g");
int hg = in.nextInt();
grades.put("g",hg);
System.out.println("ange antal vg");
int hvg = in.nextInt();
grades.put("vg",hvg);
System.out.println("ange antal mvg");
int hmvg = in.nextInt();
grades.put("mvg",hmvg);
Map<String,Integer> tmp = calculateGrades(grades,i);
totalPoint += tmp.get("totalPoint");
totalGrade += tmp.get("totalGrade");
}
System.out.println("total betygs poäng : "+totalpoint);
System.out.println("total studie poäng : "+totalgrade);
//snittet
int snitt=totalpoint/totalgrade;
System.out.println("");
System.out.println("snittet är : "+snitt);
}
public Map<String,Integer>calculateGrades(Map<String,Inte ger>params, int multiple){
//antal kurs poänng
int hgg = params.get("g") * multiple;
int hvgg = params.get("vg") * multiple;
int hmvgg= params.get("mvg") * multiple;
//antal betygs poäng
int gPoints = hgg*10;
int vgPoints= hvgg*15;
int mvgPints= hmvgg*20;
//kontroll
int totalpoint = gPoints + vgPoints + mvgPints;
int totalgrade = hgg+hvgg+hmvg;
HashMap<String,Integer>returnValues = new HashMap<String,Integer>();
returnValues.put("totalPoint",totalpoint);
returnValues.put("totalGrade",totalGrade);
return returnValues;
}
}
[/PHP]
Nånting sånt borde ju åstadkomma det du vill?