这是我的目标 - 你必须创建2个类: 1.学生班 属性 创建一个包含3个属性(实例变量)的Student类 ◦name(String) ◦期中(双) ◦sealExam(双) 方法 为每个属性定义setter / getters。因此,您必须总共创建3个setter和3个getter。 在midterm和finalExam的制定者中,你必须检查给定的等级是否有效。等级必须在0-100之间。如果无效,请输出错误消息“等级无效!” 定义一个方法getFinalGrade,它根据以下评分方案计算最终成绩。计算完毕后,返回最终成绩的结果。 ◦评分: ▪期中:40% ▪期末考试:60% 定义一个方法showGrades,它输出属性的细节。等级应显示为只有两位小数的数字。 (见例子) ◦输出示例:“姓名:Tom,Midterm:90.00,期末考试:80.00,最终成绩:82.00”
这是我到目前为止编写的代码:
public class Student {
private String name;
private double midterm;
private double finalExam;
private double finalGrade;
public Student(String n, double a, double m)
{
name = n;
midterm = a;
finalExam = m;
}
public String getName()
{
return (name);
}
public double getmidterm()
{
return (midterm);
}
if (midterm < 0)
{
midterm = 0;
System.out.println("The grade is invalid! Grade will be entered as 0.");
}
if (midterm >100)
{
midterm = 100;
System.out.println("The grade is invalid! Grade will be entered as 100.");
}
else
{
System.out.println("Midterm grade recorded." + midterm);
}
public double getfinalExam()
{
return (finalExam);
}
if (finalExam < 0)
{
finalExam = 0;
System.out.println("The grade is invalid");
}
if (finalExam > 100)
{
finalExam = 100;}
System.out.println("The grade is invalid! Grade will be entered as 100.");
}
else
{
System.out.println("Final Exam grade recorded." + finalExam);
}
public double getfinalGrade()
{
finalGrade = (midterm * .40) + (finalExam * .60);
return (finalGrade);
}
public double showGrades()
{
System.out.println("Name:" + name + "midterm:" + midterm + "Final Exam:" + finalExam);
}
public void setName(String studentName)
{
name = studentName;
}
public void setMidterm(double midtermGrade)
{
midtermGrade = midterm;
}
public void setFinal(double finalGrade)
{
finalGrade = finalExam;
}
代码:
public class GradeStudents{
Student[] students;
import java.util.Scanner;
GradeStudents(){}
public static void main(String[] args) {
String[] studentarr = new String[5];
for(double i = 0; i < 5; i++);
{ //insert what the for loop executes here}
}
}
}
答案 0 :(得分:0)
这符合你的问题吗?
public static void main(String[] args) {
Student[] studentarr = new Student[5];
for(double i = 0; i < 5; i++);
{
studentarr[i] = new Student(params...);
}
studentarr[0].someStudentMethod();
}
答案 1 :(得分:0)
最好的方法是我想用数据填充一些数组并运行代码以查看是否有输出或错误。
学生数据来自哪里?通过用户界面输入或文本,xml或json文件?
答案 2 :(得分:0)
看起来你在方法之外有一个If语句,因此程序可能会向你抛出错误/异常。
只是这段代码的一小部分
public double getmidterm()
{
return (midterm);
}
// Potentially an error here
if (midterm < 0)
{
midterm = 0;
System.out.println("The grade is invalid! Grade will be entered as 0.");
}
您可能希望将这些if语句放在方法中,并在测试类(main方法)中调用此方法。
此外,您正在定义get和set方法,但它们不返回值(在本例中):
public double showGrades()
{
System.out.println("Name:" + name + "midterm:" + midterm + "Final Exam:" + finalExam);
}
在这里你应该将一个double而不是println返回到控制台。
如果你有一个toString方法给回学生,你应该能够在你的循环中调用student.toString(),它将显示你想要的值。