某班同学参加了高数、英语、Java语言、线性代数和物理5门课程的考试,假定成绩已经公布,请编写一个程序,通过键盘录入他们的成绩,并计算输出每位同学的课程最高分,最低分和平均分

某班同学参加了高数、英语、Java语言、线性代数和物理5门课程的考试,假定成绩已经公布,请编写一个程序,通过键盘录入他们的成绩,并计算输出每位同学的课程最高分,最低分和平均分

某班同学参加了高数、英语、Java语言、线性代数和物理5门课程的考试,假定成绩已经公布,请编写一个程序,通过键盘录入他们的成绩,并计算输出每位同学的课程最高分,最低分和平均分,以及每门课程的班级最高分、最低分和平均分。

java实训报告里的题目,本着能百度,绝不动手的原则,找了一圈,未果,然后,自己就动手打了两个小时。。。

代码如下:

package demo;

import java.util.Arrays;
import java.util.Scanner;

/*
 * @author 徐cheng
 * 测试数据为:
 * 	20 20 20 30 10  平均分为:20  最大值 30 最小值 10
	30 30 30 40 20  平均分为:30  最大值 40 最小值 20
 * 
 */
public class grade {
	public static void main(String[] args){
		Scanner x=new Scanner(System.in);
		System.out.print("请输入学生的人数:");//尽量小于一千人
		int a=x.nextInt();
		double[] math = new double[1000];//高数的数组,下面以此类推
		double[] english = new double[1000];
		double[] javaeee = new double[1000];
		double[] xiandai = new double[1000];
		double[] wuli = new double[1000];
		
		System.out.println("请录入数学的成绩(按学号录入)");
		for(int i =0;i<a;i++ ){
			System.out.println(i+1 +"号的成绩是:");
			math[i] = x.nextDouble();
		}
	System.out.println("请录入英语的成绩(按学号录入)");
		for(int i =0;i<a;i++ ){
			System.out.println(i+1 +"号的成绩是:");
			english[i] = x.nextDouble();
		}
		System.out.println("请录入java语言的成绩(按学号录入)");
		for(int i =0;i<a;i++ ){
			System.out.println(i+1 +"号的成绩是:");
			javaeee[i] = x.nextDouble();
		}
		System.out.println("请录入线性代数的成绩(按学号录入)");
		for(int i =0;i<a;i++ ){
			System.out.println(i+1 +"号的成绩是:");
			xiandai[i] = x.nextDouble();
		}
		
		System.out.println("请录入物理的成绩(按学号录入)");
		for(int i =0;i<a;i++ ){
			System.out.println(i+1 +"号的成绩是:");
			wuli[i] = x.nextDouble();
		}
		//数学最高分
		double mathmin = -34.5;
		double math1 = 34252.0;
		double math2 = 0.0;
		for(int i=0;i<a;i++){
			if(mathmin<math[i]){
				mathmin=math[i];
			}
			if(math1>math[i]){
				math1=math[i];
			}
			math2+=math[i];
		}
		System.out.println("数学科目的最高分为:"+mathmin+"最低分为: "+math1+"平均分为: "+math2/a);
		
		double englishmin = -34.5;
		double e1 =34252.0;
		double e2 = 0.0;
		for(int i=0;i<a;i++){
			if(englishmin<english[i]){
				englishmin=english[i];
			}
			if(e1>english[i]){
				e1=english[i];
			}
			e2+=english[i];
		}
		System.out.println("英语科目的最高分为:"+englishmin+"最低分为: "+e1+"平均分为: "+e2/a);
		
		double javamin = -34.5;
		double j1 =34252.0;
		double j2 = 0.0;
		for(int i=0;i<a;i++){
			if(javamin<javaeee[i]){
				javamin=javaeee[i];
			}
			if(j1>javaeee[i]){
				j1=javaeee[i];
			}
			j2+=javaeee[i];
		}
		System.out.println("java科目的最高分为:"+javamin+"最低分为: "+j1+"平均分为: "+j2/a);
		
		double xianmin = -34.5;
		double x1 =34252.0;
		double x2 = 0.0;
		for(int i=0;i<a;i++){
			if(xianmin<xiandai[i]){
				xianmin=xiandai[i];
			}
			if(x1>xiandai[i]){
				x1=xiandai[i];
			}
			x2+=xiandai[i];
		}
		System.out.println("线代科目的最高分为:"+xianmin+"最低分为: "+x1+"平均分为: "+x2/a);
		
		double wumin = -34.5;
		double w1 =34252.0;
		double w2 = 0.0;
		for(int i=0;i<a;i++){
			if(wumin<wuli[i]){
				wumin=wuli[i];
			}
			if(w1>wuli[i]){
				w1=wuli[i];
			}
			w2+=wuli[i];
		}
		System.out.println("物理科目的最高分为:"+wumin+"最低分为: "+w1+"平均分为: "+w2/a);
		
		//再接着就是整每位同学的成绩了
		double[][] stu = new double[100][20];//行代表着学生的学号,列对应学生每科的成绩
		for(int i =0;i<a;i++){
			for(int j =0;j<5;j++){
				if(j==0){
					stu[i][j]=math[i];
				}
				if(j==1){
					stu[i][j]=english[i];
				}
				if(j==2){
					stu[i][j]=javaeee[i];		
				}
				if(j==3){
					stu[i][j]=xiandai[i];
				}
				if(j==4){
					stu[i][j]=wuli[i];
				}
				
			}
		}
		
		//测试一下输出学号为一的孩,五门课的成绩,成功,开心
	/*	for(int i =0;i<5;i++){
			System.out.println(stu[1][i]+"\t");
		}*/
		double[] pp = new double[200];//放平均数的
		for(int i=0;i<pp.length;i++){//格式化一下
			pp[i]=0.0;
		}
		for(int i =0;i<a;i++){
			for(int j =0;j<5;j++){
				pp[i]=pp[i]+stu[i][j];//哈哈,然后每一列就是每一个学员的五门的总成绩啦
			}
		}
		for(int i =0;i<a;i++){
			System.out.println("学号为"+(i+1)+"的同学五门功课平均分为:"+(pp[i]/5)+"\t");
			
		}
		System.out.println();
		
		//最高分
		double[] maxx = new double[200];
		for(int i=0;i<maxx.length;i++){
			maxx[i]=-3434.0;
		}
		for(int i =0;i<a;i++){
			for(int j =0;j<5;j++){
				if(maxx[i]<stu[i][j]){
					maxx[i]=stu[i][j];
				}
			}
		}
		for(int i =0;i<a;i++){
			System.out.println("学号为"+(i+1)+"的同学最高分为:"+maxx[i]+"\t");
			
		}
		System.out.println();
		//最低分
		double[] minn = new double[200];//
		for(int i=0;i<minn.length;i++){
			minn[i]=3434.0;
		}
		for(int i =0;i<a;i++){
			for(int j =0;j<5;j++){
				if(minn[i]>stu[i][j]){
					minn[i]=stu[i][j];
				}
			}
		}
		for(int i =0;i<a;i++){
			System.out.println("学号为"+(i+1)+"的同学最低分为:"+minn[i]+"\t");
			
		}
		System.out.println();

	}
}

