使用JAVA数组进行数据的增删改查

该博客主要介绍使用Java实现宿舍人员数据增删改查。先准备Person类和Room类,明确业务流程,包括准备宿舍、人员入住、展示信息等。接着创建项目,涉及Dao层、service层等代码编写,最后进行代码运行并展示部分运行效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 准备素材
    Person类(pid,name,sex);sex是指定位到男生宿舍还是女生宿舍。
    Room类(rid,Person[] people,type)type是指定此宿舍为男生宿舍还是女生宿舍。

  2. 业务流程

(1)先准备宿舍; – 要有人; – 入住到宿舍中; – 展示宿舍中当前所有的信息 – 展示宿舍中的人员信息。
(2)准备增删改查:新增 – 解决新增的人信息何处来; – 怎么将此数据存储到宿舍中。
创建项目
项目目录

在这里插入图片描述
创建Person

package com.erha.model;

public class Person {
    private int pid;        // 编号
    private String name;    // 姓名
    private String sex;     // 性别

    public int getPid() {
        return pid;
    }

    public void setPid(int pid) {
        this.pid = pid;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public Person() {
    }

    public Person(String name, String sex) {
        this.name = name;
        this.sex = sex;
    }

    public Person(int pid, String name, String sex) {
        this.pid = pid;
        this.name = name;
        this.sex = sex;
    }

    public String toString(){
        return "人员编号:"+pid+",人员姓名:"+name+",人员性别:"+sex;
    }
}

准备宿舍Room类

package com.erha.model;

public class Room {
    private int rid;        // 房间编号
    private Person[] people;// 住宿的人
    private String type;    // 房间类型

    public int getRid() {
        return rid;
    }

    public void setRid(int rid) {
        this.rid = rid;
    }

    public Person[] getPeople() {
        return people;
    }

    public void setPeople(Person[] people) {
        this.people = people;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public Room() {
    }

    public Room(Person[] people, String type) {
        this.people = people;
        this.type = type;
    }

    public Room(int rid, Person[] people, String type) {
        this.rid = rid;
        this.people = people;
        this.type = type;
    }

    public String toString(){
        return "房间编号:"+rid+",当前人数:"+people.length+",房间类型:"+type;
    }
}

Dao层
PersonDao、RoomDao

public interface PersonDao {
    //1.先解决初始化问题
    void doInitPerson();
    //1.新增一个人员到宿舍中
    boolean doAddPersonToRoom(Person person);
    //2.删除宿舍人员
    void doDelPersonToRoom(int pid);
    //3.修改宿舍人员
    boolean doUpdPersonToRoom(Person person);
    //4.单查宿舍人员
    void doFindById(int pid);
    //5.全查宿舍人员
    void doPrintAll();
}

package com.erha.dao;

import com.erha.model.Room;

public interface RoomDao {
    //准备好宿舍
    Room[] getRooms();

}

PersonDaoImpl、增删改查操作

public class PersonDaoImpl implements PersonDao {
    // 房间从哪里获取的
    RoomDaoImpl rdi = new RoomDaoImpl();
    Room[] rooms=rdi.getRooms();
    @Override
    public void doInitPerson() {
        Person p1 = new Person(1001,"刘德","男");
        Person p2 = new Person(1002,"刘彭","男");
        Person p3 = new Person(1003,"刘若","女");
        // 将人放到对应的宿舍中进行存储
        rooms[0].getPeople()[0] = p1;
        rooms[0].getPeople()[1] = p2;

        rooms[6].getPeople()[0] = p3;

    }

    /***
     * 2.新增宿舍
     * @param person : 来源自于PersonUtil
     * @return true 代表成功,false代表失败
     */
    @Override
    public boolean doAddPersonToRoom(Person person) {
        //先找到空宿舍
        if(person.getSex().equals("男")){      //代表男生宿舍
            for (int i =0;i<6;i++){
                for(int j=0;j<rooms[i].getPeople().length;j++){  //每个宿舍的人
                    if(rooms[i].getPeople()[j]==null){
                        rooms[i].getPeople()[j] = person;
                        return true;
                    }

                }
            }
        }else if(person.getSex().equals("女")){  //代表女生宿舍
            for (int i =6;i<rooms.length;i++) {
                for (int j = 0; j < rooms[i].getPeople().length; j++) {  //每个宿舍的人
                    if (rooms[i].getPeople()[j] == null) {
                        rooms[i].getPeople()[j] = person;

                        return true;
                    }

                }
            }
        }
        return false;
    }

    //3.删除人员
    public void doDelPersonToRoom(int pid){
        for (int i=0;i<rooms.length;i++){
            if (rooms[i].getPeople()!=null) {
                for (int j = 0; j < rooms[i].getPeople().length; j++) {
                    if (rooms[i].getPeople()[j].getPid() == pid) {
                        rooms[i].getPeople()[j] = null;
                        System.out.println("删除成功");
                        break;
                    }else{
                        System.out.println("人员不存在");
                        break;
                    }
                }
            }
            break;
        }


    }
    //4.修改宿舍人员
    public boolean doUpdPersonToRoom(Person person){
        for (int i=0;i<rooms.length;i++){
            if (rooms[i].getPeople()!=null) {
                for (int j = 0; j < rooms[i].getPeople().length; j++) {
                    if (rooms[i].getPeople()[j].getPid() == person.getPid()) {
                        rooms[i].getPeople()[j] = person;
                        return true;
                    }else{
                        return false;
                    }
                }
            }
        }
        return false;
    }


    //5.单查宿舍信息
    @Override
    public void doFindById(int pid) {
        for (int i=0;i<rooms.length;i++){
            if (rooms[i].getPeople()!=null) {
                for (int j = 0; j < rooms[i].getPeople().length; j++) {
                    if (rooms[i].getPeople()[j].getPid() == pid&&rooms[i].getPeople()[j]!=null) {
                        System.out.println(rooms[i].getPeople()[j]);
                        break;
                    }else{
                        System.out.println("人员不存在");
                        break;
                    }
                }
            }break;
        }

    }

    /**
     * 6.打印住宿所有信息
     */
    @Override
    public void doPrintAll() {
        //首先找到宿舍
        for(int i=0;i<rooms.length;i++){

            int num = 0;   //刚开始每个宿舍都没有人

            //打印宿舍人员信息
            if(rooms[i].getPeople()!=null){
                for(int j=0;j<rooms[i].getPeople().length;j++){
                    if(rooms[i].getPeople()[j]!=null){
                        num++;
                    }
                }
            //打印宿舍信息
                System.out.println("当前宿舍为:"+rooms[i].getRid()+",此宿舍当前人数为:"+num+",宿舍类型为:"+rooms[i].getType()+"生宿舍");

                for(int j=0;j<rooms[i].getPeople().length;j++){
                    if(rooms[i].getPeople()[j]!=null){
                        System.out.println(rooms[i].getPeople()[j]);
                    }
                }
            }
            System.out.println();
        }

    }


}

RoomDaoImpl

public class RoomDaoImpl implements RoomDao {

    Room[] rooms = new Room[10];

    /**
     * 1. 获取宿舍提供有效住宿房间
     * @return 多个房间返回
     */
    @Override
    public Room[] getRooms() {

        // (1)定义前6个房间为男生宿舍
        for(int i =0;i<=5;i++){
            rooms[i] = new Room((i+100),new Person[6],"男");
        }

        // (2)定义后4个房间为女生宿舍
        for(int i=6;i<rooms.length;i++){
            rooms[i] = new Room((i+100),new Person[6],"女");
        }

        return rooms;
    }

service层
PersonService、

public interface PersonService {
    //1.先解决初始化问题
    void doInitPerson();
    //1.新增一个人员到宿舍中
    boolean doAddPersonToRoom(Person person);
    //2.删除宿舍人员
    boolean doDelPersonToRoom(Person person);

    //删除人员
    void doDelPersonToRoom(int pid);

    //3.修改宿舍人员
    boolean doUpdPersonToRoom(Person person);
    //4.单查宿舍人员
    void doFindById(int pid);
    //5.全查宿舍人员
    void doPrintAll();
}


PersonServiceImpl

public abstract class PersonServiceImpl implements PersonService {

    PersonDaoImpl pdidao = new PersonDaoImpl();

    @Override
    public void doInitPerson() {
        pdidao.doInitPerson();
    }
//新增人员
    @Override
    public boolean doAddPersonToRoom(Person person) {
        boolean b = pdidao.doAddPersonToRoom(person);
        if(b){
            System.out.println("新增成功!");
            return true;
        }else {
            System.out.println("新增失败!");
            return false;
        }
    }


    //删除人员
    @Override
    public void doDelPersonToRoom(int pid) {
    pdidao.doDelPersonToRoom(pid);
    }

    @Override
    public boolean doUpdPersonToRoom(Person person) {
        boolean  b= pdidao.doUpdPersonToRoom(person);
        if(b){
            System.out.println("修改成功!");
            return true;
        }else {
            System.out.println("修改失败!");
            return false;
        }
    }
    //4.单查
    @Override
    public void doFindById(int pid) {
        pdidao.doFindById(pid);

    }

    //5.全查信息
    @Override
    public void doPrintAll() {
        pdidao.doPrintAll();

    }

}

APPUI
代码运行

public class AppUi {

    Scanner in =  new Scanner(System.in);
    PersonServiceImpl psi = new PersonServiceImpl() {
        @Override
        public boolean doDelPersonToRoom(Person person) {
            return false;
        }
    };
    public void getMenu(){
        System.out.println("\t欢迎使用xxxx后台管理系统");
        //初始化
        psi.doInitPerson();

        System.out.println("1.女生管理\t2.后台管理\t3.注销用户\t4.退出软件");
        System.out.println("请选择菜单(1-4):");
        int choice = in.nextInt();
        switch (choice){
            case 1:
                //实现女生管理
                break;
            case 2:
                //实现宿舍管理
                getSusheMenu();
                break;
            case 3:
                //返回登录页面
                break;
            case 4:
                System.exit(0);
                break;
        }
    }
    public void getSusheMenu(){
        System.out.println("1.增加人员\t2.删除人员\t3.修改人员\t4.单查信息\t5.全查信息\t6.返回上层");
        System.out.println("请选择菜单(1-6):");
        int choice = in.nextInt();
        switch (choice){
            //新增人员
            case 1:
                Person person =new PersonUtil().getPerson("新增");
                psi.doAddPersonToRoom(person);
                psi.doPrintAll();
                break;
                //删除人员
            case 2:
                int pid = new PersonUtil().getPersonId("删除");
                psi.doDelPersonToRoom(pid);
                psi.doPrintAll();
                break;
                //修改信息
            case 3:
                Person person2 =new PersonUtil().getPerson("修改");
                psi.doUpdPersonToRoom(person2);
                psi.doPrintAll();
                break;
                //查询信息
            case 4:
                int pid1 = new PersonUtil().getPersonId("查询");
                psi.doFindById(pid1);
                break;
                //全部查询
            case 5:
                psi.doPrintAll();
                break;
                //返回上一层
            case 6:
                getMenu();
                break;


        }
    }
    public static void main(String[] args){
        new AppUi().getMenu();
    }
}

PersonUtil

public class PersonUtil {

    Scanner in =new Scanner(System.in);

    //获取到新的人员信息
    public Person getPerson(String str){
        System.out.println("请你输入需要"+str+"的人员编号:");
        int pid = in.nextInt();
        System.out.println("请你输入需要"+str+"的人员名称:");
        String name = in.next();
        System.out.println("请你输入需要"+str+"的人员性别:");
        String sex = in.next();

        Person person = new Person(pid,name,sex);
        return person;
    }
    public int getPersonId(String str){
        System.out.println("请您输入需要"+str+"的人员编号:");
        int pid=in.nextInt();
        return pid;
    }
}

运行效果(部分)

	欢迎使用xxxx后台管理系统
1.女生管理	2.后台管理	3.注销用户	4.退出软件
请选择菜单(1-4):
2
1.增加人员	2.删除人员	3.修改人员	4.单查信息	5.全查信息	6.返回上层
请选择菜单(1-6):
1
请你输入需要新增的人员编号:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值