C语言如何使用单链表实现学生信息管理系统
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,这篇文章主要介绍了C语言如何使用单链表实现学生信息管理系统,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。运行结果如图:1.运行界面2.
千家信息网最后更新 2025年01月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安全错误
数据库的锁怎样保障安全
武汉软件开发专业技能树
oracle数据库如何自学
数据库销售管理实训报告书
河北手动软件开发报价
微信后台服务器会保存图片多久
刀片服务器 品牌
手机上运行数据库
谷歌账号服务器连接不上
软件开发避免改出别的问题
湖南数据软件开发价格
软件开发需求审核
linux查询服务器名称
新乡网络技术公司
网络安全管理领导小组
新华三网络安全产品和方案
源道网络技术 宿迁
中国电子学会网络安全工程师
网络安全手抄写报
重庆走之底网络技术有限公司
网络安全与执法是计算机类专业吗
关于rsasdns服务器配置
河北手动软件开发报价
mac局域网服务器
移动云存储服务器设置
即时通讯软件开发哪里做得好
黄浦区智能软件开发收费
数据库开发技术教案
网络安全失范行为
魔兽世界熊猫酒仙服务器
软件开发商怎么查不到