截图如下:

某班同学参加了高数、英语、Java语言、线性代数和物理5门课程的考试,假定成绩已经公布,请编写一个程序,通过键盘录入他们的成绩,并计算输出每位同学的课程最高分,最低分和平均分

 完美实现,然后,要想copy我的,请点个赞吧,顺便关注一波,谢谢~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/114755.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • noip宝藏_寻宝官方网

    noip宝藏_寻宝官方网看到这道题,我就想到了直接根据行走路径进行操作,结果——一片WA,悲伤,那么除了这样,怎么解决呢?我们用到的方法是用数组存储每层楼有向上楼梯的个数,以及每个房间的情况,然后将要走的次数模上总个数,再用得到的值加上最初的房间,即可。下面是代码:#include&lt;bits/stdc++.h&gt;usingnamespacestd;constintN=100…

  • apache安装ssl证书_apache ssl证书配置

    apache安装ssl证书_apache ssl证书配置1、apache错误提示libz.a:couldnotreadsymbols:Badvalue”重新安装openssl加上-fPIC和enable-shared参数./config-fPIC–prefix=/usr/local/openssl1.0.1 enable-shared2、apache的httpd.conf缺乏LoadModulessl_module

  • 功率放大器和匹配网络学习

    功率放大器PA学习导通角:在一个周期内,由电力电子器件(如晶闸管)控制其导通的角度。交流电一般为正弦波,正半周占180°,负半周占180°。当交流电通过可控硅时,可以让交流电电流通过控制使其在0-180度的任一角度处开始导通,即所谓可控整流,当正半周加到可控硅的阳极,在180度的某一角度时,在可控硅的控制极加一触发脉冲,例如在30度加一脉冲,可控硅只能通过余下的150度的电流。这种使可控硅导电…

  • Android 开发(三)数据库存储

    Android 开发(三)数据库存储

  • 2019-10-30-C#-dotnet-core-局域网组播方法「建议收藏」

    2019-10-30-C#-dotnet-core-局域网组播方法「建议收藏」titleauthordateCreateTimecategoriesC#dotnetcore局域网组播方法lindexi2019-10-309:0:48+08002019-10-2912:2:46+0800dotnetC#我在微软官网找到了用…

  • linux中的sleep函数和delay函数

    linux中的sleep函数和delay函数对于做过单片机程序的朋友来说,delay是很常见的函数,通常就是while或者for循环,进行空指令的执行,由于单片机的晶振固定,一个机器周期的时间是固定的,执行多少个空指令,就可以完成多少个机器周期时长的延时。其实在linux中的delay函数,道理是一样的,都是通过cpu执行空指令来达到延时的目的,但是对于操作系统这种多线程进行的方式来说,在需要延时的时候,可以通过将进程挂起的方式来实现延时。这就是sleep函数。sleep和delay的区别最明显也最重要的区别就是,在执行delay的时候,是执行

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号