尝试修复我的printf语句的问题 [英] Issue with trying to fix my printf statement

查看:82
本文介绍了尝试修复我的printf语句的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要在学生课堂上修复我的addQuiz().然后,在该类中,我将所有信息提取到我的prog2主目录中.除了两件事,我一切正常.我需要为我的addQuiz()固定公式,使其总计输入的点数,并在主行中修正while语句,以便我可以输入一个单词来告诉程序我已经完成测验.

这是我的主文件.

import java.util.Scanner;

public class Prog2 {

 public static void main(String[] args) {
  Scanner in = new Scanner(System.in);
  Student student = new Student();
  //creates array for quizzes
  double[] grades = new double[99];
  //counter for total number of quizzes
  int num = 0;

  //requests user to enter students name
  System.out.print("Enter name of student: ");
  String name = in .nextLine();

  //requests user to enter students quizzes
  System.out.print("Enter students quiz grades: ");
  int quiz = in .nextInt();

  while (quiz >= 1) {

   System.out.print("Enter students quiz grades: ");
   quiz = in .nextInt();
   grades[num] = quiz;
   num++;
  }
  //prints the name, total, and average of students grades
  System.out.println();
  System.out.println(name);
  System.out.printf("\nTotal: ", student.addQuiz(grades, num));
  System.out.printf("\nAverage: %1.2f", student.Average(grades, num));
 }
}

这是我的学生档案:

    public class Student {
private String name;
private int total;
private int quiz;
static int num;

public Student() {
    super();    
}

public String getName(){
    return name;
}
public void setName(String name){
    this.name = name;
}
public int getTotal() {
    return total;
}
public void setTotal(int total) {
    this.total = total;
}
public int getQuiz() {
    return quiz;
}

public void setQuiz(int quiz) {
    this.quiz = quiz;
}

public static double addQuiz( double[] grades, int num){
    int totalQuiz = 0;
    for( int x = 0; x < num; x++){
        totalQuiz += grades[x];
    }
            return totalQuiz;
    }
public static double Average( double[] grades, int num){
    double sum = 0;
    for( int x = 0; x < num; x++){
        sum += grades [x];
    }
    return (double) sum / num;
}
}

任何帮助将不胜感激!

解决方案

对于停止条件,您可以尝试这样的操作

String stopFrase="stop";
String userInput="";
int quiz;
//Other code
for(;;) //This basically means loop until I stop you
{
  System.out.print("Enter students quiz grades type 'stop' to finish:");
  userInput=in.nextLine();
  if(userInput.equals(stopFrace))
  {
    break;//Stop the loop
  }
  quiz= Integer.parseInt(userInput);
  //The rest of your code
}

您的addQuiz()方法似乎不错,如果您没有获得所需的结果,请检查您的参数,特别是确保该数字与输入的测验数目匹配.

I need to fix my addQuiz() in my student class. Then, with that class, I pull all the info into my main of prog2. I have everything working except two things. I need to get the formula fixed for my addQuiz() so it totals the amount of points entered, and fix the while statement in my main so that I can enter a word to tell the program that I am done entering my quizzes.

Here is my main file.

import java.util.Scanner;

public class Prog2 {

 public static void main(String[] args) {
  Scanner in = new Scanner(System.in);
  Student student = new Student();
  //creates array for quizzes
  double[] grades = new double[99];
  //counter for total number of quizzes
  int num = 0;

  //requests user to enter students name
  System.out.print("Enter name of student: ");
  String name = in .nextLine();

  //requests user to enter students quizzes
  System.out.print("Enter students quiz grades: ");
  int quiz = in .nextInt();

  while (quiz >= 1) {

   System.out.print("Enter students quiz grades: ");
   quiz = in .nextInt();
   grades[num] = quiz;
   num++;
  }
  //prints the name, total, and average of students grades
  System.out.println();
  System.out.println(name);
  System.out.printf("\nTotal: ", student.addQuiz(grades, num));
  System.out.printf("\nAverage: %1.2f", student.Average(grades, num));
 }
}

here is my student file:

    public class Student {
private String name;
private int total;
private int quiz;
static int num;

public Student() {
    super();    
}

public String getName(){
    return name;
}
public void setName(String name){
    this.name = name;
}
public int getTotal() {
    return total;
}
public void setTotal(int total) {
    this.total = total;
}
public int getQuiz() {
    return quiz;
}

public void setQuiz(int quiz) {
    this.quiz = quiz;
}

public static double addQuiz( double[] grades, int num){
    int totalQuiz = 0;
    for( int x = 0; x < num; x++){
        totalQuiz += grades[x];
    }
            return totalQuiz;
    }
public static double Average( double[] grades, int num){
    double sum = 0;
    for( int x = 0; x < num; x++){
        sum += grades [x];
    }
    return (double) sum / num;
}
}

Any help would be much appreciated!

解决方案

Well for the stop condition you could try something like this

String stopFrase="stop";
String userInput="";
int quiz;
//Other code
for(;;) //This basically means loop until I stop you
{
  System.out.print("Enter students quiz grades type 'stop' to finish:");
  userInput=in.nextLine();
  if(userInput.equals(stopFrace))
  {
    break;//Stop the loop
  }
  quiz= Integer.parseInt(userInput);
  //The rest of your code
}

Your addQuiz() method seems fine, if you are not getting the desired result please check your parameters, specifically make sure that number matches the number of quiz entered.

这篇关于尝试修复我的printf语句的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