再用c语言写一下宿舍管理系统
时间: 2023-10-26 14:42:16 浏览: 99
抱歉,作为AI语言模型,我无法提供完整的C语言代码,但我可以给您提供一个基本的宿舍管理系统的框架,供您参考:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义学生结构体
typedef struct {
char name[20]; // 学生姓名
int id; // 学生学号
int room; // 学生宿舍号
int bed; // 学生床位号
} Student;
// 定义宿舍结构体
typedef struct {
int room; // 宿舍号
int capacity; // 宿舍容量
int count; // 宿舍当前人数
Student *students; // 学生数组
} Dormitory;
// 初始化宿舍
void initDormitory(Dormitory *d, int room, int capacity) {
d->room = room;
d->capacity = capacity;
d->count = 0;
d->students = (Student*)malloc(sizeof(Student)*capacity);
}
// 添加学生
void addStudent(Dormitory *d, char *name, int id, int bed) {
if (d->count >= d->capacity) {
printf("宿舍已满,无法添加新的学生!\n");
return;
}
Student s;
strcpy(s.name, name);
s.id = id;
s.room = d->room;
s.bed = bed;
d->students[d->count++] = s;
printf("学生添加成功!\n");
}
// 删除学生
void removeStudent(Dormitory *d, int id) {
int i;
for (i = 0; i < d->count; i++) {
if (d->students[i].id == id) {
d->count--;
d->students[i] = d->students[d->count];
printf("学生删除成功!\n");
return;
}
}
printf("未找到该学生!\n");
}
// 显示宿舍信息
void showDormitory(Dormitory *d) {
int i;
printf("宿舍号:%d\n", d->room);
printf("容量:%d\n", d->capacity);
printf("当前人数:%d\n", d->count);
printf("学生列表:\n");
for (i = 0; i < d->count; i++) {
printf("%d\t%s\t%d\t%d\n", d->students[i].id, d->students[i].name, d->students[i].room, d->students[i].bed);
}
}
int main() {
Dormitory dorm1, dorm2;
initDormitory(&dorm1, 101, 4);
initDormitory(&dorm2, 102, 6);
addStudent(&dorm1, "张三", 1001, 1);
addStudent(&dorm1, "李四", 1002, 2);
addStudent(&dorm2, "王五", 1003, 1);
showDormitory(&dorm1);
showDormitory(&dorm2);
removeStudent(&dorm1, 1002);
showDormitory(&dorm1);
showDormitory(&dorm2);
return 0;
}
阅读全文