利用C语言 为宿舍管理人员编写一个宿舍管理查询软件
时间: 2023-08-30 15:07:02 浏览: 52
好的,以下是一个用C语言编写的宿舍管理查询软件的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENT_NUM 100 // 宿舍最大容纳人数
#define MAX_ROOM_NUM 50 // 最大房间数目
// 学生结构体
typedef struct {
char name[20];
char gender[10];
int age;
} Student;
// 房间结构体
typedef struct {
int id; // 房间号
Student students[MAX_STUDENT_NUM]; // 学生数组
int studentNum; // 学生数目
} Room;
// 初始化房间
void initRoom(Room *room, int id) {
room->id = id;
room->studentNum = 0;
}
// 添加学生到房间
void addStudentToRoom(Room *room, Student student) {
if (room->studentNum < MAX_STUDENT_NUM) {
room->students[room->studentNum++] = student;
printf("学生 %s 添加成功到 %d 号房间。\n", student.name, room->id);
} else {
printf("%d 号房间已满,无法添加学生。\n", room->id);
}
}
// 根据房间号查询房间信息
void queryRoomInfo(Room *rooms, int roomNum, int id) {
int i;
for (i = 0; i < roomNum; i++) {
if (rooms[i].id == id) {
printf("查询结果:\n");
printf("房间号:%d\n", rooms[i].id);
printf("学生数目:%d\n", rooms[i].studentNum);
if (rooms[i].studentNum > 0) {
printf("学生列表:\n");
int j;
for (j = 0; j < rooms[i].studentNum; j++) {
printf("姓名:%s,性别:%s,年龄:%d\n", rooms[i].students[j].name, rooms[i].students[j].gender, rooms[i].students[j].age);
}
}
return;
}
}
printf("查询的房间不存在。\n");
}
int main() {
int roomNum;
printf("请输入房间数目:");
scanf("%d", &roomNum);
Room *rooms = (Room *)malloc(roomNum * sizeof(Room));
int i;
for (i = 0; i < roomNum; i++) {
initRoom(&rooms[i], i+1);
}
while (1) {
printf("\n请输入操作编号:\n");
printf("1. 添加学生到房间\n");
printf("2. 查询房间信息\n");
printf("3. 退出程序\n");
int choice;
scanf("%d", &choice);
if (choice == 1) {
int roomId;
printf("请输入房间号:");
scanf("%d", &roomId);
if (roomId < 1 || roomId > roomNum) {
printf("房间号不存在。\n");
continue;
}
Student student;
printf("请输入学生姓名:");
scanf("%s", student.name);
printf("请输入学生性别:");
scanf("%s", student.gender);
printf("请输入学生年龄:");
scanf("%d", &student.age);
addStudentToRoom(&rooms[roomId-1], student);
} else if (choice == 2) {
int roomId;
printf("请输入房间号:");
scanf("%d", &roomId);
if (roomId < 1 || roomId > roomNum) {
printf("房间号不存在。\n");
continue;
}
queryRoomInfo(rooms, roomNum, roomId);
} else if (choice == 3) {
break;
} else {
printf("无效操作。\n");
}
}
free(rooms);
return 0;
}
```
该程序使用了房间和学生两个结构体来管理宿舍信息。用户可以选择添加学生到某个房间或查询某个房间的信息。房间信息包括房间号、学生数目和学生列表,学生信息包括姓名、性别和年龄。程序使用了动态内存分配来创建房间数组,以适应不同的房间数目。