radim jedan školski zadatak, koji glasi: Realizovati Java aplikaciju koja iz fajla koji se zadaje na ulazu studenti.txt u kome se nalazi spisak studenata koji su položili predmet, čita sve studente i njihove ocene i na standardnom izlazu ispisuje sve studente koji su položili ispit, sortirane u abecednom rastućem redosledu, izračunava prosečnu ocenu i procenat prolaznosti na ispitu. Pretpostaviti da se u fajlu zapis o jednom studentu piše u jednom redu, u formatu: ime prezime ocena, sa po jednim razmakom između.
Napravio sam fajl studenti.txt iz koga se lepo učitavaju podaci i pune se liste (imam dve liste: jedna je studenti, koja sadrži podatke o svim studentima; druga je položili, koja sadrži podatke samo o onim studentima koji su položili). Međutim, kada pokušam da izračunam i ispišem prolaznost kao broj_onih_koji_su_položili/ukupan_broj_studenata, dobijem 0 kao rezultat, a ne znam zašto:(...Takođe, ukoliko neko ima sugestiju kako da ispišem prosečnu ocenu onih koji su položili (ok, jasno mi je da treba da saberem sve ocene iz liste položili i da tu vrednost podelim sa ukupnim brojem članova liste), ali ne znam kako to da primenim.
U nastavku je kod koji sam do sada uradio. Hvala svima unapred.
Code:
package studentisort;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class Program {
public static void main(String[] args) {
List<Student> studenti = new ArrayList<Student>();
List<Student> polozili = new ArrayList<Student>();
FileInputStream ulaz = null;
double prosecnaOcena=0;
double ukupnaOcena=0;
double prolaznost=0;
try {
ulaz = new FileInputStream("studenti.txt");
BufferedReader bafer = new BufferedReader(new InputStreamReader(ulaz));
String linija = "";
String[] temp = linija.split(" ");
while ((linija = bafer.readLine()) != null) {
temp = linija.split(" ");
int ocena = Integer.parseInt(temp[2]);
studenti.add(new Student(temp[0], temp[1], temp[2]));
if(ocena>5)
polozili.add(new Student(temp[0], temp[1], temp[2]));
for(int i=0;i<studenti.size();i++) {
ukupnaOcena+=Double.parseDouble(studenti.get(i).getOcena());
}
}
} catch (IOException e) {}
finally {
try { ulaz.close(); } catch ( Exception ignore ) {}
}
Collections.sort(polozili, new Comparator<Student>() {
@Override
public int compare(Student s1, Student s2)
{
return s1.ime.compareTo(s2.ime);
}
});
for(Student s1: polozili){
System.out.println(s1.getIme() + " " + s1.getPrezime() + " " + s1.getOcena());
}
prolaznost = (polozili.size())/(studenti.size());
System.out.println(prolaznost);
}
}
package studentisort;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class Program {
public static void main(String[] args) {
List<Student> studenti = new ArrayList<Student>();
List<Student> polozili = new ArrayList<Student>();
FileInputStream ulaz = null;
double prosecnaOcena=0;
double ukupnaOcena=0;
double prolaznost=0;
try {
ulaz = new FileInputStream("studenti.txt");
BufferedReader bafer = new BufferedReader(new InputStreamReader(ulaz));
String linija = "";
String[] temp = linija.split(" ");
while ((linija = bafer.readLine()) != null) {
temp = linija.split(" ");
int ocena = Integer.parseInt(temp[2]);
studenti.add(new Student(temp[0], temp[1], temp[2]));
if(ocena>5)
polozili.add(new Student(temp[0], temp[1], temp[2]));
for(int i=0;i<studenti.size();i++) {
ukupnaOcena+=Double.parseDouble(studenti.get(i).getOcena());
}
}
} catch (IOException e) {}
finally {
try { ulaz.close(); } catch ( Exception ignore ) {}
}
Collections.sort(polozili, new Comparator<Student>() {
@Override
public int compare(Student s1, Student s2)
{
return s1.ime.compareTo(s2.ime);
}
});
for(Student s1: polozili){
System.out.println(s1.getIme() + " " + s1.getPrezime() + " " + s1.getOcena());
}
prolaznost = (polozili.size())/(studenti.size());
System.out.println(prolaznost);
}
}
I klasa Student...
Code:
package studentisort;
public class Student {
String ime;
String prezime;
String ocena;
public Student(String ime, String prezime, String ocena){
this.ime=ime;
this.prezime=prezime;
this.ocena=ocena;
}
public String getIme(){
return ime;
}
public String getPrezime(){
return prezime;
}
public String getOcena(){
return ocena;
}
public String toString(){
return ime + " " + prezime + " " + ocena;
}
}
package studentisort;
public class Student {
String ime;
String prezime;
String ocena;
public Student(String ime, String prezime, String ocena){
this.ime=ime;
this.prezime=prezime;
this.ocena=ocena;
}
public String getIme(){
return ime;
}
public String getPrezime(){
return prezime;
}
public String getOcena(){
return ocena;
}
public String toString(){
return ime + " " + prezime + " " + ocena;
}
}