day10--综合小练

此代码实现了一个简单的程序,用于生成随机学生成绩,计算总分,并忽略挂科学生。程序找出成绩最好和最差的学生,并输出他们的分数。在10名学生和3门课程的设定下,程序首先生成随机成绩,然后计算每个学生的总分,如果有挂科则总分为0。接着,程序找出最高分和最低分的学生,最后将结果打印出来。
摘要由CSDN通过智能技术生成

一. 功能介绍

找出所有同学中成绩最好的和最差的,凡是有一科挂科,均不参加
1.先随机生成每位同学的成绩
2.计算每个同学的总分,若有一个门挂科,则总分为0
3.找出成绩最好和成绩最差的学生,并记录下来
4.输出成绩最好和成绩最差的学生

二.代码实现

package com.one;
import java.util.*;

public class Task1 {

	public static void main(String args[]) {
		task1();
	}// of main

	public static void task1() {
		//n:学生个数,m:科目个数
		int n = 10;
		int m = 3;
		int lowerBound = 50;
		int upperBound = 100; 
		int threshold = 60;

		//1.生成随机数
		Random tempRandom = new Random();
		int[][] data = new int[n][m];
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < m; j++) {
				data[i][j] = lowerBound + tempRandom.nextInt(upperBound - lowerBound);
			} // of for j
		} // of for i
		System.out.println("The data is:\r\n" + Arrays.deepToString(data));

		// 2.计算每个同学的成绩,如果出现挂科的,则总分记为0
		int[] totalScores = new int[n];
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < m; j++) {
				if (data[i][j] < threshold) {
					totalScores[i] = 0;
					break;
				} 
				totalScores[i] += data[i][j];
			} // of for j
		} // of for i
		System.out.println("The total scores are:\r\n" + Arrays.toString(totalScores));
		
		//3.找出成绩最好和最差的学生,但挂科的同学不参加
		//设置最好和最差学生的索引均为-1
		int tempBestIndex = -1;
		int tempWorstIndex = -1;
		//最好的成绩初始值为0
		//最差成绩的初始值为全部科目满分+1
		int tempBestScore = 0;
		int tempWorstScore = m * upperBound + 1;
		for (int i = 0; i < n; i++) {
			//挂科,退出该循环,执行下一次循环
			if (totalScores[i] == 0) {
				continue;
			} 
            //找出最大,最小,并记录索引位置
			if (tempBestScore < totalScores[i]) {
				tempBestScore = totalScores[i];
				tempBestIndex = i;
			} 
			
			if (tempWorstScore > totalScores[i]) {
				tempWorstScore = totalScores[i];
				tempWorstIndex = i;
			} 
		} // of for i

		//4.输出最好和最差成绩
		if (tempBestIndex == -1) {
			System.out.println("Cannot find best student. All students have failed.");
		} else {
			System.out.println("The best student is No." + tempBestIndex + " with scores: " + Arrays.toString(data[tempBestIndex]));
		}

		if (tempWorstIndex == -1) {
			System.out.println("Cannot find worst student. All students have failed.");
		} else {
			System.out.println("The worst student is No." + tempWorstIndex + " with scores: " + Arrays.toString(data[tempWorstIndex]));
		}
	}// of task1
}// of class


三.运行结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值