用C语言实现简单通讯录
2017-05-16 18:10
459 查看
完成一个通讯录,实现以下这几个功能:
1. 添加联系人信息
2. 删除指定联系人信息
3. 查找指定联系人信息
4. 修改指定联系人信息
5. 显示所有联系人信息
6. 清空所有联系人
7. 以名字排序所有联系人
具体实现 如下:头文件:
contact.h:
#ifndef ___CONTACT_H__ #define __CONTACT_H__ #include <stdio.h> #include <string.h> typedef struct PeoInfo { char name[20]; char sex[10]; int age; char address[30]; char tel[10]; }PeoInfo; typedef struct Contact { PeoInfo data[1000]; int count; }Contact; void menu(); void add_con(Contact* pcon); void del_con(Contact* pcon); int cmp(Contact* pcon,char name[]); void find_con(Contact* pcon); void empty_con(Contact* pcon); void sort_con(Contact* pcon); void mod_con(Contact* pcon); void show_con(Contact* pcon); #endif //__CONTACT_H__
contact.c:
主要实现过程:
#define _CRT_SECURE_NO_WARNINGS 1 #include "contact.h" //1. 添加联系人信息 //2. 删除指定联系人信息 //3. 查找指定联系人信息 //4. 修改指定联系人信息 //5. 显示所有联系人信息 //6. 清空所有联系人 //7. 以名字排序所有联系人 void menu() { printf("***********************************\n"); printf("**********1:添加 2:删除**********\n"); printf("**********3:查找 4:修改**********\n"); printf("**********5:显示 6:清空**********\n"); printf("***** 4000 *****7:排序 0:退出**********\n"); printf("***********************************\n"); } int cmp(Contact *pcon,char name[]) { int i = 0; for(i=0;i<pcon->count;i++) { if(strcmp(pcon->data[i].name,name)==0) { return i; } } return -1; } void add_con(Contact *pcon) { if(pcon->count>1000) { printf("空间已满\n"); } else { printf("请输入姓名>"); scanf("%s",pcon->data[pcon->count].name); printf("请输入性别>"); scanf("%s",pcon->data[pcon->count].sex); printf("请输入年龄>"); scanf("%d",&pcon->data[pcon->count].age); printf("请输入地址>"); scanf("%s",pcon->data[pcon->count].address); printf("请输入电话>"); scanf("%s",pcon->data[pcon->count].tel); } pcon->count++; } void del_con(Contact* pcon) { int ret = 0; int input = 0; int i = 0; char name[20]; printf("请输入你要删除的人的姓名>"); scanf("%s",name); ret = cmp(pcon,name); if(ret == -1) { printf("查无此人\n"); return; } else { printf("****确定是否删除?*****\n"); printf("****1:删除 2:取消****\n"); scanf("%d",&input); if(input==2) { printf("取消成功\n"); return; } else { for(i=ret;i<pcon->count-1-1;i++) { pcon->data[i] = pcon->data[i+1]; } printf("删除完毕\n"); return; } } } void find_con(Contact* pcon) { int ret = 0; char name[20]; printf("请输入要查找那个人的名字>"); scanf("%s",name); ret = cmp(pcon,name); if(ret == -1) { printf("查无此人\n"); return; } else { printf("姓名:%s\n",pcon->data[ret].name); printf("性别:%s\n",pcon->data[ret].sex); printf("年龄:%d\n",pcon->data[ret].age); printf("地址:%s\n",pcon->data[ret].address); printf("电话:%s\n",pcon->data[ret].tel); } } void mod_con(Contact* pcon) { int ret = 0; char name[20]; printf("请输入要修改的人的名字>"); scanf("%s",name); ret = cmp(pcon,name); if(ret == -1) { printf("查无此人\n"); return; } else { printf("修改的名字>"); scanf("%s",pcon->data[ret].name); printf("修改的性别>"); scanf("%s",pcon->data[ret].sex); printf("修改的年龄>"); scanf("%d",&pcon->data[ret].age); printf("修改的地址>"); scanf("%s",pcon->data[ret].address); printf("修改的电话>"); scanf("%s",pcon->data[ret].tel); } printf("修改完毕\n"); } void show_con(Contact* pcon) { int i = 0; if(pcon->count == 0) { printf("没有成员\n"); return; } for(i=0;i<pcon->count;i++) { printf("姓名:%s\n",pcon->data[i].name); printf("性别:%s\n",pcon->data[i].sex); printf("年龄:%d\n",pcon->data[i].age); printf("地址:%s\n",pcon->data[i].address); printf("电话:%s\n",pcon->data[i].tel); } } void empty_con(Contact* pcon) { int input = 0; printf("***** 确定要清空 ?*****\n"); printf("*****1:清空 2:取消****\n"); printf("请选择>"); scanf("%d",&input); if(input == 2) { printf("取消成功\n"); return; } if(input) pcon->count = 0; } void sort_con(Contact* pcon) { int i = 0; int j = 0; for(i=0;i<pcon->count-1;i++) { for(j=0;j<pcon->count-1-i;j++) { if(strcmp(pcon->data[j].name,pcon->data[j+1].name)>0) { PeoInfo temp; temp = pcon->data[j]; pcon->data[j] = pcon->data[j+1]; pcon->data[j+1] = temp; } } } printf("排序完成\n"); }
test.c:
#define _CRT_SECURE_NO_WARNINGS 1 #include "contact.h" enum OP { EXIT, ADD, DEL, FIND, MOD, SHOW, EMPTY, SORT }; int main() { Contact con; int input = 0; con.count = 0; do { menu(); printf("请选择>"); scanf("%d",&input); switch(input) { case ADD: add_con(&con); break; case DEL: del_con(&con); break; case FIND: find_con(&con); break; case MOD: mod_con(&con); break; case SHOW: show_con(&con); break; case EMPTY: empty_con(&con); break; case SORT: sort_con(&con); break; case EXIT: break; default: printf("选择错误\n"); } } while (input); return 0; }
输入信息:
排序:
然后打印:
相关文章推荐
- C语言实现的简单通讯录例子
- C语言实现简单的通讯录
- C语言实现的简单通讯录例子 - 乌鸟heart - 博客园
- C语言使用结构体实现简单通讯录
- 【C语言】实现一个简单的通讯录
- 用c语言实现的简单通讯录
- C语言实现简单通讯录
- C语言模拟通讯录系统的简单实现
- C语言 使用结构体实现简单的通讯录
- 【c语言】通讯录的简单实现文件版本(动态开辟内存)
- C语言实现简单通讯录
- C语言 实现的简单手机通讯录系统
- C语言————实现简单通讯录
- C语言实现的简单通讯录例子
- C语言实现简单的通讯录
- 纯C语言实现简单继承机制
- c语言编程实现简单三子棋游戏
- C语言 实现 通讯录管理课程设计 (含源代码)
- WinSock2简单的服务器与客户端(C语言实现)
- 用C语言实现的简单Web服务器(Linux)