0

how can I satisfy all the conditions here? can't find any example online. I just don't know what code to use. I tried doing some coding but I know it was way off to what was actually ask to me. The problem was

"Write a java class called Student. The Student class will have four data members: name (astring), age (an int), semesterNo (an int), and GPA (a float). Write a java program to test your Student class. Your program should: Create three Student objects, enter their name, age, semesterNo (assuming a value from 1 to 8), and GPA(assuming value from 0.0 to 4.0) and display the data for each Student. Continuing the Student class, calculate and display the average GPA of the three Students.(user input required)"

and the code I come up was `

import java.util.Scanner;

class Student {

  public static void main(String[] args) {
    
    String name, name1, name2;
    int age1, age2, age3, semesterNo1, semesterNo2, semesterNo3;
    float GPA1, GPA2, GPA3, Average;
  
    
   Scanner in = new Scanner(System.in);        
    System.out.print("Name:");
    name = in.nextLine();
    System.out.print("Age:");
    age1 = in.nextInt();
    System.out.print("Semester:");
    semesterNo1 = in.nextInt(9);
    System.out.println("GPA:");
    GPA1 = in.nextFloat(); 
   
   Scanner input = new Scanner(System.in);
    System.out.print("Name:");
    name1 = input.nextLine();
    System.out.print("Age:");
    age2 = input.nextInt();
    System.out.print("Semester:");
    semesterNo2 = input.nextInt(9);
    System.out.println("GPA:");
    GPA2 = input.nextFloat(); 
    
    Scanner inputs = new Scanner(System.in);
    System.out.print("Name:");
    name2 = inputs.nextLine();
    System.out.print("Age:");
    age3 = inputs.nextInt();
    System.out.print("Semester:");
    semesterNo3 = inputs.nextInt(9);
    System.out.println("GPA:");
    GPA3 = inputs.nextFloat(); 
    
   Average = (GPA1 + GPA2 + GPA2) / 3;
   System.out.println("Average GPA:" + Average); 

  }

}

`

1 Answer 1

0

According to your question, you should create an object of the student class. So student class should contain

class Student {
   // data members
    String name;
    int age, semester number;
    float GPA;
    
}

And from main method you should be creating object of student class like:

Student std1 = new Student();
Student std2 = new Student();
Student std2 = new Student();

Now you can access the data members of each object like:

std1.name = "Some name"  // std1.name = in.nextLine();
std1.age = // some age
std1.GPA = // your GPA

You can do the same for each object . Use appropriate way of taking input from the scanner object as you do and store it as shown above.

Finally calculate GPA and display:)

[Edited] Simple Example:

// import Scanner class for console base input
import java.util.Scanner;

// your student class
class Student {
    // data members
    String name;
    int age;
    float GPA;
    

    // display method 
    void display() {
        System.out.println("Your name: "+this.name);
        System.out.println("Your age: "+this.age);
        System.out.println("Your GPA: "+this.GPA+"\n");
    }
}

// class which contain main method (enty point)
class StudentInfo {
    public static void main(String[] args) {
        // create object of scnner 
        Scanner in = new Scanner(System.in);

        // create three different object of student
        Student std1 = new Student();
        Student std2 = new Student();
        Student std3 = new Student();

        // new set data for student
        System.out.println("Enter name, age and GPA of student:");

        //for first student
        std1.name = in.next();
        std1.age = in.nextInt();
        std1.GPA = in.nextFloat();

        // for second student
        System.out.println("Enter name, age and GPA of student:");
        std2.name = in.next();
        std2.age = in.nextInt();
        std2.GPA = in.nextFloat();

        // for third student
        System.out.println("Enter name, age and GPA of student:");
        std3.name = in.next();
        std3.age = in.nextInt();
        std3.GPA = in.nextFloat();

        // display info of each student
        std1.display();
        std2.display();
        std3.display();

        // now calculate Average GPA and display
        float avg = (std1.GPA + std2.GPA + std3.GPA)/3;
        System.out.println("Average GPA: "+ avg);


    }
}
Sign up to request clarification or add additional context in comments.

3 Comments

thanks man, but I get that part, what I don't was how to write the scanner input in that scenario. hence my code doesn't really create objects. what I want to do was after I run the code, that's when ill input the value for each object. so the output would be like my code above but it just makes it an object. sorry if I can't explain it enough, I tried my best to explain it in english.
@AlainTristanLado take a look at my edited answer with an example and try to implement it in your own way.
thanks man! now I get it, I should have tried that first before trying more complicated method

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.