作业帮我看看那里错误,平均成绩是0;
package com.imooc.assgnmentpacksge;
import java.util.InputMismatchException;
import java.util.Scanner;
public class StudetScoreManage {
private static float[] f = null;
/**
* 从键盘输入,初始化数学成绩存放到数组中,并对数组中的初始化数学成绩进行管理
*/
public float[] initScore() {
Scanner sc = new Scanner(System.in);
int len=0;
try {
System.out.println("请输入要保存的数学的成绩");
len=sc.nextInt();
} catch (InputMismatchException e) {
System.out.println("输入的数据格式有误,不能有非数字!");
sc.next();
}
float[] f=new float[len];
for (int i = 0; i < f.length; i++){
System.out.println("请输入第" + (i + 1) + "个数据:");
sc.nextFloat();
}
return f;
}
/**
* 求平均成绩
* @return
*/
public float average(float[]f){
float sum=0;
float average=0;
for (int i=0; i<f.length;i++) {
sum=sum+f[i];
average=sum / f.length;
}
return average;
}
/**
* 统计成绩大于85分的人数
*/
public int count(float[] f) {
String str="";
int count=0;
for(int i=0;i<f.length;i++) {
if(i>85) {
str=str+f[i]+"";
count++;
}
}
if(count==0) {
System.out.println("成绩大于85分的人!");
}else {
System.out.println("成绩大于85分的人数为!"+count+"人");
}
return count;
}
/**
* 提示信息
*/
public void displayMenu() {
System.out.println("********************************************");
System.out.println(" 1--初始化数学成绩");
System.out.println(" 2--求成绩的平均值");
System.out.println(" 3--统计成绩大于85分的人");
System.out.println(" 4--修改指定位置处的成绩");
System.out.println(" 5--打印输出所有成绩");
System.out.println(" 0--退出");
System.out.println("********************************************");
}
/**
* 修改指定位置处成绩
*/
public void update(float[] f, int index, float newScore) {
f[index]=newScore;
}
/**
* 打印输出所有成绩
*/
public void displayAllScore(float[] f) {
System.out.println("成绩为:");
for (int i = 0; i <f. length; i++) {
System.out.print(f[i] + " ");
}
}
/**
* 主方法用switch结构
*/
public static void main(String[] args) {
StudetScoreManage ssm = new StudetScoreManage();
Scanner sc = new Scanner(System.in);
int input = 0;
int index=0;
float newScore=0;
int[] a=null;
while (true) {
ssm.displayMenu();
System.out.println("请输入对应的数字进行操作:");
try{
input = sc.nextInt();
}catch(InputMismatchException e){
System.out.println("输入的数据格式有误,不能有非数字!");
sc.next();
continue;
}
//如数据超出0-5的范围,提示错误信息并要求重新输入
if((input<0)|(input>5)) {
System.out.println("输入的数字超出范围,请重新输入!");
continue;
}
if (input == 0) {
System.out.println("退出程序!");
break;
}
switch (input) {
case 1:
//自定义数组的值
f=ssm.initScore();
break;
case 2:
//求成绩的平均值
if(f !=null) {
ssm.average(f ); ssm.average(f );
System.out.println("数学平均成绩为:"+ssm.average(f ));
}else{
System.out.println("还未在数组中插入数据,请重新选择操作!");
}
break;
case 3:
//统计成绩大于85分的人数
if(f !=null){
ssm.average(f);
}else {
System.out.println("还未在数组中插入数据,请重新选择操作!");
}
break;
case 4:
//修改指定位置的成绩
if(f !=null){
//修改前显示原有的数据
System.out.println("修改前:");
ssm.displayAllScore(f );
System.out.println();
System.out.println("请输入要修改数据的位置(从0开始):");
try{
index=sc.nextInt();
//判断intdex
if(index<0 || index>=f.length) {
System.out.println("要修改的位置错误");
break;
}
System.out.println("请输入新数据:");
newScore=sc.nextFloat();
}catch(InputMismatchException e){
System.out.println("输入的数据格式有误,不能有非数字!");
sc.next();
break;
}
ssm.update(f, index,newScore);
//修改后的数据
System.out.println("修改后:");
ssm.displayAllScore(f);
System.out.println();
}else{
System.out.println("还未在数组中插入数据,请重新选择操作!");
}
break;
case 5:
//打印输出所有成绩
if(f!=null){
ssm.displayAllScore(f);
System.out.println();
}else{
System.out.println("还未在数组中插入数据,请重新选择操作!");
}
break;
}
}
}
}
正在回答
同学你好,1. 在count()方法中建议通过数组中的数据进行判断。修改后代码如下所示:
2. 在主流程的case3中建议调用count()方法并输出。如下图所示:
- 参与学习 人
- 提交作业 9393 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星