2015-12-21 59 views
-2

我不得不在Java中的GPA计算器... 用户将进入课程名称,获得商标及百分率... 和程序将输出等级,等级分所有科目单独
然后程序会输出平均GPA ... 程序也将给出关于GPA的评论,就像它是4.0 .... Excelent将显示在输出...... 我不是要求代码我只是想正确的指导,如何解决这个问题像我应该做什么功能 或循环将被应用?(这种指导)?如何更正此代码?

我已经试过这样.....

 import java.util.Scanner; 

    public class Calc { 

    public static void main(String[] args) { 

    Scanner sc = new Scanner(System.in); 
    System.out.println("Enter number of a Subjects"); 
    int nm = sc.nextInt(); 

    for(int i=0;i<=nm;i++) 
    { 
     System.out.println("Enter name of a Subject "); 
       String Sub1 = sc.next(); 
     System.out.println("Enter the Obtained marks of a Subject"); 
       int ObtM = sc.nextInt(); 


       if(ObtM<40) 
       { 
       System.out.println("Grade is F"); 
       System.out.println("GradePoint is 0"); 
       System.out.println("Remarks=Fail"); 
       } 
      else if(ObtM<=49&&ObtM>=40) 
       { 

       System.out.println("Grade is D"); 
       System.out.println("GPA is 1"); 
       System.out.println("Remarks=pass"); 
       } 
      else if(ObtM<=50&&ObtM>=64) 

       { 

       System.out.println("Grade is C"); 
       System.out.println("GPA is 2"); 
       System.out.println("Remarks=Satisfactory"); 
       } 
      else if(ObtM<=65&&ObtM>=79) 

       { 

       System.out.println("Grade is B"); 
       System.out.println("GPA is 3"); 
       System.out.println("Remarks=Good"); 

       } 
      else if(ObtM<=80&&ObtM>=100) 

       { 

       System.out.println("Grade is A"); 
       System.out.println("GPA is 4"); 
       System.out.println("Remarks=Excellent"); 
       } 
       int percentage=ObtM*100/100; 
       System.out.println("Percentage is "+percentage); 

       } 

      } 

}

+0

自己做你的任务! –

+1

您当前的代码以何种方式无法按预期工作?你卡在哪里?我们很乐意回答具体问题,但我们不提供辅导服务。 – David

+0

感谢这个美好的评论 –

回答

1

你在编程语言的面向对象,所以利用它!我会用参数编写作业分配的课程:课程名称,作业名称,成绩等。其优点在于,您可以将所有作业存储为数组,并循环显示想要显示的内容。所有的计算都可以在单独的赋值实例中处理。

该组织将帮助您清理代码并使问题更易于检测。请随时在Oracle文档中阅读更多关于这种编码风格的内容。

您的if声明中只有一个声明有效的原因是因为您已颠倒了所有符号。你要求你的程序识别不存在的数字,即:等级小于数字,也大于同一数字。通过切换你的小于和大于语法,你将实现你想要找到的东西。

例子:

if (ObtM <=50 && ObtM >= 64) 

变为

if (ObtM >=50 && ObtM <= 64) 
1

if声明是完全错误的。 if(ObtM<=50&&ObtM>=64)需要一个数字,超过51 比63.你要的条件是周围的其他方式(ObtM >= 50 && ObtM <= 64)。

注意你写的东西。