要实现一个学生信息示意性检索程序,我们首先定义一个结构体来表示学生信息,然后实现对应的链表操作,包括创建、插入、删除、修改、查找和显示学生信息的功能。以下是一个简单的C语言实现: ```c #include #include #include // 定义学生信息结构体 typedef struct Student { int id; char sex; int age; char class[30]; struct Student *next; } Student; // 定义全局头结点 Student *head = NULL; // 学生信息的初始化(链表的创建) void init() { head = (Student *)malloc(sizeof(Student)); if (!head) { exit(EXIT_FAILURE); } head->next = NULL; } // 学生的插入 void insertStudent() { Student *newNode = (Student *)malloc(sizeof(Student)); Student *current = head; printf("请输入学生的学号、性别、年龄和班级,用空格隔开:\n"); scanf("%d %c %d %s", &newNode->id, &newNode->sex, &newNode->age, newNode->class); // 查找插入位置 while (current->next != NULL) { current = current->next; } // 插入到链表尾部 current->next = newNode; newNode->next = NULL; } // 学生的删除(按学号删除) void deleteStudent() { int id; Student *current = head; Student *prev = NULL; printf("请输入要删除学生的学号:\n"); scanf("%d", &id); // 查找要删除的节点 while (current->next != NULL && current->next->id != id) { prev = current; current = current->next; } // 如果找到节点,则删除 if (current->next != NULL) { Student *temp = current->next; current->next = temp->next; free(temp); printf("学生信息删除成功。\n"); } else { printf("未找到该学号的学生。\n"); } } // 学生信息的修改(按学号查找到该学生并修改) void modifyStudent() { int id; Student *current = head; printf("请输入要修改学生的学号:\n"); scanf("%d", &id); // 查找要修改的节点 while (current->next != NULL && current->next->id != id) { current = current->next; } // 如果找到节点,则修改 if (current->next != NULL) { printf("请重新输入学生的性别、年龄和班级,用空格隔开:\n"); scanf(" %c %d %s", ¤t->next->sex, ¤t->next->age, current->next->class); printf("学生信息修改成功。\n"); } else { printf("未找到该学号的学生。\n"); } } // 学生信息的查找(按学号查找) void findStudent() { int id; Student *current = head; printf("请输入要查找学生的学号:\n"); scanf("%d", &id); // 查找学生信息 while (current->next != NULL && current->next->id != id) { current = current->next; } // 如果没有找到 if (current->next == NULL) { printf("未找到该学号的学生。\n"); } else { printf("学生信息如下:\n"); printf("学号:%d\n", current->next->id); printf("性别:%c\n", current->next->sex); printf("年龄:%d\n", current->next->age); printf("班级:%s\n", current->next->class); } } // 显示当前所有学生信息 void showAllStudents() { Student *current = head->next; printf("当前所有学生信息如下:\n"); while (current != NULL) { printf("学号:%d\n", current->id); printf("性别:%c\n", current->sex); printf("年龄:%d\n", current->age);

点赞(0)
×
关注公众号,登录后继续创作
或点击进入高级版AI
扫码关注后未收到验证码,回复【登录】二字获取验证码
发表
评论
返回
顶部