学生信息管理系统JAVA

本文档介绍了一个使用JAVA编写的简单学生信息管理系统。系统具备添加、查看、修改和删除学生信息的功能,通过控制台交互实现。核心操作集中在对ArrayList的运用以及对象封装。学生信息以Student类的形式存储,系统通过switch语句根据用户输入执行对应操作。程序实现了基本的增删查改功能,但未处理异常情况,如学号不存在的修改和删除操作。
摘要由CSDN通过智能技术生成

学生信息管理系统(JAVA)

一、目的

设计开发一套完整的学生信息管理系统

(能够对学生的信息进行管理,包括对学生信息的添加,修改,删除,查看以及系统的关闭退出等)

在这里插入图片描述

二、整体框架与思路

  • 学生类:(将学生的个人信息全部封装起来)

  • main方法:

    1. 实现界面的初始化

    2. 能够从键盘录入数据

    3. 选择相应的模块能够调用相应的方法

    4. 程序能够终止

  • 添加学生的方法

  • 查看学生的方法

  • 删除学生的方法

  • 程序退出

三、本系统重难点

  1. 添加、删除、查看、修改四个方法的书写

四、程序完整代码

package Pattern;

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

public class T15 {
    public static void main(String[] args) {
        //定义一个ArrayList用来存放学生信息
        ArrayList<Student> arrayList = new ArrayList<>();
		//使用一个循环控制系统能够持续执行
        while (true) {
            //构建系统初始化界面
            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("请输入你的选择:");
			//从键盘读取数字,得到用户想要进行的操作
            Scanner scanner = new Scanner(System.in);
            int i = scanner.nextInt();
			//通过对数字的判断来进行相应的增删查改
            switch (i) {
                case 1:
                    addStudent(arrayList);
                    break;
                case 2:
                    findStudent(arrayList);
                    break;
                case 3:
                    deleteStudent(arrayList);
                    break;
                case 4:
                    updateStudent(arrayList);
                    break;
                case 5:
                    System.out.println("退出通讯录成功!");
                    System.exit(0);//当选择了5时,直接关闭JVM,整个系统结束
            }
        }
    }

    //增加学生信息
    public static void addStudent(ArrayList<Student> array) {
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入学生学号:");
        int num = scanner.nextInt();
        System.out.println("请输入学生QQ:");
        int qq = scanner.nextInt();
        System.out.println("请输入学生电话:");
        int phone = scanner.nextInt();
		//因为ArrayList传入的数据需要是对象,所以new出来一个封装好的学生对象
        //对象里面的数据就是从键盘录入的,通过set方法将数据传入
        Student s1 = new Student();
        s1.setNum(num);
        s1.setQq(qq);
        s1.setPhone(phone);
		//把学生对象add进ArrayList
        array.add(s1);

        System.out.println("添加成功!");
    }

    //通过遍历ArrayList来实现查看功能
    public static void findStudent(ArrayList<Student> array) {
        //需要先判断ArrayList是否为空
        if (array.size() == 0) {
            System.out.println("通讯录为空,请先录入数据");
            return;//为空的话,退出当前方法
        }
        //不为空向下执行,遍历输出
        System.out.println("学号\tQQ\t\t电话");

        for (int i = 0; i < array.size(); i++) {
            //获取array的每一位,然后调用get方法得到数据
            Student s = array.get(i);
            System.out.println(s.getNum() + "\t\t" + s.getQq() + "\t\t" + s.getPhone());
        }
    }
 	//通过输入得到的学号与集合里面对象的num进行比较,如果相同,就新new一个Student
    //来替换原先的对象(这边有一个小瑕疵,如果学号不存在的情况还没有考虑)
    public static void updateStudent(ArrayList<Student> array) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你要修改的同学学号:");
        int snum = scanner.nextInt();

        System.out.println("请输入新学号:");
        int newnum = scanner.nextInt();
        System.out.println("请输入新QQ:");
        int newqq = scanner.nextInt();
        System.out.println("请输入新电话:");
        int newphone = scanner.nextInt();

        Student s = new Student();
        s.setQq(newqq);
        s.setNum(newnum);
        s.setPhone(newphone);

        for (int i = 0; i < array.size(); i++) {
            Student student = array.get(i);
            if (student.getNum() == snum) {
                array.set(i, s);
                break;
            }
        }
        System.out.println("修改成功!");
    }
	//删除学生信息,比对集合中是否存在该学号的数据,若存在则删除
    public static void deleteStudent(ArrayList<Student> array) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入需要删除的同学的学号:");

        int num = scanner.nextInt();

        int index = -1;
        for (int i = 0; i < array.size(); i++) {
            Student s = array.get(i);
            if (s.getNum() == num){
                index = i;
                break;
            }
        }
        if (index == -1){
            System.out.println("你输入的信息不存在,请重新输入");
        }else {
            array.remove(index);
            System.out.println("删除成功!");
        }
    }
}
class Student {
    private int num;
    private int qq;
    private int phone;

    public Student() {
    }

    public Student(int num, int qq, int phone) {
        this.num = num;
        this.qq = qq;
        this.phone = phone;
    }

    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }

    public int getQq() {
        return qq;
    }

    public void setQq(int qq) {
        this.qq = qq;
    }

    public int getPhone() {
        return phone;
    }

    public void setPhone(int phone) {
        this.phone = phone;
    }
}

五、系统总结

这个系统的书写还是很经典的,通过这个系统可以让我对ArrayList集合的遍历,以及对象封装之后作为元素存储在集合里,怎么通过get方法获取到对象里面的数据然后进行比对。如果有必要,需要在次把代码全部删除,从头开始重新书写练习一遍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值