通讯录管理系统课设使用c编写基于链表增查删改分组文本操作随程序实时同步

在这里插入图片描述
通讯录管理系统已经有好多人写过了 但是基于文本操作大多数只有从文件中输出和输入并不是即时的 解决方法是将链表里的数据输出以结构体的方式到文本 读入应该以一样的方式

增加个人信息函数定义 
void AddStu()
{ 
   //分配存储空间
   CommHma *p=(CommHma*)malloc(sizeof(CommHma));
   printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━┓ \n");
   printf("┃     请输入个人信息                                 ┃\n");
   printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━━┛ \n");
   printf("请输入号码(最大长度为%d个字符)\n",MAX_ID-1);
   scanf("%s", p->data.id);
  while(FindStu(p->data.id)==1)
  { 
        printf("\t\t\t\t\t-此人已经存在,请重新输人\n\t\t\t\t\t->");
        scanf("%s", p->data.id);
  }
  printf("\t\t\t\t\t请输人姓名(最大长度为%d个字符)\n\t\t\t\t\t->",MAX_NAME-1);
  scanf("%s", p->data.name);
  printf("\t\t\t\t\t-请输人性别('男'或'女')\n\t\t\t\t\t->");
  scanf("%s",p->data.sex);
  printf("请输入分组",p->data.group);
  scanf("%s",p->data.group);
  p->next=Info;
 
  Info=p;
  printf("  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
  printf("  ┃┃      添加成功!         ┃                        ┃\n");
  printf("  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");
}

文本读写操作 关键步骤

从文件读出通讯录信息函数定义 
void ReadFile()
{
	CommHma *p;
	char id[MAX_ID];
	FILE *pf=fopen("score.txt","r");      //以读方式打开文件
	if(!pf) return;                      //打开文件失败
	//从文件中逐一读出每一联系人信息
	while(fscanf(pf,"%s",id)!=EOF)
	{
		p=(CommHma*)malloc(sizeof(CommHma));
		strcpy(p->data.id,id);
		fscanf(pf,"%s",p->data.name);
		fscanf(pf,"%s",p->data.sex);
		fscanf(pf,"%s",p->data.group);
		//将每一学生信息(结点)加入到链表中
		p->next=Info;
		Info=p;
		p=NULL; 
	 } 
	 fclose(pf);                        //关闭文件 
}

//将信息写入文件函数定义 
void WriteFile()
{
	CommHma *p=Info;
	FILE *pf=fopen("score.txt","w");                 //以写方式打开文件 
	if(!pf)return;                                 //打开文件失败 
	while(p)                                       //将链表中的每一结点(联系点)写入文件 
	{
		fprintf(pf,"%s\n",p->data.id);
		fprintf(pf,"%s\n",p->data.name);
		fprintf(pf,"%s\n",p->data.sex);
		fprintf(pf,"%s\n",p->data.group);
		p=p->next;
	}
	fclose(pf);                                   //关闭文件 
}

运行截图
在这里插入图片描述
在这里插入图片描述
完整程序下载链接:https://download.csdn.net/download/RONNIE_Zz/13856413

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

灵舒敲代码

我的公v是cxyy1106,欢

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

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

打赏作者

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

抵扣说明:

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

余额充值