繁体   English   中英

我需要在课堂上显示学生的数字标记以及他们的字母成绩。 我的代码不输出字母。 我怎样才能解决这个问题?

[英]I need to display a student's numerical mark in a class as well as their letter grade. My code does not output the letter. How can I fix this?

import java.io.*;
class finalGrade
{
    //declare variables
    String name;
    double quizTotal = 0;
    double midterm = 0;
    double exam = 0;
    double mark = 0;
    char grade;


    //initialize variables
    public finalGrade (String nameStudent, double quizMark, double midtermMark, double examMark)
    {
        name = nameStudent;
        quizTotal = quizMark;
        midterm = midtermMark;
        exam = examMark;
    }

    public double marks()
    {
        mark = ((exam * 0.25) + (midterm * 0.25) + (quizTotal * 0.50));

        System.out.println((name) + ", your mark is " + (mark) + " and you get a(n) " + (grade));

        if (mark >= 90)
        {
            return (grade) = 'A';
        }
        else if (mark >= 80 && mark < 90)
        {
            return (grade) = 'B';
        }
        else if (mark >= 70 && mark < 80)
        {
            return (grade) = 'C';
        }
        else if (mark >= 60 && mark < 70)
        {
            return (grade) = 'D';
        }
        else if (mark < 60)
        {
            return (grade) = 'F';
        }
        else
        {
            return (grade) = 'F';
        }


    }
}



class finalGradeTester
{
    public static void main(String[] args)
    {
    InputStreamReader inStream = new InputStreamReader(System.in);
    BufferedReader sub = new BufferedReader(inStream);

    finalGrade Student1 = new finalGrade("Student", 89, 100, 21);
    finalGrade Student2 = new finalGrade("Student", 34, 21, 9);
    finalGrade Student3 = new finalGrade("Student", 89, 100, 21);
    finalGrade Student4 = new finalGrade("Student", 89, 100, 21);
    finalGrade Student5 = new finalGrade("Student", 89, 100, 21);

    Student1.marks();
    Student2.marks();

    }

}

这应该计算分数,两次测试占25%,而一次考试占50%。 它可以很好地用于计算,但是在显示字母等级时为空白。 我不知道该如何解决。 运行代码时得到的输出是:学生,您的分数是74.75,您得到一个(n)学生,您的分数是24.5,您得到一个(n)

它不显示字母等级。

您在计算grade之前先进行打印。 另外,这里不需要返回任何内容。

public double marks()
{
    mark = ((exam * 0.25) + (midterm * 0.25) + (quizTotal * 0.50));

    if (mark >= 90)
    {
        grade = 'A';
    }
    else if (mark >= 80 && mark < 90)
    {
        grade = 'B';
    }
    else if (mark >= 70 && mark < 80)
    {
        grade = 'C';
    }
    else if (mark >= 60 && mark < 70)
    {
        grade = 'D';
    }
    else if (mark < 60)
    {
        grade = 'F';//This must be E
    }
    else
    {
        grade = 'F';
    }
    System.out.println((name) + ", your mark is " + (mark) + " and you get a(n) " + (grade));

}

同样,每次调用该方法时都没有理由计算markgrade 您可以使用私有方法计算成绩,然后从构造函数中调用它。

这是因为您返回了标记,而不是在System.out上也没有包含ot,如果标记<90,则无需重新验证,否则它将是A。

另外,类名具有大写字母,变量具有小写字母

import java.io.*;
class FinalGrade
{
    //declare variables
    String name;
    double quizTotal = 0;
    double midterm = 0;
    double exam = 0;
    double mark = 0;
    char grade;


    //initialize variables
    public FinalGrade (String nameStudent, double quizMark, double midtermMark, double examMark)
    {
        name = nameStudent;
        quizTotal = quizMark;
        midterm = midtermMark;
        exam = examMark;
    }

    public void marks()
    {
        mark = ((exam * 0.25) + (midterm * 0.25) + (quizTotal * 0.50));

        if (mark >= 90)
        {
            grade = 'A';
        }
        else if (mark >= 80)
        {
            grade = 'B';
        }
        else if (mark >= 70)
        {
            grade = 'C';
        }
        else if (mark >= 60)
        {
            grade = 'D';
        }
        else
        {
            grade = 'F';
        }

        System.out.println((name) + ", your mark is " + (mark) + " and you get a(n) " + (grade));




    }
}



class finalGradeTester
{
    public static void main(String[] args)
    {
    InputStreamReader inStream = new InputStreamReader(System.in);
    BufferedReader sub = new BufferedReader(inStream);

    FinalGrade student1 = new FinalGrade("Student", 89, 100, 21);
    FinalGrade student2 = new FinalGrade("Student", 34, 21, 9);
    FinalGrade student3 = new FinalGrade("Student", 89, 100, 21);
    FinalGrade student4 = new FinalGrade("Student", 89, 100, 21);
    FinalGrade student5 = new FinalGrade("Student", 89, 100, 21);

    student1.marks();
    student2.marks();

    }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM