给你一个简单的管理系统。
/* Note:Your choice is C IDE */
#include "stdio.h"
#include<stdlib.h>
#define MAX 100
typedef struct node
{
int num;
char name[MAX];
float score;
struct node *next;
}linklist;
linklist *creat(int n)
{
int i;
linklist *head,*p,*q;
p=head=(linklist *)malloc(sizeof(linklist));
for(i=1;i<=n;i++)
{
q=(linklist *)malloc(sizeof(linklist));
scanf("%d%s%f",&q->num,&q->name,&q->score);
p->next=q;
p=q;
}
p->next=NULL;
return head;
}
linklist *insert(linklist *head,int i,linklist *stu)
{
linklist *p;
int j;
p=head;j=0;
while(p&&j<i-1)
{ j++;p=p->next; }
if(!p)return 0;
stu->next=p->next;
p->next=stu;
return head;
}
void fine(linklist *head)
{
int k;
linklist *p;
p=head->next;
scanf("%d",&k);
while(p&&p->num!=k)
p=p->next;
if(p)
{
printf("学号 姓名 成绩\n");
printf("%4d %s%10f\n",p->num,p->name,p->score);
}
else printf("没有找到");
}
linklist *del(linklist *head,int num)
{
linklist *p,*q;
p=head->next;q=head;
while(p&&p->num!=num)
{ q=p;p=p->next; }
if(p->num==num&&p)
{
q->next=p->next;
free(p);
}
return head;
}
void display(linklist *head)
{
linklist *p;
p=head->next;
while(p)
{
printf("%4d
%s%10f",p->num,p->name,p->score);
p=p->next;
}printf("\n");
}
void main()
{
linklist *head,stu;
int n,i,num;
printf("请输入要创建的成绩管理表长:");
scanf("%d",&n);head=creat(n);
printf("输入要插入的位置:");scanf("%d",&i);
printf("请输入要插入的学生各个项目:");printf("\n");
scanf("%d%s%f",&stu.num,&stu.name,&stu.score);
head=insert(head,i,&stu);
display(head);
printf("请输入要查找的学号:");printf("\n");
fine(head);
printf("请输入要删除的学号:\n");scanf("%d",&num);
head=del(head,num);
printf("删除后的数据为:");display(head);
getchar();
}