学生成绩统计系统项目

学Java没多久,做一个小项目,能做到基本的查询,小编在努力的优化代码增加系统功能,有时间的小伙伴请指点一下。

class Student{
    //学生名字
    String name;
    //学生5门课成绩
    double[] grade = new double[5];
   //Student的构造方法
    public Student(String name,double cgrade,double javagrade,double mysqlgrade,double linuxgrade,double htmlgrade){
         this.name=name;
         this.grade[0]=cgrade;
         this.grade[1]=javagrade;
         this.grade[2]=mysqlgrade;
         this.grade[3]=linuxgrade;
         this.grade[4]=htmlgrade;
    }
}

import java.util.*;
public class InquireScore{
    static String[] className = new String[] {"c","java","mysql","linux","html"};
  public static void averageClass(String str,ArrayList<Student> student){
         double average,sum=0;
         int temp=0;
         for(int i=0;i<5;i++){
              if(str.equals(className[i])){
                   temp=i;
                   break;
              }
         }
         for(int i=0;i<student.size();i++){
             sum+=student.get(i).grade[temp];
         }
        average = sum*1.0/student.size();
        System.out.println("Java课程的平均成绩为:"+average);
    }

  public static void averageStudentGrade(String name,ArrayList<Student> student){
         double average,sum=0;
         for(int i=0;i<student.size();i++){
              if(name.equals(student.get(i).name)){
                   for(int j=0;j<5;j++){
                        sum+=student.get(i).grade[j];
                   }
                   break;
              }
         }
         average = sum*1.0/5;
         System.out.println(name+"同学的平均成绩为:"+average);
    }

    public static double getStudentGrade(String name,String str,ArrayList<Student> student){
         double num=0.0;
         for(int i=0;i<student.size();i++){
              if(name.equals(student.get(i).name)){
                   for(int j=0;j<5;j++){
                        if(str.equals(className[j])){
                             num=student.get(i).grade[j];
                        }
                   }
              }
         }
         return num;
    }

    public static void sortClassGrade(String str,ArrayList<Student> student){
        System.out.println("名次\t姓名\t"+str);
         int temp=0;
         for(int i=0;i<5;i++){
              if(str.equals(className[i])){
                   temp=i;
                   break;
              }
         }
         double[] a = new double[1000];
         int[] c = new int[1000];
         for(int i=0;i<student.size();i++){
               a[i]=student.get(i).grade[temp];
               c[i]=i;
         }
         for(int i=0;i<student.size()-1;i++){
              double min = a[c[i]];
              int k=c[i];
              for(int j=i;j<student.size();j++){
                   if(min>a[c[j]]){
                        min=a[c[j]];
                        k=j;
                   }
              }
              int st = c[i];
              c[i] = c[k];
              c[k] = st;
         }
         for(int i=0;i<student.size();i++){
              System.out.println(i+1+"\t"+student.get(c[i]).name+"\t"+student.get(c[i]).grade[temp]);
         }
    }
    public static void main(String[] args){
         ArrayList<Student> student = new ArrayList<>();
         student.add(new Student("zhang",26,69,46,25,5));
         student.add(new Student("wang",27,10,24,66,58));
         student.add(new Student("li",44,58,0,82,75));
         student.add(new Student("zhao",6,68,92,9,84));
         student.add(new Student("liu",75,1,51,41,74));
         student.add(new Student("song",23,38,65,1,55));

         int temp=1;
         String arr;
         Scanner reader = new Scanner(System.in);
         while(true){
              System.out.println("请输入命令:");
              arr = reader.nextLine();
              if(arr.equals("exit")){
                   System.out.println("退出查询系统!byebye!");
                   System.exit(0);
              }
              for(int i=0;i<5;i++){
                 String arr1 = "avg"+" "+className[i];
                 if(arr.equals(arr1)){
                        averageClass(className[i],student); 
                        break;
                 }
              }
              for(int i=0;i<student.size();i++){
                   String arr2 = "avg"+" "+student.get(i).name;
                   if(arr.equals(arr2)){
                        averageStudentGrade(student.get(i).name,student);
                        break;
                   }
              }
              for(int i=0;i<student.size();i++){
                  for(int j=0;j<5;j++){
                         String arr3 = "get" + " "+student.get(i).name+" "+className[j];
                                            if(arr.equals(arr3)){
                        double average = getStudentGrade(student.get(i).name,className[j],student);
                        System.out.println(student.get(i).name+"的"+className[j]+"成绩是:"+average);
                        break;
                   }
                  }
              }
              for(int i=0;i<5;i++){
                   String arr4 = "sort"+" "+className[i];
                   if(arr.equals(arr4)){
                        sortClassGrade(className[i],student);
                   }
              }
         }
    }
}

谢谢大家浏览!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值