单链表实现学生管理系统(参照顺序表技能)写出菜单界面switch选择,功能1创建单链表,2录入学生信息,3删除一个学生信息,4按照成绩修改一个学生的年龄,5、按照姓名顺序查找一个学生是否存在。
要求:
#include "text.h"
//
//
//单链表实现学生管理系统(参照顺序表技能)写出菜单界面switch选择,功能1创建单链表,
//1录入学生信息,
//2删除一个学生信息,
//3按照成绩修改一个学生的年龄,
//4、按照姓名顺序查找一个学生是否存在。
//
//
//
//
int main(int argc, const char *argv[])
{
qstu L=stu_insert();
int a;
while(a!=0)
{
biao();
printf("请输入你的选择>>>>\n");
scanf("%d",&a);
switch(a)
{
case 1:input_stu(L);
break;
case 2:dele_stu(L);
break;
case 3:age_change_srcoe(L);
break;
case 4:find_stu(L);
break;
case 5:output_stu(L);
break;
}
}
return 0;
}
#include "text.h"
void biao()
{
printf("1:录入学生信息\n");
printf("2:删除一个学生信息\n");
printf("3:按照成绩修改一个学生的年龄\n");
printf("4:按照姓名顺序查找一个学生是否存在\n");
printf("5:输出学生信息\n");
}
Qstu stu_insert()//申请头结点
{
Qstu q=malloc(sizeof(Stu));
if(q==NULL)
{
printf("头结点申请失败\n");
return NULL;
}
q->len=0;
q->next=NULL;//指针域赋值
return q;
}
int xinxi(Qstu L)
{
if(L==NULL)
{
printf("链表不纯在\n");
return -1;
}
Qstu q=malloc(sizeof(Stu));
printf("输入学生信息>>>>\n");
printf("请输入第%d个学生信息-- 0 结束输入\n",i+1);
printf("姓名");
scanf("%s",q->data.name);
printf("分数");
scanf("%d",&q->data.srcoe);
printf("年龄");
scanf("%d",&q->data.age);
printf("电话");
scanf("%s",q->data.phoen);
q->name=L->next;
L->next=q;
L->len++;
return 0;
}
int input_stu(Qstu L)
{
int i,n;
printf("输入要输入的学生个数:\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
xinxi(L);
printf("输入成功!!!!\n");
}
return 0;
}
int output_stu(qstu L)
{
if(L==NULL)
{
printf("链表不纯在");
return -1;
}
printf("学生信息如下:\n");
int i;
Qstu q=L;
for(i=0;i<L->len;i++)
{
printf("姓名:%s\t分数:%d\t年龄:%d\t电话号码:%s\t",
q->data.name,q->data.srcoe,
q->data.age,q->data.phoen);
putchar(10);
}
return 0;
}
int dele_stu(qstu L)
{
if(L==NULL)
{
printf("不纯在链表\n");
return -1;
}
char a[20];
printf("请输入你要删除的学生名字\n");
scanf("%s",a);
Qstu q=L;
Qstu p=L->next;
for(int i=0;i<L->len;i++)
{
if(strcmp(a,p->next.name)==0)
{
q->next=p->next;
free(p);
L->len--;
printf("成功删除!!!!\n");
}
p=p->next;
q=q->next;
}
return 0;
}
int age_change_srcoe
{
if(L==NULL)
{
printf("不纯在链表\n");
return -1;
}
int a;
printf("输入要修改的学生年龄的分数\n");
scanf("%d",&a);
Qstu q=L;
for(int i=0;i<L->len;i++)
{
q=q->next;
if(a==q->data.srcoe)
{
printf("请输入年龄\n");
scanf("%d",&q->data.age);
}
}
return 0;
}
int find_stu(Qstu L)
{
if(L==NULL)
{
printf("不纯在链表\n");
return -1;
}
char a[20];
printf("请输入要查找的学生姓名\n");
scanf("%s",a);
int not=-1;
Qstu q=L;
for(int i=0;i<L->len;i++)
{
q=q->next;
if(strcmp(a,q->data.name)==0)
{
printf("纯在该学生\n");
}
else
{
printf("不纯在该学生\n");
}
}
return 0;
}
#ifndef _TEXT_H_
#define _TEXT_H_
#include <myhead.h>
typedef struct
{
char name[20];
int srcoe;
int age;
char phoen[20];
}student;
typedef struct stu
{
union
{
student data;
int len;
};
struct stu *next;
}Stu,*Qstu;
void biao();
Qstu stu_insert();
int input_stu(Qstu L);
int output_stu(qstu L);
int dele_stu(Qstu L);
int age_change_srcoe(Qstu L);
int find_stu(Qstu L);
#endif