动态通讯录
来源:互联网 发布:电气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
- 静态通讯录、动态通讯录
- 动态通讯录
- 动态通讯录
- 动态通讯录
- 动态通讯录
- 动态通讯录
- 动态通讯录
- 通讯录.动态
- 动态通讯录
- 通讯录的动态实现
- 动态存储实现通讯录
- 通讯录动态版本
- 通讯录(动态版本)
- 通讯录动态开辟版本
- 通讯录动态实现
- 动态版通讯录
- 模拟实现通讯录-动态
- 模拟实现动态通讯录
- Hadoop源码学习-运行实例
- [编程题]删除字符串中出现次数最少的字符
- TensorFlow简介
- 微信支付的开发过程
- java 技术--学习阶梯
- 动态通讯录
- 幽默讲解 Linux 的 Socket IO 模型
- BeanUtils.copyProperties方法遇到null值问题
- [BZOJ3772]精神污染(dfs序+主席树)
- ElasticSearch集群安装笔记
- 挂载mount
- 1050. 螺旋矩阵(25)
- 个人银行账户管理程序2.0
- 在Python中使用QuantLib