实现一个通讯录;

通讯录可以用来存储1000个人的信息,每个人的信息包括:

姓名、性别、年龄、电话、住址

提供方法:

1.    添加联系人信息

2.    删除指定联系人信息

3.    查找指定联系人信息

4.    修改指定联系人信息

5.    显示所有联系人信息

6.    清空所有联系人

#include"stdio.h"

#include

#include

struct People//联系人结构体

{

char name[10];

char sex[5];

int age;

char tel[20];

char addr[20];

};

struct Contacts//通讯录结构体

{

struct People person[1000];

int user_count;

};

typedef struct Contacts *pContacts;//自定义指向通讯里结构体的指针变量

int find_entry(pContacts pcon)//查找入口

{

int i = 0 ;

char name[20];

printf("Please input name:");

scanf("%s",name);

for(i = 0;i < pcon->user_count;i++)

{

if(strcmp(pcon->person[i].name ,name) == 0)

{

return i;

}

}

return -1;

}

int add(pContacts pcon)//增加联系人

{

if(pcon->user_count == 1000)

{

printf("Telephone book is full!\n");

return -1;

}

printf("Please input name:");

scanf("%s",pcon->person[pcon->user_count].name);

printf("Please input sex:");

scanf("%s",pcon->person[pcon->user_count].sex);

printf("Please input age:");

scanf("%d",&(pcon->person[pcon->user_count].age));

printf("Please input tele:");

scanf("%s",pcon->person[pcon->user_count].tel);

printf("Please input addr:");

scanf("%s",pcon->person[pcon->user_count].addr);

pcon->user_count++;

return 1;

}

int del(pContacts pcon)//删除联系人

{

int i = 0;

int ret = find(pcon);

if(ret != -1)

{

for(i = ret;i < pcon->user_count-1;i++)

{

pcon->person[i] = pcon->person[i+1];

}

pcon->user_count--;

return 1;

}

else

{

printf("not exist!\n");

return -1;

}

}

int clear(pContacts pcon) //清理全部联系人

{

pcon->user_count = 0;

return 1;

}

int find(pContacts pcon) //查找联系人

{

int ret = find_entry(pcon);

if(ret != -1)

{

printf("name:%s\n",pcon->person[ret].name);

printf("sex:%s\n",pcon->person[ret].sex);

printf("age:%d\n",pcon->person[ret].age);

printf("tele:%s\n",pcon->person[ret].tel);

printf("addr:%s\n",pcon->person[ret].addr);

return 1;

}

else

{

printf("not exist!\n");

return -1;

}

}

int modify(pContacts pcon) //编辑联系人

{

int ret = find(pcon);

if(ret != -1)

{

printf("Please input name:");

scanf("%s",pcon->person[ret].name);

printf("Please input sex:");

scanf("%s",pcon->person[ret].sex);

printf("Please input age:");

scanf("%s",pcon->person[ret].age);

printf("Please input tele:");

scanf("%s",pcon->person[ret].tel);

printf("Please input addr:");

scanf("%s",pcon->person[ret].addr);

return 1;

}

else

{

printf("not exist!\n");

return -1;

}

}

void show(pContacts pcon) //显示全部联系人

{

int i = 0;

for(i = 0;i < pcon->user_count;i++)

{

printf("\n\t\tname:\t%-10s",pcon->person[i].name);

printf("\n\t\tsex:\t%-5s", pcon->person[i].sex);

printf("\n\t\tage:\t%-2d",pcon->person[i].age);

printf("\n\t\ttel:\t%-20s",pcon->person[i].tel);

printf("\n\t\taddr:\t%-20s\n",pcon->person[i].addr);

}

printf("\n");

}

int main()//主函数

{

char flag=1;

struct Contacts person;

person.user_count=0;

printf("\t\t1.增加联系人\n");

printf("\t\t2.删除联系人\n");

printf("\t\t3.修改联系人\n");

printf("\t\t4.查找联系人\n");

printf("\t\t5.显示所有联系人\n");

printf("\t\t6.清空联系人列表\n");

printf("\t\t0.退出通讯录\n");

while(flag>0&&flag<=6)//先进入系统,然后再仅进行操作!

{

printf("\n\n\t\t请键入您要执行操作的序号:");

scanf("%d",&flag);

switch(flag)

{

case 1:add(&person);break;

case 2:del(&person);break;

case 3:modify(&person);break;

case 4:find(&person);break;

case 5:show(&person);break;

case 6:clear(&person);break;

case 0:printf("\n\n\n\t\t*********************exit!********************\n\n\n\n");break;

default :printf("\n\t\tyour enter is error!\n");

}

}

return 0;

}

