2016-05-05 3 views
-3

На данный момент мой профессор хочет сделать программу, как показано ниже, мне трудно достичь этого, я ищу помощь, чтобы помочь мне прорваться. Вот инструкции и то, что у меня есть до сих пор. Кристисим и совет принимаются!Java-программа для

1) Самый высокий балл и имя студента

2) Самый низкий балл и имя студента

3) Средняя оценка класса

4) Отображение имен студентов и их оценки в порядке убывания их баллов с отметками: если их оценка выше среднего, знак с знаком «+»; если их оценка равна среднему значению с «=»; в противном случае отметьте a'- '.

Пример изображения того, что я должен сделать: https://i.gyazo.com/403819a89bae613452dd8278b0612d81.png

Мои проблемы, я не знаю, как сортировать массивы, чтобы получить высокий балл и распечатать его с соответствующим именем, которое идет с ним , Я также не знаю, как поставить числа, как 1. Имя, 2. Имя, потому что оно начинается с нуля.

Моя работа:

 public static void main(String[] args) { 
     System.out.println("********** Students and Scores ************"); 
     Scanner input = new Scanner(System.in); 
     System.out.print("How many students in your class?: "); 
     int numStudents = input.nextInt(); 
     double[] scores = new double[numStudents]; 
     String[] students = new String[numStudents]; 
     for (int i = 0; i < numStudents; i++) { 
      System.out.print(i + ". Name: "); 
      students[i] = input.next(); 
      System.out.print("Score: "); 
      scores[i] = input.nextDouble(); 

     } 

     double sum = 0; 
     for(int i=0; i < scores.length ; i++) 
       sum = sum + scores[i]; 
     double average = sum/scores.length; 

     System.out.println("*************** Results *****************"); 
     System.out.println("Average: " + average); 
     System.out.println("******* End of Students and Scores *********"); 
} 
+0

попробуйте использовать классы! –

+1

Читайте здесь (http://stackoverflow.com/questions/5245093/using-comparator-to-make-custom-sort). Я хотел бы предложить создать класс «Студент», в котором хранятся «имя» и «оценка», поэтому вам не нужно поддерживать порядок в двух разных списках. –

ответ

1

Ну вы не взяли хороший подход к такого рода данной проблемы ...
В Java есть классы, так что вы можете использовать их и определить свой класс для студентов как следующее:

public class Student { 
    //variables 
    private String name; 
    private double score; 

    //constructor 
    public Student(String name, double score) { 
     this.name = name; 
     this.score = score; 
    } 

    //getters and setters 
    public String getName() { 
     return this.name; 
    } 

    public double getScore() { 
     return this.score; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public void setScore(double score) { 
     this.score = score; 
    } 
} 

вы можете создавать классы для обработки ваших операций и работать с классом студентов
или вы можете сделать что-то вроде этого:

public static void main(String[] args) { 
    List<Students> students = new ArrayList<Students>(); 
    students.add("Jhon", 10); 
    students.add("Mary", 5.5); 
    students.add("Ana", 3); 

    Iterator i = students.iterator(); 

    //iterate through your students list like tihs; 
    while(i.hasNext()) { 
     System.out.println("Student = "+ i.next()); 
    } 
    // do what ever you want with the list 
    // make your calculations and stuff, what your problem required 
} 
Смежные вопросы