资源描述:
《简单的学生信息管理系统(C语言)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、#include#include//输入函数getch的头文件,不能用getchar,具体请查看两者的区别#include//申请空间的函数malloc的头文件typedefstruct{//定义结构体类型,包含四项内容,可以自由添加intnum;charname[10];intage;charsex[5];}st;typedefstructnode//构造结点(也是结构体变量){stdata;//数据域structnode*next;//指针域
2、(指向结构体,也就是自身)}list;list*create()//建立一个单链表{list*p,*r,*head;//定义结构体指针变量inti,n;head=(list*)malloc(sizeof(list));//申请头结点r=head;head->next=NULL;//头结点的指针域先定义为空printf("请输入学生人数:");scanf("%d",&n);printf("请输入学生个人信息:学号,姓名,年龄,性别");for(i=1;i<=n;i++){p=(list*
3、)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指向第一个结点i
4、f(p==NULL)printf("------------学生信息为空------------------");while(p!=NULL){printf("学号,姓名,年龄,性别分别是:");printf("%d,%s,%d,%s",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指向第
5、一个结点printf("请输入要查找学生的学号:");scanf("%d",&k);while(p&&p->data.num!=k)p=p->next;//找到学号为k的结点,如果没有,则p为空if(p){printf("学号,姓名,年龄,性别为:");printf("%d,%s,%d,%s",p->data.num,p->data.name,p->data.age,p->data.sex);}elseprintf("找不到此学生:");}voidinsert(list*h)//插入一
6、个学生信息到链表中(插到链表末尾){list*p,*q,*r;p=h->next;r=h;q=(list*)malloc(sizeof(list));//申请一个新结点printf("请输入插入学生的学号,姓名,年龄,性别:");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(li
7、st*h)//在链表中删除某一位学生信息{intk;list*p,*r;r=h;p=h->next;printf("请输入要删除学生的学号:");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("学生信息已删除!");}elseprintf("找不到此学生");}intmain()
8、{inti,j=1;list*p;charc=13;//13是回车键的ASCII值printf("-------------------------------------------");printf("学生信息管理系统");printf("-------------------------------------------");while(c==13){printf("1,登记学生信息");printf("2,浏览学生信息");