📄 studentmanagment.java
字号:
package day04;
import java.util.Scanner;
public class StudentManagment {
public static void main(String[] args) {
int[][] scores={//六个学生,五门课程的成绩
{85,93,64,77,63},
{91,88,67,78,90},
{75,88,89,91,58},
{82,88,67,79,91},
{82,81,77,82,88},
{71,81,76,69,91}};
String[] courses={"corejava","unix","jdbc","jsp","ejb"};
String[] students={"zhangsan","lisi","wangwu","zhaoliu","qianqi","liuba"};
Scanner sca=new Scanner(System.in);
while(true){
System.out.println("请输入查询命令:");
String str=sca.next();
if(str.equals("AVGCOU")){
String cou=sca.next();
avgCou(scores,courses,cou);
}else if(str.equals("AVGSTU")){
String stu=sca.next();
avgStu(scores,students,stu);
}else if(str.equals("SORT")){
String cou=sca.next();
sort(scores,courses,students,cou);
}else if(str.equals("GET")){
String stu=sca.next();
String cou=sca.next();
get(scores,courses,students,stu,cou);
}else if(str.equals("EXIT")){
break;
}
}
}//main() end!
public static void avgCou(int[][] scores,String[] courses,String cou){
//1,在courses数组中搜索cou出现的下标,如果courses中不包含cou
// 则输出错误信息,并返回。
//2,跟据上一步找到的下标去查找scores中该列,把该列上的所有数据
// 累加求和。
//3,将和值除以scores数组的行数得到平均值,并将课程名和平均值输出。
int index=-1;
for(int i=0;i<courses.length;i++){
if(courses[i].equals(cou)){
index=i;
break;
}
}
if(index==-1){
System.out.println("课程名不存在,请重新输入:");
return;
}
double sum=0.0;
for(int i=0;i<scores.length;i++){
sum+=scores[i][index];
}
double avg=sum/scores.length;
System.out.println(cou+"课程的平均分是:"+avg);
}
public static void avgStu(int[][] scores,String[] students,String stu){
//1,在students数组中搜索stu出现的下标,如果studnets中不包含stu
// 则输出错误信息,并返回。
//2,跟据上一步找到的下标去查找scores中该行,把该行上的所有数据
// 累加求和。
//3,将和值除以scores数组的列数得到平均值,并将学生名和平均值输出。
int index=-1;
for(int i=0;i<students.length;i++){
if(students[i].equals(stu)){
index=i;
break;
}
}
if(index==-1){
System.out.println("没有这个学生,请重新输入!");
return;
}
double sum=0.0;
for(int i=0;i<scores[index].length;i++){
sum+=scores[index][i];
}
double avg=sum/scores[index].length;
System.out.println(stu+"学生的平均分是:"+avg);
}
public static void sort(int[][] scores,String[] courses,String[] students,String cou){
//1,创建一个一维int数组,保存cou课程的成绩
//2,创建一个一维String数组,保存所有学生的姓名。
//3,对int数组排序,并且同时也同步移动String数组的顺序。
//4,输出学生名和分数
int[] cous=new int[scores.length];
if(cou.equals("sum")){//如果要求总分的排序
for(int i=0;i<scores.length;i++){//求每个学生的总成绩
int sum=0;
for(int j=0;j<scores[i].length;j++){
sum+=scores[i][j];
}
cous[i]=sum;
}
}else{//如果要求某一门课程的排序
int index=-1;
for(int i=0;i<courses.length;i++){
if(courses[i].equals(cou)){
index=i;
break;
}
}
if(index==-1){
System.out.println("课程名不存在,请重新输入:");
return;
}
for(int i=0;i<scores.length;i++){
cous[i]=scores[i][index];
}
}
String[] stus=new String[students.length];
System.arraycopy(students, 0, stus, 0, students.length);
for(int i=0;i<cous.length-1;i++){
for(int j=i+1;j<cous.length;j++){
if(cous[i]<cous[j]){
int temp=cous[i];
cous[i]=cous[j];
cous[j]=temp;
String stemp=stus[i];
stus[i]=stus[j];
stus[j]=stemp;
}
}
}
int grand=1;
for(int i=0;i<cous.length;i++){
if(i>0 && cous[i]!=cous[i-1]){
grand=i+1;
}
System.out.println("第"+grand+"名:"+stus[i]+":"+cous[i]);
}
}
public static void get(int[][] scores,String[] courses,String[] students,String stu,String cou){
int stuindex=-1;
for(int i=0;i<students.length;i++){
if(students[i].equals(stu)){
stuindex=i;
break;
}
}
if(stuindex==-1){
System.out.println("没有这个学生,请重新输入!");
return;
}
if(cou.equals("sum")){
int sum=0;
for(int i=0;i<scores[stuindex].length;i++){
sum+=scores[stuindex][i];
}
System.out.println(stu+"学生的总分是:" +sum);
}else{
int couindex=-1;
for(int i=0;i<courses.length;i++){
if(courses[i].equals(cou)){
couindex=i;
break;
}
}
if(couindex==-1){
System.out.println("课程名不存在,请重新输入:");
return;
}
System.out.println(stu+"学生的"+cou+"课程的成绩是:"+scores[stuindex][couindex]);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -