以下是一个简单的学生信息管理系统的代码,主要使用了链表数据结构:

#include <stdio.h> #include <stdlib.h> #include <string.h>

// 定义学生结构体 typedef struct student { char name[20]; int id; char major[20]; struct student *next; } Student;

// 链表头指针 Student *head = NULL;

// 添加学生信息 void add_student() { Student *new_student = (Student *)malloc(sizeof(Student)); printf("请输入学生姓名:"); scanf("%s", new_student->name); printf("请输入学生学号:"); scanf("%d", &(new_student->id)); printf("请输入学生专业:"); scanf("%s", new_student->major); new_student->next = head; head = new_student; printf("添加成功!\n"); }

// 查找学生信息 void search_student() { int id; printf("请输入要查找的学生学号:"); scanf("%d", &id); Student *current = head; while (current != NULL) { if (current->id == id) { printf("姓名:%s\n学号:%d\n专业:%s\n", current->name, current->id, current->major); return; } current = current->next; } printf("未找到该学生!\n"); }

// 删除学生信息 void delete_student() { int id; printf("请输入要删除的学生学号:"); scanf("%d", &id); Student *current = head; Student *prev = NULL; while (current != NULL) { if (current->id == id) { if (prev == NULL) { head = current->next; } else { prev->next = current->next; } free(current); printf("删除成功!\n"); return; } prev = current; current = current->next; } printf("未找到该学生!\n"); }

// 修改学生信息 void modify_student() { int id; printf("请输入要修改的学生学号:"); scanf("%d", &id); Student *current = head; while (current != NULL) { if (current->id == id) { printf("请输入新的学生姓名:"); scanf("%s", current->name); printf("请输入新的学生专业:"); scanf("%s", current->major); printf("修改成功!\n"); return; } current = current->next; } printf("未找到该学生!\n"); }

// 显示所有学生信息 void display_students() { if (head == NULL) { printf("暂无学生信息!\n"); return; } Student *current = head; while (current != NULL) { printf("姓名:%s\n学号:%d\n专业:%s\n", current->name, current->id, current->major); current = current->next; } }

int main() { int choice; while (1) { printf("学生信息管理系统\n"); printf("1. 添加学生信息\n"); printf("2. 查找学生信息\n"); printf("3. 删除学生信息\n"); printf("4. 修改学生信息\n"); printf("5. 显示所有学生信息\n"); printf("0. 退出系统\n"); printf("请选择操作:"); scanf("%d", &choice); switch (choice) { case 1: add_student(); break; case 2: search_student(); break; case 3: delete_student(); break; case 4: modify_student(); break; case 5: display_students(); break; case 0: printf("感谢使用!\n"); return 0; default: printf("无效操作!\n"); } }

数据结构用C语言写一个学生信息管理系统

原文地址: http://www.cveoy.top/t/topic/fiz8 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录