学生管理系统(简易版)

作者在 2016-08-27 17:39:28 发布以下内容
package xiti;
import java.util.*;
public class ssds {


public static void main(String[] args) {
/*king:关键在于把要凭借排序的的东西sum还用他sum排序,但是要与之对应一个整合了所有的东西 的
* 字符串str,利用嵌套的for循环把sum和整合之后的str同时排序,则结果达成。 
* */
Scanner s=new Scanner(System.in);
int stuNum,couNum;
System.out.println("请输入学生人数:");
stuNum=s.nextInt();
System.out.println("请输入课程个数:");
couNum=s.nextInt();
//1.声明sum
int sum[]=new int[stuNum];
//2.声明整合数组str,和中间变量str11(这个来存储一系列的分数,每个人的)
String str[]=new String[stuNum];//str[i]=name + java +c + sum +avg
//String str11="";  这个声明应该放在下面for的外层循环中
String name[]=new String[stuNum];
String course[]=new String[couNum];
int record[][]=new int[stuNum][couNum];
//整合字符串2 在这里 str22
String str22="";
for(int i=0;i<couNum;i++){
System.out.println("请输入第"+(i+1)+"门课程的名称:");
course[i]=s.next();
str22+=course[i]+"\t";
}
for(int i=0;i<stuNum;i++){
System.out.println("请输入学生姓名:");
name[i]=s.next();
for(int j=0;j<couNum;j++){
System.out.println("请输入此学生的"+course[j]+"成绩:");
record[i][j]=s.nextInt();
}
}
for(int i=0;i<stuNum;i++){
String str11="";//在这里 str11
for(int j=0;j<couNum;j++){
sum[i]+=record[i][j];
str11+=record[i][j]+"\t";
}
str[i]=name[i]+"\t"+str11+sum[i]+"\t"+sum[i]/couNum;
}
//下面 关键 :利用sum进行排序 同时!!把整合的str排了!!!
for(int i=0;i<stuNum-1;i++){
for(int j=i+1;j<stuNum;j++){
if(sum[i]<sum[j]){
int t=sum[i];//这里sum必须进行排序,因为str里面的sum只是他的一个数值,并不属于sum数组里的成分。
sum[i]=sum[j];
sum[j]=t;
String t1=str[i];
str[i]=str[j];
str[j]=t1;
}

}

}System.out.println("姓名"+"\t"+str22+"最高分"+"\t"+"平均值"+"\t"+"排行榜");//此处可以用for循环输出课程名称,但是我采用了整合到字符串的方法来进行简单输出。
for(int i=0;i<stuNum;i++){
System.out.println(str[i]+"\t"+"第"+(i+1)+"名");

}

}


}

代码-中级 | 阅读 3151 次
文章评论,共0条
游客请输入验证码
文章归档
最新评论