双向循环链表实习学生管理系统

学生管理系统

拥有多个函数,实现有增加学生成绩(偷懒使用随机数生成成绩),查询学生成绩,删除学生信息,

将学生成绩进行排序,显示学生的成绩信息,修改学生的成绩,销毁学生信息

可在原程序的基础上添加更多功能

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

typedef struct node     
{
    int chinese;
    int math;
    int english;
    int num;
    char name[10];
    struct node *prev;
    struct node *next;
}node;

node *initlist(void)
{
    node *new=malloc(sizeof(node));
    if(new == NULL)
    {
        printf("malloc fail\n");
        return NULL;
    }   
    new->chinese=0;
    int math=0;
    int english=0;
    new->num=0;
    new->name[10];
    new->next=new;
    new->prev=new;
    return new;
}

//从尾插入数据
void initlisthead1(node *head,node *new)
{
    new->prev=head->prev;
    new->next=head;      

    head->prev->next=new;
    head->prev=new;
}

//查询学生的信息
node *find_data(node *head,int data)
{
    node *p=NULL;
    for(p=head->next;p!=head;p=p->next)
    {
        if(p->num == data)
        {
            return p;
        }
    }
    return NULL;
}

//删除学生信息
node *del_data(node *head,int data)
{  
    node *del;    
    node *p;
    del=find_data(head,data);
    if(del == NULL)
    {
        return NULL;
    }

    del->prev->next=del->next;
    del->next->prev=del->prev;
    
    del->next=del;
    del->prev=del;
    
    return del;
}

//解除节点
void remo(node *head,node *q)
{
    node*p=NULL;
    for(p=head;p->next!=q;p=p->next);
        p->next=q->next;
        q->next=NULL;
}

//总分排序
void sort(node *head)
{ 
  node *p=NULL;
  node *tmp=NULL;
  int len=0;
  for(p=head->next;p!=head;p
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值