c语言寝室管理系统链表

时间: 2023-09-02 08:14:24 浏览: 52
链表是一种常见的数据结构,可以用来实现寝室管理系统。下面是一个简单的C语言链表实现: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> // 定义一个学生结构体 typedef struct student { char name[20]; // 姓名 int num; // 学号 char gender[5]; // 性别 int age; // 年龄 char dorm[10]; // 寝室号 struct student *next; // 指向下一个学生结构体的指针 } Student; // 初始化链表 Student* init() { Student *head = (Student*)malloc(sizeof(Student)); // 创建头结点 head->next = NULL; // 头结点指针域置空 return head; } // 添加学生 Student* add(Student *head, char *name, int num, char *gender, int age, char *dorm) { Student *p = (Student*)malloc(sizeof(Student)); // 创建新结点 strcpy(p->name, name); p->num = num; strcpy(p->gender, gender); p->age = age; strcpy(p->dorm, dorm); p->next = head->next; // 新结点指向头结点的下一个结点 head->next = p; // 头结点指向新结点 return head; } // 删除学生 Student* del(Student *head, char *name) { Student *p = head->next; // 指向第一个结点 Student *pre = head; // 指向头结点 while(p) { if(strcmp(p->name, name) == 0) { // 找到要删除的结点 pre->next = p->next; // 前驱结点指向后继结点 free(p); // 释放空间 return head; } pre = p; // 前驱结点指向当前结点 p = p->next; // 当前结点指向下一个结点 } printf("未找到该学生!\n"); return head; } // 修改学生信息 Student* modify(Student *head, char *name, int num, char *gender, int age, char *dorm) { Student *p = head->next; while(p) { if(strcmp(p->name, name) == 0) { // 找到要修改的结点 p->num = num; strcpy(p->gender, gender); p->age = age; strcpy(p->dorm, dorm); return head; } p = p->next; } printf("未找到该学生!\n"); return head; } // 查找学生 void search(Student *head, char *name) { Student *p = head->next; while(p) { if(strcmp(p->name, name) == 0) { printf("姓名:%s 学号:%d 性别:%s 年龄:%d 寝室号:%s\n", p->name, p->num, p->gender, p->age, p->dorm); return; } p = p->next; } printf("未找到该学生!\n"); } // 输出学生信息 void print(Student *head) { Student *p = head->next; while(p) { printf("姓名:%s 学号:%d 性别:%s 年龄:%d 寝室号:%s\n", p->name, p->num, p->gender, p->age, p->dorm); p = p->next; } } // 释放链表空间 void destory(Student *head) { Student *p = head; while(p) { Student *q = p->next; free(p); p = q; } } int main() { Student *head = init(); // 初始化链表 // 添加学生 head = add(head, "张三", 1001, "男", 18, "A101"); head = add(head, "李四", 1002, "女", 19, "A102"); head = add(head, "王五", 1003, "男", 20, "A103"); head = add(head, "赵六", 1004, "女", 21, "A104"); // 输出学生信息 printf("所有学生信息如下:\n"); print(head); // 删除学生 head = del(head, "李四"); printf("删除李四后所有学生信息如下:\n"); print(head); // 修改学生信息 head = modify(head, "张三", 1005, "女", 19, "B101"); printf("修改张三后所有学生信息如下:\n"); print(head); // 查找学生 printf("查找赵六的信息:\n"); search(head, "赵六"); // 释放链表空间 destory(head); return 0; } ``` 运行上述代码,可以看到输出的学生信息以及删除、修改、查找操作的结果。

相关推荐

最新推荐

recommend-type

c语言通讯录管理系统链表实验报告

用链表做的通讯录管理系统,经过修改,调试,最后能稳定运行,程序运行时需要密码
recommend-type

C语言实现食堂就餐管理系统(带链表)

主要为大家详细介绍了C语言实现食堂就餐管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

C语言数据结构实现链表逆序并输出

主要介绍了C语言数据结构实现链表逆序并输出的相关资料,需要的朋友可以参考下
recommend-type

C语言链表题目(附答案).docx

大一初学C语言时的期末作业,涉及到链表的建立和功能的实现,涉及指针、函数、动态结构建立等方面的知识,初学者可以参考参考尝试尝试哟!!!
recommend-type

基于C语言实现个人通讯录管理系统

之前利用C语言完成了一个关于个人通讯录管理系统的课题,主要是关于联系人的添加、查找、删除、修改、输出以及文件的写入与读出,还有一个甜点功能—模拟通话,它的实现原理也很容易理解,文章末尾会介绍到。...
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

如何用python编写api接口

在Python中编写API接口可以使用多种框架,其中比较流行的有Flask和Django。这里以Flask框架为例,简单介绍如何编写API接口。 1. 安装Flask框架 使用pip命令安装Flask框架: ``` pip install flask ``` 2. 编写API接口 创建一个Python文件,例如app.py,编写以下代码: ```python from flask import Flask, jsonify app = Flask(__name__) @app.route('/api/hello', methods=['GET']) def hello():
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。