//菜单
void menu(){
printf("\t\t\t\t***************************************************\n");
printf("\t\t\t\t*\t\t学生管理系统 *\n");
printf("\t\t\t\t***************************************************\n");
printf("\t\t\t\t* 1.添加学生信息 *\n");
printf("\t\t\t\t* 2.查找学生信息 *\n");
printf("\t\t\t\t 3.删除学生信息 *\n");
printf("\t\t\t\t* 4.按成绩排序 *\n");
printf("\t\t\t\t*5.退出程序 *\n");
printf("\t\t\t\t***************************************************\n");
}
//添加
int addt(student *s,int id,char name[],float score)
{
if(NULL == s)
{
printf("所给链表不合法\n");
return -1;
}
student *p = nodeBuy(id,name,score);
p->next = s->next;
s->next = p;
s->len++;
printf("添加学生信息成功\n");
return 0;
//查找
student *seek(student *S,char name[])
{
if(NULL == s || empty(s))
{
printf("查找失败\n");
return NULL;
}
student *q = s->next;
while(strcmp(q->data->name,name))
{
q = q->next;
if(q == NULL)
{
printf("查无此人\n");
return NULL;
}
}
printf("学号\t姓名\t成绩\n");
printf("%d\t%s\t%.2f\n",q->data->id,q->data->name,q->data->score);
printf("查找成功\n");
return q;
}
//删除
int delet(student *s,int id)
{
if(NULL == s || empty(s))
{
printf("删除失败\n");
return -1;
}
student *q = s;
while(q->next->data->id != id)
{
q = q->next;
}
student *p = q->next;
q->next = p->next;
free(p->data);
p->data = NULL;
free(p);
p = NULL;
s->len--;
printf("删除成功\n");
}
//排序
void sort(student *s)
{
int i,j; //循环变量
datatype *temp; //交换变量
student *p = s>next;
student *q = s->next->next;
for(i=1;i<s->len; i++) //比较趟数
{
for(j=0;j<s->len-i; j++) //元素 比较次数
{
if(p->data->id > q->data->id) //大升小降
{
temp=q->data; q->data=p->data; p->data= temp;
}
q = q->next;
}
p = p->next;
q = p->next;
}
printf("排序成功\n");
}
07-26
409

07-26
201

07-26
302
