码迷,mamicode.com
首页 > 编程语言 > 详细

java 学生管理系统

时间:2018-01-03 14:04:48      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:compareto   alt   color   comm   obj   val   exti   false   imp   

//student.java
 
package com.sran.www;
 
import java.util.Arrays;
import java.util.Scanner;
 
public class Student implements Comparable<Student>{
    int num;
    String name;
    int age;
    double[]s;
    double sum; //存储学生的总分
     
    public Student()
    {
        s=new double[3];
    }
 
    public static boolean insert()
    {
        Scanner sc=new Scanner(System.in);
        String str=null;
        boolean be=true;
         
        do
        {
            Student stud=new Student();
            System.out.println("开始录入学生的相关信息.....");
            System.out.print("学号:");
            stud.num=sc.nextInt();
            System.out.print("姓名:");
            stud.name=sc.next();
            System.out.print("年龄:");
            stud.age=sc.nextInt();
             
            System.out.println("依次输入三门课的成绩:");
            System.out.print("语文:");
            stud.s[0]=sc.nextDouble();
            System.out.print("数学:");
            stud.s[1]=sc.nextDouble();
            System.out.print("英语:");
            stud.s[2]=sc.nextDouble();
             
            stud.sum=stud.calculate_sum();
                 
            StudentTest.set.add(stud);
             
            System.out.println("如果继续录入,则输入%,否则输入 #");
            System.out.print("请输入:");
            str=sc.next();
             
            if(!(str.equals("%")||str.equals("#")))
            {
                be=false;
                System.out.println("你输入有误,已强制结束录入操作");
            }
             
        }while(str.equals("%") && be);
         
        return be;
    }
     
    public static boolean delete()
    {
        String str=null;
        boolean be=true;
        System.out.println("开始删除学生的相关信息.....");
        do
        {
            System.out.print("请输入要删除的学生的学号:");
            Scanner sc=new Scanner(System.in);
            int s=sc.nextInt();
             
            boolean flag=false;  //设一标志位
             
            for(Student stud:StudentTest.set)
            {
                if(s==stud.num)
                {
                    StudentTest.set.remove(stud);
                    flag=true;
                    System.out.println("已删除该学生的信息");
                    break;
                }
             
            }
             
            if(flag==false)
            {
                System.out.println("你要删除的学生的学号不存在");
            }
             
            System.out.println("如果继续删除,则输入 %,否则输入#");
            System.out.print("请输入:");
            str=sc.next();
             
            if(!(str.equals("%")||str.equals("#")))
            {
                be=false;
                System.out.println("你输入有误,已强制结束删除操作");
            }
             
        }while(str.equals("%") && be);
         
        return be;
    }
     
     
    public static boolean seek()
    {
        String str=null;
        boolean be=true;
        System.out.println("开始查找学生的相关信息.....");
        do
        {
            System.out.print("请输入要查找的学生的学号:");
            Scanner sc=new Scanner(System.in);
            int s=sc.nextInt();
             
            boolean flag=false;
             
            for(Student stud:StudentTest.set)
            {
                if(s==stud.num)
                {
                    flag=true;  //修改标志位
                    System.out.println("你要查找的学生的信息:");
                     
                    System.out.println("学号:"+stud.num);
                    System.out.println("姓名:"+stud.name);
                    System.out.println("年龄:"+stud.age);
                    System.out.println("语文成绩:"+stud.s[0]);
                    System.out.println("数学成绩:"+stud.s[1]);
                    System.out.println("英语成绩:"+stud.s[2]);
                     
                    break;
                }
            }
             
            if(flag==false)
            {
                System.out.println("你要查找的学生的学号不存在");
            }
             
             
            System.out.println("如果继续查找,则输入 %,否则输入#");
            System.out.print("请输入:");
            str=sc.next();
             
            if(!(str.equals("%")||str.equals("#")))
            {
                be=false;
                System.out.println("你输入的有误,已强制结束查询操作");
            }
             
        }while(str.equals("%") && be);
             
        return be;
    }
     
    public double calculate_sum()
    {  
        sum=s[0]+s[1]+s[2];
        return sum;
    }
 
    @Override
    public int compareTo(Student stud) {
        this.sum=this.calculate_sum();
        stud.sum=stud.calculate_sum();
         
        if(this.sum>stud.sum) return -1;
        else if(this.sum<stud.sum) return 1;
        else
        {
            if(this.name.compareTo(stud.name)>0)  return -1;
            else if(this.name.compareTo(stud.name)<0)  return 1;
            else
                return 0;
        }
    }
     
    public String toString()
    {
        System.out.println("学号"+"\t\t"+"姓名"+"\t\t"+"年龄"+"\t\t"+"语文"+"\t\t"+"数学"+"\t\t"+"英语"+"\t\t"+"总分");
        return(num+"\t\t"+name+"\t\t"+age+"\t\t"+s[0]+"\t\t"+s[1]+"\t\t"+s[2]+"\t\t"+sum);
     
    }
     
    public static boolean update()
    {
        String str=null;
        boolean bot=true;
         
        System.out.println("开始更新学生信息.....");
        do
        {
            System.out.print("请输入要更新的学生的学号:");
            Scanner sc=new Scanner(System.in);
            int s=sc.nextInt();
            boolean be=false;
            boolean br=false;  
             
            for(Student stud:StudentTest.set)
            {
                if(stud.num==s)
                {
                    be=true;    //修改标志位
                    System.out.println("请输入要更新的哪一项: 其中1代表学号,2代表姓名,3代表年龄,4代表语文成绩,5代表数学成绩,6代表英语成绩");
                    System.out.print("请输入:");
                    int n=sc.nextInt();
                     
                    switch(n)
                    {
                    case 1:
                    {
                        System.out.print("请输入修改后的学号:");
                        stud.num=sc.nextInt();
                        System.out.println("修改成功");
                        break;
                    }
                    case 2:
                    {
                        System.out.print("请输入修改后的姓名:");
                        stud.name=sc.next();
                        System.out.println("修改成功");
                        break;
                    }
                    case 3:
                    {
                        System.out.print("请输入修改后的年龄:");
                        stud.age=sc.nextInt();
                        System.out.println("修改成功");
                        break;
                    }
                    case 4:
                    {
                        System.out.print("请输入修改后的语文成绩:");
                        stud.s[0]=sc.nextDouble();
                        System.out.println("修改成功");
                         
                        stud.sum=stud.calculate_sum();  //重新更新总分
                        br=true;
                         
                        break;
                    }
                    case 5:
                    {
                        System.out.print("请输入修改后的数学成绩:");
                        stud.s[1]=sc.nextDouble();
                        System.out.println("修改成功");
                         
                        stud.sum=stud.calculate_sum();  //重新更新总分
                        br=true;
                         
                        break;
                    }
                    case 6:
                    {
                        System.out.print("请输入修改后的英语成绩:");
                        stud.s[2]=sc.nextDouble();
                        System.out.println("修改成功");
                         
                        stud.sum=stud.calculate_sum();  //重新更新总分
                        br=true;
                         
                        break;
                    }
                     
                    }
                             
                }
            }
             
            if(br==true)
            {
                Object[]obj=StudentTest.set.toArray();
                Arrays.sort(obj);
                StudentTest.set.clear();
                 
                for(int i=0;i<obj.length;i++)
                {
                    Student st=(Student)obj[i];
                    StudentTest.set.add(st);
                }
            }
             
             
            if(be==false)
            {
                System.out.println("你要修改的学生的学号不存在");
            }
             
            System.out.println("如果继续修改,则输入 %,否则输入#");
            System.out.print("请输入:");
            str=sc.next();
             
            if(!(str.equals("%")||str.equals("#")))
            {
                bot=false;
                System.out.println("你输入有误,已强制结束更新操作");
            }
             
        }while(str.equals("%") && bot);
         
        return bot;
    }
     
}

 调用

//StudentTest
 
package com.sran.www;
 
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;
 
public class StudentTest {
    static Set<Student>set=null;  //定义集合,存储学生信息
     
    public void fun()
    {
        int i; 
        boolean b,bt;
        set=new TreeSet<Student>(); 
        do{
            int flag=0;
            System.out.println("请输入1,2,3,4,5   1代表录入,2代表删除,3代表查找,4代表显示学生总成绩排名,5代表更新某个学生数据");
            System.out.print("请输入:");
            Scanner sc=new Scanner(System.in);
            int n=sc.nextInt();
             
            switch(n)
            {
            case 1:
            {
                b=Student.insert();
                if(b==true)
                {
                    System.out.println("正常结束录入操作.....");
                }
                flag=1;
                break;
            }
            case 2:
            {
                b=Student.delete();
                if(b==true)
                {
                    System.out.println("正常结束删除操作.....");
                }
                flag=1;
                break;
            }
            case 3:
            {
                b=Student.seek();
                if(b==true)
                {
                    System.out.println("正常结束查询操作.....");
                }
                flag=1;
                break;
            }
            case 4:
            {
                System.out.println("开始排名学生信息.....");
                System.out.println("学生按总成绩排名:");
                for(Student stud:set)
                {
                    System.out.println(stud);
                    System.out.println();
                }
                 
                System.out.println("正常结束排名操作.....");
                flag=1;
                break;
            }
             
            case 5:
            {
                b=Student.update();
                if(b==true)
                {
                    System.out.println("正常结束更新操作.....");
                }
                flag=1;
                break;
            }
             
            }
            if(flag==0)
            {
                System.out.println("你输入有误,请重新输入");
            }
             
            System.out.println();
             
            do
            {  
                bt=false;
                System.out.println("继续所有学生信息操作,请输入1    退出学生信息系统 ,请输入0");
                System.out.print("请输入:");
                i=sc.nextInt();
                 
                if(i!=1 && i!=0)
                {
                    bt=true;
                    System.out.println("输入有误,请重新输入");
                }
                 
            }while(bt==true);
                 
        }while(i==1);
         
        System.out.println("你已退出学生信息系统.....");
         
    }
     
    public static void main(String[] args) {
        new StudentTest().fun();
    }
}

 

//student.java
 
package com.sran.www;
 
import java.util.Arrays;
import java.util.Scanner;
 
public class Student implements Comparable<Student>{
    int num;
    String name;
    int age;
    double[]s;
    double sum; //存储学生的总分
     
    public Student()
    {
        s=new double[3];
    }
 
    public static boolean insert()
    {
        Scanner sc=new Scanner(System.in);
        String str=null;
        boolean be=true;
         
        do
        {
            Student stud=new Student();
            System.out.println("开始录入学生的相关信息.....");
            System.out.print("学号:");
            stud.num=sc.nextInt();
            System.out.print("姓名:");
            stud.name=sc.next();
            System.out.print("年龄:");
            stud.age=sc.nextInt();
             
            System.out.println("依次输入三门课的成绩:");
            System.out.print("语文:");
            stud.s[0]=sc.nextDouble();
            System.out.print("数学:");
            stud.s[1]=sc.nextDouble();
            System.out.print("英语:");
            stud.s[2]=sc.nextDouble();
             
            stud.sum=stud.calculate_sum();
                 
            StudentTest.set.add(stud);
             
            System.out.println("如果继续录入,则输入%,否则输入 #");
            System.out.print("请输入:");
            str=sc.next();
             
            if(!(str.equals("%")||str.equals("#")))
            {
                be=false;
                System.out.println("你输入有误,已强制结束录入操作");
            }
             
        }while(str.equals("%") && be);
         
        return be;
    }
     
    public static boolean delete()
    {
        String str=null;
        boolean be=true;
        System.out.println("开始删除学生的相关信息.....");
        do
        {
            System.out.print("请输入要删除的学生的学号:");
            Scanner sc=new Scanner(System.in);
            int s=sc.nextInt();
             
            boolean flag=false//设一标志位
             
            for(Student stud:StudentTest.set)
            {
                if(s==stud.num)
                {
                    StudentTest.set.remove(stud);
                    flag=true;
                    System.out.println("已删除该学生的信息");
                    break;
                }
             
            }
             
            if(flag==false)
            {
                System.out.println("你要删除的学生的学号不存在");
            }
             
            System.out.println("如果继续删除,则输入 %,否则输入#");
            System.out.print("请输入:");
            str=sc.next();
             
            if(!(str.equals("%")||str.equals("#")))
            {
                be=false;
                System.out.println("你输入有误,已强制结束删除操作");
            }
             
        }while(str.equals("%") && be);
         
        return be;
    }
     
     
    public static boolean seek()
    {
        String str=null;
        boolean be=true;
        System.out.println("开始查找学生的相关信息.....");
        do
        {
            System.out.print("请输入要查找的学生的学号:");
            Scanner sc=new Scanner(System.in);
            int s=sc.nextInt();
             
            boolean flag=false;
             
            for(Student stud:StudentTest.set)
            {
                if(s==stud.num)
                {
                    flag=true//修改标志位
                    System.out.println("你要查找的学生的信息:");
                     
                    System.out.println("学号:"+stud.num);
                    System.out.println("姓名:"+stud.name);
                    System.out.println("年龄:"+stud.age);
                    System.out.println("语文成绩:"+stud.s[0]);
                    System.out.println("数学成绩:"+stud.s[1]);
                    System.out.println("英语成绩:"+stud.s[2]);
                     
                    break;
                }
            }
             
            if(flag==false)
            {
                System.out.println("你要查找的学生的学号不存在");
            }
             
             
            System.out.println("如果继续查找,则输入 %,否则输入#");
            System.out.print("请输入:");
            str=sc.next();
             
            if(!(str.equals("%")||str.equals("#")))
            {
                be=false;
                System.out.println("你输入的有误,已强制结束查询操作");
            }
             
        }while(str.equals("%") && be);
             
        return be;
    }
     
