用c语言写宿舍管理系统1.要求是可以根据学生学号找到学生宿舍号 2.能给宿舍添加学生,达到六人之后会显示宿舍已满提供空宿舍编号 3.能够提供换宿舍服务 能查找到某个班级第学生在哪些宿舍3.字段显示包括学生,姓名,专业,班级,宿舍号等,整个源代码发出来,尽量简单,用大学一年级的知识
时间: 2024-03-16 17:44:44 浏览: 97
好的,我会尽力解答你的问题,并为你提供一个简单的宿舍管理系统的 C 语言源代码。
首先,为了实现宿舍管理系统,我们需要定义一些数据结构和变量。我们可以定义一个结构体来表示学生的信息,如下所示:
```c
struct Student {
char id[20]; // 学号
char name[20]; // 姓名
char major[20]; // 专业
char clazz[20]; // 班级
int dorm_id; // 宿舍号
};
```
然后我们需要定义一个数组来存储学生信息和宿舍信息:
```c
#define MAX_STUDENT_NUM 100 // 最多学生数目
#define MAX_DORM_NUM 20 // 最多宿舍数目
struct Student students[MAX_STUDENT_NUM]; // 学生数组
int student_num = 0; // 学生数目
int dorms[MAX_DORM_NUM][6]; // 宿舍数组,每个宿舍最多六个人
int dorm_num = 0; // 宿舍数目
```
接下来,我们可以实现一些基本功能。例如,根据学生学号查找学生宿舍号:
```c
int find_student(char* id) {
for (int i = 0; i < student_num; i++) {
if (strcmp(students[i].id, id) == 0) {
return students[i].dorm_id;
}
}
return -1; // 没有找到该学生
}
```
添加学生到宿舍中:
```c
int add_student(char* id, char* name, char* major, char* clazz) {
if (student_num >= MAX_STUDENT_NUM) {
return -1; // 已经达到最大学生数目
}
int dorm_id = -1;
for (int i = 0; i < dorm_num; i++) {
if (dorms[i][5] == 0) { // 这个宿舍还有空位
dorm_id = i;
break;
}
}
if (dorm_id == -1) { // 没有找到有空位的宿舍
if (dorm_num >= MAX_DORM_NUM) {
return -2; // 已经达到最大宿舍数目
}
dorm_id = dorm_num;
dorm_num++;
}
strcpy(students[student_num].id, id);
strcpy(students[student_num].name, name);
strcpy(students[student_num].major, major);
strcpy(students[student_num].clazz, clazz);
students[student_num].dorm_id = dorm_id;
dorms[dorm_id][dorms[dorm_id][5]] = student_num; // 将学生添加到对应宿舍
dorms[dorm_id][5]++; // 宿舍人数加一
student_num++; // 学生数目加一
return dorm_id; // 返回添加的宿舍号
}
```
查找某个班级的学生在哪些宿舍:
```c
void find_clazz(char* clazz) {
for (int i = 0; i < student_num; i++) {
if (strcmp(students[i].clazz, clazz) == 0) {
printf("学号:%s,姓名:%s,专业:%s,班级:%s,宿舍号:%d\n", students[i].id, students[i].name, students[i].major, students[i].clazz, students[i].dorm_id);
}
}
}
```
最后,我们可以实现一个简单的用户界面,让用户可以通过输入数字来使用不同的功能:
```c
int main() {
int choice;
char id[20], name[20], major[20], clazz[20];
while (1) {
printf("1. 根据学号查找学生宿舍号\n");
printf("2. 添加学生到宿舍中\n");
printf("3. 查找某个班级的学生在哪些宿舍\n");
printf("0. 退出\n");
printf("请输入数字选择功能:");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("请输入学号:");
scanf("%s", id);
int dorm_id = find_student(id);
if (dorm_id == -1) {
printf("没有找到该学生!\n");
} else {
printf("宿舍号:%d\n", dorm_id);
}
break;
case 2:
printf("请输入学号、姓名、专业、班级(中间用空格分隔):");
scanf("%s %s %s %s", id, name, major, clazz);
int add_result = add_student(id, name, major, clazz);
if (add_result == -1) {
printf("添加学生失败,已经达到最大学生数目!\n");
} else if (add_result == -2) {
printf("添加学生失败,已经达到最大宿舍数目!\n");
} else {
printf("添加学生成功,宿舍号为:%d\n", add_result);
}
break;
case 3:
printf("请输入班级:");
scanf("%s", clazz);
find_clazz(clazz);
break;
case 0:
return 0;
default:
printf("输入错误,请重新输入!\n");
}
}
}
```
完整的源代码如下所示:
阅读全文