按照老师的建议重新修改了作业,完整代码如下
来源:3-4 项目作业
weixin_慕少5379513
2022-07-20 15:51:43
package com.qiu.achievement;
import java.util.Scanner;
/**
* @author:陈俊球
* @Time:2022年7月18日 下午3:36:42
*/
public class StudentAch {
/*
* 显示菜单功能
*/
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() {
Scanner scanner = new Scanner(System.in);
int length = 0;
System.out.println("输入初始化成绩的个数");
length = scanner.nextInt();
float[] s = new float[length];
for (int i = 0; i < s.length; i++) {
System.out.println("输入第" + (i + 1) + "个成绩");
try {
s[i] = scanner.nextFloat();
} catch (Exception e) {
System.out.println("输入的格式不对");
scanner.next();
i--;
}
}
// scanner.close();
return s;
}
/*
* 求成绩平均值
*/
public float average(float[] f) {
if (f == null) {
System.out.println("请初始化数学成绩");
return 0;
}
float sum = 0f, avg = 0f;
for (int i = 0; i < f.length; i++) {
sum += f[i];
}
return avg = sum / f.length;
}
/*
* 统计成绩大于85的人数
*/
public int count(float[] f) {
int count = 0;
for (int i = 0; i < f.length; i++) {
if (f[i] > 85) {
count++;
}
}
return count;
}
/*
* 修改指定位置的成绩
*/
public void update(float[] f, int index, float newScore) {
Scanner scanner = new Scanner(System.in);
while (true) {
try {
System.out.println("输入修改的位置,从0开始");
index = scanner.nextInt();
System.out.println("输入修改后的分数");
newScore = scanner.nextFloat();
if (index >= 0 && index < f.length) {
f[index] = newScore;
break;
}else {
System.out.println("更新失败,修改位置不对");
break;
}
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("输入格式不对,重新输入");
scanner.next();
}
}
System.out.println("修改后的成绩为:");
for (float g : f) {
System.out.print(g + " ");
}
// scanner.close();
}
/*
* 打印输出所有成绩
*/
public void displayAllScore(float[] f) {
System.out.print("成绩为:");
for (float g : f) {
System.out.print(g + " ");
}
}
public static void main(String[] args) {
StudentAch sAch = new StudentAch();
int input = 0;
int count = 0;
int index = 0;
String temp;
float newScore = 0f;
float avg = 0f;
float[] s = null;
Scanner scanner = new Scanner(System.in);
boolean flag = true;
while (flag) {
sAch.displayMenu();
System.out.println("输入对应数值操作");
try {
input = scanner.nextInt();
} catch (Exception e) {
System.out.println("输入的格式不对,重新输入0-5的整数");
temp = scanner.next();
continue;
}
if (input < 0 || input > 5) {
System.out.println("输入的数字不对,重新输入0-5的整数");
}
switch (input) {
case 0:
flag = false;
System.out.println("退出程序,拜拜!!");
break;
case 1:
s = sAch.initScore();
System.out.println("初始成绩:");
for (int i = 0; i < s.length; i++) {
System.out.print(s[i] + " ");
}
System.out.println();
break;
case 2:
if (s == null) {
System.out.println("请初始化数学成绩先");
break;
}
avg = sAch.average(s);
System.out.println("数学平均成绩 :" + avg);
break;
case 3:
if (s == null) {
System.out.println("请初始化数学成绩先");
break;
}
count = sAch.count(s);
System.out.println("成绩大于85的人数 :" + count);
break;
case 4:
if (s == null) {
System.out.println("请初始化数学成绩先");
break;
}
System.out.println("修改前成绩数据");
sAch.displayAllScore(s);
System.out.println();
sAch.update(s, index, newScore);
System.out.println();
break;
case 5:
if (s == null) {
System.out.println("请初始化数学成绩先");
break;
}
sAch.displayAllScore(s);
System.out.println();
break;
}
}
}
}1回答
好帮手慕小黑
2022-07-20
同学你好,为了方便同学按照老师的修改建议进行修改,建议同学将项目作业上传到对应的位置,因为在作业区,老师可以上传批复文档,同学可以根据批复文档修改。
祝学习愉快!
相似问题