动态通讯录

来源:互联网 发布:电气plc编程 编辑:程序博客网 时间:2024/05/22 08:23

1)contact.h

#define SUM 1000#define MAX_Name 20#define MAX_Sex 5 #define MAX_Addr 20#define MAX_Age  5#define MAX_Tele 12typedef struct person{ char name[MAX_Name]; char tel[MAX_Tele]; char sex[MAX_Sex]; char age[MAX_Age]; char address[MAX_Addr];}person;person per[SUM];typedef struct contact{ person *data; int length; int capcity;}contact,*pcontact;enum A{ EXIT, ADD, DEL, SEARCH, CHANGE, SHOW, EMPTY,};void Init(pcontact pcon);void check(pcontact pcon);void Add(pcontact pcon);void Del(pcontact pcon);void search(pcontact pcon);void change(pcontact pcon);void show(pcontact pcon);void empty(pcontact pcon);void destory(pcontact pcon); 

2)contact.c

#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<string.h>#include<windows.h>#include"contact.h"#include<math.h>int count=0;int input=0;int i=0;int j=0;int number=0;struct person temp;void Init(pcontact pcon){ pcon->length=0; pcon->data=(person*)malloc(10*sizeof(person)); if(pcon->data==NULL) {  printf("out of memory");  exit(EXIT_FAILURE); } memset(pcon->data,0,sizeof(person)*10); pcon->capcity=10;}void check(pcontact pcon){ if(pcon->length==pcon->capcity) {  person* tmp=(person*)realloc(pcon->data,(pcon->capcity+3)*sizeof(person));  if(tmp!=NULL)  {   pcon->data=tmp;   pcon->capcity+=3;  } } else if(pcon->length==0) {  printf("通讯录为空!\n"); }}void Add(pcontact pcon){  check(pcon); printf("请输入要添加人数:"); scanf("%d",&number); for(i=0;i<number;i++) {  printf("输入第%d个人的信息\n",i+1);  printf("请输入姓名:");  scanf("%s",pcon->data[pcon->length].name);  printf("请输入电话:");  scanf("%s",pcon->data[pcon->length].tel);  printf("请输入性别:");  scanf("%s",pcon->data[pcon->length].sex);  printf("请输入年龄:");  scanf("%s",pcon->data[pcon->length].age);  printf("请输入地址:");  scanf("%s",pcon->data[pcon->length].address);  pcon->length++;   } printf("添加成功\n");}void Del(pcontact pcon){ check(pcon); printf("请输入要删除人的姓名:"); scanf("%s",pcon->data[pcon->length].name); for(i=0;i<number;i++) {  if(strcmp(pcon->data[pcon->length].name,per[i].name)==0)  {   strcpy((per[i].name),((per[i+1]).name));   strcpy((per[i].tel),((per[i+1]).tel));   strcpy((per[i].sex),((per[i+1]).sex));   strcpy((per[i].age),((per[i+1]).age));   strcpy((per[i].address),((per[i+1]).address));  }  pcon->length--;   printf("删除成功\n"); }}void empty(pcontact pcon){  check(pcon);  for(i=0;i<number;i++)  {   if(strcmp(pcon->data[pcon->length].name,per[i].name)==0)   {    for(j=i;j<number-1;j++)    {     strcpy((per[i].name),((per[i+1]).name));     strcpy((per[i].tel),((per[i+1]).tel));     strcpy((per[i].sex),((per[i+1]).sex));     strcpy((per[i].age),((per[i+1]).age));     strcpy((per[i].address),((per[i+1]).address));    }   }   pcon->length--;  }  printf("删除成功\n");}void  search(pcontact pcon){  check(pcon);  printf("请输入要search人的姓名:");  scanf("%s",pcon->data[pcon->length].name);  for(i=0;i<pcon->length;i++)  {   if(strcmp(per[i].name,pcon->data[pcon->length].name)==0)   {    printf("********\n");    printf("*******姓名:%s\n********",per[i].name);    printf("*******电话:%s\n********",per[i].tel);    printf("*******年龄:%s\n********",per[i].age);    printf("*******性别:%s\n********",per[i].sex);    printf("*******地址:%s\n********",per[i].address);    printf("*******\n");   }  }}void change(pcontact pcon){  check(pcon);  printf("请输入要change人的姓名:");  scanf("%s",pcon->data[pcon->length].name);  for(i=0;i<pcon->length;i++)  {   if(strcmp(per[i].name,pcon->data[pcon->length].name)==0)   {    printf("***************\n");    printf("*****请输入新的姓名:  ");    scanf("%s",&per[i].name);    printf("*****请输入新的电话:  ");    scanf("%s",&per[i].tel);    printf("*****请输入新的性别:  ");    scanf("%s",&per[i].sex);    printf("*****请输入新的年龄:  ");    scanf("%s",&per[i].age);;    printf("*****请输入新的地址:  ");    scanf("%s",&per[i].address);    printf("**************\n");   }  }}void show(pcontact pcon){  check(pcon);  printf("name\t   tel\t   sex\t   age\t   address\n");  for(i=0;i<pcon->length;i++)  {   printf("%s%10s%15s%15s%15s\n",pcon->data[i].name,pcon->data[i].tel,pcon->data[i].sex,                               pcon->data[i].age,pcon->data[i].address);   }} void destory(pcontact pcon) {  free(pcon->data);  pcon->data=NULL;  pcon->length=0;  pcon->capcity=0; } void fun() {  printf("**********     我的通讯录    *************\n");  printf("******* 1.Add           2.Del      ******\n");  printf("******* 3.search        4.change   ******\n");  printf("******* 5.show          6.empty    ******\n");  printf("*******    0.Exit     ******\n");  printf("**********     欢迎使用     *************\n"); } void fun1() {  contact my_con={0};  printf("*****欢迎使用通讯录系统!*****\n");  fun();  printf("请选择>:");  scanf("%d",&input);  Init(&my_con);  while(input)  {   switch(input)   {   case EXIT:    destory(&my_con);    break;   case ADD:    Add(&my_con);    printf("请选择>:");    scanf("%d",&input);    break;   case DEL:    Del(&my_con);    printf("请选择>:");    scanf("%d",&input);    break;   case SEARCH:    search(&my_con);    printf("请选择>:");    scanf("%d",&input);    break;   case CHANGE:    change(&my_con);    printf("请选择>:");    scanf("%d",&input);    break;   case SHOW:    show(&my_con);    printf("请选择>:");    scanf("%d",&input);    break;   /*case EMPTY:*/   case EMPTY:    empty(&my_con);    printf("请选择>:");    scanf("%d",&input);    break;   default:    printf("访问出错,请重新选择:  ");    scanf("%d",&input);    break;   }  } }int main(){  fun1();  system("pause");  return 0;}
0 0
原创粉丝点击