您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 简单的学生信息管理系统(C语言)
#includestdio.h#includeconio.h//输入函数getch的头文件,不能用getchar,具体请查看两者的区别#includestdlib.h//申请空间的函数malloc的头文件typedefstruct{//定义结构体类型,包含四项内容,可以自由添加intnum;charname[10];intage;charsex[5];}st;typedefstructnode//构造结点(也是结构体变量){stdata;//数据域structnode*next;//指针域(指向结构体,也就是自身)}list;list*create()//建立一个单链表{list*p,*r,*head;//定义结构体指针变量inti,n;head=(list*)malloc(sizeof(list));//申请头结点r=head;head-next=NULL;//头结点的指针域先定义为空printf(请输入学生人数:\n);scanf(%d,&n);printf(请输入学生个人信息:\n\n学号,姓名,年龄,性别\n);for(i=1;i=n;i++){p=(list*)malloc(sizeof(list));//申请一个结点scanf(%d%s%d%s,&p-data.num,&p-data.name,&p-data.age,&p-data.sex);//向结点的数据域输入学生信息p-next=NULL;r-next=p;//将头结点指向第一个结点,以此类推。r=r-next;}return(head);//返回头结点的地址}voidoutput(list*h)//输出链表中的学生信息{list*p;p=h-next;//使p指向第一个结点if(p==NULL)printf(------------学生信息为空------------------\n\n);while(p!=NULL){printf(学号,姓名,年龄,性别分别是:\n);printf(%d,%s,%d,%s\n,p-data.num,p-data.name,p-data.age,p-data.sex);p=p-next;}}voidresearch(list*h)//查找链表中某一位学生信息{list*p;intk;p=h-next;//使p指向第一个结点printf(请输入要查找学生的学号:\n);scanf(%d,&k);while(p&&p-data.num!=k)p=p-next;//找到学号为k的结点,如果没有,则p为空if(p){printf(学号,姓名,年龄,性别为:\n);printf(%d,%s,%d,%s\n,p-data.num,p-data.name,p-data.age,p-data.sex);}elseprintf(找不到此学生:\n);}voidinsert(list*h)//插入一个学生信息到链表中(插到链表末尾){list*p,*q,*r;p=h-next;r=h;q=(list*)malloc(sizeof(list));//申请一个新结点printf(请输入插入学生的学号,姓名,年龄,性别:\n);scanf(%d%s%d%s,&q-data.num,&q-data.name,&q-data.age,&q-data.sex);q-next=NULL;while(p!=NULL){r=p;p=p-next;}r-next=q;}voiddele(list*h)//在链表中删除某一位学生信息{intk;list*p,*r;r=h;p=h-next;printf(请输入要删除学生的学号:\n);scanf(%d,&k);while(p&&p-data.num!=k){r=p;//找到学号为k的结点,如果没有,则p为空p=p-next;}if(p){r-next=p-next;p-next=NULL;free(p);printf(学生信息已删除!\n\n);}elseprintf(找不到此学生\n\n);}intmain(){inti,j=1;list*p;charc=13;//13是回车键的ASCII值printf(-------------------------------------------\n);printf(学生信息管理系统\n);printf(-------------------------------------------\n);while(c==13){printf(1,登记学生信息\n);printf(2,浏览学生信息\n);printf(3,查找学生信息\n);printf(4,插入学生信息\n);printf(5,删除学生信息\n);printf(-------------------------------------------\n);printf(请输入你的选择:\n);scanf(%d,&i);switch(i){case1:p=create();break;//调用各函数,实现功能case2:output(p);break;case3:research(p);break;case4:insert(p);break;case5:dele(p);break;}printf(------------继续请敲回车!----------------\n);c=getch();}return0;}
本文标题:简单的学生信息管理系统(C语言)
链接地址:https://www.777doc.com/doc-2436949 .html