嵌入式笔试刷题第(26天)

第11题:学生宿舍管理系统接口函数设计

题目要求:

根据结构体定义,设计以下函数接口:

  1. 新建一个宿舍
  2. 找出一个未住满的宿舍
  3. 学生入住
  4. 学生离开
  5. 根据姓名查找宿舍
  6. 根据宿舍编号打印宿舍信息
  7. 清空某个宿舍
  8. 清空所有宿舍

结构体:

#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 内核、以及实用电路知识等内容。

全部评论
点赞 回复 分享
发布于 04-25 21:44 山西
mark一下解法
点赞 回复 分享
发布于 04-25 17:29 黑龙江

相关推荐

wuwuwuoow:Redisson 写错了,记得 Redis 儿子以后都不会写错。其他没啥问题,海投就行。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务