嵌入式笔试刷题第(26天)
第11题:学生宿舍管理系统接口函数设计
题目要求:
根据结构体定义,设计以下函数接口:
- 新建一个宿舍
- 找出一个未住满的宿舍
- 学生入住
- 学生离开
- 根据姓名查找宿舍
- 根据宿舍编号打印宿舍信息
- 清空某个宿舍
- 清空所有宿舍
结构体:
#define DORM_MAXSTUENT_NUM 8
struct student {
char *name;
int class;
int grade;
struct student *next;
};
struct dorm {
int id;
int number;
struct student *student;
struct dorm *next;
};
示例接口实现(部分函数):
// 1. 新建宿舍
struct dorm* createDorm(int id) {
struct dorm* d = malloc(sizeof(struct dorm));
d->id = id;
d->number = 0;
d->student = NULL;
d->next = NULL;
return d;
}
// 2. 查找未住满的宿舍
struct dorm* findAvailableDorm(struct dorm* head) {
while (head) {
if (head->number < DORM_MAXSTUENT_NUM)
return head;
head = head->next;
}
return NULL;
}
// 3. 学生入住
void addStudentToDorm(struct dorm* d, const char* name, int class, int grade) {
if (d->number >= DORM_MAXSTUENT_NUM) return;
struct student* s = malloc(sizeof(struct student));
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
嵌入式笔试专栏 文章被收录于专栏
本专栏系统整理了嵌入式方向笔试中常见的知识点和高频考题,涵盖基础理论、常用算法、C语言陷阱、操作系统原理、驱动开发、常见外设通信协议(如 I2C/SPI/UART)、RTOS、Linux 内核、以及实用电路知识等内容。
