C语言 使用结构体实现简单的通讯录
来源:互联网 发布:首届江苏网络 编辑:程序博客网 时间:2024/05/21 04:51
C语言 用结构体实现一个通讯录;
通讯录可以用来存储1000个人的信息,每个人的信息包括:
姓名、性别、年龄、电话、住址
提供方法:
1. 添加联系人信息
2. 删除指定联系人信息
3. 查找指定联系人信息
4. 修改指定联系人信息
5. 显示所有联系人信息
6. 清空所有联系人
代码实现:
头文件:
#ifndef __HEAD_H__////防止头文件被多次调用#define __HEAD_H__ #include<stdio.h>#include<string.h>#include<stdlib.h>#define PEOPLE_MAX 1000#define NAME_LENTH 20#define SEX_LENTH 5#define AGE_LENTH 10#define TEL_LENTH 15#define ADDR_LENTH 50//宏定义各个数据所需的大小,后续引用直接可以使用名称,或需修改时只用修改这里就可以了struct People{char name[NAME_LENTH];char sex[SEX_LENTH];int age;char tel[TEL_LENTH ];char addr[ADDR_LENTH];};//定义人的信息结构体(包含各种信息)struct Contact{struct People person[PEOPLE_MAX];int user_count;};//定义通讯录结构体(包含人的信息的结构体和用户个数)typedef struct Contact * pContact;int add_contact(pContact pcon); //pContact是一个结构体指针类型,pcon是一个指向struct Contact的一个指针int dele_contact(pContact pcon);//例如:typedef int * int 即 int *p ==> int pint find_contact(pContact pcon);int modify_contact(pContact pcon);int show_contact(pContact pcon);int clear_contact(pContact pcon);void menu();//函数的声明#endif
各种函数实现:
#include"head.h" int add_contact(pContact pcon){if(pcon->user_count >= PEOPLE_MAX){printf("contact is full!\n");return -1;}else{printf("input name,please!\n");scanf("%s",pcon->person[pcon->user_count].name);printf("input sex,please!\n");scanf("%s",pcon->person[pcon->user_count].sex);printf("input age,please!\n");scanf("%d",&pcon->person[pcon->user_count].age); //这里用%d输出intprintf("input tel,please!\n");scanf("%s",pcon->person[pcon->user_count].tel);printf("input addr,please!\n");scanf("%s",pcon->person[pcon->user_count].addr);(pcon->user_count)++;}return 0;}//添加信息的实现int dele_contact(pContact pcon){int ret = find_contact(pcon);//调用查找函数并保存其值if(ret != -1){int i = 0;i = ret;//这里要用另一个变量来保存输入的姓名for(i = 0;i < pcon->user_count-1;i++){pcon->person[i] = pcon->person[i+1]; //用后一个覆盖前边的,如果要删除的是最后一个不进行此步骤}pcon->user_count --; //直接减去最后一个即count--}return 0;}int find_contact(pContact pcon){int i = 0;char ret[NAME_LENTH];//用另一个数组来保存nameprintf("input name,please!\n");scanf("%s",ret);while(i <= pcon->user_count){if(strcmp(ret,pcon->person[i].name)== 0) //比较输入的姓名和通讯录中已有的姓名{printf("name\tsex\tage\ttel\taddr\t\n");printf("%s\t",pcon->person[i].name);printf("%s\t",pcon->person[i].sex);printf("%d\t",pcon->person[i].age);printf("%s\t",pcon->person[i].tel);printf("%s\t\n",pcon->person[i].addr);return i;}i++;}printf("sorry,the name you find is not exist!\n");return -1;}int modify_contact(pContact pcon)//修改函数,首先找到如要修改的姓名,然后重新输入{int ret = find_contact(pcon);if(ret != -1){printf("input name,please!\n");scanf("%s",pcon->person[ret].name);printf("input sex,please!\n");scanf("%s",pcon->person[ret].sex);printf("input age,please!\n");scanf("%d",&(pcon->person[ret].age));printf("input tel,please!\n");scanf("%s",pcon->person[ret].tel);printf("input addr,please!\n");scanf("%s",pcon->person[ret].addr);}else{printf("sorry,the name you find is not exist!\n");}return 0;}int show_contact(pContact pcon){int i = 0;printf("name\tsex\tage\ttel\t\taddr\t\n");//制表符来制作表头for(i = 0;i < pcon->user_count;i++){printf("%s\t",pcon->person[i].name);printf("%s\t",pcon->person[i].sex);printf("%d\t",pcon->person[i].age);printf("%s\t",pcon->person[i].tel);printf("%s\t\n",pcon->person[i].addr);}printf("\n");return 0;}int clear_contact(pContact pcon){pcon->user_count = 0 ;return 0;}//清除所有人,直接让成员个数变为0即可void menu(){printf("-------contact---------\n");printf(" 1.添加联系人信息 \n");printf(" 2.删除指定联系人信息 \n");printf(" 3.查找指定联系人信息 \n");printf(" 4.修改指定联系人信息 \n");printf(" 5.显示所有联系人信息 \n");printf(" 6.清空所有联系人 \n");printf(" 0.谢谢使用 \n");printf("-------contact---------\n");}
主函数:
#include"head.h"int main(){int n=1;struct Contact people;//调用通讯录结构体people.user_count = 0;//初始化user_countwhile(n){menu();printf("please input\n");scanf("%d",&n);switch(n){case 1:{add_contact(&people);break;}case 2:{dele_contact(&people);break;}case 3:{find_contact(&people);break;}case 4:{modify_contact(&people);break;}case 5:{show_contact(&people);break;}case 6:{clear_contact(&people);break;}default:{return 0;break;}//switch case语句分支选择不同函数实现不同作用}}return 0;}结果实现:
0 0
- C语言 使用结构体实现简单的通讯录
- [c语言]结构体实现通讯录
- 利用c语言结构体实现通讯录
- C语言实现的简单通讯录例子
- C语言实现简单的通讯录
- 【C语言】实现一个简单的通讯录
- C语言实现简单的电子通讯录
- C语言实现简单通讯录
- c语言实现简单通讯录
- C语言 简单的通讯录
- C语言利用结构体实现一个通讯录
- C语言---静态内存结构体实现通讯录
- C语言实现简单的电子通讯录2
- 用C语言实现简单通讯录
- C语言实现简单电子通讯录
- C语言使用结构体实现接口简单列子
- 简单C语言通讯录的制作
- 结构体实现通讯录简单版
- 新装修的房子,美呆了吧
- springMVC上传文件
- android--使用Struts2服务端与android交互
- 多线程之GCD(Grand Central Dispatch)
- Map和Reduce处理过程分析
- C语言 使用结构体实现简单的通讯录
- js实现表格操作-排序
- Could not compile the mapping document: *******.hbm.xml 的解决方法
- solution for GRASS GIS 6.4.3 on linux failed to open the gui
- 蓝桥杯 水水搜索
- linux server的idle timeout情况整理(设置不好有可能会导致事故)
- 关于生成并发唯一性流水号的解决方案
- 初学EasyUI datagrid:如何用datagrid进行数据的查询
- Windows创建Mysql定时备份