Java学生管理系统-增删改查

㈠、Student类,有构造、封装等操作。  

在创建成员变量后,可以通过

 

快捷键:Alt Insert

快速完成无参构造函数,有参构造函数,以及成员变量的get,set封装函数哦~

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA57-g5Zi077yM5omT54OC5aW555qE5p6c77yB,size_20,color_FFFFFF,t_70,g_se,x_16

 


package Student;
public class Student {
    private String age;
    private String name;
    public Student(){};
    public void show(){
        System.out.println(age+name); }
    public Student(String age,String name){
        this.name=name;
        this.age=age; }
    public void setAge(String age){
        this.age=age;}
    public String  getAge(){
        return age; }
    public void setName(String name){
        this.name=name; }
    public String getName(){
        return name; }
}

 ㈡、StudentTest测试类,也是运行的类。

大概思路就是:

一个主函数通过Switch功能选择,四个方法zeng(),shan(),gai(),cha()分别进行功能实现。


*其中用到了ArrayList<E>集合a来存储学生信息,不同于数组,它的长度可自由更改,具体用法参照另一篇文章:

我用#CSDN#这个app发现了有技术含量的博客,小伙伴们求同去《Java速成(8/30)-集合类ArrayList<E>、泛型、增删查改》, 一起来围观吧 https://blog.csdn.net/m0_68079241/article/details/123625776?utm_source=app&app_version=5.2.1&code=app_1562916241&uLinkId=usr1mkqgl919blen


我们在增删改查学生信息时,一般通过new一个student类,创建对象s,令s=a.(i),以s为媒介执行一系列操作,而不用a(i),不方便*

[a.add(s)将s加入集合中。

a.remove(s)把集合中的s删掉。

a.set(j,s)替换j处s的信息。

s.getAge()    s.getName()获取对象s的信息。]


[写到这里我才发现我代码全程输入错误年纪打的年级,还有就是对象s我有的时候打的ss]


①在主函数中:

while(true)循环语句,避免执行一次系统就结束掉。再通过default中的:System.exit(0);实现退出循环,终止程序。


②在增加功能zeng()中:

如果集合a.size()==0,说明暂无学生信息,可以直接添加。a.size()不为0,则通过for循环遍历集合a,判断学生信息是否已经存在,不存在继续添加,已存在报错提示!


③在删除,修改,查询功能中,先看a.size()是否为0,为0提醒暂无学生信息,先去添加。

④删除修改功能大同小异,通过for循环,遍历集合,对比键盘录入的信息i和集合里的每个对象的s.getAge()信息,找到集合a里j处的对象:

student s=a.get(j);

if(i.equals(s.getAge()) );

这里用到了equals,不同于“==”的是:

==对比地址,equals对比内容。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA57-g5Zi077yM5omT54OC5aW555qE5p6c77yB,size_20,color_FFFFFF,t_70,g_se,x_16


package Student;

import java.util.ArrayList;
import java.util.Scanner;

