#include <stdio.h>
#include <stdlib.h>
typedef struct student *ST;
struct student
{
int num;
int score;
ST next;
};
ST head = NULL;
int seek()
{
int a;
ST t;
printf("输入学号:");
scanf("%d", & a);
for (t = head; t; t = t->next)
{
if (t->num == a)
{
printf("num:%d, score:%d\n", t-> num, t->score);
return 0;
}
}
printf("无此学生\n");
return 0;
}
int change()
{
int a;
ST t;
printf("输入学号:");
scanf("%d", & a);
for (t = head; t; t = t->next)
{
if (t->num == a)
{
printf("输入新的成绩:");
scanf("%d", &t->score);
return 0;
}
}
printf("无此学生\n");
return 0;
}
int insert()
{
ST t;
t = (ST)malloc(sizeof *t);
printf("输入学号:");
scanf("%d", &t->num);
printf("输入成绩:");
scanf("%d", &t->score);
t->next = head;
head = t;
return 0;
}
int del()
{
ST a,b;
int c;
printf("输入学号:");
scanf("%d", &c);
for (a = b = head; a; b = a, a = a ->next)
{
if (a ->num == c)
{
if (a == b)
{
a = head = head->next;
b ->next = NULL;
free(b);
return 0;
}
else
{
b ->next = a ->next;
a ->next = NULL;
free(a);
return 0;
}
}
}
printf("无此学生\n");
return 0;
}
main()
{
int i;
while(1)
{printf("查询:1\n"
"更改:2\n"
"插入:3\n"
"删除:4\n"
);
scanf("%d", &i);
switch(i)
{case 1:seek();break;
case 2:change();break;
case 3:insert();break;
case 4:del();break;}}
}