学生宿舍管理系统c语言程序
时间: 2023-10-28 20:26:50 浏览: 143
好的,你需要一个学生宿舍管理系统的 C 语言程序,这是一个比较复杂的程序,需要包含多个模块和功能。以下是一个简单的示例代码,可供参考:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENT_NUM 100 // 最大学生数量
#define MAX_ROOM_NUM 50 // 最大房间数量
typedef struct Student {
char name[20]; // 学生姓名
int age; // 学生年龄
char sex; // 学生性别
char id[10]; // 学生学号
int room_num; // 所住房间号
} Student;
typedef struct Room {
int room_num; // 房间号
int capacity; // 房间容量
int student_num; // 房间内学生数量
Student students[MAX_STUDENT_NUM]; // 学生数组
} Room;
Room rooms[MAX_ROOM_NUM]; // 房间数组
int room_count = 0; // 实际房间数量
// 添加学生
void add_student() {
char name[20], sex, id[10];
int age, room_num;
printf("请输入学生姓名:");
scanf("%s", name);
printf("请输入学生年龄:");
scanf("%d", &age);
printf("请输入学生性别(M/F):");
scanf(" %c", &sex);
printf("请输入学生学号:");
scanf("%s", id);
printf("请输入学生所在房间号:");
scanf("%d", &room_num);
if (room_num > room_count) { // 房间号不存在
printf("房间号不存在,请重新输入!\n");
return;
}
Room *room = &rooms[room_num - 1];
if (room->capacity == room->student_num) { // 房间已满
printf("房间已满,请重新输入!\n");
return;
}
Student student;
strcpy(student.name, name);
student.age = age;
student.sex = sex;
strcpy(student.id, id);
student.room_num = room_num;
room->students[room->student_num++] = student;
printf("添加成功!\n");
}
// 显示房间信息
void show_rooms() {
printf("当前存在的房间如下:\n");
for (int i = 0; i < room_count; i++) {
Room *room = &rooms[i];
printf("房间号:%d,容量:%d,当前学生数量:%d\n", room->room_num, room->capacity, room->student_num);
}
}
// 显示学生信息
void show_students() {
printf("当前存在的学生如下:\n");
for (int i = 0; i < room_count; i++) {
Room *room = &rooms[i];
for (int j = 0; j < room->student_num; j++) {
Student *student = &room->students[j];
printf("姓名:%s,年龄:%d,性别:%c,学号:%s,所在房间号:%d\n", student->name, student->age, student->sex, student->id, student->room_num);
}
}
}
int main() {
int choice;
do {
printf("请选择操作:\n");
printf("1. 添加学生\n");
printf("2. 显示房间信息\n");
printf("3. 显示学生信息\n");
printf("4. 退出\n");
scanf("%d", &choice);
switch (choice) {
case 1:
add_student();
break;
case 2:
show_rooms();
break;
case 3:
show_students();
break;
case 4:
printf("再见!\n");
break;
default:
printf("无效操作,请重新选择!\n");
break;
}
} while (choice != 4);
return 0;
}
```
这个程序包含了添加学生、显示房间信息和显示学生信息三个基本功能。你可以根据需要进行修改和扩展。
阅读全文