利用数组实现简单的增删改查-(宿舍管理后台系统)

宿舍管理系统

目录结构

在这里插入图片描述

项目开始

在model包中创建Person.java实体类和Room.java实体类
Person.java

package com.sushe.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(int pid) {
        this.pid = pid;
    }

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

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

    @Override
    public String toString() {
        return "Person{" +
                "pid=" + pid +
                ", name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                '}';
    }
}

Room.java

package com.sushe.model;

import java.util.Arrays;

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(int rid, Person[] people, String type) {
        this.rid = rid;
        this.people = people;
        this.type = type;
    }

    @Override
    public String toString() {
        return "房间号:"+rid+",宿舍成员:"+people+",宿舍类型:"+type;
    }
}

编写dao层,创建PersonDao.java和RoomDao.java接口,编写方法
PersonDao.java

package com.sushe.dao;

import com.sushe.model.Person;

public interface PersonDao {
   //1宿舍人员初始化
   void doInitPerson();
   //2新增一个人员到宿舍
   boolean doAddPersonToRoom(Person person);
   //3.删除一个人员
   void doDeletePerson(int id);
   //4.修改人员信息
   void doUpdatePerson(Person person);
   //5.根据学生编号查询信息
   void doFindById(int id);
   //6查询住宿信息
   void doPrintAll();
}

RoomDao.java

package com.sushe.dao;

import com.sushe.model.Room;

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

}

写完接口就要对里面的方法进行实现(implement)
PersonDaoImpl.java

package com.sushe.dao.Impl;

import com.sushe.dao.PersonDao;
import com.sushe.model.Person;
import com.sushe.model.Room;
import com.sushe.util.PersonUtil;

public class PersonDaoImpl implements PersonDao {

    //获取宿舍部分
    RoomDaoImpl rdi=new RoomDaoImpl();
    Room[] rooms=rdi.getRooms();
    //1.初始化人
    @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]=p3;
        //女生
        rooms[5].getPeople()[0]=p2;
    }

    /**
     * 新增数据
     * @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++){ //宿舍成员
//                   System.out.println(rooms[i].getPeople()[j].getPid());
                   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;
    }

    @Override
    public void doDeletePerson(int id) {
        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]!=null){
                    if (id==rooms[i].getPeople()[j].getPid()){
                        rooms[i].getPeople()[j]=null;
                        System.out.println("删除成功");
                        break;
                    }else {
                        System.out.println(rooms[i].getRid()+"号寝室无此学生编号");
                    }
                }

            }
                break;
            }
        }
    }

    @Override
    public void doUpdatePerson(Person person) {
        for (int i = 0; i <rooms.length ; i++) {//宿舍
            for (int j=0;j<rooms[i].getPeople().length;j++){//宿舍成员
                if (rooms[i].getPeople()[j]!=null){
                    if (person.getPid()==rooms[i].getPeople()[j].getPid()){
                        rooms[i].getPeople()[j].setName(person.getName());
                        break;
                    }else {
                        System.out.println(rooms[i].getRid()+"号寝室无此学生编号");
                    }
                }

            }
        }
    }

    @Override
    public void doFindById(int id) {
        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] != null) {
                        if (id == rooms[i].getPeople()[j].getPid()) {
                            System.out.println(rooms[i].getPeople()[j]);
                            break;
                        } else {
                            System.out.println(rooms[i].getRid() + "号寝室无此学生编号");
                        }
                    }

                }
                break;
            }
        }
    }

    @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();
        }
    }

//    public static void main(String[] args) {
//        PersonDao pd=new PersonDaoImpl();
//        pd.doInitPerson();
//        PersonUtil pu=new PersonUtil();
//        Person person=pu.getPerson("新增");
//        pd.doAddPersonToRoom(person);
//        pd.doPrintAll();
//    }
}

RoomDaoImpl.java

package com.sushe.dao.Impl;

import com.sushe.dao.RoomDao;
import com.sushe.model.Person;
import com.sushe.model.Room;

public class RoomDaoImpl implements RoomDao {
    Room[] rooms = new Room[10];
    //1.获取宿舍提供有效住宿.
    @Override
    public Room[] getRooms() {
        //1.定义好前6个房间为男生宿舍
        for (int i = 0; i <6 ; i++) {
            rooms[i] = new Room(i+100,new Person[6]," 男");
        }
        //1.定义好后4个房间为女生宿舍
        for (int i = 6; i <rooms.length ; i++) {
            rooms[i] = new Room((i+100),new Person[6]," 女");
        }
        return rooms;
    }
}

再写一个工具类(util)
PersonUtil.java

package com.sushe.util;

import com.sushe.model.Person;

import java.util.Scanner;

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 pname=in.next();
        System.out.println("请您输入需要"+str+"的人员性别:");
        String psex=in.next();
        Person person=new Person(pid,pname,psex);
        return person;
    }
    public int getId(String str){
        System.out.println("请您输入需要"+str+"的人员编号:");
        int pid=in.nextInt();
        return pid;
    }
}

然后再是写service层(业务层)
PersonService.java

package com.sushe.service;

import com.sushe.model.Person;

public interface PersonService {
    void doInitPerson();
    //2新增一个人员到宿舍
    boolean doAddPersonToRoom(Person person);
    //3.删除一个人员
    void doDeletePerson(int id);
    //4.修改人员信息
    void doUpdatePerson(Person person);
    //5.根据学生编号查询信息
    void doFindById(int id);
    //6查询住宿信息
    void doPrintAll();
}

service层的实现层
PersonServiceImpl.java

package com.sushe.service.Impl;

import com.sushe.dao.Impl.PersonDaoImpl;
import com.sushe.model.Person;
import com.sushe.service.PersonService;

public 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 doDeletePerson(int id) {
        pdidao.doDeletePerson(id);
    }

    @Override
    public void doUpdatePerson(Person person) {
        pdidao.doUpdatePerson(person);
    }

    @Override
    public void doFindById(int id) {
        pdidao.doFindById(id);
    }

    @Override
    public void doPrintAll() {
        pdidao.doPrintAll();
    }
}

最后就是一个ui界面(Appui)
AppUi.java

package com.sushe.ui;

import com.sushe.model.Person;
import com.sushe.model.User;
import com.sushe.service.Impl.PersonServiceImpl;
import com.sushe.service.Impl.UserServiceImpl;
import com.sushe.util.PersonUtil;
import com.sushe.util.UserUtil;

import java.util.Scanner;

public class AppUi {
    Scanner in=new Scanner(System.in);
    PersonServiceImpl psi=new PersonServiceImpl();
    UserServiceImpl usi=new UserServiceImpl();
    UserUtil userUtil=new UserUtil();
    public void getMenu(){
        System.out.println("\t欢迎使用宿舍后台管理系统");
        //初始化
        psi.doInitPerson();

        System.out.println("1.女生管理\t2.宿舍管理\t3.注销用户");
        System.out.println("请选择菜单(1-3):");
        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.删除人员\t.3.修改人员\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 m=new PersonUtil().getId("删除");
                psi.doDeletePerson(m);
                break;
            case 3:
                Person person1=new PersonUtil().getPerson("修改");
                psi.doUpdatePerson(person1);
                psi.doPrintAll();
                break;
            case 4:
                int n=new PersonUtil().getId("查询");
                psi.doFindById(n);
                break;
             case 5:
                 psi.doPrintAll();
                 break;
            case 6:
                System.exit(0);
                break;
        }
    }
    public void loginMenu(){
//        usi.userInit();
        System.out.println("您尚未登录,请先登录");
        System.out.println("\t1.登录\t2.注册\t3.退出");
        System.out.println("请选择您的操作(1-3):");
        int choise=in.nextInt();
        AppUi appUi=new AppUi();
        switch (choise){
            case 1:
                User user=userUtil.getUser();
                boolean b=usi.login(user);
                if (b){
                    appUi.getMenu();
                }
                break;
            case 2:
                User user1=userUtil.getUser();
                boolean b1=usi.reg(user1);
                if (b1){
                    appUi.loginMenu();
                }
                break;
            case 3:
                System.exit(0);
                break;
        }
    }
    public static void main(String[] args) {
        AppUi appUi=new AppUi();
        appUi.getMenu();
//        appUi.loginMenu();
    }
}

最终显示界面
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值