做一个关于宿舍管理的Java项目
时间: 2023-10-08 17:10:24 浏览: 55
好的,以下是一个简单的宿舍管理系统的Java项目:
1. 系统需求:
- 管理员可以添加、修改、删除宿舍信息;
- 学生可以查询宿舍信息,申请入住、退房;
- 系统需要记录宿舍的入住情况和空余床位数。
2. 实现步骤:
- 创建一个学生类和一个宿舍类,分别存储学生和宿舍的信息;
- 创建一个管理类,实现管理员的添加、修改、删除宿舍信息的功能;
- 创建一个查询类,实现学生查询宿舍信息、申请入住、退房的功能;
- 在系统中记录宿舍的入住情况和空余床位数。
3. 学生类:
```java
public class Student {
private String name;
private String gender;
private int age;
private String dormitory; // 学生所住的宿舍号
public Student(String name, String gender, int age, String dormitory) {
this.name = name;
this.gender = gender;
this.age = age;
this.dormitory = dormitory;
}
// getter 和 setter 方法
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public String getGender() { return gender; }
public void setGender(String gender) { this.gender = gender; }
public int getAge() { return age; }
public void setAge(int age) { this.age = age; }
public String getDormitory() { return dormitory; }
public void setDormitory(String dormitory) { this.dormitory = dormitory; }
}
```
4. 宿舍类:
```java
public class Dormitory {
private String dormitoryNumber; // 宿舍号
private int floor; // 所在楼层
private int bedCount; // 床位数
private int emptyBedCount; // 空闲床位数
private List<Student> students; // 住宿学生列表
public Dormitory(String dormitoryNumber, int floor, int bedCount, int emptyBedCount) {
this.dormitoryNumber = dormitoryNumber;
this.floor = floor;
this.bedCount = bedCount;
this.emptyBedCount = emptyBedCount;
this.students = new ArrayList<>();
}
// getter 和 setter 方法
public String getDormitoryNumber() { return dormitoryNumber; }
public void setDormitoryNumber(String dormitoryNumber) { this.dormitoryNumber = dormitoryNumber; }
public int getFloor() { return floor; }
public void setFloor(int floor) { this.floor = floor; }
public int getBedCount() { return bedCount; }
public void setBedCount(int bedCount) { this.bedCount = bedCount; }
public int getEmptyBedCount() { return emptyBedCount; }
public void setEmptyBedCount(int emptyBedCount) { this.emptyBedCount = emptyBedCount; }
public List<Student> getStudents() { return students; }
public void setStudents(List<Student> students) { this.students = students; }
}
```
5. 管理员类:
```java
public class Admin {
private List<Dormitory> dormitories; // 宿舍列表
public Admin() {
this.dormitories = new ArrayList<>();
}
// 添加宿舍信息
public void addDormitory(Dormitory dormitory) {
dormitories.add(dormitory);
}
// 修改宿舍信息
public void updateDormitory(Dormitory dormitory) {
for (int i = 0; i < dormitories.size(); i++) {
if (dormitories.get(i).getDormitoryNumber().equals(dormitory.getDormitoryNumber())) {
dormitories.set(i, dormitory);
break;
}
}
}
// 删除宿舍信息
public void deleteDormitory(String dormitoryNumber) {
for (int i = 0; i < dormitories.size(); i++) {
if (dormitories.get(i).getDormitoryNumber().equals(dormitoryNumber)) {
dormitories.remove(i);
break;
}
}
}
// getter 和 setter 方法
public List<Dormitory> getDormitories() { return dormitories; }
public void setDormitories(List<Dormitory> dormitories) { this.dormitories = dormitories; }
}
```
6. 查询类:
```java
public class Query {
private Admin admin;
public Query(Admin admin) {
this.admin = admin;
}
// 查询宿舍信息
public Dormitory queryDormitory(String dormitoryNumber) {
for (Dormitory dormitory : admin.getDormitories()) {
if (dormitory.getDormitoryNumber().equals(dormitoryNumber)) {
return dormitory;
}
}
return null;
}
// 申请入住宿舍
public boolean applyForCheckIn(String dormitoryNumber, Student student) {
Dormitory dormitory = queryDormitory(dormitoryNumber);
if (dormitory == null) {
return false;
}
if (dormitory.getEmptyBedCount() <= 0) {
return false;
}
dormitory.getStudents().add(student);
dormitory.setEmptyBedCount(dormitory.getEmptyBedCount() - 1);
return true;
}
// 退房
public boolean checkOut(String dormitoryNumber, Student student) {
Dormitory dormitory = queryDormitory(dormitoryNumber);
if (dormitory == null) {
return false;
}
if (!dormitory.getStudents().contains(student)) {
return false;
}
dormitory.getStudents().remove(student);
dormitory.setEmptyBedCount(dormitory.getEmptyBedCount() + 1);
return true;
}
}
```
7. 在主函数中,创建管理员对象和查询对象,并添加一些宿舍信息:
```java
public class Main {
public static void main(String[] args) {
Admin admin = new Admin();
Query query = new Query(admin);
// 添加宿舍信息
admin.addDormitory(new Dormitory("101", 1, 4, 2));
admin.addDormitory(new Dormitory("102", 1, 4, 4));
admin.addDormitory(new Dormitory("201", 2, 6, 3));
admin.addDormitory(new Dormitory("202", 2, 6, 6));
}
}
```
然后就可以通过查询对象进行宿舍信息的查询、学生的入住和退房操作了。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)