某班同学参加了高数、英语、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();
}
}
截图如下:
完美实现,然后,要想copy我的,请点个赞吧,顺便关注一波,谢谢~
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/114755.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...