学生宿舍管理系统设计
功能:实现简单的学生宿舍基本信息管理,宿舍的基本信息包括楼号、房间号、面积、所容纳人数、已入住人数等
基本要求:
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);
}
}
}
}
以上就是一个简单的学生宿舍管理系统的设计方案,如果需要更复杂的功能,可以根据实际需求进行扩展。
首先,需要设计一个菜单,用于选择系统功能。可以使用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("宿舍信息已经录入!");
}
}
其他功能的实现可以类似地完成。