#include
#include
struct stu
{
int id;
int name;
struct stu next;
};
//初始化学生链
struct stu init_link()
{
struct stu* head=(struct stu*)malloc(sizeof(struct stu));
head->id=-1;
head->next=NULL;
return head;
}
//创建一个新学生
struct stu* new_stu()
{
return (struct stu*)malloc(sizeof(struct stu));
}
//获取链表的尾部元素
struct stu* get_tail(struct stu* head)
{
struct stu* cur=head;
while(!(cur->next==NULL))
{
cur=cur->next;
}
return cur;
}
//根据id查询所有学生,把目标学生返回
struct stu* get_stu_byid(struct stu* head, int id)
{
struct stu* cur=head;
while(!(cur->next==NULL))
{
cur=cur->next;
if(cur->next->id==id)
{
return cur;
}
}
return NULL;
}
int main()
{
//1.添加学生
//2.删除学生
//3.修改学生
//4.查询所有学生
//5.根据id查询指定学生
//6.退出
int choice=0, id, name;
struct stu* head=init_link();
struct stu* ns=NULL;
struct stu* tail=NULL;
struct stu* cur=NULL;
struct stu* tar=NULL;
printf("*****welcome to stu_manage_system*****\n");
while(1)
{
printf("1.insert stu info\n");
printf("2.delete stu info\n");
printf("3.update stu info\n");
printf("4.query all stu info\n");
printf("5.query stu info by id\n");
printf("6.exit\n");
printf("make your choice:");
scanf("%d",&choice);
if(choice==1)
{
printf("input stu_id, plz:");
scanf("%d", &id);
printf("input stu_name, plz:");
scanf("%d", &name);
ns=new_stu();
ns->id=id;
ns->name=name;
ns->next=NULL;
tail=get_tail(head);
tail->next=ns;
}
if(choice==2)
{
cur=head;
printf("请输入学生学号");
scanf("%d",&id);
tar=get_stu_byid(head,id);
cur=tar->next;
tar->next=tar->next->next;
free(cur);
}
if(choice==3)
{
cur=head;
printf("input stu_id.pize");
scanf("%d",&id);
tar=get_stu_byid(head,id);
cur=tar->next;
printf("input stu_name.pize");
scanf("%d",&name);
cur->name=name;
}
if(choice==4)
{
cur=head;
while(!(cur->next==NULL))
{
cur=cur->next;
printf("stu_id=%d\n",cur->id);
printf("stu_name=%d\n",cur->name);
printf("++++++\n");
}
}
if(choice==5)
{
cur=head;
// struct stu* get_stu_byid(head,id);
printf("");
}
if(choice==6)
{
return 0;
}
}
}