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