2013-09-26 3 views
-2

notre objectif d'affectation est de mettre en œuvre 3 étudiants grades dans deux classes différentes (étudiants, grades) et trouver le moyen ici est ce que j'ai jusqu'à présent,Im ayant des problèmes avec « clavier » dans mon programme

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; 
    } 
    } 

chaque fois que je tente de lancer, je continue à obtenir cette erreur:

Exception dans le thread « principal » java.lang.Error: problème de compilation non résolues: clavier ne peut pas être résolu

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

toute aide serait grandement appréciée.

+0

Exactement comme il est dit .. Qu'est-ce que 'Keyboard'? – Maroun

+1

Si 'Keyboard' est un scanner que je suspecte, vous ne le déclarez ni ne l'initialisez. –

+0

@WilliamGaul Je pense que c'est une classe externe ou quelque chose .. – Maroun

Répondre

-1

Utilisez

Scanner sc = new Scanner(System.in); 

au lieu de claviers

+3

downvoters laisser un commentaire – SpringLearner

1

Je pense par Keyboard que vous voulez utiliser Scanner dans votre programme.

comprennent la ligne suivante dans votre fichier

import java.util.Scanner;

et créer une instance de celui-ci.

Scanner keyboard = new Scanner(System.in);

Ou vous avez une autre API qui a une classe appelée Keyboard importer ensuite ce fichier dans votre programme.

Note: Et par la façon dont Scanner ne dispose pas d'une méthode readInt(), il a seulement 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

merci pour la réponse, mais pourriez-vous s'il vous plaît expliquer où je devrais inclure 'import java.util.scanner;' dans le fichier? Im assez nouveau à Java – gvnvhri

+0

en haut du fichier juste après la déclaration de 'package' si vous en avez. – smajlo

+0

@gvnvhri puisque toutes vos classes sont publiques, vous devez définir chaque classe dans son propre fichier et dans n'importe quelle classe qui utilise le 'Scanner', vous devez inclure' import java.util.Scanner'.l'instruction import doit être la première ligne de votre fichier (si vous n'utilisez pas de paquetages) –

0

Vous semblez manquer l'importation pour les utils clavier. Java: Input strings with keyboard class

Essayez de l'importer, devrait faire l'affaire.

P.S: Cela a déjà été discuté dans un autre sujet.

Questions connexes