1.test.h头文件
#define SUM 1000 #define MAX_Name 20 #define MAX_Sex 5 #define MAX_Addr 20 #define MAX_Age 5 #define MAX_Tele 12 typedef 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]; enum A { EXIT, ADD, DEL, SEARCH, CHANGE, SHOW, EMPTY, SORTBYNAME }; void Init(); void check(); void Add(); void Del(); void search(); void change(); void show(); void empty(); void Sortbyname();2.contact.c文件
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<string.h> #include<windows.h> #include"test.h" #include<math.h> int count=0; int input=0; int i=0; int j=0; int number=0; struct person temp; void Add( ) { if(count==SUM) { printf("通讯录空间已满,无法再存入数据!\n"); } else { printf("请输入要添加人数:"); scanf("%d",&number); for(i=0;i<number;i++) { printf("输入第%d个人的信息\n",i+1); printf("请输入姓名:"); scanf("%s",temp.name); for(i=0;i<count;i++) { if(strcmp(per[i].name,temp.name)==0) { printf("该姓名已存在!\n"); printf("请重新输入姓名\n"); scanf("%s",temp.name); } } printf("请输入电话:"); scanf("%s",temp.tel); printf("请输入性别:"); scanf("%s",temp.sex); printf("请输入年龄:"); scanf("%s",temp.age); printf("请输入地址:"); scanf("%s",temp.address); per[count++]=temp; //写入到数组 } printf("添加成功\n"); } } void Del() { if(count==0) { printf("通讯录为空!\n"); } else { printf("请输入要删除人的姓名:"); scanf("%s",temp.name); for(i=0;i<number;i++) { if(strcmp(temp.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)); } per[count--]=temp; //写入到数组 printf("删除成功\n"); } } } void empty() { if(count==0) { printf("通讯录为空!\n"); } else { for(i=0;i<number;i++) { if(strcmp(temp.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)); } } count--; } printf("删除成功\n"); } } void search() { if(count==0) { printf("通讯录为空!\n"); } else { printf("请输入要search人的姓名:"); scanf("%s",temp.name); for(i=0;i<count;i++) { if(strcmp(per[i].name,temp.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() { if(count==0) { printf("通讯录为空!\n"); } else { printf("请输入要修改的人名:"); scanf("%s",temp.name); for(i=0;i<count;i++) { if(strcmp(per[i].name,temp.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() { if(count==0) { printf("通讯录为空!\n"); } else { printf("name\t tel\t sex\t age\t address\n"); for(i=0;i<count;i++) { printf("%s10ssss\n",per[i].name,per[i].tel,per[i].sex,per[i].age,per[i].address); } } } void Sortbyname() { if(count==0) { printf("通讯录为空!\n"); } else { for(j=0;j<number;j++) { for(i=0;i<number-j-1;i++) { if(strcmp(per[i].name,per[i+1].name)>0) { person temp=per[i]; per[i]=per[i+1]; per[i+1]=temp; } } } show(); } } void Exit() { printf("已成功退出通讯录,谢谢使用!"); } void fun() { printf("********** 我的通讯录 ************\n"); printf("******* 1.Add 2.Del ******\n"); printf("******* 3.search 4.change ******\n"); printf("******* 5.show 6.empty ******\n"); printf("******* 7. Sortbyname 0.Exit ******\n"); printf("********** 欢迎使用 *************\n"); } void fun1() { printf("*****欢迎使用通讯录系统!*****\n"); fun(); printf("请选择>:"); scanf("%d",&input); while(input) { switch(input) { case EXIT: Exit(); break; case ADD: Add(); printf("请选择: "); scanf("%d",&input); break; case DEL: Del(); printf("请选择: "); scanf("%d",&input); break; case SEARCH: search(); printf("请选择: "); scanf("%d",&input); break; case CHANGE: change(); printf("请选择: "); scanf("%d",&input); break; case SHOW: show(); printf("请选择: "); scanf("%d",&input); break; case EMPTY: empty(); printf("请选择: "); scanf("%d",&input); break; case SORTBYNAME: Sortbyname(); printf("请选择: "); scanf("%d",&input); break; default: printf("访问出错,请重新选择: "); scanf("%d",&input); break; } } } int main() { fun1(); system("pause"); return 0; }!这是 实验结果](https://img-blog.csdn.net/20161203190054171)
