简单的学生信息管理系统(C语言).doc
【精品文档】如有侵权,请联系网站删除,仅供学习与交流简单的学生信息管理系统(C语言).精品文档.#include<stdio.h>#include<conio.h> /输入函数getch的头文件,不能用getchar,具体请查看两者的区别#include<stdlib.h> /申请空间的函数malloc的头文件typedef struct /定义结构体类型,包含四项内容,可以自由添加int num;char name10;int age;char sex5;st;typedef struct node /构造结点 (也是结构体变量)st data; /数据域struct node *next; /指针域(指向结构体,也就是自身)list; list *create() /建立一个单链表list *p,*r,*head; /定义结构体指针变量int i,n;head = (list *)malloc(sizeof(list); /申请头结点r = head;head->next = NULL; /头结点的指针域先定义为空printf("请输入学生人数:n");scanf("%d",&n);printf("请输入学生个人信息:nn学号,姓名,年龄,性别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); /返回头结点的地址void output(list *h) / 输出链表中的学生信息list *p;p = h->next; /使p指向第一个结点if(p = NULL) printf("-学生信息为空-nn");while(p!=NULL)printf("学号,姓名,年龄,性别分别是:n");printf("%d,%s,%d,%sn",p->data.num,p->data.name,p->data.age,p->data.sex);p = p->next;void research(list *h) /查找链表中某一位学生信息list *p; int k;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,%sn",p->data.num,p->data.name,p->data.age,p->data.sex);elseprintf("找不到此学生:n");void insert(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;void dele(list *h) / 在链表中删除某一位学生信息int k;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("学生信息已删除!nn");elseprintf("找不到此学生nn");int main()int i,j=1;list *p;char c = 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)case 1: p = create();break; /调用各函数,实现功能case 2: output(p);break;case 3: research(p);break;case 4: insert(p);break;case 5: dele(p); break;printf("-继续请敲回车!-n");c = getch();return 0;