import java.util.Scanner ;
public class asg06
{
public static void main
( String [ ] args
) {
Scanner stdin
= new Scanner
( System .
in ) ; //declarations
int numberOfStudents;
double scoreAverage;
double maxScore = 0 ;
double scoreCheck;
int end = 0 ;
double choice;
double sum = 0 ;
double chosenStudent;
//how many students are there
System .
out .
println ( "How many students were in the class?" ) ; numberOfStudents = stdin.nextInt ( ) ;
//gather info into arrays
double iD[ ] = new double [ numberOfStudents] ;
double scores[ ] = new double [ numberOfStudents] ;
for ( int i = 0 ; i < iD.length ; i++ )
{
while ( iD[ i] <= i)
{
System .
out .
println ( "Please enter the students ID" ) ; iD[ i] = stdin.nextInt ( ) ;
System .
out .
println ( "What is the students first name?" ) ; firstName[ i] = stdin.next ( ) ;
System .
out .
println ( "What is the students last name?" ) ; lastName[ i] = stdin.next ( ) ;
boolean valid = false ;
while ( valid == false )
{
System .
out .
println ( "What is the students score?" ) ; scoreCheck = stdin.nextDouble ( ) ;
if ( scoreCheck < 0 )
System .
out .
println ( "Score must be at least 0" ) ; else if ( scoreCheck > 100 )
System .
out .
println ( "Score cannot be greater than 100" ) ; else
scores[ i] = scoreCheck;
sum += scoreCheck;
valid = true ;
}
}
}
scoreAverage = sum / numberOfStudents;
maxScore = max( scores) ;
System .
out .
println ( "Thank you. The highest score is " + maxScore
+ " and the average score was " + scoreAverage
+ "." ) ; //searching students
System .
out .
println ( "You may now exit the program by entering 0 or search for a student by ID number" ) ; while ( end == 0 )
{
System .
out .
println ( "What would you like to do?" ) ; choice = stdin.nextDouble ( ) ;
if ( choice == 0 )
{
end = 1 ;
}
else
{
//this part is pretty broken. I know how its supposed to work (kind of) but i'm having trouble pulling the correct info from my methods
int i = 0 ;
i = search( iD, choice) ;
chosenStudent = i;
if ( chosenStudent == - 1 )
{
System .
out .
println ( "This student was not found, please re-enter the student id or enter 0 to quit" ) ; }
else
{
if ( scores[ i] == maxScore)
{
System .
out .
println ( "Student number " + iD
[ i
] + ", " + firstName
[ i
] + " " + lastName
[ i
] + ", received a score of " + scores
[ i
] + "which is the maximum score!" ) ; }
else if ( scores[ i] == scoreAverage)
{
System .
out .
println ( "Student number " + iD
[ i
] + ", " + firstName
[ i
] + " " + lastName
[ i
] + ", received a score of " + scores
[ i
] + "which is the average." ) ; }
else if ( scores[ i] < scoreAverage)
{
System .
out .
println ( "Student number " + iD
[ i
] + ", " + firstName
[ i
] + " " + lastName
[ i
] + ", received a score of " + scores
[ i
] + "which is " + ( scoreAverage
- scores
[ i
] ) + "less than the average." ) ; }
else if ( scores[ i] > scoreAverage)
{
System .
out .
println ( "Student number " + iD
[ i
] + ", " + firstName
[ i
] + " " + lastName
[ i
] + ", received a score of " + scores
[ i
] + "which is " + ( scores
[ i
] - scoreAverage
) + "more than the average." ) ; }
}
}
}
stdin.close ( ) ;
}
//Max Score Method
public static double max( double scores[ ] )
{
double maxScore = 0 ;
for ( int i = 1 ; i < scores.length ; i++ )
{
if ( scores[ i] > maxScore)
{
maxScore = scores[ i] ;
}
}
return maxScore;
}
public static int search( double iD[ ] , double choice)
{
for ( int i = 0 ; i < iD.length ; i++ )
{
if ( iD[ i] == choice )
return i;
}
return - 1 ;
}
}
aW1wb3J0IGphdmEudXRpbC5TY2FubmVyOwpwdWJsaWMgY2xhc3MgYXNnMDYgCnsKCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSAKCXsKCQlTY2FubmVyIHN0ZGluID0gbmV3IFNjYW5uZXIoU3lzdGVtLmluKTsKCQkvL2RlY2xhcmF0aW9ucwoJCWludCBudW1iZXJPZlN0dWRlbnRzOwoJCWRvdWJsZSBzY29yZUF2ZXJhZ2U7CgkJZG91YmxlIG1heFNjb3JlID0gMDsKCQlkb3VibGUgc2NvcmVDaGVjazsKCQlpbnQgZW5kID0gMDsKCQlkb3VibGUgY2hvaWNlOwoJCWRvdWJsZSBzdW0gPSAwOwoJCWRvdWJsZSBjaG9zZW5TdHVkZW50OwoJCS8vaG93IG1hbnkgc3R1ZGVudHMgYXJlIHRoZXJlCgkJU3lzdGVtLm91dC5wcmludGxuKCJIb3cgbWFueSBzdHVkZW50cyB3ZXJlIGluIHRoZSBjbGFzcz8iKTsKCQludW1iZXJPZlN0dWRlbnRzID0gc3RkaW4ubmV4dEludCgpOwoJCS8vZ2F0aGVyIGluZm8gaW50byBhcnJheXMKCQlkb3VibGUgaURbXSA9IG5ldyBkb3VibGVbbnVtYmVyT2ZTdHVkZW50c107CgkJU3RyaW5nIGZpcnN0TmFtZVtdID0gbmV3IFN0cmluZ1tudW1iZXJPZlN0dWRlbnRzXTsKCQlTdHJpbmcgbGFzdE5hbWVbXSA9IG5ldyBTdHJpbmdbbnVtYmVyT2ZTdHVkZW50c107CgkJZG91YmxlIHNjb3Jlc1tdID0gbmV3IGRvdWJsZVtudW1iZXJPZlN0dWRlbnRzXTsKCQlmb3IgKGludCBpID0gMDsgaSA8IGlELmxlbmd0aDsgaSsrKQoJCXsKCQkJd2hpbGUgKGlEW2ldIDw9IGkpCgkJCXsKCQkJCVN5c3RlbS5vdXQucHJpbnRsbigiUGxlYXNlIGVudGVyIHRoZSBzdHVkZW50cyBJRCIpOwoJCQkJaURbaV0gPSBzdGRpbi5uZXh0SW50KCk7CgkJCQlTeXN0ZW0ub3V0LnByaW50bG4oIldoYXQgaXMgdGhlIHN0dWRlbnRzIGZpcnN0IG5hbWU/Iik7CgkJCQlmaXJzdE5hbWVbaV0gPSBzdGRpbi5uZXh0KCk7CgkJCQlTeXN0ZW0ub3V0LnByaW50bG4oIldoYXQgaXMgdGhlIHN0dWRlbnRzIGxhc3QgbmFtZT8iKTsKCQkJCWxhc3ROYW1lW2ldID0gc3RkaW4ubmV4dCgpOwoJCQkJYm9vbGVhbiB2YWxpZCA9IGZhbHNlOwoJCQkJd2hpbGUgKHZhbGlkID09IGZhbHNlKQoJCQkJewoJCQkJU3lzdGVtLm91dC5wcmludGxuKCJXaGF0IGlzIHRoZSBzdHVkZW50cyBzY29yZT8iKTsKCQkJCXNjb3JlQ2hlY2sgPSBzdGRpbi5uZXh0RG91YmxlKCk7CgkJCQlpZihzY29yZUNoZWNrIDwgMCkKCQkJCQlTeXN0ZW0ub3V0LnByaW50bG4oIlNjb3JlIG11c3QgYmUgYXQgbGVhc3QgMCIpOwoJCQkJZWxzZSBpZiAoc2NvcmVDaGVjayA+IDEwMCkKCQkJCQlTeXN0ZW0ub3V0LnByaW50bG4oIlNjb3JlIGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gMTAwIik7CgkJCQllbHNlCgkJCQkJc2NvcmVzW2ldID0gc2NvcmVDaGVjazsKCQkJCQlzdW0gKz0gc2NvcmVDaGVjazsKCQkJCQl2YWxpZCA9IHRydWU7CgkJCQl9CgkJCX0KCQl9CgkJc2NvcmVBdmVyYWdlID0gc3VtIC8gbnVtYmVyT2ZTdHVkZW50czsKCQltYXhTY29yZSA9IG1heChzY29yZXMpOwoJCVN5c3RlbS5vdXQucHJpbnRsbigiVGhhbmsgeW91LiBUaGUgaGlnaGVzdCBzY29yZSBpcyAiICsgbWF4U2NvcmUgKyAiIGFuZCB0aGUgYXZlcmFnZSBzY29yZSB3YXMgIiArIHNjb3JlQXZlcmFnZSArICIuIik7CgkJLy9zZWFyY2hpbmcgc3R1ZGVudHMKCQlTeXN0ZW0ub3V0LnByaW50bG4oIllvdSBtYXkgbm93IGV4aXQgdGhlIHByb2dyYW0gYnkgZW50ZXJpbmcgMCBvciBzZWFyY2ggZm9yIGEgc3R1ZGVudCBieSBJRCBudW1iZXIiKTsKCQl3aGlsZShlbmQgPT0gMCkKCQl7CgkJCVN5c3RlbS5vdXQucHJpbnRsbigiV2hhdCB3b3VsZCB5b3UgbGlrZSB0byBkbz8iKTsKCQkJY2hvaWNlID0gc3RkaW4ubmV4dERvdWJsZSgpOwoJCQlpZiAoY2hvaWNlID09IDApCgkJCXsKCQkJCWVuZCA9IDE7CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQkvL3RoaXMgcGFydCBpcyBwcmV0dHkgYnJva2VuLiBJIGtub3cgaG93IGl0cyBzdXBwb3NlZCB0byB3b3JrIChraW5kIG9mKSBidXQgaSdtIGhhdmluZyB0cm91YmxlIHB1bGxpbmcgdGhlIGNvcnJlY3QgaW5mbyBmcm9tIG15IG1ldGhvZHMKCQkJCWludCBpID0gMDsKCQkJCWkgPSBzZWFyY2goaUQsIGNob2ljZSk7CgkJCQljaG9zZW5TdHVkZW50ID0gaTsKCQkJCWlmIChjaG9zZW5TdHVkZW50ID09IC0xKQoJCQkJewoJCQkJCVN5c3RlbS5vdXQucHJpbnRsbigiVGhpcyBzdHVkZW50IHdhcyBub3QgZm91bmQsIHBsZWFzZSByZS1lbnRlciB0aGUgc3R1ZGVudCBpZCBvciBlbnRlciAwIHRvIHF1aXQiKTsKCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQlpZiAoc2NvcmVzW2ldID09IG1heFNjb3JlKQoJCQkJCXsKCQkJCQlTeXN0ZW0ub3V0LnByaW50bG4oIlN0dWRlbnQgbnVtYmVyICIgKyBpRFtpXSArICIsICIgKyBmaXJzdE5hbWVbaV0gKyAiICIgKyBsYXN0TmFtZVtpXSArICIsIHJlY2VpdmVkIGEgc2NvcmUgb2YgIiArIHNjb3Jlc1tpXSArICJ3aGljaCBpcyB0aGUgbWF4aW11bSBzY29yZSEiKTsKCQkJCQl9CgkJCQkJZWxzZSBpZiAoc2NvcmVzW2ldID09IHNjb3JlQXZlcmFnZSkKCQkJCQl7CgkJCQkJU3lzdGVtLm91dC5wcmludGxuKCJTdHVkZW50IG51bWJlciAiICsgaURbaV0gKyAiLCAiICsgZmlyc3ROYW1lW2ldICsgIiAiICsgbGFzdE5hbWVbaV0gKyAiLCByZWNlaXZlZCBhIHNjb3JlIG9mICIgKyBzY29yZXNbaV0gKyAid2hpY2ggaXMgdGhlIGF2ZXJhZ2UuIik7CgkJCQkJfQoJCQkJICAgIGVsc2UgaWYgKHNjb3Jlc1tpXSA8IHNjb3JlQXZlcmFnZSkKCQkJCQl7CgkJCQkJU3lzdGVtLm91dC5wcmludGxuKCJTdHVkZW50IG51bWJlciAiICsgaURbaV0gKyAiLCAiICsgZmlyc3ROYW1lW2ldICsgIiAiICsgbGFzdE5hbWVbaV0gKyAiLCByZWNlaXZlZCBhIHNjb3JlIG9mICIgKyBzY29yZXNbaV0gKyAid2hpY2ggaXMgIiArIChzY29yZUF2ZXJhZ2UgLSBzY29yZXNbaV0pICsgImxlc3MgdGhhbiB0aGUgYXZlcmFnZS4iKTsKCQkJCQl9CgkJCQkJZWxzZSBpZiAoc2NvcmVzW2ldID4gc2NvcmVBdmVyYWdlKQoJCQkJCXsKCQkJCQlTeXN0ZW0ub3V0LnByaW50bG4oIlN0dWRlbnQgbnVtYmVyICIgKyBpRFtpXSArICIsICIgKyBmaXJzdE5hbWVbaV0gKyAiICIgKyBsYXN0TmFtZVtpXSArICIsIHJlY2VpdmVkIGEgc2NvcmUgb2YgIiArIHNjb3Jlc1tpXSArICJ3aGljaCBpcyAiICsgKHNjb3Jlc1tpXSAtIHNjb3JlQXZlcmFnZSkgICsgIm1vcmUgdGhhbiB0aGUgYXZlcmFnZS4iKTsKCQkJCQl9CgkJCQkKCQkJfQoJCX0KCQl9CgkJICBzdGRpbi5jbG9zZSgpOwoJfQoJCS8vTWF4IFNjb3JlIE1ldGhvZApwdWJsaWMgc3RhdGljIGRvdWJsZSBtYXgoZG91YmxlIHNjb3Jlc1tdKQoJewoJZG91YmxlIG1heFNjb3JlID0gMDsKCWZvciAoaW50IGkgPSAxOyBpIDwgc2NvcmVzLmxlbmd0aDsgaSsrKQoJCXsKCSAgICAgaWYgKHNjb3Jlc1tpXSA+IG1heFNjb3JlKQoJICAgICAJewoJICAgIAkgbWF4U2NvcmUgPSBzY29yZXNbaV07CgkgICAgIAl9CgkgICAKCSAgICAgCgkJfQpyZXR1cm4gbWF4U2NvcmU7Cgl9CgpwdWJsaWMgc3RhdGljIGludCBzZWFyY2goZG91YmxlIGlEW10sIGRvdWJsZSBjaG9pY2UpCnsKICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaUQubGVuZ3RoOyBpKyspCiAgICAgIHsKICAgICAgICAgICBpZiAoIGlEW2ldID09IGNob2ljZSApCiAgICAgICAgICAgICAgICAgcmV0dXJuIGk7CiAgICAgIH0KICAgICByZXR1cm4gLTE7Cn0KfQo=