可以发一下答案嘛 真的做不出来 想学一下

来源:3-4 项目作业

hardworkerhu

2020-02-23 21:38:41

啊啊啊啊啊

写回答

1回答

小张一号

2020-02-24

package com.imooc.datamanage;

import java.util.Scanner;

/**
 * 从键盘接受整型数据存放到数组中,并对数组中的数据进行管理
 * @author zhangyutong
 *
 */
public class DataManage {
	public static float[] stuScore = null;
	public static String[] menu = {
			"***********************",
			"**欢迎使用学生成绩管理系统**",
			"**1--初始化数学成绩     **",
			"**2--求成绩的平局之     **",
			"**3--统计85分以上同学数量**",
			"**4--修改指定位置的成绩  **",
			"**5--打印输出所有成绩    **",
			"**0--退出              **",
			"************************"
	};
	/**
	 * 显示菜单
	 */
	public void displayMenu() {
		for(String i:DataManage.menu) {
			System.out.println(i);
		}
	}
	/**
	 * 输入处理
	 * @param message 提示消息
	 * @return
	 */
	public static int handleInput(String message) {
		Scanner s = new Scanner(System.in);
		while(true) {
			try {
				System.out.println(message);
				return s.nextInt();
			} catch(java.util.InputMismatchException e) {
				s.next();
				System.out.print("请您输入整数!整数!知道什么是整数吗?就是1,2,3,4...这些,");
			}
		}	
	}
	/**
	 * 输入处理
	 * @param message 提示消息
	 * @return
	 */
	public static float handleInputFloat(String message) {
		Scanner s = new Scanner(System.in);
		while(true) {
			try {
				System.out.println(message);
				return s.nextFloat();
			} catch(java.util.InputMismatchException e) {
				s.next();
				System.out.print("您输入的信息错误,");
			}
		}	
	}
	/**
	 * 初始化成绩
	 * @param arrLength
	 * @return
	 */
	public float[] initScore() {
		int arrLength = DataManage.handleInput("请输入需要存储数学成绩的数量:");
		float tempArr[] = new float[arrLength];
		for(int i = 0; i < arrLength; i++) {
			tempArr[i] = DataManage.handleInputFloat("请输入第"+(i + 1)+"个小孩?的成绩");
		}
		return tempArr;
	}
	/**
	 * 计算平均成绩
	 * @param f
	 * @return
	 */
	public float average(float[] f) {
		float sum = 0;
		for(float i:f) {
			sum += i;
		}
		return sum/f.length;
	}
	/**
	 * 查找大于85分的人
	 * @param f
	 * @return
	 */
	public int count(float[] f) {
		int count = 0;
		for(float i:f) {
			if(i > 85f) count++ ;
		}
		return count;
	}
	/**
	 * 修改指定位置处成绩
	 * @param f
	 * @param index
	 * @param newScore
	 */
	public void update(float[] f, int index, float newScore) {
		if (index > f.length || index <= 0) {
			System.out.println("i'm sorry!一共" + f.length + "个学生,您居然要修改第"+index +"个学生的成绩! 臣妾做不到啊!!!");
			return;
		}
		f[index-1] = newScore;
	}
	/**
	 * 打印所有成绩的方法哦
	 * @param f
	 */
	public void displayAllScore(float[] f) {
		if (f.length <= 0) {
			System.out.println("电脑坏了,请扔掉这台电脑,重买一台");
			return;
		}
		int index = 0;
		for (float i:f) {
			System.out.println("第"+(++index) + "个学生成绩是" + i);
		}
	}
	/**
	 * 入口函数
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		DataManage d = new DataManage();
		int handleType;
		while(true) {
			d.displayMenu();
			switch(DataManage.handleInput("请输入对应的数字进行操作:")) {
			case 1:
				DataManage.stuScore = d.initScore();
				break;
			case 2:
				if (DataManage.stuScore == null) {
					System.out.println("对不起,您还没有录入成绩");
					break;
				}
				System.out.println("成绩的平均值是:" + d.average(DataManage.stuScore));
				break;
			case 3:
				if (DataManage.stuScore == null) {
					System.out.println("对不起,您还没有录入成绩");
					break;
				}
				System.out.println("成绩大于85分的同学一共有" + d.count(DataManage.stuScore) + "人");
				break;
			case 4:
				if (DataManage.stuScore == null) {
					System.out.println("对不起,您还没有录入成绩");
					break;
				}
				d.update(DataManage.stuScore, DataManage.handleInput("请输入要修改数据的位置(从1开始):"), DataManage.handleInputFloat("请输入新成绩"));
				System.out.println("修改后的成绩为:");
			case 5:
				if (DataManage.stuScore == null) {
					System.out.println("对不起,您还没有录入成绩");
					break;
				}
				d.displayAllScore(DataManage.stuScore);
			case 0:
				return;
			default:
				System.out.println("对不起您输入的内容有误请重新输入ba!");
			}
		}
	}

}


2

0 学习 · 2907 问题

查看课程