Java是面向过程的(这也是我喜欢Java的一个原因),相对于Python,Java显得十分繁琐,且很多地方明明可以简化,确搞得特别复杂,但从另一个角度来说Java显得更加严谨。

在管理系统的领域中,我觉得Java在个体单页时会显得特别的臃肿繁琐,许许多多很难解决的地方,不像Python,Python在数据量大时个体单页才显得无力,所以Java中的管理系统要是搭配上数据库,那工作量与各大小问题会少很多。

话不多说开始我们今天的学生管理系统:

思维模式:这里用到的是面向对象,首先先写出每个方法,再进行逐个排版实例化,去实现我们需要一个系统(我很喜欢Java的这个写法)

首先输入咱需要用到的模块:

package kaohe;
import java.util.Scanner;

我们的数据存放与初始数据类:

class students{
    String yiz = "懿子";
    String guiz = "贵子";
    String YIZI = "yizi" ;
    String xingbie = "男" ;
    String xingbien = "女" ;
    int yizsheng = 190;
    int yizti = 130;
    int guizsheng = 130;
    int guizti = 190;
    int YIZIsheng = 190;
    int YIZIti = 191;
}
class studentc{
    String yuwen = "语文";
    String shux = "数学";
    String yingyu = "英语";
    int yizyw,yizsx,yizyyi;
    int guizyw,guizsx,guizyyi;
    int YIZIyw,YIZIsx,YIZIyyi;
    int yy = 99;
    int ys = 98;
    int yyi = 97;
    int gy = 96;
    int gs = 95;
    int gyi = 94;
    int YY = 93;
    int YS = 94;
    int YYI = 93;
}

我们的导语类,因为里面用到了数据类students 的数据,所以我们的导语类是需要继承students:

class daoyu extends students{
    public void kaishi(){
        System.out.println("欢迎进入学生管理系统");
    }
    public void ssheng(){
        System.out.println("在校学生有"+yiz+guiz+YIZI);
    }
    public void zsheng(){
        System.out.println("请输入您需要的操作1.查询学生身体状况 2.学生成绩");
    }
    public void dqcj(){
        System.out.println("当前学生的成绩为:");
    }
    public void esheng(){
        System.out.println("成绩修改输入继续修改 退出系统输入ESC");
    }
    public void xsheng(){
        System.out.println("1.插入成绩 2.查询成绩");
    }
    public void tx(){
        System.out.println("请输入需要插入同学名字:");
    }
    public void km(){
        System.out.println("请输入需要插入的科目");
    }
    public void cr(){
        System.out.println("请输入需要插入的分数");
    }
}

写一个学生身体状况的类,因为它需要用到students里的数据,所以要继承它:

class studentst extends students{
    public void yizz(){
        int yizz = yizsheng / yizti ;
        System.out.println(yiz+"同学 性别:"+xingbien+"身高:"+yizsheng+"体重:"+yizti+"健康状况:"+yizz);
    }
    public void guizz(){
        int guizz = guizsheng / guizti ;
        System.out.println(guiz+"同学 性别:"+xingbie+"身高:"+guizsheng+"体重:"+guizti+"健康状况:"+guizz);
    }
    public void YIZIz(){
        int YIZIz = YIZIsheng / YIZIti ;
        System.out.println(YIZI+"同学 性别:"+xingbien+"身高:"+YIZIsheng+"体重:"+YIZIti+"健康状况:"+YIZIz);
    }
}

实现其中一个同学的方法:

class yizc extends studentc{
    public void yw(){
        Scanner in = new Scanner(System.in);
        int yw = in.nextInt();
        yizyw = yy - yy + yw;
        this.yy = yizyw;
        System.out.println("插入了懿子的语文成绩:"+yizyw+"分");
    }
    public void sx(){
        Scanner in = new Scanner(System.in);
        int yw = in.nextInt();
        yizsx = ys - ys + yw;
        System.out.println("插入了懿子的数学成绩:"+yizsx+"分");
        this.ys = yizsx;
    }
    public void yyi(){
        Scanner in = new Scanner(System.in);
        int yw = in.nextInt();
        yizyyi = yyi - yyi + yw;
        System.out.println("插入了懿子的英语成绩:"+yizyyi+"分");
        this.yyi = yizyyi;
    }
    public void ycj(){
        System.out.println("懿子的成绩为 语文:"+this.yy+"数学:"+this.ys+"英语:"+this.yyi);
    }
}

有了这条基础,可以试试实现另外两个

1

2

3

4

5

另外两个:

class guizf extends yizc{
    public void yw(){
        Scanner in = new Scanner(System.in);
        int yw = in.nextInt();
        guizyw = gy - gy + yw;
        System.out.println("插入了贵子的语文成绩:"+guizyw+"分");
        this.gy = guizyw;
    }
    public void sx(){
        Scanner in = new Scanner(System.in);
        int yw = in.nextInt();
        guizsx = gs - gs + yw;
        System.out.println("插入了贵子的数学成绩:"+guizsx+"分");
        this.gs = guizsx;
    }
    public void yyi(){
        Scanner in = new Scanner(System.in);
        int yw = in.nextInt();
        guizyyi = gyi - gyi + yw;
        System.out.println("插入了贵子的英语成绩:"+guizyyi+"分");
        this.gyi = guizyyi;
    }
    public void gcj(){
        System.out.println("贵子的成绩为 语文:"+this.gy+"数学:"+this.gs+"英语:"+this.gyi);
    }
}
class YIZIZ extends guizf{
    public void yw(){
        Scanner in = new Scanner(System.in);
        int yw = in.nextInt();
        YIZIyw = YY - YY + yw;
        System.out.println("插入了yizi的语文成绩:"+YIZIyw+"分");
        this.YY = YIZIyw;
    }
    public void sx(){
        Scanner in = new Scanner(System.in);
        int yw = in.nextInt();
        YIZIsx = YS - YS + yw;
        System.out.println("插入了yizi的数学成绩:"+YIZIsx+"分");
        this.YS = YIZIsx;
    }
    public void yyi(){
        Scanner in = new Scanner(System.in);
        int yw = in.nextInt();
        YIZIyyi = YYI - YYI + yw;
        System.out.println("插入了yizi的英语成绩:"+YIZIyyi+"分");
        this.YYI = YIZIyyi;
    }
    public void Ycj(){
        System.out.println("YIZI的成绩为 语文:"+this.YY+"数学:"+this.YS+"英语:"+this.YYI);
    }
}

这里有个问题,为什么guizf是继承yizc,而YIZIZ是继承guizf呢?

哪个类的方法是最多的呢?  答案是YIZIZ

要知道我们在Java中继承是什么关系,继承就像继承家产,父类将他所有的东西给了子类,子类就拥有父类有的方法,但父类不拥有子类有的方法。

所以以此类推 YIZIZ拥有前面所有类的方法,这也是解决Java中不能继承多个父类的一个好方法。

初始成绩类:

class dcj extends studentc{
    public void dycj(){
        System.out.println("懿子的成绩为 语文:"+yy+"数学:"+ys+"英语:"+yyi);
    }
    public void dgcj(){
        System.out.println("贵子的成绩为 语文:"+gy+"数学:"+gs+"英语:"+gyi);
    }
    public void dYcj(){
        System.out.println("yizi的成绩为 语文:"+YY+"数学:"+YS+"英语:"+YYI);
    }
}

每个需要用到的方法我们已经实现了,现在我们要将它们实例化,展现给别人看。

在面向对象中实例化中才能看出一个写码的逻辑思维

io学生管理 java java中学生管理系统_Java

 按照这个思维,我们逐个实例化各个方法:

public static void main(String[] ARGE){
        String i;
        daoyu dy = new daoyu();
        studentst st = new studentst();
        yizc yc = new yizc();
        guizf gf = new guizf();
        YIZIZ yz = new YIZIZ();
        dcj dj = new dcj();
        dy.kaishi();
        dy.ssheng();
        dy.zsheng();
        Scanner in = new Scanner(System.in);
        String shur = in.next();
        switch (shur){
            case "查询学生身体状况":
                st.yizz();
                st.guizz();
                st.YIZIz();
                break;
            case "学生成绩":
                dy.dqcj();
                dj.dycj();
                dj.dgcj();
                dj.dYcj();
                while (true){
                    dy.esheng();
                    Scanner sc = new Scanner(System.in);
                    i = sc.nextLine();
                if(i.equals("ESC")){
                    System.out.println("退出系统");
                    break;
                }
                else {
                dy.xsheng();
                String P = in.next();
                switch (P){
                    case "插入成绩":
                        dy.tx();
                        String e = in.next();
                        switch (e){
                            case "懿子":
                                dy.km();
                                String w = in.next();
                                switch (w){
                                    case "语文":
                                        dy.cr();
                                        yc.yw();
                                        break;
                                    case "数学":
                                        dy.cr();
                                        yc.sx();
                                        break;
                                    case "英语":
                                        dy.cr();
                                        yc.yyi();
                                        break;
                                }
                                break;
                            case "贵子":
                                dy.km();
                                String r = in.next();
                                switch (r){
                                    case "语文":
                                        dy.cr();
                                        gf.yw();
                                        break;
                                    case "数学":
                                        dy.cr();
                                        gf.sx();
                                        break;
                                    case "英语":
                                        dy.cr();
                                        gf.yyi();
                                        break;
                                }
                                break;
                            case "yizi":
                                dy.km();
                                String a = in.next();
                                switch (a){
                                    case "语文":
                                        dy.cr();
                                        yz.yw();
                                        break;
                                    case "数学":
                                        dy.cr();
                                        yz.sx();
                                        break;
                                    case "英语":
                                        dy.cr();
                                        yz.yyi();
                                        break;
                                }
                        }
                        break;
                    case "查询成绩":
                        yc.ycj();
                        gf.gcj();
                        yz.Ycj();
                        break;
                }
                }
                }
        }
    }

这里我们用到的是switch方法,将它们逐个实现

好啦,Java学生管理系统就大功告成了,这个有很多不完善的地方,需要用到数据库来弥补缺陷,所以后续会更新。