当前位置:网站首页>通讯录(链表实现)
通讯录(链表实现)
2022-07-05 13:27:00 【拉的很多】
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
const int max = 100;
//姓名、性别、电话、手机、传真、邮箱、地址
typedef struct phone
{
char name[20]; //姓名
char sex[20]; // 性别
int tel; //电话
int fax; // 传真
char qq[100]; // 邮箱
char addre[20]; //地址
}Ipa;//给存放通讯录属性的结构体取个别名
typedef struct List
{
Ipa data;
struct List *next;
}list;
list *head ;
// 初始化
void inint()
{
head = (list*)malloc(sizeof(list));
head->next = NULL;
printf("初始化成功");
}
// 添加用户
void great()
{
list *p , *t;
int n;
printf("请输入用户人数:\n");
scanf("%d",&n);
printf("请依次输入:姓名、性别、电话、传真、邮箱、地址\n");
for(int i = 0 ; i < n ; i++)
{
p = (list*)malloc(sizeof(list));
scanf("%s %s %d %d %s %s",p->data.name,p->data.sex,&p->data.tel,&p->data.fax,p->data.qq,p->data.addre);
//printf("%s",p->data.name);
t = head->next;
head->next = p;
p->next = t;
}
}
//显示
int display()
{
list*p;
p = head->next;
if(!p)
{
printf("通讯录为空\n");
return 0;
}
else
{
printf("元素如下:\n");
while(p)
{
printf("%s %s %d %d %s %s\n",p->data.name,p->data.sex,p->data.tel,p->data.fax,p->data.qq,p->data.addre);
p = p->next;
}
}
return 0;
}
//查找
void seek()
{
char name_tmpt[100];
printf("请输入你要查询的姓名:\n");
scanf("%s",name_tmpt);
list *p;
p = head->next;
int flage = 0;// 1表示已经找到元素
while(p)
{
if(strcmp(name_tmpt,p->data.name) == 0)
{
printf("%s %s %d %d %s %s\n",p->data.name,p->data.sex,p->data.tel,p->data.fax,p->data.qq,p->data.addre);
flage = 1;
break;
}
p = p->next;
}
if(!flage)
printf("没有该联系人的信息!\n");
}
// 删除
void dele()
{
char name_tmpt[100];
printf("请输入你要删除的姓名:\n");
scanf("%s",name_tmpt);
list *p , *par;
p = head->next;
par = head;
int flage = 0;// 1表示已经找到元素
while(p)
{
if(strcmp(name_tmpt,p->data.name) == 0)
{
par->next = p->next;
free(p);
//printf("%s %s %d %d %s %s\n",p->data.name,p->data.sex,p->data.tel,p->data.fax,p->data.qq,p->data.addre);
flage = 1;
printf("操作成功!\n");
break;
}
else
{
par = p;//存储p的前一个节点
p = p->next;
}
}
if(!flage)
printf("没有该联系人的信息!\n");
}
// 更新
void newdata()
{
char name_tmpt[100];
printf("请输入你要更新的姓名:\n");
scanf("%s",name_tmpt);
list *p;
p = head->next;
int flage = 0;// 1表示已经找到元素
while(p)
{
if(strcmp(name_tmpt,p->data.name) == 0)
{
//printf("%s %s %d %d %s %s\n",p->data.name,p->data.sex,p->data.tel,p->data.fax,p->data.qq,p->data.addre);
printf("请输入新的信息:\n");
scanf("%s %s %d %d %s %s",p->data.name,p->data.sex,&p->data.tel,&p->data.fax,p->data.qq,p->data.addre);
printf("操作成功!\n");
flage = 1;
break;
}
p = p->next;
}
if(!flage)
printf("没有该联系人的信息!\n");
}
// 菜单
void menu()
{
printf("\t\t\t****************************************************\n");
printf("\t\t\t1.初始化通讯录 2.建立通讯录\n");
printf("\t\t\t3.删除联系人 4.修改联系人\n");
printf("\t\t\t5.查找联系人 6.显示通讯录 \n");
printf("\t\t\t7 退出系统 \n");
printf("\t\t\t****************************************************\n");
}
int main()
{
menu();
int op = 10;
while(op!= 8)
{
printf("请选择你的操作:\n");
scanf("%d",&op);
switch(op)
{
case 1 : inint();break;
case 2 : great();break;
case 3 : dele();break;
case 4 : newdata();break;
case 5 : seek();break;
case 6 : display();break;
case 7 : op = 8;break;
}
}
return 0;
}
边栏推荐
- Yyds dry goods inventory # solve the real problem of famous enterprises: move the round table
- Realize the addition of all numbers between 1 and number
- Flutter draws animation effects of wave movement, curves and line graphs
- 【服务器数据恢复】某品牌服务器存储raid5数据恢复案例
- Shu tianmeng map × Weiyan technology - Dream map database circle of friends + 1
- Default parameters of function & multiple methods of function parameters
- 蜀天梦图×微言科技丨达梦图数据库朋友圈+1
- The "Baidu Cup" CTF competition was held in February 2017, Web: explosion-2
- Cloudcompare - point cloud slice
- [深度学习论文笔记]使用多模态MR成像分割脑肿瘤的HNF-Netv2
猜你喜欢
SAE international strategic investment geometry partner
[深度学习论文笔记]UCTransNet:从transformer的通道角度重新思考U-Net中的跳跃连接
The "Baidu Cup" CTF competition was held in February 2017, Web: explosion-2
Write macro with word
记录一下在深度学习-一些bug处理
解决uni-app配置页面、tabBar无效问题
Nantong online communication group
UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xe6 in position 76131: invalid continuation byt
华为推送服务内容,阅读笔记
Reverse Polish notation
随机推荐
TortoiseSVN使用情形、安装与使用
面试官灵魂拷问:为什么代码规范要求 SQL 语句不要过多的 join?
go map
Clock cycle
#从源头解决# 自定义头文件在VS上出现“无法打开源文件“XX.h“的问题
JPA规范总结和整理
restTemplate详解
Huawei push service content, read notes
How to protect user privacy without password authentication?
“百度杯”CTF比赛 九月场,Web:Upload
聊聊异步编程的 7 种实现方式
[notes of in-depth study paper]transbtsv2: wider instead of deep transformer for medical image segmentation
go 数组与切片
Binder通信过程及ServiceManager创建过程
Could not set property ‘id‘ of ‘class XX‘ with value ‘XX‘ argument type mismatch 解决办法
Pycharm installation third party library diagram
A detailed explanation of ASCII code, Unicode and UTF-8
Operational research 68 | the latest impact factors in 2022 were officially released. Changes in journals in the field of rapid care
[深度学习论文笔记]UCTransNet:从transformer的通道角度重新思考U-Net中的跳跃连接
【MySQL 使用秘籍】一网打尽 MySQL 时间和日期类型与相关操作函数(三)