一、作业题目
在主方法中定义菜单,并定义方法完成对学生成绩的管理,学生成绩存放在数组中。
演示效果如下所示:
*************************************** 1--初始化数学成绩 2--求成绩的平均值 3--统计成绩大于85分的人数 4--修改指定位置处的成绩 5--打印输出所有成绩 0--退出 *************************************** 请输入对应的数字进行操作: 1 请输入要存储的数学成绩的数量: 5 请输入第1个数据: 98 请输入第2个数据: 65 请输入第3个数据: 75 请输入第4个数据: 83 请输入第5个数据: 87 *************************************** 1--初始化数学成绩 2--求成绩的平均值 3--统计成绩大于85分的人数 4--修改指定位置处的成绩 5--打印输出所有成绩 0--退出 *************************************** 请输入对应的数字进行操作: 2 数学的平均成绩为:81.6 *************************************** 1--初始化数学成绩 2--求成绩的平均值 3--统计成绩大于85分的人数 4--修改指定位置处的成绩 5--打印输出所有成绩 0--退出 *************************************** 请输入对应的数字进行操作: 3 成绩大于85分的人数为:2 *************************************** 1--初始化数学成绩 2--求成绩的平均值 3--统计成绩大于85分的人数 4--修改指定位置处的成绩 5--打印输出所有成绩 0--退出 *************************************** 请输入对应的数字进行操作: 4 修改成绩前为: 成绩为: 98.0 65.0 75.0 83.0 87.0 请输入要修改数据的位置(从0开始) 3 请输入新的数据: 86 修改后: 成绩为: 98.0 65.0 75.0 86.0 87.0 *************************************** 1--初始化数学成绩 2--求成绩的平均值 3--统计成绩大于85分的人数 4--修改指定位置处的成绩 5--打印输出所有成绩 0--退出 *************************************** 请输入对应的数字进行操作: 5 成绩为: 98.0 65.0 75.0 86.0 87.0 *************************************** 1--初始化数学成绩 2--求成绩的平均值 3--统计成绩大于85分的人数 4--修改指定位置处的成绩 5--打印输出所有成绩 0--退出 *************************************** 请输入对应的数字进行操作: 0 退出程序
二、详细设计
1、定义一个显示菜单的方法:public void displayMenu() { }
2、定义一个初始化数学成绩的方法,数组的长度和元素均由键盘输入。public float[] initScore() { }
3、定义一个求平均成绩的方法:public float average(float[] f) { }
4、定义一个统计成绩大于85分的人数的方法:public int count(float[] f) { }
5、修改指定位置处成绩的方法:public void update(float[] f, int index, float newScore) { } 参数index为位置,从0开始,与数组下标含义相同,newScore是新的成绩。
6、打印输出所有成绩的方法:public void displayAllScore(float[] f) { }
7、在主方法中,使用case语句完成主要程序逻辑,当输入对应的数字时,调用对应的操作。
8、当输入的数字与case语句不匹配时,给出错误提示。
三、编程内容
package com.stu.result;
import java.util.InputMismatchException;
import java.util.Scanner;
public class ScoreDemo {
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 float[] initScore() { //1 定义一个初始化数学成绩的方法
Scanner sc= new Scanner(System.in); //由键盘输入数据
System.out.println("请输入要存储的数学成绩的数量:");
int len=sc.nextInt();
float[] a=new float[len];
for(int i=0;i 85) {
a++;
}
}
if (a > 0) {
System.out.print("成绩大于85分的人数为:" + a);
} else {
System.out.println("没有成绩大于85分的人!");
}
System.out.println();
return a;
}
public void update(float[] f, int index, float newScore) { //4 修改指定位置处成绩的方法
System.out.println("修改成绩前为:");
System.out.println("成绩为:");
for (float n:f){
System.out.println(n+" ");
}
System.out.print("n");
System.out.println("请输入要修改数据的位置(从0开始)");
Scanner sm = new Scanner(System.in);
while (true){
try {
index = sm.nextInt();
}catch (java.util.InputMismatchException e){
System.out.println("输出的必须为数字");
sm.next();
continue;
}
break;
}
System.out.println("请输入新的数据:");
while (true){
if (index
学习格言:
人生在勤,不索何获。—— 张衡



