📄 text.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 + -