循环将执行用户指示的次数

时间:2013-09-26 22:03:27

标签: java

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

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

假设您有100%的出勤记录,您将获得所有出勤等级的5%。 使用教学大纲确定每个类别的权重,例如考试,测验和实验。因为你有完美的出勤率,所以总分增加5%。 假设:所有考试,实验和测验分数均超过100分。 样品运行: 

  

java CSE1341Grade

     

名字:詹姆斯

     

姓氏:Bond

     

你有多少考试成绩? 1

     

你有多少个测验成绩? 2

     

你有多少实验室成绩? 2

     

输入考试1分:90

     

输入测验1得分:80

     

输入测验2得分:80

     

输入实验室1得分:90

     

输入实验室2得分:90

     

总分:84.55

     

James Bond你的成绩是: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 个答案:

答案 0 :(得分:1)

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

在这里你可以看到差异

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

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

更新:由于foor循环中的索引并不重要,您可以将其用作:

 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: ");

答案 1 :(得分: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

    }

}

答案 2 :(得分:0)

的伪代码:

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

这应该为您提供如何操作的一般概念,即获取金额,并从中减去1直到达到0,每次获取数据并执行它需要做的事情。不要忘记确保n永远不等于小于零(无效),并且n是一个整数。否则,您希望函数只是提示用户输入金额,然后将该金额传递给实际使用它的函数。或者,创建一个迭代n次的函数,并将一个函数作为参数传递给它多次(更难以正确地执行)。

答案 3 :(得分: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();
}