oop - 如何同时应用 Scanner 和多个对象?- 新手
问题描述
我怎样才能满足这里的所有条件?在网上找不到任何示例。我只是不知道要使用什么代码。我尝试进行一些编码,但我知道这与实际要求我的内容相去甚远。问题是
“编写一个名为 Student 的 java 类。Student 类将有四个数据成员:name(字符串)、age(一个 int)、semesterNo(一个 int)和 GPA(一个 float)。编写一个 java 程序来测试您的 Student 类. 您的程序应该: 创建三个 Student 对象,输入他们的姓名、年龄、semesterNo(假设值从 1 到 8)和 GPA(假设值从 0.0 到 4.0)并显示每个 Student 的数据。继续 Student 类,计算并显示三个学生的平均 GPA。(需要用户输入)"
我想出的代码是`
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);
}
}
`
解决方案
根据您的问题,您应该创建一个学生类的对象。所以学生类应该包含
class Student {
// data members
String name;
int age, semester number;
float GPA;
}
从 main 方法中,您应该创建学生类的对象,例如:
Student std1 = new Student();
Student std2 = new Student();
Student std2 = new Student();
现在您可以访问每个对象的数据成员,例如:
std1.name = "Some name" // std1.name = in.nextLine();
std1.age = // some age
std1.GPA = // your GPA
您可以对每个对象执行相同的操作。使用适当的方式从扫描仪对象中获取输入,并如上所示存储它。
最后计算GPA并显示:)
[已编辑] 简单示例:
// 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);
}
}
推荐阅读
- java - 在 Spring 4 中运行请求范围之外的代码时,请求范围 bean 始终可用
- eclipse - Eclipse Che 的前端插件无法启动
- swiftui - 当键盘出现时,表单中的 SwiftUI DatePicker 会消失
- dhall - 在 dhall 中定义复杂类型的列表
- php - Laravel 部署理念
- java - API throwing StackOverflow Error with a @OneToMany Relationship
- ffmpeg - 使用 ffmpeg 从网络摄像头拆分实时视频流
- django - 使用 django static 从 GCP 存储桶获取背景图像
- reactjs - backgroundColor 和 onClick 在基本 React 应用程序中不会生效 React JS
- r - 我在时间序列图中看不到完整的日期标签,只有几个月