public class StudentTest {
    public static void main(String[] args) {
        ArrayList<Student> a = new ArrayList<>();
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.println("------学生管理系统---------");
            System.out.println("--1增2删3改4查5退出      --");
            System.out.println("--选择是:              --");
            System.out.println("------------------------");
            int choice = sc.nextInt();
            switch (choice) {
                case 1:
                    zeng(a);
                    break;
                case 2:
                    shan(a);
                    break;
                case 3:
                    gai(a);
                    break;
                case 4:
                    cha(a);
                    break;
                default:
                    System.out.println("感谢使用!");
                    System.exit(0);//java虚拟机退出
                    break;
            }
        }
    }

    public static void zeng(ArrayList<Student> a) {
        Student s = new Student();
        Scanner sc = new Scanner(System.in);
        System.out.println("你要录入的学生的年级:");
        String ag = sc.nextLine();
        System.out.println("姓名:");
        String na = sc.nextLine();
        if (a.size() == 0) {
            s.setAge(ag);
            s.setName(na);
            a.add(s);
        } else {
            for (int j = 0; j < a.size(); j++) {
                Student ss = a.get(j);
                if (ag.equals(ss.getAge())) {
                    System.out.println("该年级已存在");
                    break;
                } else if (j == a.size() - 1) {
                    s.setAge(ag);
                    s.setName(na);
                    a.add(s);
                    System.out.println("学生信息已添加成功!");
                    break;
                }
            }
        }
        System.out.println("继续增加请按1,退出增加请按2:");
        int c = sc.nextInt();
        if (c == 1) {
            zeng(a);
        }
    }

    public static void shan(ArrayList<Student> a) {
        if (a.size() != 0) {
            System.out.println("你要删除的学生的年级:");
            Scanner sc = new Scanner(System.in);
            String i = sc.nextLine();
            for (int j = 0; j < a.size(); j++) {
                Student ss = a.get(j);
                if (i.equals(ss.getAge())) {
                    System.out.println("该学生的信息存在:年级和姓名是:" + ss.getAge() + "," + ss.getName());
                    a.remove(ss);
                    System.out.println("已删除!");
                    break;
                } else if (j == a.size() - 1) {
                    System.out.println("该学生的信息不存在");
                    break;
                }
            }
            System.out.println("继续删除请按1,退出删除请按2:");
            int c = sc.nextInt();
            if (c == 1) {
                shan(a);
            }
        } else {
            System.out.println("学生信息数据库为空,请先增加学生信息!");
        }
    }

    public static void gai(ArrayList<Student> a) {
        if (a.size() != 0) {
            System.out.println("你要修改的学生的年级:");
            Scanner sc = new Scanner(System.in);
            String i = sc.nextLine();
            for (int j = 0; j < a.size(); j++) {
                Student ss = a.get(j);
                {
                    if (i.equals(ss.getAge())) {
                        System.out.println("该学生的信息存在:年级和姓名是:" + ss.getAge() + "," + ss.getName());
                        System.out.println("请输入更改后的年级:");
                        String g = sc.nextLine();
                        System.out.println("请输入更改后的姓名:");
                        String n = sc.nextLine();
                        ss.setName(n);
                        ss.setAge(g);
                        a.set(j, ss);
                        System.out.println("更改成功!");
                        break;
                    } else if (j == a.size() - 1) {
                        System.out.println("该学生的信息不存在");
                        break;
                    }
                }
            }
            System.out.println("继续修改请按1,退出修改请按2:");
            int c = sc.nextInt();
            if (c == 1) {
                gai(a);
            }
        } else {
            System.out.println("暂无学生信息,请先增加录入!");
        }
    }

    public static void cha(ArrayList<Student> a) {
        if (a.size() != 0) {
            System.out.println("年级:");
            Scanner sc = new Scanner(System.in);
            String i = sc.nextLine();
            for (int j = 0; j < a.size(); j++) {
                Student ss = a.get(j);
                if (i.equals(ss.getAge())) {
                    System.out.println("该学生的信息存在:年级和姓名是:" + ss.getAge() + "," + ss.getName());
                    break;
                } else if (j == a.size() - 1) {
                    System.out.println("该学生的信息不存在");
                    break;
                }
            }
            System.out.println("继续查询请按1,退出查询请按2:");
            int c = sc.nextInt();
            if (c == 1) {
                cha(a);
            } else {
            }
        } else {
            System.out.println("暂无数据");
        }
    }
}

在每一个功能结束后我都会问是否重复这个功能,所以还有一个if语句。


另外代码写完一定很乱,怎么办?

全选,快捷键Ctrl+Alt+L可以帮你格式化~


他们是在同一个package--Student下的两个类,学生类和测试类。

运行软件为IDEA。环境java8


运行结果示意图:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA57-g5Zi077yM5omT54OC5aW555qE5p6c77yB,size_6,color_FFFFFF,t_70,g_se,x_16watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA57-g5Zi077yM5omT54OC5aW555qE5p6c77yB,size_6,color_FFFFFF,t_70,g_se,x_16

 

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA57-g5Zi077yM5omT54OC5aW555qE5p6c77yB,size_7,color_FFFFFF,t_70,g_se,x_16 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA57-g5Zi077yM5omT54OC5aW555qE5p6c77yB,size_7,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA57-g5Zi077yM5omT54OC5aW555qE5p6c77yB,size_6,color_FFFFFF,t_70,g_se,x_16 

 

 

 

 

 

  • 14
    点赞
  • 87
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

翠嘴 打烂她的果

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值