链表实现学生系统写入和查询

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct Student* CreateList();
void InsertElement(struct Student*List);
void Search_Stu(struct Student* HEAD, char name[10], long long int ID);

struct Student
{
	char name[10];
	long long int Student_ID;
	int grade;
	int level;
	struct Student* last;
	struct Student* next;

};


int main()
{
	char ch;
	struct Student* Head_List = CreateList();
	printf("****************************\n");
	printf("*                          *\n");
	printf("*         欢迎访问         *\n");
	printf("*                          *\n");
	printf("****************************\n");
	printf("请根据提示完成\n");
	printf("选择模式(添加学生+)(移除学生-)(搜索学生s)\n");
	while ((ch=getchar())!=0)
	{	
		if (ch == '+')
		{
			InsertElement(Head_List);
		}
		else if (ch == '-')
		{
			
		}
		else if (ch == 's')
		{
			char name[10];long long int Student_ID;
			int tmp;
			printf("请选择姓名查询OR学号查询?(1/2)\n");
			scanf("%d", &tmp);
			if (tmp == 1)
			{
				printf("请输入姓名:\n");
				scanf("%s", name);
				Search_Stu(Head_List,name,0);
			}
			else if (tmp == 2)
			{
				printf("请输入学号:\n");
				scanf("%lld", &Student_ID);
				Search_Stu(Head_List, " ", Student_ID);
			}
			
		}
	}

	free(Head_List);

	return 0;
}

struct Student* CreateList()
{
	struct Student* List=(struct Student*)malloc(sizeof(struct Student));
	List->next = NULL;
	return List;
}

void InsertElement(struct Student* Head)
{
	while (Head->next)
	{
		Head = Head->next;
	}
	struct Student* Body_List = (struct Student*)malloc(sizeof(struct Student));
	printf("input(name、id、grade、level):");
	scanf("%s%lld%d%d", Head->name, &(Head->Student_ID), &(Head->grade), &(Head->level));
	Head->last = NULL;
	Head->next = Body_List;
	Body_List->last = Head;
	Body_List->next = NULL;
	Head = Body_List;
	

}
void Search_Stu(struct Student* HEAD, char name[10], long long int ID)
{
	while (HEAD)
	{
		if (strcmp(HEAD->name, name) == 0 || HEAD->Student_ID == ID)
		{
			printf("name:%20s  id:%15lld  grade:%5d  level:%5d \n", HEAD->name, HEAD->Student_ID, HEAD->grade, HEAD->level);
			
		}
		HEAD = HEAD->next;
	}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小鱼爱码士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值