【发布时间】:2015-05-18 07:08:59
【问题描述】:
我正在使用 Java Netbeans。我是面向对象编程(OOPG)的新手。这是我的第一个任务,我在函数中的一些计算方面遇到了一些问题。我提到了实验室练习。但我仍然没有发现错误。以下是我的代码:
//学生班
package student;
public class Student {
private String studentName
private int assignmentMarks;
private int practicalMarks;
private int examMarks;
private double overallMarks;
private String finalGrade;
public Student(){
}
public setStudent (String sName, int aMarks, int pMarks, int eMarks, double oMarks, String fGrade){
studentName = sName;
assignmentMarks = aMarks;
practicalMarks = pMarks;
examMarks = eMarks;
overallMarks = oMarks;
finalGrade = fGrade;
}
//Setters
public void setStudentName (String sn) {
studentName = sn;
}
public setAssignmentMarks (int am) {
assignmentMarks = am;
}
public setPracticalMarks (int pm) {
practicalMarks = pm;
}
public setExamMarks (int em) {
examMarks = em;
}
public setOverallMarks (om) {
overallMarks = om;
}
public setFinalGrade (fg) {
finalGrade = fg;
}
//Getters
public String getStudentName() {
return studentName;
}
public int getAssignmentMarks() {
return assignmentMarks;
}
public int getPracticalMarks() {
return practicalMarks;
}
public int getExamMarks() {
return examMarks;
}
public double getOverallMarks() {
return overallMarks;
}
public String getFinalGrade() {
return finalGrade;
}
//method to calculate overall marks
//assignment 25% + practical 25% + exam 50%
public double calOverallMarks (int am, int pm, int em){
double overallMarks = ( ((am/100)*25) + ((pm/100)*25) + ((em/100)*50) );
return overallMarks;
}
//method to calculate final grade by overall marks
public String calFinalGrade (double om) {
if (om >=90 ) {
return "A";
} else if (om >=70) {
return "B";
} else if (om >=50) {
return "C";
} else {
return ""F";
}
}
//method to display overall and finalgrade score for input
public void displayMarks(){
System.out.println("Overall Marks: " + overallMarks);
System.out.println("Final Grade: " + finalGrade);
}
}
//学生客户端类
package student;
import java.util.Scanner;
public class StudentClient {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String studentName;
int assignmentMarks;
int practicalMarks;
int examMarks;
double overallMarks =0;
String finalGrade;
int option;
int studentIndex=0;
Student[] studentList = new Student[10];
System.out.println("MENU- Select 2 to enter student details")
option = sc.nextInt();
if (option == 2) {
studentIndex++;
studentList [studentIndex] = new Student();
System.out.print("Student Name: ");
studentName = sc.nextLine();
System.out.print("Assignment Marks: ");
assignmentMarks = sc.nextInt();
System.out.print("Practical Marks: ");
practicalMarks = sc.nextInt();
System.out.print("Exam Marks: ");
examMarks = sc.nextInt();
overallMarks = studentList[studentIndex].calOverallMarks(assignmentMarks, practicalMarks, examMarks);
finalGrade = studentList[studentIndex].calFinalGrade(overallMarks);
studentList[studentIndex].setStudent(studentName, assignmentMarks, practicalMarks, examMarks, overallMarks, finalGrade);
studentList[studentIndex].writeOutput();
}
}
运行学生客户端类后我收到的输出是:
Student Name: Pete
Assignment Marks: 50
Practical Marks: 95
Exam Marks: 85
Overall Marks: 0.0
Final Grade: F
我可以知道我在哪个部分做错了吗?
感谢您的帮助。
【问题讨论】:
标签: java arrays function oop netbeans