java 学生宿舍管理系统设计

学生宿舍管理系统设计 
功能:实现简单的学生宿舍基本信息管理,宿舍的基本信息包括楼号、房间号、面积、所容纳人数、已入住人数等 
基本要求: 
1设计简单的菜单,能够进行系统功能选择。 
2实现信息的录入功能。 
3在已有信息的基础上添加新的记录。 
4删除指定房间号的记录。 
5修改指定房间号的记录 
6实现信息的浏览功能 
7按房间号查询功能 
8按已入住人数排序功能

要运用数据库处理,用MySQL5.7.3

该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
下面是一个简单的学生宿舍管理系统设计的Java代码,实现了上述功能:
在下面的代码中,我们定义了一个Dormitory类来表示一间宿舍,有楼号、房间号、面积、所容纳人数和已入住人数等属性。在DormitoryManagement类中,我们定义了一些方法来实现对宿舍信息的录入、添加、删除、修改、浏览、查询和排序等操作。

在main方法中,我们通过Scanner类来实现用户输入,并通过switch语句来根据用户的选择执行不同的操作。例如,当用户输入1时,程序会调用DormitoryManagement类的input方法来录入宿舍信息;当用户输入5时,程序会调用DormitoryManagement类的showAll方法来浏览所有宿舍信息。

此外,在DormitoryManagement类中,我们还定义了一些辅助方法来实现具体的操作,例如findDormitory方法用于根据房间号查找宿舍信息,sortByOccupied方法用于按已入住人数排序等。这些方法的实现细节可以参考代码中的注释。

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Scanner;

class Dormitory {
    private int buildingNumber;
    private int roomNumber;
    private double area;
    private int capacity;
    private int occupied;

    public Dormitory(int buildingNumber, int roomNumber, double area, int capacity, int occupied) {
        this.buildingNumber = buildingNumber;
        this.roomNumber = roomNumber;
        this.area = area;
        this.capacity = capacity;
        this.occupied = occupied;
    }

    public int getBuildingNumber() {
        return buildingNumber;
    }

    public int getRoomNumber() {
        return roomNumber;
    }

    public double getArea() {
        return area;
    }

    public int getCapacity() {
        return capacity;
    }

    public int getOccupied() {
        return occupied;
    }
}

public class DormitoryManagement {
    private ArrayList<Dormitory> dormitories;

    public DormitoryManagement() {
        dormitories = new ArrayList<>();
    }

    public void addDormitory() {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入楼号:");
        int buildingNumber = scanner.nextInt();
        System.out.print("请输入房间号:");
        int roomNumber = scanner.nextInt();
        System.out.print("请输入面积:");
        double area = scanner.nextDouble();
        System.out.print("请输入所容纳人数:");
        int capacity = scanner.nextInt();
        System.out.print("请输入已入住人数:");
        int occupied = scanner.nextInt();
        Dormitory dormitory = new Dormitory(buildingNumber, roomNumber, area, capacity, occupied);
        dormitories.add(dormitory);
        System.out.println("添加成功!");
    }

    public void addNewRecord() {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入要添加记录的房间号:");
        int roomNumber = scanner.nextInt();
        Dormitory dormitory = findDormitory(roomNumber);
        if (dormitory != null) {
            System.out.println("该房间已存在,无法添加!");
            return;
        }
        System.out.print("请输入楼号:");
        int buildingNumber = scanner.nextInt();
        System.out.print("请输入面积:");
        double area = scanner.nextDouble();
        System.out.print("请输入所容纳人数:");
        int capacity = scanner.nextInt();
        System.out.print("请输入已入住人数:");
        int occupied = scanner.nextInt();
        dormitory = new Dormitory(buildingNumber, roomNumber, area, capacity, occupied);
        dormitories.add(dormitory);
        System.out.println("添加成功!");
    }

    public void deleteRecord() {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入要删除记录的房间号:");
        int roomNumber = scanner.nextInt();
        Dormitory dormitory = findDormitory(roomNumber);
        if (dormitory == null) {
            System.out.println("该房间不存在,无法删除!");
            return;
        }
        dormitories.remove(dormitory);
        System.out.println("删除成功!");
    }

