Назад | Начало урока | Вперед
Содержание

Глава 4

Задача 4.5 "Снова средние значения."

Измените программу 2.5 так, чтобы она считывала отметки из файла и выводила на печать средний балл для каждого студента, а так же вычисляла общий средний балл. Для определения конца файла используйте исключительную ситуацию.

Решение

Исходный файл для считывания данных будет таким:

Smit 90 75 65
Ericson 95 80 70
Brown 70 55 40

Имя студента и его оценки соответственно за тестирование, практикум и экзамен. Программа в цикле считывает из файла, производит вычисления и выводит на экран. Пока не встретится конец файла.

Код программы:



import java.io.*;
import javagently.*;

class BallCalc {

BallCalc() throws IOException {
Stream in = new Stream(System.in);
// default the file to the keyboard
Stream fin = new Stream(System.in);
try {
fin = Filer.open("data.txt");
}
catch (FileNotFoundException e) {
System.out.println("Five tries up");
System.out.println("Connecting to keyboard by default");
}


System.out.println();
System.out.println(" Session balls ");
System.out.println("============================");

int test = 0; // ball of testing
int prac = 0; // ball of practic
int exzam = 0; // ball of exzamen
long sumAverange = 0;
String nameStudent;

try {

for (;;) {
nameStudent = fin.readString();
test = fin.readInt();
prac = fin.readInt();
exzam = fin.readInt();

//calculate averange
long averange = Math.round(test*0.2 + prac*0.3 + exzam*0.5);
sumAverange = sumAverange + averange;

// Report
System.out.println("Student " + nameStudent + ": testing - " + test + ", " +
"practicum - " + prac + ", " +
"exzamen - " + exzam);
System.out.println("Student " + nameStudent + " averange ball: " + averange);

}
}
catch (EOFException e) {
System.out.println(" All data is reading ");
}
System.out.println("Total averange ball: " + Math.round(sumAverange/3) );
}


public static void main (String[] args) throws IOException {

new BallCalc ();
}
}


Результат :

Session balls
============================
Student Smit: testing - 90, practicum - 75, exzamen - 65
Student Smit averange ball: 73
Student Ericson: testing - 95, practicum - 80, exzamen - 70
Student Ericson averange ball: 78
Student Brown: testing - 70, practicum - 55, exzamen - 40
Student Brown averange ball: 51
All data is reading
Total averange ball: 67


Назад | Начало урока | Вверх | Вперед
Содержание

Hosted by uCoz