2016-12-17 2 views
0

Может ли кто-нибудь помочь мне с программой в java, которая будет принимать десять имен студентов, их матовое число, а также их баллы за десять курсов, а также определить их класс, используя код, который я использую, но это не массивМассив для нескольких входов

import java.util.*; 
public class GPACALCULATOR { 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
    Scanner s = new Scanner(System.in); 
    int Unit,Tunit=0; 
    double Gp,Tgp=0; 
    int Score; 
    double Sgp = 0; 
    double Gpa= 0; 
    String Course, Grade, Name, Mnum; 
    System.out.println("PLEASE INPUT YOUR NAME"); 
    Name= s.next(); 
    System.out.println("PLEASE INPUT THE LAST TWO DIGITS OF YOUR MATRIC NUMBER"); 
    Mnum= s.next(); 
    System.out.println("HOW MANY COURSE ARE YOU OFFERING"); 
    int C= s.nextInt(); 



    for (int X= 0; X<C; X++) 
    { 
     System.out.println("ENTER COURSE CODE"); 
     Course= s.next(); 
     System.out.println("ENTER HE COURSE UNIT"); 
     Unit= s.nextInt(); 
     System.out.println("ENTER THE COURSE SCORE"); 
     Score= s.nextInt(); 
     System.out.println(" "); 

     if (Score>=70) 
     { 
      Grade= "A"; 
      Gp = 4.0; 
      Tgp= Gp * Unit; 
      System.out.println("COURSE " + "SCORE " + "GRADE " + "GP "); 
      System.out.println(" "); 
      System.out.println(Course+" "+Unit+ " " +Score+" "+Grade+" "+Gp+" "); 
      System.out.println(" "); 

     } 


     else if (Score>=65) 
     { 
      Grade= "AB"; 
      Gp = 3.5; 
      Tgp= Gp * Unit; 
      System.out.println("COURSE " + "SCORE " + "GRADE " + "GP "); 
      System.out.println(" "); 
      System.out.println(Course+" "+Unit+ " " +Score+" "+Grade+" "+Gp+" "); 
      System.out.println(" "); 

     } 

     else if (Score>=60) 
     { 
      Grade= "B"; 
      Gp = 3.0; 
      Tgp= Gp * Unit; 
      System.out.println("COURSE " + "SCORE " + "GRADE " + "GP "); 
      System.out.println(" "); 
      System.out.println(Course+" "+Unit+ " " +Score+" "+Grade+" "+Gp+" "); 
      System.out.println(" "); 

     } 

     else if (Score>=55) 
     { 
      Grade= "C"; 
      Gp = 2.5; 
      Tgp= Gp * Unit; 
      System.out.println("COURSE " + "SCORE " + "GRADE " + "GP "); 
      System.out.println(" "); 
      System.out.println(Course+" "+Unit+ " " +Score+" "+Grade+" "+Gp+" "); 
      System.out.println(" "); 

     } 

     else if (Score>=50) 
     { 
      Grade= "C"; 
      Gp = 2.0; 
      Tgp= Gp * Unit; 
      System.out.println("COURSE " + "SCORE " + "GRADE " + "GP "); 
      System.out.println(" "); 
      System.out.println(Course+" "+Unit+ " " +Score+" "+Grade+" "+Gp+" "); 
      System.out.println(" "); 

     } 

     else if (Score>=45) 
     { 
      Grade= "CD"; 
      Gp = 1.5; 
      Tgp= Gp * Unit; 
      System.out.println("COURSE " + "SCORE " + "GRADE " + "GP "); 
      System.out.println(" "); 
      System.out.println(Course+" "+Unit+ " " +Score+" "+Grade+" "+Gp+" "); 
      System.out.println(" "); 

     } 

     else if (Score>=40) 
     { 
      Grade= "D"; 
      Gp = 1.0; 
      Tgp= Gp * Unit; 
      System.out.println("COURSE " + "SCORE " + "GRADE " + "GP "); 
      System.out.println(" "); 
      System.out.println(Course+" "+Unit+ " " +Score+" "+Grade+" "+Gp+" "); 
      System.out.println(" "); 

     } 

     else if (Score>=35) 
     { 
      Grade= "E"; 
      Gp = 0.5; 
      Tgp= Gp * Unit; 
      System.out.println("COURSE " + "SCORE " + "GRADE " + "GP "); 
      System.out.println(" "); 
      System.out.println(Course+" "+Unit+ " " +Score+" "+Grade+" "+Gp+" "); 
      System.out.println(" "); 

     } 

     else if (Score>=40) 
     { 
      Grade= "F"; 
      Gp = 0.0; 
      Tgp= Gp * Unit; 
      System.out.println("COURSE " + "SCORE " + "GRADE " + "GP "); 

      System.out.println(" "); 
      System.out.println(Course+" "+Unit+ " " +Score+" "+Grade+" "+Gp+" "); 
      System.out.println(" "); 

     } 
     Tunit+=Unit; 
     Sgp+=Tgp; 

    } 
     Gpa= Sgp/Tunit; 
     System.out.println(Name); 
     System.out.println("F/HD/15/32100"+Mnum); 
     System.out.println("THE CGPA OF THE ABOVE NAME STUDENT IS "+ Gpa); 
    } 

} 

ответ

0

возможным решением было бы создать класс Student, а также создавать поля данных, используя свое имя, номер курса, номер класса данного курса и т.д. Выше кода, показанного (в любой IDE, компилятор, и т.д., что вы используете), он может начать что-то вроде этого (я думаю, поэтому меня кто-то исправит, если я ошибаюсь):

Class Student{ 
    private String name; 
    private int matricNum; 
    private int courseLoad; 

    //then arrange for the getters and setters 
    public String getName(){ return name;} 
    public int getMatricNum(){ return matricNum;} 
    public int getCourseLoad(){ return courseLoad;} 


    public void setName(String name){ this.name=name;} 
    public void setMatricNum(int matricNum){ this.matricNum = matricNum;} 
    public void setCourseLoad(int courseLoad){ this.courseLoad = courseLoad;} 

    public Student(String name, int matricNum, int courseLoad){ 
     this.name = name; 
     this.matricNum = matricNum; 
     this.courseLoad = courseLoad; 
    } 

Повторите это, чтобы создать класс курса с полями данных для кода курса, номера юнита и оценки курса. После того, как закончите, создавать массивы обоих типов классов:

public Student[] students = new Student[10]; //This creates a student array 
of ten students that will allow you to enter the above data for each student. 


public Course[] courses = new Course[(Enter some number here that will accommodate the total number of courses that every student contains)]; 

То, что я думаю, что это эффективное решение для этого необходимо ввести данные для исходного массива студентов, а затем определенного количества курсов сказал студент , а затем повторите это.

Затем, проверяя оценки, перебирайте массив Course [] на основе записей ученика, а затем вычисляйте оценку для каждого класса.

На другом примечании System.out.println(); не требуется никаких пробелов в нем для выполнения. Это более длинная форма нового символа линии «\ n», и поэтому оператор печати можно просто написать:

System.out.println();

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

Надеюсь, это поможет!

+0

Вы запустили код d и видите, что я понимаю свой ожидаемый результат? – user7310495

+0

Я понимаю выход, да. Вы хотите сохранить 10 студентов и их данные в виде массива, а затем со своими классами, единицами курса и GPA для каждого класса? То, что я настроил в своем ответе, - это способ создания «базы данных», которая хранит эту информацию для вас, и чтобы вы могли распечатать ее для каждого ученика. Что я говорю, имеет смысл? – BTM

Смежные вопросы