通讯录- 增删改查
通讯录----- 增删改查
contact.h
<span style="font-size:24px;">#include<string.h> #include<stdio.h> #ifndef __CONTACT_H__ #define __CONTACT_H__ #define MAX_NAME 20 #define MAX_SEX 10 #define MAX_TELE 12 #define MAX_ADDR 20 #define MAX_DHB 1000 typedef struct Peo { char name[MAX_NAME]; char sex[MAX_SEX]; int age; char tele[MAX_TELE]; char addr[MAX_ADDR]; }PEO; typedef struct Contact { PEO dhb[MAX_DHB]; int count; }PCON,*Pcon; Pcon pcon; void add_peo(Pcon pcon); void del_peo(Pcon pcon); void mod_peo(Pcon pcon); void sear_peo(Pcon pcon); void show_peo(Pcon pcon); void clear_peo(Pcon pcon); #endif</span>
contact.c
#include"contact.h" int find(char name[],Pcon pcon) { int i=0; for (i = 0; i < pcon->count; i++) { if (strcmp(name, pcon->dhb[i].name) == 0) return i; } return -1; } void add_peo(Pcon pcon) { if (MAX_DHB == pcon->count) { printf("电话本已满"); } else { printf("请输入名字:"); scanf("%s", pcon->dhb[pcon->count].name); printf("请输入性别:"); scanf("%s", pcon->dhb[pcon->count].sex); printf("请输入年龄:"); scanf("%d", &(pcon->dhb[pcon->count].age)); printf("请输入电话:"); scanf("%s", pcon->dhb[pcon->count].tele); printf("请输入地址:"); scanf("%s", pcon->dhb[pcon->count].addr); printf("添加成功!"); pcon->count++; } } void del_peo(Pcon pcon) { int ret = 0; int i = 0; char name[MAX_NAME]; printf("请输入要删除的人的名字:"); scanf("%s", name); ret=find(name, pcon); if (ret == -1) printf("没有此人"); else { for (i = ret; i < pcon->count - 1; i++) { pcon->dhb[i] = pcon->dhb[i + 1]; } printf("删除成功!"); pcon->count --; } } void mod_peo(Pcon pcon) { char name[MAX_NAME]; int ret = 0; printf("请输入要修改的人的名字:"); scanf("%s", name); ret=find(name, pcon); if (ret == -1) printf("没有此人"); else { printf("请输入名字:"); scanf("%s", pcon->dhb[ret].name); printf("请输入性别:"); scanf("%s", pcon->dhb[ret].sex); printf("请输入年龄:"); scanf("%d", &(pcon->dhb[ret].age)); printf("请输入电话:"); scanf("%s", pcon->dhb[ret].tele); printf("请输入地址:"); scanf("%s", pcon->dhb[ret].addr); printf("修改成功!"); } } void sear_peo(Pcon pcon) { char name[MAX_NAME]; int ret = 0; printf("请输入要查找的人的名字:"); scanf("%s", name); ret=find(name, pcon); if (ret == -1) printf("查无此人"); else { printf("%5s\t", pcon->dhb[ret].name); printf("%5s\t", pcon->dhb[ret].sex); printf("%5d\t", pcon->dhb[ret].age); printf("%15s\t", pcon->dhb[ret].tele); printf("%8s\n", pcon->dhb[ret].addr); } } void show_peo(Pcon pcon) { int i = 0; printf("%5s%5s%5s%15s%8s\n","Name","Sex","Age","Tele","Addr"); for (i = 0; i < pcon->count; i++) { printf("%5s", pcon->dhb[i].name); printf("%5s", pcon->dhb[i].sex); printf("%5d", pcon->dhb[i].age); printf("%15s", pcon->dhb[i].tele); printf("%8s\n", pcon->dhb[i].addr); } } void clear_peo(Pcon pcon) { pcon->count = 0; printf("清空成功!"); }
test.c
#include"contact.h" void print_menu() { printf("*************************\n"); printf("***1.add 2.del ***\n"); printf("***3.modify 4.search***\n"); printf("***5.show 6.clear ***\n"); printf("*************************\n"); } int main() { int input = 1; PCON con; con.count = 0; while (input) { print_menu(); printf("请选择> "); scanf("%d", &input); switch (input) { case 1: add_peo(&con); break; case 2: del_peo(&con); break; case 3: mod_peo(&con); break; case 4: sear_peo(&con); break; case 5: show_peo(&con); break; case 6: clear_peo(&con); break; default: break; } } return 0; }