    public void modifyRecord() {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入要修改记录的房间号:");
        int roomNumber = scanner.nextInt();
        Dormitory dormitory = findDormitory(roomNumber);
        if (dormitory == null) {
            System.out.println("该房间不存在,无法修改!");
            return;
        }
        System.out.print("请输入新的楼号(原楼号为 " + dormitory.getBuildingNumber() + "):");
        int buildingNumber = scanner.nextInt();
        System.out.print("请输入新的面积(原面积为 " + dormitory.getArea() + "):");
        double area = scanner.nextDouble();
        System.out.print("请输入新的所容纳人数(原所容纳人数为 " + dormitory.getCapacity() + "):");
        int capacity = scanner.nextInt();
        System.out.print("请输入新的已入住人数(原已入住人数为 " + dormitory.getOccupied() + "):");
        int occupied = scanner.nextInt();
        dormitory = new Dormitory(buildingNumber, roomNumber, area, capacity, occupied);
        dormitories.set(dormitories.indexOf(findDormitory(roomNumber)), dormitory);
        System.out.println("修改成功!");
    }

    public void browseRecords() {
        if (dormitories.isEmpty()) {
            System.out.println("没有记录!");
            return;
        }
        System.println("楼号\t房间号\t面积\t所容纳人数\t已入住人数");
for (Dormitory dormitory : dormitories) {
System.out.println(dormitory.getBuildingNumber() + "\t" + dormitory.getRoomNumber() + "\t" +
dormitory.getArea() + "\t" + dormitory.getCapacity() + "\t" + dormitory.getOccupied());
}
}

public void searchByRoomNumber() {
    Scanner scanner = new Scanner(System.in);
    System.out.print("请输入要查询的房间号:");
    int roomNumber = scanner.nextInt();
    Dormitory dormitory = findDormitory(roomNumber);
    if (dormitory == null) {
        System.out.println("该房间不存在!");
        return;
    }
    System.out.println("楼号\t房间号\t面积\t所容纳人数\t已入住人数");
    System.out.println(dormitory.getBuildingNumber() + "\t" + dormitory.getRoomNumber() + "\t" +
            dormitory.getArea() + "\t" + dormitory.getCapacity() + "\t" + dormitory.getOccupied());
}

public void sortByOccupied() {
    if (dormitories.isEmpty()) {
        System.out.println("没有记录!");
        return;
    }
    Collections.sort(dormitories, Comparator.comparing(Dormitory::getOccupied));
    System.out.println("楼号\t房间号\t面积\t所容纳人数\t已入住人数");
    for (Dormitory dormitory : dormitories) {
        System.out.println(dormitory.getBuildingNumber() + "\t" + dormitory.getRoomNumber() + "\t" +
                dormitory.getArea() + "\t" + dormitory.getCapacity() + "\t" + dormitory.getOccupied());
    }
}

private Dormitory findDormitory(int roomNumber) {
    for (Dormitory dormitory : dormitories) {
        if (dormitory.getRoomNumber() == roomNumber) {
            return dormitory;
        }
    }
    return null;
}

public static void main(String[] args) {
    DormitoryManagement management = new DormitoryManagement();
    Scanner scanner = new Scanner(System.in);
    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("6.按房间号查询");
        System.out.println("7.按已入住人数排序");
        System.out.println("0.退出系统");
        int option = scanner.nextInt();
        switch (option) {
            case 0:
                System.out.println("谢谢使用!");
                System.exit(0);
                break;
            case 1:
                management.input();
                break;
            case 2:
                management.add();
                break;
            case 3:
                management.delete();
                break;
            case 4:
                management.modify();
                break;
            case 5:
                management.showAll();
                break;
            case 6:
                management.searchByRoomNumber();
                break;
            case 7:
                management.sortByOccupied();
                break;
            default:
                System.out.println("选项不正确,请重新输入!");
                break;
        }
    }
}
}
class Dormitory {
private int buildingNumber; // 楼号
private int roomNumber; // 房间号
private double area; // 面积
private int capacity; // 所容纳人数
private int occupied; // 已入住人数

public Dormitory(int buildingNumber, int roomNumber, double area, int capacity, int occupied) {
    this.buildingNumber = buildingNumber;
    this.roomNumber = roomNumber;
    this.area = area;
    this.capacity = capacity;
    this.occupied = occupied;
}

public int getBuildingNumber() {
    return buildingNumber;
}

public void setBuildingNumber(int buildingNumber) {
    this.buildingNumber = buildingNumber;
}

public int getRoomNumber() {
    return roomNumber;
}

public void setRoomNumber(int roomNumber) {
    this.roomNumber = roomNumber;
}

public double getArea() {
    return area;
}

public void setArea(double area) {
    this.area = area;
}
public int getCapacity() {
        return capacity;
    }

    public void setCapacity(int capacity) {
        this.capacity = capacity;
    }

    public int getOccupied() {
        return occupied;
    }

    public void setOccupied(int occupied) {
        this.occupied = occupied;
    }
}

如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

如果题主还没有满意的答案,我来帮你写一个java宿舍管理系统,稍等

github或者gitee上找个开源框架,加个菜单,改改就完事了

【课程设计】2小时学会JavaSwing课程设计-万能模板-图书管理系统-[你的课程我设计]
这里有个万能模板,你直接套就行了

学生宿舍管理系统的设计
菜单设计
该系统的菜单应该包含以下选项:
1)信息录入
2)添加新记录
3)删除记录
4)修改记录
5)浏览记录
6)按房间号查询
7)按已入住人数排序
8)退出系统
信息录入
在该功能下,用户可以输入学生宿舍的基本信息,包括楼号、房间号、面积、所容纳人数、已入住人数等。
添加新记录
在该功能下,用户可以根据已有的宿舍信息,在新增一个宿舍时,需要考虑宿舍是否有人入住,如果已有入住,则不能进行新增记录操作。
删除记录
在该功能下,用户可以删除任意一条宿舍信息,需要用户输入宿舍的房间号,程序会将该宿舍的全部信息清除掉。
修改记录
在该功能下,用户可以对已有的宿舍信息进行修改,需要用户输入要修改的宿舍的房间号,程序会根据房间号找到该宿舍的信息,并让用户修改信息。
浏览记录
在该功能下,用户可以查看所有宿舍的基本信息,包括楼号、房间号、面积、所容纳人数、已入住人数等。
按房间号查询
在该功能下,用户可以根据输入的宿舍房间号查询指定的宿舍信息。
按已入住人数排序
在该功能下,用户可以按照宿舍的已入住人数进行排序,从而比较宿舍之间的状态和空闲情况等。

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Scanner;

class Dormitory {
    private String buildingNumber;   // 楼号
    private String roomNumber;       // 房间号
    private double area;             // 面积
    private int capacity;            // 所容纳人数
    private int occupancy;           // 已入住人数

    public Dormitory(String buildingNumber, String roomNumber, double area, int capacity, int occupancy) {
        this.buildingNumber = buildingNumber;
        this.roomNumber = roomNumber;
        this.area = area;
        this.capacity = capacity;
        this.occupancy = occupancy;
    }

    public String getBuildingNumber() { return buildingNumber; }

    public String getRoomNumber() { return roomNumber; }

    public double getArea() { return area; }

    public int getCapacity() { return capacity; }

    public int getOccupancy() { return occupancy; }

    public void setBuildingNumber(String buildingNumber) { this.buildingNumber = buildingNumber; }

    public void setRoomNumber(String roomNumber) { this.roomNumber = roomNumber; }

    public void setArea(double area) { this.area = area; }

    public void setCapacity(int capacity) { this.capacity = capacity; }

    public void setOccupancy(int occupancy) { this.occupancy = occupancy; }

    @Override
    public String toString() {
        return "Dormitory{" +
                "buildingNumber='" + buildingNumber + '\'' +
                ", roomNumber='" + roomNumber + '\'' +
                ", area=" + area +
                ", capacity=" + capacity +
                ", occupancy=" + occupancy +
                '}';
    }
}

public class DormitoryManagementSystem {
    private static final ArrayList<Dormitory> dormitories = new ArrayList<>();

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        while (true) {
            System.out.println("学生宿舍管理系统");
            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("6.按房间号查询");
            System.out.println("7.按已入住人数排序");
            System.out.println("8.退出系统");
            System.out.println("--------------------");
            System.out.print("请选择功能(1-8):");

            int choice = sc.nextInt();
            sc.nextLine();

            switch (choice) {
                case 1:
                    addDormitory(sc);
                    break;
                case 2:
                    addNewRecord(sc);
                    break;
                case 3:
                    deleteRecord(sc);
                    break;
                case 4:
                    modifyRecord(sc);
                    break;
                case 5:
                    browseRecord();
                    break;
                case 6:
                    searchByRoomNumber(sc);
                    break;
                case 7:
                    sortByOccupancy();
                    break;
                case 8:
                    System.out.println("谢谢使用,再见!");
                    System.exit(0);
                default:
                    System.out.println("输入有误,请重新选择!");
                    break;
            }
        }
    }

    // 1.信息录入
    public static void addDormitory(Scanner sc) {
        System.out.print("请输入楼号:");
        String buildingNumber = sc.nextLine();

        System.out.print("请输入房间号:");
        String roomNumber = sc.nextLine();

        System.out.print("请输入面积:");
        double area = sc.nextDouble();
        sc.nextLine();

        System.out.print("请输入所容纳人数:");
        int capacity = sc.nextInt();
        sc.nextLine();

        System.out.print("请输入已入住人数:");
        int occupancy = sc.nextInt();
        sc.nextLine();

        Dormitory dormitory = new Dormitory(buildingNumber, roomNumber, area, capacity, occupancy);
        dormitories.add(dormitory);

        System.out.println("成功录入信息!");
    }

    // 2.添加新记录
    public static void addNewRecord(Scanner sc) {
        System.out.print("请输入要复制的房间号:");
        String roomNumber = sc.nextLine();

        boolean exist = false;
        for (Dormitory dormitory : dormitories) {
            if (dormitory.getRoomNumber().equals(roomNumber)) {
                Dormitory newDormitory = new Dormitory(dormitory.getBuildingNumber(), dormitory.getRoomNumber(),
                                                       dormitory.getArea(), dormitory.getCapacity(), 0);
                dormitories.add(newDormitory);
                exist = true;
                break;
            }
        }

        if (exist) {
            System.out.println("新增记录成功!");
        } else {
            System.out.println("未找到指定房间号,新增记录失败!");
        }
    }

    // 3.删除记录
    public static void deleteRecord(Scanner sc) {
        System.out.print("请输入要删除的房间号:");
        String roomNumber = sc.nextLine();

        boolean exist = false;
        for (int i = 0; i < dormitories.size(); i++) {
            Dormitory dormitory = dormitories.get(i);
            if (dormitory.getRoomNumber().equals(roomNumber)) {
                dormitories.remove(i);
                exist = true;
                break;
            }
        }

        if (exist) {
            System.out.println("删除成功!");
        } else {
            System.out.println("未找到指定房间号,删除失败!");
        }
    }

    // 4.修改记录
    public static void modifyRecord(Scanner sc) {
        System.out.print("请输入要修改的房间号:");
        String roomNumber = sc.nextLine();

        boolean exist = false;
        for (Dormitory dormitory : dormitories) {
            if (dormitory.getRoomNumber().equals(roomNumber)) {
                System.out.print("请输入新的楼号(原值:" + dormitory.getBuildingNumber() + "):");
                String newBuildingNumber = sc.nextLine();
                dormitory.setBuildingNumber(newBuildingNumber);

                System.out.print("请输入新的面积(原值:" + dormitory.getArea() + "):");
                double newArea = sc.nextDouble();
                sc.nextLine();
                dormitory.setArea(newArea);

                System.out.print("请输入新的所容纳人数(原值:" + dormitory.getCapacity() + "):");
                int newCapacity = sc.nextInt();
                sc.nextLine();
                dormitory.setCapacity(newCapacity);

                System.out.print("请输入新的已入住人数(原值:" + dormitory.getOccupancy() + "):");
                int newOccupancy = sc.nextInt();
                sc.nextLine();
                dormitory.setOccupancy(newOccupancy);

                exist = true;
                break;
            }
        }

        if (exist) {
            System.out.println("修改成功!");
        } else {
            System.out.println("未找到指定房间号,修改失败!");
        }
    }

    // 5.浏览记录
    public static void browseRecord() {
        if (dormitories.isEmpty()) {
            System.out.println("记录为空!");
        } else {
            System.out.println("所有记录如下:");
            for (Dormitory dormitory : dormitories) {
                System.out.println(dormitory);
            }
        }
    }

    // 6.按房间号查询
    public static void searchByRoomNumber(Scanner sc) {
        System.out.print("请输入要查询的房间号:");
        String roomNumber = sc.nextLine();

        boolean exist = false;
        for (Dormitory dormitory : dormitories) {
            if (dormitory.getRoomNumber().equals(roomNumber)) {
                System.out.println("查询结果如下:");
                System.out.println(dormitory);
                exist = true;
                break;
            }
        }

        if (!exist) {
            System.out.println("未找到指定房间号,查询失败!");
        }
    }

    // 7.按已入住人数排序
    public static void sortByOccupancy() {
        if (dormitories.isEmpty()) {
            System.out.println("记录为空!");
        } else {
            Collections.sort(dormitories, Comparator.comparingInt(Dormitory::getOccupancy));
            System.out.println("按已入住人数排序后,所有记录如下:");
            for (Dormitory dormitory : dormitories) {
                System.out.println(dormitory);
            }
        }
    }
}

以上就是一个简单的学生宿舍管理系统的设计方案,如果需要更复杂的功能,可以根据实际需求进行扩展。

以下内容部分参考ChatGPT模型:


首先,需要设计一个菜单,用于选择系统功能。可以使用switch语句实现。例如:

Scanner input = new Scanner(System.in);
int choice = 0;
while (true) {
    System.out.println("欢迎使用学生宿舍管理系统");
    System.out.println("1. 录入宿舍信息");
    System.out.println("2. 查询宿舍信息");
    System.out.println("3. 修改宿舍信息");
    System.out.println("4. 删除宿舍信息");
    System.out.println("0. 退出系统");
    System.out.print("请选择操作:");
    choice = input.nextInt();
    switch (choice) {
        case 1:
            // 录入宿舍信息的代码
            break;
        case 2:
            // 查询宿舍信息的代码
            break;
        case 3:
            // 修改宿舍信息的代码
            break;
        case 4:
            // 删除宿舍信息的代码
            break;
        case 0:
            System.out.println("感谢使用学生宿舍管理系统,再见!");
            System.exit(0);
        default:
            System.out.println("输入有误,请重新选择!");
    }
}

接下来需要实现信息的录入功能。可以定义一个Dormitory类来表示宿舍,包括楼号、房间号、面积、所容纳人数、已入住人数等属性。然后再定义一个DormitoryManager类来管理宿舍信息,包括录入、查询、修改、删除等功能。例如:

public class Dormitory {
    private int buildingNumber;
    private int roomNumber;
    private double area;
    private int capacity;
    private int occupants;

    public Dormitory(int buildingNumber, int roomNumber, double area, int capacity, int occupants) {
        this.buildingNumber = buildingNumber;
        this.roomNumber = roomNumber;
        this.area = area;
        this.capacity = capacity;
        this.occupants = occupants;
    }

    public int getBuildingNumber() {
        return buildingNumber;
    }

    public void setBuildingNumber(int buildingNumber) {
        this.buildingNumber = buildingNumber;
    }

    public int getRoomNumber() {
        return roomNumber;
    }

    public void setRoomNumber(int roomNumber) {
        this.roomNumber = roomNumber;
    }

    public double getArea() {
        return area;
    }

    public void setArea(double area) {
        this.area = area;
    }

    public int getCapacity() {
        return capacity;
    }

    public void setCapacity(int capacity) {
        this.capacity = capacity;
    }

    public int getOccupants() {
        return occupants;
    }

    public void setOccupants(int occupants) {
        this.occupants = occupants;
    }
}

public class DormitoryManager {
    private List<Dormitory> dormitories;

    public DormitoryManager() {
        this.dormitories = new ArrayList<>();
    }

    public void addDormitory(Dormitory dormitory) {
        this.dormitories.add(dormitory);
    }

    public Dormitory findDormitory(int buildingNumber, int roomNumber) {
        for (Dormitory dormitory : this.dormitories) {
            if (dormitory.getBuildingNumber() == buildingNumber && dormitory.getRoomNumber() == roomNumber) {
                return dormitory;
            }
        }
        return null;
    }

    public void updateDormitory(Dormitory dormitory) {
        Dormitory oldDormitory = findDormitory(dormitory.getBuildingNumber(), dormitory.getRoomNumber());
        if (oldDormitory != null) {
            oldDormitory.setArea(dormitory.getArea());
            oldDormitory.setCapacity(dormitory.getCapacity());
        }
    }

    public void removeDormitory(int buildingNumber, int roomNumber) {
        Dormitory dormitory = findDormitory(buildingNumber, roomNumber);
        if (dormitory != null) {
            this.dormitories.remove(dormitory);
        }
    }
}

在录入宿舍信息时,可以先输入楼号和房间号,然后检查是否已经存在该宿舍,如果不存在就输入面积、所容纳人数、已入住人数等信息并添加到DormitoryManager中。例如:

Scanner input = new Scanner(System.in);
DormitoryManager manager = new DormitoryManager();
while (true) {
    System.out.print("请输入楼号:");
    int buildingNumber = input.nextInt();
    System.out.print("请输入房间号:");
    int roomNumber = input.nextInt();
    if (manager.findDormitory(buildingNumber, roomNumber) != null) {
        System.out.println("该宿舍已经存在,请重新输入!");
    } else {
        System.out.print("请输入面积:");
        double area = input.nextDouble();
        System.out.print("请输入所容纳人数:");
        int capacity = input.nextInt();
        System.out.print("请输入已入住人数:");
        int occupants = input.nextInt();
        Dormitory dormitory = new Dormitory(buildingNumber, roomNumber, area, capacity, occupants);
        manager.addDormitory(dormitory);
        System.out.println("宿舍信息已经录入!");
    }
}

其他功能的实现可以类似地完成。


如果我的建议对您有帮助、请点击采纳、祝您生活愉快