    public double calculate_sum()
    {  
        sum=s[0]+s[1]+s[2];
        return sum;
    }
 
    @Override
    public int compareTo(Student stud) {
        this.sum=this.calculate_sum();
        stud.sum=stud.calculate_sum();
         
        if(this.sum>stud.sum) return -1;
        else if(this.sum<stud.sum) return 1;
        else
        {
            if(this.name.compareTo(stud.name)>0return -1;
            else if(this.name.compareTo(stud.name)<0return 1;
            else
                return 0;
        }
    }
     
    public String toString()
    {
        System.out.println("学号"+"\t\t"+"姓名"+"\t\t"+"年龄"+"\t\t"+"语文"+"\t\t"+"数学"+"\t\t"+"英语"+"\t\t"+"总分");
        return(num+"\t\t"+name+"\t\t"+age+"\t\t"+s[0]+"\t\t"+s[1]+"\t\t"+s[2]+"\t\t"+sum);
     
    }
     
    public static boolean update()
    {
        String str=null;
        boolean bot=true;
         
        System.out.println("开始更新学生信息.....");
        do
        {
            System.out.print("请输入要更新的学生的学号:");
            Scanner sc=new Scanner(System.in);
            int s=sc.nextInt();
            boolean be=false;
            boolean br=false;  
             
            for(Student stud:StudentTest.set)
            {
                if(stud.num==s)
                {
                    be=true;    //修改标志位
                    System.out.println("请输入要更新的哪一项: 其中1代表学号,2代表姓名,3代表年龄,4代表语文成绩,5代表数学成绩,6代表英语成绩");
                    System.out.print("请输入:");
                    int n=sc.nextInt();
                     
                    switch(n)
                    {
                    case 1:
                    {
                        System.out.print("请输入修改后的学号:");
                        stud.num=sc.nextInt();
                        System.out.println("修改成功");
                        break;
                    }
                    case 2:
                    {
                        System.out.print("请输入修改后的姓名:");
                        stud.name=sc.next();
                        System.out.println("修改成功");
                        break;
                    }
                    case 3:
                    {
                        System.out.print("请输入修改后的年龄:");
                        stud.age=sc.nextInt();
                        System.out.println("修改成功");
                        break;
                    }
                    case 4:
                    {
                        System.out.print("请输入修改后的语文成绩:");
                        stud.s[0]=sc.nextDouble();
                        System.out.println("修改成功");
                         
                        stud.sum=stud.calculate_sum();  //重新更新总分
                        br=true;
                         
                        break;
                    }
                    case 5:
                    {
                        System.out.print("请输入修改后的数学成绩:");
                        stud.s[1]=sc.nextDouble();
                        System.out.println("修改成功");
                         
                        stud.sum=stud.calculate_sum();  //重新更新总分
                        br=true;
                         
                        break;
                    }
                    case 6:
                    {
                        System.out.print("请输入修改后的英语成绩:");
                        stud.s[2]=sc.nextDouble();
                        System.out.println("修改成功");
                         
                        stud.sum=stud.calculate_sum();  //重新更新总分
                        br=true;
                         
                        break;
                    }
                     
                    }
                             
                }
            }
             
            if(br==true)
            {
                Object[]obj=StudentTest.set.toArray();
                Arrays.sort(obj);
                StudentTest.set.clear();
                 
                for(int i=0;i<obj.length;i++)
                {
                    Student st=(Student)obj[i];
                    StudentTest.set.add(st);
                }
            }
             
             
            if(be==false)
            {
                System.out.println("你要修改的学生的学号不存在");
            }
             
            System.out.println("如果继续修改,则输入 %,否则输入#");
            System.out.print("请输入:");
            str=sc.next();
             
            if(!(str.equals("%")||str.equals("#")))
            {
                bot=false;
                System.out.println("你输入有误,已强制结束更新操作");
            }
             
        }while(str.equals("%") && bot);
         
        return bot;
    }
     
}

java 学生管理系统

标签:compareto   alt   color   comm   obj   val   exti   false   imp   

原文地址:https://www.cnblogs.com/ordinaryk/p/8183043.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!