利用JAVA编写程序,用一维数组保存20个学生的某门课程的成绩,计算平均成绩,并输出。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用JAVA编写程序,用一维数组保存20个学生的某门课程的成绩,计算平均成绩,并输出。相关的知识,希望对你有一定的参考价值。

以下程序完成从键盘输入20个学生的成绩求平均值,不过有一个不足就是输入的成绩不能是小数,还得改改。

import java.util.Scanner;
public class Results
//从键盘获取成绩
public float[] cj ()

System.out.println("请输入成绩");
Scanner input=new Scanner(System.in);
//float f=input.nextInt();
float [] number = new float[20];
for(int i =0;i<20;i++)

number[i]=input.nextInt();
if(i<19)
System.out.println("数组number["+i+']'+"=:"+number[i]+",请输入成绩:");
else
System.out.println("数组number["+i+']'+"=:"+number[i]+'。');

return number;


//求平均成绩
public void average(float [] number)

float n=0,av=0;
for(int j=0;j<number.length;j++)

//获得总成绩
n+=number[j];

av=n/number.length;
System.out.println("平均成绩:"+av);



public static void main(String [] args)

Results r=new Results();

r.average(r.cj());

参考技术A public class Chengji
public static void main(String args[ ]) throws IOException
int a[ ]=50,67,89,98,78,52,82,53,74,90,60,58,92,73,80,85,50,67,89,98;
float ave=0;
for(int i=0;i<a.length;i )
ave=ave i;

ave=ave/20.0;
System.out.println(ave);

参考技术B [test]
include stdio.h
int swap(int a,int b)
int t;
t=a;
a=b
b=t;
int main()
int x,y;
scanf("dd,x,y);
swap(x,y);
printf("d d\n",x,y);
return 0;

成绩簿 Java 程序。帮忙打电话上课?

【中文标题】成绩簿 Java 程序。帮忙打电话上课?【英文标题】:GradeBook Java Program. Help calling class? 【发布时间】:2015-01-09 20:00:05 【问题描述】:

任务如下。

一位老师有五个学生参加了四次考试。教师根据学生的四次考试成绩的平均值,使用以下等级量表为学生分配一个字母等级。

90-100:  A
80-79:  B
70-79:  C
60-69:  D
0-59:  F

编写一个类,该类在 arraylist 对象上使用 String 数组来保存五个学生的姓名,一个由五个字符组成的数组来保存五个学生的字母成绩,以及五个数组,每个数组四个 doubles 来保存每个学生的集合考试分数。该类应具有返回学生姓名、平均考试成绩和基于平均成绩的字母成绩的方法。

在允许用户输入每个学生的姓名和他或她的四个测试分数的程序中演示课程。然后它应该显示每个学生的平均考试成绩和字母成绩。

程序不应接受低于 0 或高于 100 的分数

以下代码在这里:

学生班:

public class Student
    private String name;
    private double[] test = new double[4];


    public Student()
        name = " ";
    

    public Student(String n, double[] t)
        name = n;
        test = t;
    

    public void setName(String n)
    
        name = n;
    

    public String getName()
        return name;
    

    public void setTest(double t,int i)
    
        test[i] = t;
    

    public double getTest(int i)
    
        return test[i];
    


    public double getTestAvg()

        double sum = 0;
        double avg;
        for(int i = 0; i < test.length; i++)
        
            sum += test[i];
        
         avg = sum / test.length;
         return avg;
    

    public char getLetterGrade()

        double average = getTestAvg();
        char grade=0;

        if(average >= 90)
            grade = 'A';
        else if (average >= 80)
            grade = 'B';
        else if (average >= 70)
            grade = 'C';
        else if (average >=60)
            grade = 'D';
        else if (average < 60)
            grade = 'F';

        return grade;
    

    public String toString()
        String str = "";
        str += "\nName of student: " + name;
        str += "\nAverage test score: " + getTestAvg();
        str += "\nLetter grade: " + getLetterGrade();
        return str;
    
       

主程序:

import java.util.Scanner;
import java.io.*;

public class GradeBook 

    public static void main(String[] args) throws IOException 

        Student[] students = new Student[5];

        getStudentData(students);

    

    public static double getStudentData(Student[] array) 
        Scanner scan = new Scanner(System.in);
        String[] student = new String[5];
        double[] test = new double[4];
        for (int i = 0; i < student.length; i++) 
            System.out.println("Enter the name of the student : ");
            student[i] = scan.nextLine();
            for (int j = 0; j < test.length; j++) 
                System.out.println("Enter score " + (j + 1) + " for the student");
                test[j] = scan.nextDouble();
                scan.nextLine();
            
            array[i] = new Student(student[i], test);

        
        return 0;

    

问题是,我可以输入所有信息,但是输入所有数字后什么都不会显示。任何帮助将不胜感激!

【问题讨论】:

你卡在哪里了?你调试过代码吗? (在开头的某处放置一个断点,然后单步执行,看看它通向哪里)。 您需要做的第一件事是获得一个 IDE(Eclipse、NetBeans 等)。然后学习如何使用调试器,一次一行地逐步执行代码,检查每一步的变量值,直到你发现它没有按照你的预期运行。您应该在此处发布之前先执行此操作,并且仅在调试时您无法理解问题时发布。请务必解释您在调试期间发现的内容。就目前而言,这个问题确实离题了,因为它可以概括为代码转储加上“这不起作用”。 没有任何错误。我使用日食。只是我不知道如何让程序调用其他课程,以便提高课程分数/成绩。 您的代码中没有要打印的内容。您似乎确实知道如何通过System.out.println 向用户输出,所以您是否尝试过迭代新的学生数组并将某些内容打印到字符串?您究竟希望展示什么? 在顶部显示成绩。我希望在代码末尾创建一个数组列表,以数组形式显示学生姓名,后跟他们的字母等级。 【参考方案1】:

您没有看到任何显示的内容,因为您从未调用显示任何内容。 您正在填充“数组”,因此您现在需要对其进行迭代。

在外部 for 循环(第一个)之后,您需要遍历填充的数组并打印出学生对象。这将起作用,因为您已经有一个 toString() 方法。

例如:

for(Student student : array)

    System.out.println(student);

【讨论】:

感谢您的回复!很高兴您能理解,但问题是,我将如何在代码中执行此操作? @KennyBowen 查看 scrappedcola 的评论 嗯,像for each student in students System.out.println(student); 这样的东西不够吗?

以上是关于利用JAVA编写程序,用一维数组保存20个学生的某门课程的成绩,计算平均成绩,并输出。的主要内容,如果未能解决你的问题,请参考以下文章

用java编写程序定义一个10个整数一维数组并赋有初值,同时找出一维数组中的最

用C语言编写学生信息管理程序(给出五个主要函数就OK啦!)

用java编写一个程序,将10个整数放到一维数组中,并按从大到小排序后输出

Java 用两个一维数组实现双色球彩票

编写函数show,输出一个学生的成绩数组,该数组中有六个学生的记录,用主函数输入记录,show函数输出

用JAVA编写一个程序,计算一维数组中的最大值、最小值及其差值