JAVA|简单学生管理系统

 先定义一个学生类

public class Student {
    Scanner sc=new Scanner(System.in);
   static  Student[] stu=new Student[100];

   private String name;
   private int number;
   private static int student_number=0;
   private int subject_number=1;
   private int average;
 
   Grade[] grade=new Grade[50];
   
   int averageCount()
   {
      int score=0;
       for(int i=1;i<=this.subject_number;i++)
       {
           score=score+this.grade[i].score;
       }
      
       return (score/this.subject_number);
   }
   
   public void menu()
   {int a;
   
   System.out.println("*****************学生成绩管理系统*****************");
   System.out.println("*****************1.导入学生数据*******************");
   System.out.println("*****************2.查找最高平均成绩***************");
   System.out.println("*****************3.查找最低平均成绩***************");
   System.out.println("*****************4.打印学生成绩*******************");
   System.out.println("*****************5.退出成绩系统*******************");
   System.out.println("请输入(1~5)其中一个数字");
   
   a=sc.nextInt();
   switch(a)
   {
       case 1:this.add();break;
       case 2:this.high();break;
       case 3:this.low();break;
       case 4:this.printGrade();break;
       case 5:System.out.println("exit!");
    
   }
  
   }

    private void add() {
        int a;
        System.out.println("请输入要录入的学生数:");
        a=sc.nextInt();
       
        System.out.println("***********请按:学号 学生姓名 学科数 学科科目编号 学科科目 学科成绩 的顺序输入,并以空格结尾**********");
        
        for(int i=Student.student_number+1;i<=Student.student_number+a;i++)
        {
            stu[i].number=sc.nextInt();
            stu[i].name=sc.next();
            stu[i].subject_number=sc.nextInt();
           for(int f=1;f<=stu[i].subject_number;f++)
           {
               stu[i].grade[f].num=sc.nextInt();
                stu[i].grade[f].name=sc.next();
               stu[i].grade[f].score=sc.nextInt();
               
           }
          
        }
         
        System.out.println("您已输入"+a+"名学生的数据");
        Student.student_number+=a;
        System.out.println("当前共有"+Student.student_number+"名学生的数据");
        this.menu();
    }

    private void high() {
        int highest=0;

        int[] highstu=new int[10];
     
        int j=0;
        for(int i=1;i<=Student.student_number;i++)
        {
            if (stu[i].averageCount()>=highest)
            {
              j=1;
                highstu[j]=i;
                highest=stu[i].averageCount();
            }
            else if(stu[i].averageCount()==highest)
            {
                j++;
                highstu[j]=i;
            }
            }
        
         System.out.println("学生中最高平均分为:"+highest);
         System.out.println("对应学生为:");
         for(int i=1;i<=j;i++)
         {
                 System.out.println(stu[highstu[i]].name+" ");
         }
         this.menu();
    }

    private void low() {
        
                int lowest=500;

        int[] highstu=new int[10];
     
        int j=0;
        for(int i=1;i<=Student.student_number;i++)
        {
            if (stu[i].averageCount()<=lowest)
            {
              j=1;
                highstu[j]=i;
                lowest=stu[i].averageCount();
            }
            else if(stu[i].averageCount()==lowest)
            {
                j++;
                highstu[j]=i;
            }
            }
        
         System.out.println("学生中最低平均分为:"+lowest);
         System.out.println("对应学生为:");
         for(int i=1;i<=j;i++)
         {
                 System.out.println(stu[highstu[i]].name+" ");
    }
         this.menu();
    }
    
         

    private void printGrade() {
        System.out.println("请输入要查询的学生姓名");
        String name_input =sc.next();
        int i=1;
        
        while(!name_input.equals(stu[i].name))
        {i++;}
        if (i>Student.student_number)
        { 
            System.out.println("未查询到该学生");
        }
        else 
        {
            System.out.println("学生"+stu[i].name+"的各项成绩为:");
             for(int f=1;f<=stu[i].subject_number;f++)
           {
               System.out.println("科目"+f+":"+stu[i].grade[f].num+stu[i].grade[f].name+"的成绩为"+stu[i].grade[f].score+"\n");
           }
        }
        this.menu();
        
                };
      
    }

成绩用到的类

public class Grade {
    
    String name;
    int num;
    int score;
}

主程序

public class StudentSystem {
  
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Student class1=new Student();
        for(int i=0;i<100;i++)
        {
            stu[i]=new Student();
            for(int j=0;j<50;j++)
            {
                stu[i].grade[j]=new Grade();
            }
        }
        class1.menu();
    }
    
}

以下是操作界面,用到的输入比较直白,而且我不知道怎么用java识别输入的回车或者分号,只能在输入时要求提前输入科目数量

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值