用c写一个宿舍管理系统
时间: 2023-12-10 15:36:50 浏览: 27
好的,下面是一个简单的宿舍管理系统的C代码,它可以实现基本的宿舍信息管理和查询功能:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_DORMS 100 // 最大宿舍数量
#define MAX_STUDENTS 100 // 最大学生数量
typedef struct {
char name[20]; // 宿舍名称
int capacity; // 宿舍容量
int occupancy; // 现有入住人数
} Dorm;
typedef struct {
char name[20]; // 学生姓名
char dorm[20]; // 所在宿舍
} Student;
Dorm dorms[MAX_DORMS]; // 宿舍列表
int numDorms = 0; // 宿舍数量
Student students[MAX_STUDENTS]; // 学生列表
int numStudents = 0; // 学生数量
// 添加宿舍
void addDorm() {
if (numDorms >= MAX_DORMS) {
printf("已达到宿舍数量上限!\n");
return;
}
Dorm newDorm;
printf("请输入宿舍名称:");
scanf("%s", newDorm.name);
printf("请输入宿舍容量:");
scanf("%d", &newDorm.capacity);
newDorm.occupancy = 0;
dorms[numDorms++] = newDorm;
printf("宿舍添加成功!\n");
}
// 添加学生
void addStudent() {
if (numStudents >= MAX_STUDENTS) {
printf("已达到学生数量上限!\n");
return;
}
Student newStudent;
printf("请输入学生姓名:");
scanf("%s", newStudent.name);
printf("请输入所在宿舍名称:");
scanf("%s", newStudent.dorm);
// 查找对应的宿舍
int found = 0;
for (int i = 0; i < numDorms; i++) {
if (strcmp(dorms[i].name, newStudent.dorm) == 0) {
// 宿舍存在,检查容量是否已满
if (dorms[i].occupancy >= dorms[i].capacity) {
printf("该宿舍已满,请选择其他宿舍!\n");
return;
}
// 宿舍未满,添加学生
dorms[i].occupancy++;
found = 1;
break;
}
}
if (!found) {
printf("未找到该宿舍,请先添加宿舍!\n");
return;
}
students[numStudents++] = newStudent;
printf("学生添加成功!\n");
}
// 查询宿舍信息
void queryDorms() {
printf("宿舍列表:\n");
printf("名称\t容量\t已住人数\n");
for (int i = 0; i < numDorms; i++) {
printf("%s\t%d\t%d\n", dorms[i].name, dorms[i].capacity, dorms[i].occupancy);
}
}
// 查询学生信息
void queryStudents() {
printf("学生列表:\n");
printf("姓名\t宿舍\n");
for (int i = 0; i < numStudents; i++) {
printf("%s\t%s\n", students[i].name, students[i].dorm);
}
}
int main() {
int choice;
while (1) {
printf("\n请选择操作:\n");
printf("1. 添加宿舍\n");
printf("2. 添加学生\n");
printf("3. 查询宿舍信息\n");
printf("4. 查询学生信息\n");
printf("5. 退出程序\n");
scanf("%d", &choice);
switch (choice) {
case 1:
addDorm();
break;
case 2:
addStudent();
break;
case 3:
queryDorms();
break;
case 4:
queryStudents();
break;
case 5:
printf("再见!\n");
exit(0);
default:
printf("无效的选项!\n");
break;
}
}
return 0;
}
```
这个宿舍管理系统支持以下功能:
1. 添加宿舍,输入宿舍名称和容量。
2. 添加学生,输入学生姓名和所在宿舍名称,系统会检查宿舍容量是否已满。
3. 查询宿舍信息,显示所有宿舍的名称、容量和现有入住人数。
4. 查询学生信息,显示所有学生的姓名和所在宿舍。
5. 退出程序。