Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在这个程序上执行算法_Java_Algorithm - Fatal编程技术网

Java 如何在这个程序上执行算法

Java 如何在这个程序上执行算法,java,algorithm,Java,Algorithm,该计划将计算学生的最终成绩。每个学生都持有他/她的期中成绩、第二季度成绩和期末考试记录。期末成绩为期中成绩的25%,第二季度成绩的30%,期末考试的45%。该计划将询问10名学生的数据。每个学生的数据包括姓名、组别、期中成绩、第二季度成绩和期末考试 我将如何以表格形式显示学生的成绩 这是gradesummary.java的代码 public class gradesummary { public static void main(String args[]){ Scanner cin =

该计划将计算学生的最终成绩。每个学生都持有他/她的期中成绩、第二季度成绩和期末考试记录。期末成绩为期中成绩的25%,第二季度成绩的30%,期末考试的45%。该计划将询问10名学生的数据。每个学生的数据包括姓名、组别、期中成绩、第二季度成绩和期末考试

我将如何以表格形式显示学生的成绩

这是gradesummary.java的代码

public class gradesummary {
public static void main(String args[]){
    Scanner cin = new Scanner(System.in);
    Vector<Student> list = new Vector<>();

    for(int x=0; x<10 ;x++){
        Student s = new Student();
        System.out.print("Name: ");
        s.name = cin.nextLine();
        System.out.print("Section: ");
        s.section = cin.nextLine();
        System.out.print("Midterm Grade: ");
        s.midgrade = cin.nextDouble();
        System.out.print("Second Quarter: ");
        s.secondqtr = cin.nextDouble();
        System.out.print("Final Exam: ");
        s.finexam = cin.nextDouble();

        //save s in data collection
        list.add(s);

    }

    for(int x = 0; x<10; x++){
    //what will i do here next?
        Student xtt = list.get(x);
    }
}
}
我想要这样的输出

Name        Midterm Grade    Second Quarter    Final Exam    Final Grade
Student2        80               79.69            85           87.674
Student2        78               77.69            81           79.257
Student3        88               87               89           88.15
Student4        88.67            84               86.78        86.4185   
Student5        98               90               94           93.8
Student6        93               91               90           91.05
Student7        84               78               87           83.55
Student8        82               86.4             89           86.47
Student9        72               79               81           78.15
Student10       85.34            81               83           82.985

我建议你把数据直接读入学生的领域。为此,只能将Scanner对象传递给学生构造函数

您只需要以下内容:

public Student (Scanner sc){
    name = sc.next();
    section = sc.next()
    .
    .
    . 
}
阅读完学生记录后,请确保关闭扫描仪


您还应该查看(an)以打印表格。

您应该这样写:

for(Student student: list){

    System.out.printf("%-8s   %-8s   %-8s  %-8s%n", "Name", "Midterm Grade", "Second Quarter", "Final Exam");

    System.out.printf("%1d  -8s   %7.1f   %7.1f   %7.1f%n", student.get...);
}
最后的数学成绩是:

float finalGrade=(学生获取(FinalExam)*45/100)+ (学生成绩(期中成绩)*20/100…)


您会注意到一些变化,但我的看法是:

public class GradeSummary {
    public static void main(String args[]) {
        Scanner cin = new Scanner(System.in);
        List<Student> list = new ArrayList<>();

        for (int x = 0; x < 10; x++) {
            Student s = new Student();
            System.out.print("Name: ");
            s.setName(cin.nextLine());
            System.out.print("Section: ");
            s.setSection(cin.nextLine());
            System.out.print("Midterm Grade: ");
            s.setMidterm(cin.nextDouble());
            System.out.print("Second Quarter: ");
            s.setSecondQuarter(cin.nextDouble());
            System.out.print("Final Exam: ");
            s.setFinalExam(cin.nextDouble());
            list.add(s);
        }

        for (Student student : list) {
            System.out.println(String.format("Name: %s, Final Grade: %s", student.getName(), student.getWeightedGrade()));
        }
    }
}

您希望结果以表格形式从控制台显示,还是以某种UI显示?如果要在控制台中打印,@RudiKershaw我希望结果显示在Eclipse的控制台上。我在编写java程序时使用Eclipse。您希望使用java的输出格式。例如,请参阅。java中的语法是
for
,而不是
foreach
@PaulRichter我将如何执行计算成绩的算法。我已经更新了我的帖子,介绍了我的输出情况。你能帮助我吗?
public class GradeSummary {
    public static void main(String args[]) {
        Scanner cin = new Scanner(System.in);
        List<Student> list = new ArrayList<>();

        for (int x = 0; x < 10; x++) {
            Student s = new Student();
            System.out.print("Name: ");
            s.setName(cin.nextLine());
            System.out.print("Section: ");
            s.setSection(cin.nextLine());
            System.out.print("Midterm Grade: ");
            s.setMidterm(cin.nextDouble());
            System.out.print("Second Quarter: ");
            s.setSecondQuarter(cin.nextDouble());
            System.out.print("Final Exam: ");
            s.setFinalExam(cin.nextDouble());
            list.add(s);
        }

        for (Student student : list) {
            System.out.println(String.format("Name: %s, Final Grade: %s", student.getName(), student.getWeightedGrade()));
        }
    }
}
public class Student {
    private String name;
    private String section;
    private Double midterm;
    private Double secondQuarter;
    private Double finalExam;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSection() {
        return section;
    }

    public void setSection(String section) {
        this.section = section;
    }

    public Double getMidterm() {
        return midterm;
    }

    public void setMidterm(Double midterm) {
        this.midterm = midterm;
    }

    public Double getSecondQuarter() {
        return secondQuarter;
    }

    public void setSecondQuarter(Double secondQuarter) {
        this.secondQuarter = secondQuarter;
    }

    public Double getFinalExam() {
        return finalExam;
    }

    public void setFinalExam(Double finalExam) {
        this.finalExam = finalExam;
    }

    public Double getWeightedGrade()
    {
        return this.midterm * .25 + this.secondQuarter * .30 + this.finalExam * .45;
    }
}