c语言结构体实现存储信息,用C语言结构体实现通讯录相关推荐

  1. c语言学生信息管理ppt,学生信息管理系统(C语言、含代码解释).ppt

    学生信息管理系统(C语言.含代码解释) 第3章 脂类代谢 脂类的分布与生理功能 脂类的消化与吸收 血脂 甘油三酯的中间代谢 类脂代谢 脂类代谢紊乱 3.1 脂类的分布和生理功能 3.1.1 脂类的分布 ...

  2. c语言程序设计课程设计学生信息管理系统,C语言程序设计课程设计报告----学生信息管理系统.doc...

    河南理工大学计算机学院 <C语言程序设计>课程设计报告 题目: 学生信息管理系统 专业: 计算机科学与技术 班级: 计算机XX班 学号: 311009033232 姓名: ***** 日期 ...

  3. c语言编译 创建卡号信息表,C语言超市会员信息管理系统源程序

    #include                   //编译预处理指令,引入头文件 #include #include #include #define MAX 10                 ...

  4. c语言课程设计学生籍贯信息记录簿,C语言课程设计 学生籍贯信息记录簿设计.doc...

    C语言与程序设计课程设计 学生籍贯信息记录簿设计 学 院 信息工程 班 级 物联1301班 学 号 131408119 姓 名 滕玲 一.设计目的 该软件主要是编辑一个学生籍贯信息记录簿记录每个学生信 ...

  5. c语言按姓名查询出入信息,请问c语言如何实现按姓名查找?

    请问c语言如何实现按姓名查找? 我现在做作业 一个小型系统 请问如何按姓名查找呢 不用用指针的 #include #include #include #include struct men { cha ...

  6. c语言文件读写_学生信息管理系统(C语言\单向链表\文件读写)

    最近在复习数据结构,早上刚复习完链表,就想到了学生信息管理系统这个经典的大作业,然后呢,花了一早上加一中午的功夫给重新实现了一遍,里面可能会有写的不好的地方,但也代表了我实现的一些想法,在这里我将分享 ...

  7. c语言程序报告学分信息管理,c语言程序报告学生学籍信息管理系统.docx

    文档编制序号:[KKIDT-LLE0828-LLETD298-POI08] 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08] C语言程序报告学生学籍信息管理系统 C语言课程设 ...

  8. c语言ATM机文件储存账号密码,C语言实现_ATM自动取款机系统

    1.欢迎界面的实现用函数welcom实现,建立.h文件命名welcom.h void wel()//欢迎界面: { FILE *fp; if((fp=fopen("data/welcome. ...

  9. c语言结构体编辑学生成绩管理,C语言基于结构体的学生信息管理系统实现

    宋福英 摘  要: 中国高校为保证学生信息安全,各分院的学生信息都在一个相对封闭的闭环内共享.中国高校在校生人数逐年递增,给高校的信息管理带来不小压力.C语言兼具高级语言和汇编语言的特点,简洁.紧凑. ...

最新文章

  1. MySQL数据库篇之初识数据库
  2. 【手机】Windows Mobile手机软件安装卸载方法
  3. 95-30-050-java.util-LinkedHashMap
  4. pku3670 Eating Together
  5. [ER/Studio]进行不同版本数据库结构的合并
  6. Android SDK的下载与安装(包会)
  7. 图解通信原理与案例分析-34:车联网中的系统架构与主要的通信技术
  8. 探索游戏开发中的关卡设计+游戏开发中的关卡草图设计【笔记】
  9. 查看oracle磁盘组空间,shell脚本检查oracle中的ASM磁盘组空间并发送邮件
  10. The DAO事件始末
  11. gif透明背景动画_最好用的GIF制作手机app-GIF豆豆--手机版ae
  12. 实验11 静态路由配置
  13. python appium连接安卓真机测试
  14. vs2019生成的exe文件在别人电脑运行不了
  15. Core Data概述
  16. dumpsys activity 查看系统运行了哪些任务?
  17. mysql医学数据库_现代医学模式的特点是(  )
  18. webpack打包时出错:ERROR in index.js?c20a42392c6d1abf69df from UglifyJs Unexpected token: punc (()
  19. 架设网站php,初次架设PHP网站
  20. 自由浏览器 android,最大节省流量达85% 360安全浏览器V3.1版发布

热门文章

  1. extractCSS – 帮助你从 HTML 中快速分离出 CSS
  2. 诗歌rials 之RJS的tips
  3. WEBSERVICE 之WSDL
  4. 地贝扫地机器人维修_扫地机器人常见故障及维修方法
  5. bootstrap 一排5个_BootStrap从基础到项目实战_第1季_03章_02_CSS样式栅格系统实例
  6. vue路由传参的三种基本方式
  7. android 百分数与进度显示
  8. Windows 环境下 Chrome浏览器崩溃“STATUS_INVALID_IMAGE_HASH”
  9. centos7 python3.6编译安装
  10. java date转sql date_java.util.Date和java.sql.Date转换(转)