用java实现学生成绩管理系统_学生成绩管理系统(java实现)

发布时间:2024-09-11 18:01

最近在看基础的java教程,发现java很多与c++类似,但也有不少差异,有很多要注意的地方,做了这个成绩管理系统,还没用到类,只是多维数组的应用。

期间遇到很多问题,也都经过一一百度解决了。

实现的功能: 输入学生人数,以及学生考试的科目数,然后依次填入信息,最后输出学生信息,以及总分,平均分,名次;

import java.util.*;

import java.math.*;

import java.text.*;//引入控制格式的包,import java.text.DecimalFormat; 用来控制浮点数小数位数

public class Test{

public static void main(String[] args){

Scanner in=new Scanner(System.in);

System.out.println(\"请输入一共有几门课程\");

int numberofCoarses=in.nextInt();

System.out.println(\"请输入一共有几个学生\");

int numberofStudents=in.nextInt();

System.out.println(\"请定义这几门课程\");

String [] coarse=new String[numberofCoarses];

String [] name=new String[numberofStudents];

for(int i=0;i

coarse[i]=in.next();

double[][] stuu =new double[numberofStudents][numberofCoarses];

double[] totalGrades=new double [numberofStudents];

double[] average=new double [numberofStudents];

double[] totalsort=new double [numberofStudents];

int[] paihang = new int [numberofStudents];

DecimalFormat df=new DecimalFormat(\"0.00\");//设置浮点数的位数

for(int i=0;i

{

System.out.println(\"请输入第\"+(i+1)+\"个学生的名字\");

name[i]=in.next();

System.out.println(\"请依次输入\"+name[i]+\"的\"+numberofCoarses+\"门成绩\");

double sum=0;

for(int j=0;j

{

stuu[i][j]=in.nextDouble();

sum+=stuu[i][j];

}

totalGrades[i]=sum;

average[i]=sum/numberofCoarses;

}

//totalsort=totalGrades 错误,浅复制,指向同一个引用;

//totalsort=totalGrades.clone(); //数组的深复制//用clone只能复制一维数组,多维数组需要加上for循环依次clone

System.arraycopy(totalGrades,0,totalsort,0,totalGrades.length); //最快的赋值

//第一个0,代表源数组赋值的起始位置,第二个0,代表被赋值数组的起始位置

for(int i=0;i

{

int k=i;

for(int j=i+1;j

{

if(totalsort[j]>totalsort[k])

{

k=j;

}

}

if(k!=i)

{

double temp=totalsort[k];

totalsort[k]=totalsort[i];

totalsort[i]=temp;

}

}

//Arrays.sort(totalsort,Collections.reverseOrder()); << 有错误,改天再看看库函数怎么排序吧。。

for(int i=0;i

{

int head=0,tail=paihang.length-1;

while(head<=tail){

if(totalsort[head]==totalGrades[i])

{paihang[i]=head+1;break; }

else if(totalsort[tail]==totalGrades[i])

{paihang[i]=tail+1;break;}

else{

int mid=(head+tail)/2;

if(totalsort[mid]==totalGrades[i])

{

paihang[i]=mid+1;break;

}

else if(totalsort[mid]>totalGrades[i])

{

tail=mid-1;

}

else

head=mid+1;

}

}

}

System.out.print(\"学生\\t\");

for(int i=0;i

System.out.print(coarse[i]+\"\\t\");

System.out.println(\"总分\\t平均分\\t排行榜\");

for(int i=0;i

{

System.out.print(name[i]+\"\\t\");

for(int j=0;j

{

System.out.print(stuu[i][j]+\"\\t\");

}

System.out.print(totalGrades[i]+\"\\t\");

System.out.print(df.format(average[i])+\"\\t\");

System.out.print(\"第\"+paihang[i]+\"名\");

System.out.println();

}

}

}

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号