3

编写一个程序,根据 CSE 1341 教学大纲计算当前成绩。程序应该提示用户输入他们的名字和姓氏。然后它将这些名称作为字符串传递给 CSE1341Grade 类的第二个方法。第二种方法的名称将是 calcGrade。此方法将提示用户输入用户输入的考试分数计数、测验分数计数和实验室分数计数。

然后,它将利用重复结构根据之前输入的计数提示考试成绩、测验成绩和实验成绩。例如,如果用户输入的考试分数计数为 2;然后程序将循环2次输入两个考试成绩;同样适用于测验的计数和实验室成绩的计数。

假设您有 100% 的出勤率,您将获得全部 5% 的出勤率。使用教学大纲来确定每个类别的权重,例如考试、测验和实验。由于您的出勤率很高,因此总分增加 5%。假设:所有考试、实验和测验的分数都超过 100 分。示例运行:</p>

java CSE1341等级

姓名:詹姆斯

姓名:邦德

你有多少考试成绩?1

你有多少测验成绩?2

你有多少个实验室成绩?2

进入考试 1 分数:90

输入测验 1 分数:80

进入测验 2 分数:80

进入实验室 1 分数:90

进入实验室 2 分数:90

总分:84.55

詹姆斯邦德 你的成绩是:B

^^这是我的家庭作业,这是我到目前为止所做的

import java.util.Scanner;

public class CSE1341Grade
{
    public static void main(String [] args)
    {
        //set up Scanner for user input, prompt for first name, define variable, and print      response
        Scanner s = new Scanner(System.in);
        System.out.print("First name: ");
        String first = s.nextLine();
        System.out.printf(" %s\n", first);

        //prompt user for last name, define variable, and print response
        System.out.print("Last name: ");
        String last = s.nextLine();
        System.out.printf(" %s\n", last);
    }

    public static void calcGrade(String first, String last)
    { 
        //prompt user for number of exam grades, define exam variable, print response
        System.out.print("How many exam grades do you have? ");
        String exam = s.nextLine();
        System.out.printf(" %s\n", exam);

        //prompt user for number of quiz grades, define quiz variable, print response
        System.out.print("How many quiz grades do you have? ");
        String quiz = s.nextLine();
        System.out.printf(" %s\n", quiz);

        //prompt user for number of lab grades, define lab variable, print response
        System.out.print("How many lab grades do you have? ");
        String lab = s.nextLine();
        System.out.printf(" %s\n", lab);

        while (exam != -1)
        {
            System.out.print("Enter " exam 1 " score: ", ++exam)



        //define variables for computations
        int score = 0;
        int grade = 0;

        //if statement to determine the final letter grade
        if(score >= 90 && score <=100){
            grade = 'A'; }
        else if(score >=80 && score < 90){
            grade = 'B'; }
        else if(score >= 70 && score < 80){
            grade = 'C'; }
        else if(score >=60 && score < 70){
            grade = 'D'; }
        else {
            grade = 'F'; }
    }
}

我的问题是弄清楚如何创建一个循环来提示用户需要多少考试成绩。

4

4 回答 4

1

我根据评论对您的代码进行了一些更改..

在这里你可以看到差异

http://www.mergely.com/LIckVifT/

注意:它仍然没有完成你的作业:-)

更新:由于 foror 循环中的索引并不重要,您可以这样使用它:

 for (int i = 1; i <= examsCount; i++) {
      // using i+1 to print starting from 1 instead of 0
      System.out.print("Enter " + i + " score: ");

代替

for (int i = 0; i < examsCount; i++) {
      // using i+1 to print starting from 1 instead of 0
      System.out.print("Enter " + (i + 1) + " score: ");
于 2013-09-26T22:32:13.503 回答
0

伪代码:

function(int n) {
    for (i = n, i > 0, i--) {
        \\prompt user
    }
}

这应该让您大致了解如何执行此操作,即取金额,然后从中减去 1,直到达到 0,每次获取数据并执行所需的操作。不要忘记确保n永远不小于零(无效),这n是一个整数。否则,最好让函数简单地提示用户输入金额,然后将该金额传递给实际使用它的函数。或者,创建一个迭代n次数并多次调用作为参数传递给它的函数(更难正确执行)的函数。

于 2013-09-26T22:13:31.493 回答
0

像这样的东西应该适合你。

System.out.println("Please enter the number of exam grades you want to enter");
int grade_count = s.nextInt();
int [] grades = new int[grade_count];

for(int i =0; i<grade_count; i++){
System.out.println("Enter grade for "+i+1 +"Exam");
grades[i] = s.nextInt();
}
于 2013-09-26T22:15:06.303 回答
0

我喜欢做一个循环并继续询问用户输入,直到我得到我想要的结果:

public static void main(String[] args) {

    Scanner input = new Scanner(System.in);

    boolean shouldContinue = true;

    while(shouldContinue) {

        // do program logic

        System.out.print("Should we continue? [Y or N] >> ");

        if (input.nextLine().equalsIgnoreCase("N")) {

            shouldContinue = false;

        }

    }

}

这是一种相对“结构化”的方式来进行交互循环并根据用户的需要一遍又一遍地继续运行程序。

-- UPDATE --

要进行一些您提前知道的迭代,只需将其通过管道传输到您的计数器中以进行循环:

public static void main(String[] args) {

    Scanner input = new Scanner(System.in);

    System.out.print("Number of grades to enter [number] : ");

    int numberOfTimesToIterate = input.nextInt();

    for (int i = 0; i < numberOfTimesToIterate; i++) {

        // do stuff here

    }

}
于 2013-09-26T22:11:29.280 回答