首页 文章

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

提问于
浏览
3

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

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

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

java CSE1341Grade名字:詹姆斯姓氏:邦德你有多少考试成绩? 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 回答

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

    伪代码:

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

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

  • 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();
    }
    

相关问题