#include <stdio.h>
#include <getch.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
typedef struct contact
{
char name[20];
char sex;
char tell[12];
}contact;
contact c[100]={};
//char name[100][20]={};
//char sex[100]={};
//char tell[100][12]={};
int i = 0;
// 添加联系人,要求不超过100人,超过100则显示添加失败
void insert()
{
for(int i=0; i<100; i++)
{
if(0 == c[i].sex)
{
printf("请输入姓名,性别,电话:");
scanf("%s %c %s",c[i].name,&c[i].sex,c[i].tell);
printf("添加联系人成功\n");
getch();
return;
}
}
}
// 删除联系人
void delete()
{
printf("请输入要删除的联系人姓名:");
char str[20] = {};
scanf("%s",str);
for(int i=0; i<100; i++)
{
if(0 == strcmp(str,c[i].name))
{
c[i].sex = 0;
printf("删除联系人成功\n");
getch();
return;
}
else
{
printf("电话簿中无记录\n");
getch();
}
}
}
//修改联系人,按姓名删除(要保证不能重名)
void update()
{
char str[20] = {};
printf("请输入要修改的联系人姓名:");
scanf("%s",str);
for(int i=0; i<100; i++)
{
if(0 == strcmp(str,c[i].name))
{
printf("%s\t%c\t%s\n",c[i].name,c[i].sex,c[i].tell);
printf("请重新输入:");
scanf("%s %c %s",c[i].name,&c[i].sex,c[i].tell);
getch();
return;
}
}
}
//查找联系人,根据电话号码查找联系人
void find()
{
printf("电话:");
char str[20] = {};
scanf("%s",str);
getchar();
for(int i=0; i<100; i++)
{
if(strstr(c[i].tell,str))
{
printf("%s\t%c\t%s\n",c[i].name,c[i].sex,c[i].tell);
}
}
printf("请输入任意键继续...\n");
getch(); //getchar()要按回车才会结束(输入字符会显示),getch()按任意键结束
}
// 显示所有联系人
void show()
{
printf("姓名\t性别\t电话\n");
for(int i=0;i<100;i++)
{
if(c[i].sex)
{
printf("%s\t%c\t%s\n",c[i].name,c[i].sex,c[i].tell);
}
}
printf("请输入任意键继续...");
getch();
}
// 菜单
char menu(void)
{
system("clear");
printf("***欢迎使用指针电话簿***\n");
printf("------------------------\n");
printf("1、 添加\n");
printf("2、 删除\n");
printf("3、 修改\n");
printf("4、 查找\n");
printf("5、 显示\n");
printf("q、 退出\n");
printf("------------------------\n");
printf("请输入指令:");
char cmd = getch();
printf("%c\n",cmd);
return cmd;
}
int main()
{
while(true)
{
switch(menu())
{
case '1': printf("insert()\n"); insert(); show();break;
case '2': printf("delete()\n"); delete(); show();break;
case '3': printf("update()\n"); update(); show();break;
case '4': printf("find()\n"); find(); break;
case '5': printf("show()\n"); show(); break;
case 'q': printf("exit()\n"); return 0;
default : printf("cmd error!\n");
}
}
}