单链表实现学生管理系统

单链表实现学生管理系统(参照顺序表技能)写出菜单界面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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值