2014-03-06 2 views
-2

이 프로그램은 최종 학생의 성적을 계산합니다. 각 학생들은 중급, 2 학년 및 최종 시험에 대한 기록을 보유합니다. 최종 학년은 중간 학년의 25 %, 2 학기의 30 %, 최종 시험의 45 %가됩니다. 프로그램은 10 명의 학생에 대한 데이터를 요구할 것입니다. 각 학생의 데이터는 이름, 섹션, 중간 학년, 2 학년 및 최종 시험으로 구성됩니다.이 프로그램에서 알고리즘을 수행하는 방법

학생의 성적을 표 형식으로 어떻게 표시합니까?

이것은 내가 원하는 Student.java

public class Student { 
//is this class correct? 
String name; 
String section; 
Double midgrade; 
Double secondqtr; 
Double finexam; 
Double fingrade; 

public Student(){ 

} 

public Student (String n, String s, Double mg, Double sq, Double fe, Double fg){ 
    name = n; 
    section = s; 
    midgrade = mg; 
    secondqtr = sq; 
    finexam = fe; 
    fingrade = fg;  
} 

} 

코드입니다 gradesummary.java

public class gradesummary { 
public static void main(String args[]){ 
    Scanner cin = new Scanner(System.in); 
    Vector<Student> list = new Vector<>(); 

    for(int x=0; x<10 ;x++){ 
     Student s = new Student(); 
     System.out.print("Name: "); 
     s.name = cin.nextLine(); 
     System.out.print("Section: "); 
     s.section = cin.nextLine(); 
     System.out.print("Midterm Grade: "); 
     s.midgrade = cin.nextDouble(); 
     System.out.print("Second Quarter: "); 
     s.secondqtr = cin.nextDouble(); 
     System.out.print("Final Exam: "); 
     s.finexam = cin.nextDouble(); 

     //save s in data collection 
     list.add(s); 

    } 

    for(int x = 0; x<10; x++){ 
    //what will i do here next? 
     Student xtt = list.get(x); 
    } 
} 
} 

코드입니다 나는 것을 조언이

Name  Midterm Grade Second Quarter Final Exam Final Grade 
Student2  80    79.69   85   87.674 
Student2  78    77.69   81   79.257 
Student3  88    87    89   88.15 
Student4  88.67   84    86.78  86.4185 
Student5  98    90    94   93.8 
Student6  93    91    90   91.05 
Student7  84    78    87   83.55 
Student8  82    86.4    89   86.47 
Student9  72    79    81   78.15 
Student10  85.34   81    83   82.985 
+1

은 콘솔에서 표 형식으로 표시된 결과를 원하는, 또는 어떤 종류의 UI에 있습니까? 콘솔에서 인쇄하고 싶다면 [이것은 당신에게 도움이 될 것입니다] (http://stackoverflow.com/questions/15215326/how-can-i-create-a-table-in-java-in-a -console) –

+0

@RudiKershaw 결과를 Eclipse 콘솔에 표시하고 싶습니다. 나는 자바 프로그램을 할 때 이클립스를 사용한다. – Bloodymscre

+0

Java의 출력 형식을 사용하려고합니다. 예를 들어, http://stackoverflow.com/questions/2745206/output-in-a-table-format-in-javas-system-out을 참조하십시오. –

답변

0

같은 출력 데이터를 학생 필드로 바로 읽습니다. 이를 위해 Scanner 객체 만 Student 생성자에 전달할 수 있습니다. 당신이 학생 기록을 읽는 끝나면 스캐너를 종료해야합니다

public Student (Scanner sc){ 
    name = sc.next(); 
    section = sc.next() 
    . 
    . 
    . 
} 

:

만 뭔가를해야합니다.

표를 인쇄하려면 printf (example)을 살펴 봐야합니다.

0

이 같은 작성해야 :

for(Student student: list){ 

    System.out.printf("%-8s %-8s %-8s %-8s%n", "Name", "Midterm Grade", "Second Quarter", "Final Exam"); 

    System.out.printf("%1d -8s %7.1f %7.1f %7.1f%n", student.get...); 
} 

최종 학년 수학입니다 :

플로트 finalGrade = (student.get (FinalExam) * 100분의 45) + (학생 갔지 (MidtermGrade) * 100분의 20 ...)

+0

구문은'foreach'가 아니라'for'입니다. –

+0

@PaulRichter 등급 계산을위한 알고리즘을 수행하는 방법 – Bloodymscre

0

당신은 몇 가지 변화를 알 수 있지만, 이에 대한 필자는 다음과 같습니다

public class GradeSummary { 
    public static void main(String args[]) { 
     Scanner cin = new Scanner(System.in); 
     List<Student> list = new ArrayList<>(); 

     for (int x = 0; x < 10; x++) { 
      Student s = new Student(); 
      System.out.print("Name: "); 
      s.setName(cin.nextLine()); 
      System.out.print("Section: "); 
      s.setSection(cin.nextLine()); 
      System.out.print("Midterm Grade: "); 
      s.setMidterm(cin.nextDouble()); 
      System.out.print("Second Quarter: "); 
      s.setSecondQuarter(cin.nextDouble()); 
      System.out.print("Final Exam: "); 
      s.setFinalExam(cin.nextDouble()); 
      list.add(s); 
     } 

     for (Student student : list) { 
      System.out.println(String.format("Name: %s, Final Grade: %s", student.getName(), student.getWeightedGrade())); 
     } 
    } 
} 

public class Student { 
    private String name; 
    private String section; 
    private Double midterm; 
    private Double secondQuarter; 
    private Double finalExam; 

    public String getName() { 
     return name; 
    } 

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

    public String getSection() { 
     return section; 
    } 

    public void setSection(String section) { 
     this.section = section; 
    } 

    public Double getMidterm() { 
     return midterm; 
    } 

    public void setMidterm(Double midterm) { 
     this.midterm = midterm; 
    } 

    public Double getSecondQuarter() { 
     return secondQuarter; 
    } 

    public void setSecondQuarter(Double secondQuarter) { 
     this.secondQuarter = secondQuarter; 
    } 

    public Double getFinalExam() { 
     return finalExam; 
    } 

    public void setFinalExam(Double finalExam) { 
     this.finalExam = finalExam; 
    } 

    public Double getWeightedGrade() 
    { 
     return this.midterm * .25 + this.secondQuarter * .30 + this.finalExam * .45; 
    } 
} 
+0

내 출력이 어떻게 업데이트되는지 이미 업데이트했습니다. 너 나 좀 도와 줄 수있어? – Bloodymscre

관련 문제