⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 text.c

📁 图书馆管理系统,可以对图书进行增加,修改,删除,查询等功能!
💻 C
字号:
/*用指针建立*/
typedef struct club_   /*定义会员类型*/
{
	int club_num[10];
	char club_name[5];
	int club_age[2];
	char club_sex[2];  /* m or f*/
	struct club_ * next;
}Club;
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/**********************************************/
Club *create_list()       
{ //用动态的方法建立节点,该函数返回链表的头指针。
    Club * head = NULL,*p = NULL,*q = NULL;
	int n = 0;
	char choise = 'y';
	head = (Club* )malloc(sizeof(Club));
	if (head == NULL)
	{
	    printf("Malloc error!\n");
		exit(1);
	}
	p = head;
	while(choise == 'y'||choise == 'Y')
	{
	    q = (Club *)malloc(sizeof(Club));
	    if (q == NULL)
		{
	        printf("Malloc error!\n");
		    exit(1);
		}
		printf("请输第%d个会员卡号\n",n+1);
		scanf("%d",&q->club_num);
		printf("请输第%d个会员姓名\n",n+1);
		scanf("%s",q->club_name);
		printf("请输第%d个会员年龄\n",n+1);
		scanf("%d",&q->club_age);
		printf("请输第%d个会员性别\n",n+1);
		scanf("%s",q->club_sex);
		getchar();
		q->next = NULL;

		p->next = q;
		p = p->next;
		n++;
		printf("是否继续...《Y/N》\n");
		scanf("%c",&choise);
	}
	return head;
}

/**********************************************/
void write_File(Club* head)                   //写文件
{
    Club* p = head->next;
	FILE *fp = fopen("club.txt","w");
	if (fp == NULL)
	{
	    printf("Can't open the file!\n");
		exit(1);
	}
	while (p != NULL)
	{

	    /*fprintf(fp,"%d %s %d %s",&p->club_num,p->club_name,&p->club_age,p->club_sex);*/
		fwrite(p,sizeof(Club),1,fp);

        p = p->next;
	}

	fclose(fp);
}

/**********************************************/
void delete_node(Club *head)           //删除一个节点。
{
	Club* q = head->next,*p;
	char clubname[5];
	printf("input delete name...\n");
	scanf("%s",&clubname);
	while (strcmp(q->club_name,clubname))
	{
		p = q;
	    q = q->next;
	}
	if(!strcmp(q->club_name,clubname))
	{
		p->next = q->next;
		free(q);
	}
	else
		printf("no this club...\n");
	return ;
}
/**********************************************/
void print_list(Club *head)                   
{ //打印,打印出所有节点的函数,要求有适当的换行。
	Club* p = head->next;
	
	printf("first_name  last_name     student_id    gender  age\n");
	printf("-------------------------------------------------------\n");
	while (p != NULL)
	{
	    printf("%-13s\n",p->club_name);
		p = p->next;
	}
}

main()
{
	Club* head = NULL;
	printf("添加会员\n");
	head = create_list();
	print_list(head) ;
	write_File(head);
	delete_node(head);
	print_list(head) ;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -