用链表构建学生信息库

该博客介绍了如何使用链表来构建一个学生信息库,包括创建、插入、删除和遍历学生成绩信息的功能。提供了C语言实现的代码示例,并增加了修改学生信息的函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、 实验目的

建立一个学生成绩信息(包括学号、姓名、成绩)的单向链表,学生记录按照学号由小到大顺序排列,要求实现对成绩信息的创建、插入、删除和遍历操作。

二、 代码

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

struct stud_node

{

    int num;

    char name[20];

    int score;

    struct stud_node*next;

};

struct stud_node*Create_Stu_Doc();

struct stud_node*InsertDoc(struct stud_node*head,struct stud_node*stud);

struct stud_node*DeleteDoc(struct stud_node*head,int num);

void Print_Stu_Doc(struct stud_node*head);

 

int main(void)

{

    struct stud_node*head,*p;

    int choice,num,score;

    char name[20];

    int size=sizeof(struct stud_node);

    do{

        printf("1:Create 2:Insert 3:Delete 4:Print 0:Exit\n");

        scanf("%d",&choice);

        switch(choice){

        case 1:

            head=Create_Stu_Doc();

            break;

        case 2:

            printf("Input num,name and score\n");

            scanf("%d%s%d",&num,name,&score);

            p=(struct stud_node*)malloc(size);

            p->num=num;

            strcpy(p->name,name);

            p->score=score;

            head=InsertDoc(head,p);

            break;

        case 3:

            printf("Input num:\n");

            scanf("%d",&num);

            head=DeleteDoc(head,num);

            break;

        case 4:

            Print_Stu_Doc(head);

            break;

        case 0:

            break;

        }

    }while(choice!=0);

    return 0;

}

struct stud_node*Create_Stu_Doc()

{

    struct stud_node*head,*p;

    int num,score;

    char name[20];

    int size=sizeof(struct stud_node);

    head=NULL;

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值