簡體   English   中英

GPA最低且成績最低?

[英]Gpa displaying and lowest grade first?

你好,我有一個問題,我已經絆了很多天了,我將把我嘗試過的全部代碼..這是第一個問題:作為兼職學生,你上學期選修了兩門課程。 編寫一個Java程序,計算並顯示該學期的平均成績(GPA)。 您的程序應提示用戶輸入每門課程的成績和學分。 然后應首先以最低的成績顯示此信息,並應計算並顯示該學期的GPA。 如果GPA小於2.0,則應打印警告消息,如果GPA為3.5或更高,則應顯示祝賀消息。

首先顯示最低成績的部分真的讓我感到困惑

import java.util.*;
public class Gpa
{static Scanner stdIn= new Scanner(System.in);
public static void main (String[]args)
{
  char grade1=' ';
  char grade2=' ';
  double gradevalue1=0;
  double gradevalue2=0;
  double gpa;
  double totalpointscourse1;
  double totalpointscourse2;
  double credithours1,credithours2;
  System.out.print("enter grade for course1 like A,B,C,D,F: ");
  grade1=stdIn.next().charAt(0);
  System.out.print("enter credit hours for course1: ");
  credithours1=stdIn.nextDouble();
  System.out.print("enter grade for course2 like A,B,C,D,F: ");
  grade2=stdIn.next().charAt(0);
  System.out.print("enter credit hours for course2: ");
  credithours2=stdIn.nextDouble();

  if(grade1=='A')
     gradevalue1=4;
  else 
     if(grade1=='B')
        gradevalue1=3;
     else if (grade1=='C')
        gradevalue1=2;
     else if (grade1=='D')
        gradevalue1=1;
     else 
        gradevalue1=0;




  if(grade2=='A')
     gradevalue2=4;
  else
     if (grade2=='B')
        gradevalue2=3;
     else if (grade2=='C')
        gradevalue2=2;
     else if (grade2=='D')
        gradevalue2=1;
     else 
        gradevalue2=0;


  totalpointscourse1=gradevalue1*credithours1;
  totalpointscourse2=gradevalue2*credithours2;
  gpa= (totalpointscourse1+totalpointscourse2)/(credithours1+credithours2);

  if(grade1=='A'||grade1=='B'||grade1=='C'||grade1=='D'||grade1=='F'||grade2=='A'||grade2=='B'||
  grade2=='C'||grade2=='D'||grade2=='F')
     System.out.println(" your gpa is" + gpa);
  else
     System.out.println(" invalid gpa");


  if(gpa>=3.5)
     System.out.println("Congratulations");
  else if (gpa<2.0)
     System.out.println("WARNING");

  if (grade1>grade2) {
     System.out.println(grade2); 
     System.out.println(grade1); 

  } 
  else {
     System.out.println(grade1); 
     System.out.println(grade2); 
  }


}
}

這是我的輸出:

//

enter grade for course1 like A,B,C,D,F: B

enter credit hours for course1: 3

enter grade for course2 like A,B,C,D,F: A

enter credit hours for course2: 3

 your gpa is3.5
Congratulations
A
B
//

我正在使用jGrasp btw

您已經完成工作,只需將循環條件從>更改為<然后完成即可。 但是您的獲取方式很簡單,比較運算符實際上比較字符的unicode,並且由於字母的unicode是按順序排列的,並且BA之后A因此B的unicode大於A的unicode。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM