2013-09-26 17 views
-2

我们的任务目标是实现两个不同的类(学生,年级)3年级学生,发现这里的平均 是我迄今为止,林具有在我的计划“键盘”麻烦

public class Program01 
    { 
    public static void main(String[] args) 
    { 

      Student bob, john, matt; 
      Grades grades; 

      grades = new Grades(); 

      double bobgrade, johngrade, mattgrade; 

      bob = new Student(); 
      john = new Student(); 
      matt = new Student(); 

      bob.setup(); 
      john.setup(); 
      matt.setup(); 

      bob.display(); 
      john.display(); 
      matt.display(); 

      bobgrade = bob.overallGrade(); 
      johngrade = john.overallGrade(); 
      mattgrade = matt.overallGrade(); 

      grades.average(bobgrade, johngrade, mattgrade); 



    System.out.println("The overall grade for the class is: " + grades.theSectionAverage); 
      } 






public class Student 
{ 
    Grades grades; 
    String fullName, firstName, lastName, name; 
    int studentProgramGrade, studentExamGrade; 

    public void setup(){ 
    setName(); 
    setGrades(); 
    } 

    public void setName() 
    { 

    System.out.print("Please, enter the student's name in the form of Doe, John or Smith, Jane:"); 
    fullName = Keyboard.readString(); 

    firstName = fullName.substring(fullName.indexOf(" ") + 1, fullName.length()); 
    lastName = fullName.substring(0, fullName.indexOf(",")); 


    name = firstName + " " + lastName; 
    } 

    public void setGrades() 
    { 
    studentExamGrade = grades.setupExam(name); 
    studentProgramGrade = grades.setupProgram(name); 
    } 

    public void display() 
    { 
    System.out.println(name + " " + grades.display()); 
    } 

    public double overallGrade() 
    { 
    final double PROGRAM_WEIGHT = 0.40; 
    final double EXAM_WEIGHT = 1 - PROGRAM_WEIGHT; 

    double theOverallGrade; 

    theOverallGrade = studentProgramGrade * PROGRAM_WEIGHT + studentExamGrade * EXAM_WEIGHT; 

    return theOverallGrade; 
    } 
} 






    public class Grades { 


    int programGrade, examGrade; 
    double theSectionAverage; 

    public int setupExam(String studentname) 
    { 
    System.out.print("Please, enter the exam grade for " + studentname + ":"); 
    examGrade = Keyboard.readInt(); 


    return examGrade; 
    } 

    public int setupProgram(String studentname) 
    { 
    System.out.print("Please, enter the program grade for " + studentname + ":"); 
    programGrade = Keyboard.readInt(); 

    return programGrade; 
    } 

    public String display() 
    { 
    return programGrade + " " + examGrade; 
    } 

    public double average(double bobgrade, double johngrade, double mattgrade) 
    { 
    theSectionAverage = bobgrade + johngrade + mattgrade/3; 

    return theSectionAverage; 
    } 
    } 

每当我尝试运行此,我不断收到此错误:螺纹

异常“主要” java.lang.Error的:未解决的问题,编译: 键盘不能得到解决

at Student.setName(Student.java:18) 
at Student.setup(Student.java:10) 
at Program01.main(Program01.java:19) 

任何帮助将不胜感激。

+0

正如它所说..什么是'键盘'? – Maroun

+1

如果'键盘'是一个我怀疑它是扫描仪,你既不声明也不初始化它。 –

+0

@WilliamGaul我认为这是一个外部类或什么.. – Maroun

回答

-1

使用

Scanner sc = new Scanner(System.in); 

代替键盘

+3

downvoters发表评论 – SpringLearner

1

我认为你想在你的程序中使用ScannerKeyboard

包括以下行的文件

import java.util.Scanner;

,并创建它的一个实例。

Scanner keyboard = new Scanner(System.in);

或者你有,有一个叫Keyboard然后将该文件导入到你的程序类的一些其他的API。

注:顺便说Scanner没有readInt()方法,它只有nextInt()

This error may happen when you use Eclipse as IDE and try to run code that doesn't even compile. Check your Problems view in Eclipse, and fix the compilation errors before executing the application.

+0

谢谢你的回答,但请你解释一下我应该在哪里加入'import java.util.scanner;'在文件中?如果你有'package'声明,那么在文件顶部的java – gvnvhri

+0

相当新。 – smajlo

+0

@gvnvhri因为你的所有类都是公共的,所以你应该在每个类的自己的文件中定义每个类,在任何使用'Scanner'的类中你都必须包含'import java.util.Scanner'。import语句应该是文件中的第一行(如果你不使用包) –