#define SIZE 1000
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
typedef struct PersonInfo{
char name[1024];
char phone[1024];
} PersonInfo;
typedef struct AddrBook{
PersonInfo person_info[SIZE];
int size;
}AddrBook;
AddrBook g_addr_book;
enum{
EXIT = 0,
ADD,
DEL,
MODIFY,
FIND,
PRINT,
CLEAR,
};
void Init()
{
int i = 0 ;
g_addr_book.size = 0 ;
for(i=0; i<SIZE; i++)
{
strcpy(g_addr_book.person_info[i].name , " ") ;
strcpy(g_addr_book.person_info[i].phone , " ") ;
}
}
void AddPersonInfo()
{
if(g_addr_book.size >= SIZE)
{
printf("通讯录已满,添加失败!\n") ;
}
printf("\n------添加一个新用户------\n") ;
printf("请输入用户名:") ;
scanf("%s", g_addr_book.person_info[g_addr_book.size].name) ;
printf("请输入电话号码:") ;
scanf("%s", g_addr_book.person_info[g_addr_book.size].phone) ;
g_addr_book.size ++ ;
printf("插入成功!\n") ;
return ;
}
int Menu()
{
int choice = 0;
printf("\t***********************************************\n");
printf("\t* \t \t *\n");
printf("\t* \t 欢迎使用通讯录系统 *\n");
printf("\t* \t \t *\n");
printf("\t*\t\t 1.添加 2.删除 * \n");
printf("\t*\t\t 3.修改 4.查找 * \n");
printf("\t*\t\t 5.显示 6.清除 * \n");
printf("\t*\t\t 0.退出 * \n");
printf("\t* \t *\n");
printf("\t* \t 作者:Romeo *\n");
printf("\t* \t \t *\n");
printf("\t* \t \t *\n");
printf("\t***********************************************\n");
printf("\n请输入相应的选择:");
scanf("%d", &choice);
return choice;
}
void PrintPersonInfo()
{
int i = 0 ;
printf("------打印所有用户信息------\n") ;
for(i=0; i<g_addr_book.size; i++)
{
printf("[%d] %s %s\n", i, g_addr_book.person_info[i].name, g_addr_book.person_info[i].phone) ;
}
printf("打印完成。共打印了%d条记录!\n", g_addr_book.size) ;
printf("\n") ;
}
void DelPersonInfo()
{
int num = 0 ;
printf("------删除指定记录------\n") ;
printf("请输入欲删除的编号:") ;
scanf("%d", &num) ;
if(num < 0 || num >= g_addr_book.size)
{
printf("输入的编号不合法,删除失败!\n") ;
return ;
}
if(num == g_addr_book.size - 1)
{
g_addr_book.size -- ;
}
else
{
strcpy(g_addr_book.person_info[num].name, g_addr_book.person_info[g_addr_book.size - 1].name) ;
strcpy(g_addr_book.person_info[num].phone, g_addr_book.person_info[g_addr_book.size - 1].phone) ;
g_addr_book.size -- ;
}
printf("删除成功!\n") ;
}
void ModPersonInfo()
{
int num = 0 ;
printf("------修改某条记录------\n") ;
printf("请输入欲修改的编号:") ;
scanf("%d", &num) ;
if(num < 0 || num >= g_addr_book.size)
{
printf("输入的编号不合法,修改失败!\n") ;
return ;
}
printf("请输入新用户名:") ;
scanf("%s", g_addr_book.person_info[num].name) ;
printf("请输入新电话号码:") ;
scanf("%s", g_addr_book.person_info[num].phone) ;
printf("修改成功!\n") ;
}
void FindPersonInfo()
{
char name[1024] = {0} ;
int count = 0 ;
int i = 0 ;
printf("------查找电话号码------\n") ;
printf("请输入要查询的姓名:") ;
scanf("%s", name) ;
for(i=0; i<g_addr_book.size; i++)
{
if(strcmp(name,g_addr_book.person_info[i].name) == 0)
{
printf("找到1条结果!电话号码为:%s\n",g_addr_book.person_info[i].phone) ;
count ++ ;
}
}
if(0 == count)
{
printf("未找到记录!请检查用户名是否合法!\n") ;
}
else
{
printf("查询成功,共有%d条记录!\n", count) ;
}
}
void ClearPersonInfo()
{
char input[1024] = {0} ;
printf("------清除所有用户信息------\n") ;
printf("您真的要删除所有用户信息吗?(Yes/No)\n") ;
scanf("%s", input) ;
if(strcmp(input,"Yes") != 0)
{
printf("您已取消操作!\n") ;
return ;
}
g_addr_book.size = 0 ;
printf("清空成功!\n") ;
}
int main()
{
Init();
while(1)
{
int choice = Menu();
switch(choice)
{
case ADD : AddPersonInfo();
break;
case DEL : DelPersonInfo();
break;
case MODIFY : ModPersonInfo();
break;
case FIND : FindPersonInfo();
break;
case PRINT : PrintPersonInfo();
break;
case CLEAR : ClearPersonInfo();
break;
case EXIT : printf("Good-Bye!\n");
return 0;
default :
break;
}
}
return 0;
}
