C语言如何使用单链表实现学生信息管理系统
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要介绍了C语言如何使用单链表实现学生信息管理系统,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。运行结果如图:1.运行界面2.
千家信息网最后更新 2026年10月31日C语言如何使用单链表实现学生信息管理系统
这篇文章主要介绍了C语言如何使用单链表实现学生信息管理系统,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
运行结果如图:
1.运行界面

2.录入学生信息
3.按照总分进行排序

代码如下:
#define ERROR 0#define OK 1#define OVERFLOW -1;typedef int ElemType;typedef int Status;#include#include #include #include #include typedef struct{ char name[20]; char snumber[20]; char sex[10]; int math; int chinese; int english;}student;typedef struct LNode{ student data; struct LNode *next;}LNode,*LinkList;//单链表初始化Status InitList(LinkList &L){ L = new LNode; L->next = NULL; return OK;}//创建单链表void CreateList(LinkList &L,int n){ LinkList r; LinkList p; L = new LNode; L->next = NULL; r = L; int i; for(i = 0;i data.name,&p->data.snumber,&p->data.sex,&p->data.chinese,&p->data.math,&p->data.english); //scanf("%d%d%d",&p->data.chinese,&p->data.math,&p->data.english); p->next=NULL; r->next=p; r = p; }}//总分统计int GradeSum(LinkList L){ int sum; sum = (L->data.chinese)+(L->data.english)+(L->data.math); return sum;}//统计所有学生信息void BianLi(LinkList L){ LinkList p; p = L->next; printf("姓名\t学号\t性别\t语文\t数学\t英语\t总分\n"); while(p){ printf("%s\t%s\t%s\t",p->data.name,p->data.snumber,p->data.sex); printf("%d\t%d\t%d\t%d",p->data.chinese,p->data.math,p->data.english,GradeSum(p)); p = p->next; printf("\n"); }}//按照总分排序void OrderSum(LinkList &L){ LinkList p,q,tail; tail = NULL; while((L->next->next) != tail) { p = L; q = L->next; while(q->next != tail) { if( GradeSum(q) < GradeSum(q->next)) { p->next = q->next; q->next = q->next->next; p->next->next = q; q = p->next; } q = q->next; p = p->next; } tail = q; } printf("排序完毕!\n");}//根据语文进行排序void OrderChinese(LinkList &L){ LinkList p,q,tail; tail = NULL; while((L->next->next) != tail) { p = L; q = L->next; while(q->next != tail) { if((q->data.chinese) < (q->next->data.chinese)) { p->next = q->next; q->next = q->next->next; p->next->next = q; q = p->next; } q = q->next; p = p->next; } tail = q; } printf("排序完毕!\n");}//根据英语进行排序void OrderEnglish(LinkList &L){ LinkList p,q,tail; tail = NULL; while((L->next->next) != tail) { p = L; q = L->next; while(q->next != tail) { if((q->data.english) < (q->next->data.english)) { p->next = q->next; q->next = q->next->next; p->next->next = q; q = p->next; } q = q->next; p = p->next; } tail = q; } printf("排序完毕!\n");}//根据数学进行排序void OrderMath(LinkList &L){ LinkList p,q,tail; tail = NULL; while((L->next->next) != tail) { p = L; q = L->next; while(q->next != tail) { if((q->data.math) < (q->next->data.math)) { p->next = q->next; q->next = q->next->next; p->next->next = q; q = p->next; } q = q->next; p = p->next; } tail = q; } printf("排序完毕!\n");}//删除学生信息Status ListDelete(LinkList &L,int i){ LinkList p; LinkList q; int j; p = L;j = 0; while((p->next)&&(j next; ++j; } if(!(p->next)||(j>i-1)) return ERROR; q = p->next; p->next = q->next; delete q; return OK;}void DeleteStudent(LinkList &L){ int i; printf("请输入需要删除的学生序号\n"); scanf("%d",&i); ListDelete(L,i); printf("删除完毕!\n");}//插入学生信息Status ListInsert(LinkList &L,int i,char name[],char snumber[],char sex[],int chinese,int math,int english){ LinkList p = L; LinkList s; int j = 0; while(p && (j next; ++j; } if(!p||j>i-1) return ERROR; s = new LNode; strcpy(s->data.name,name); strcpy(s->data.snumber,snumber); strcpy(s->data.sex,sex); s->data.chinese = chinese; s->data.math = math; s->data.english = english; s->next = p->next; p->next = s; return OK;}void InsertStudent(LinkList &L){ int n; char name[20],snumber[20],sex[10]; int chinese,math,english; printf("请输入插入的位置N:"); scanf("%d",&n); printf("请依次输入学生的姓名、学号、性别、语文成绩、数学成绩、英语成绩、总分\n"); scanf("%s%s%s%d%d%d",&name,&snumber,&sex,&chinese,&math,&english); ListInsert(L,n,name,snumber,sex,chinese,math,english);}void menu(){ printf("\t\t\t ======================================================\n\n"); printf("\t\t\t ‖ 学生信息管理系统 ‖ \n\n"); printf("\t\t\t ======================================================\n\n"); printf("\t\t\t ===================系统功能菜单=======================\n"); printf("\t\t\t ‖ ------------------------------------------------ ‖\n"); printf("\t\t\t ‖ ------------------------------------------------ ‖ \n"); printf("\t\t\t ====================================================== \n"); printf("\t\t\t ‖ 0.录入学生信息 ‖ ‖ 1.统计学生信息 ‖ \n"); printf("\t\t\t ======================================================\n"); printf("\t\t\t ‖ 2.按照总分排序 ‖ ‖ 3.按照语文成绩排序 ‖ \n"); printf("\t\t\t ====================================================== \n"); printf("\t\t\t ‖ 4.按照数学成绩排序 ‖ ‖ 5.按英语成绩排序 ‖ \n"); printf("\t\t\t ======================================================\n"); printf("\t\t\t ‖ 6.删除学生信息 ‖ ‖ 7.插入学生信息 ‖ \n"); printf("\t\t\t ====================================================== \n"); printf("\t\t\t ‖ 8.退出系统 ‖ \n"); printf("\t\t\t ========================== \n"); printf("\t\t\t ----------------------------------------------- \n"); printf("\n\n\n");}void luRu(LinkList &L){ int n; printf("请输入学生数目N:"); scanf("%d",&n); printf("请依次输入学生的姓名、学号、性别、语文成绩、数学成绩、英语成绩、总分\n"); CreateList(L,n); printf("学生信息已录入完毕!\n");}void main(int args,char argv[]){ LinkList p; InitList(p); int i; do{ menu(); scanf("%d",&i); getchar(); switch(i){ case 0:luRu(p);break; case 1:BianLi(p);break; case 2:OrderSum(p);BianLi(p);break; case 3:OrderChinese(p);BianLi(p);break; case 4:OrderMath(p);BianLi(p);break; case 5:OrderEnglish(p);BianLi(p);break; case 6: DeleteStudent(p);break; case 7:InsertStudent(p);break; case 8:exit(0); } }while(i != -1);}
感谢你能够认真阅读完这篇文章,希望小编分享的"C语言如何使用单链表实现学生信息管理系统"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
学生
排序
信息
成绩
总分
系统
数学
语文
英语
输入
篇文章
管理系统
管理
姓名
学号
性别
统计
语言
运行
代码
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
百单网互联网科技有限公司
广州万易互联网科技有限公司
网络科技有限互联网
互联网络科技有限公司
金融科技与互联网金融
西安互联网科技
腾讯科技 互联网女皇
成都互联网科技公司100强
新兴科技互联网创新大赛颁奖典礼
深圳育鹏互联网科技有限公司招聘
烟台灵鸽互联网科技有限公司
互联网时代的科技公司
上海科技产业互联网平台
2021互联网科技公司排名
怎样加入科技互联网
南京一网一红互联网科技有限公司
容联科技互联网电商
易租星互联网科技有限公司
北京天晋互联网科技有限公司
玉溪新华互联网科技怎么选
新华互联网科技学院
狮子座互联网科技培训
互联网科技股午盘股票涨跌
富国互联网科技创新基金
深圳国际航运科技和互联网
银行科技岗属于互联网吗
南京一网一红互联网科技有限公司
福州德业互联网科技
互联网科技企业商标注意事项
互联网科技的前景