题目要求:
通信录
电话、姓名、级别
char tel[100][12];
char name[100][10];
char level[100];
1.添加联系人
2.删除联系人
3.查询联系人
4.修改联系人
5.列出联系人
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
#include <getch.h>
char name[100][10];
char tel[100][12];
char level[100];
void anykey_continue(void)
{
stdin->_IO_read_ptr = stdin->_IO_read_end;
puts("按任意键继续...");
getch();
stdin->_IO_read_ptr = stdin->_IO_read_end;
}
char* get_str(char* str,size_t size)
{
// 限制输入的字符度
fgets(str,size,stdin);
// 计算实际输入的字符数量
size_t len = strlen(str);
// 判断最一个字符是否是'\n'
if('\n' == str[len-1])
{
// 删除'\n'
str[len-1] = '\0';
}
else
{
// 清理输入缓冲区
stdin->_IO_read_ptr = stdin->_IO_read_end;
}
return str;
}
void add(void)
{
int i = 0;
while(level[i])i++;
printf("请输入姓名:");
get_str(name[i],10);
printf("请输入电话:");
get_str(tel[i],12);
printf("请输入级别:");
scanf("%c",&level[i]);
printf("姓名:%s 电话:%s 级别:%c 添加联系人成功!\n",
name[i],tel[i],level[i]);
sleep(1);
}
void del(void)
{
char key[10];
printf("请输入要删除的联系人姓名:");
get_str(key,10);
for(int i=0; i<100; i++)
{
if(level[i] && !strcmp(key,name[i]))
{
printf("姓名:%s 电话:%s 级别:%c 删除联系人成功!\n",name[i],tel[i],level[i]);
level[i] = 0;
sleep(1);
return;
}
}
printf("未找到联系人,删除失败!\n");
sleep(1);
}
void mod(void)
{
char key[10];
printf("请输入要修改的联系人姓名:");
get_str(key,10);
for(int i=0; i<100; i++)
{
if(level[i] && !strcmp(key,name[i]))
{
puts("请重新输入联系人信息!");
printf("请输入姓名:");
get_str(name[i],10);
printf("请输入电话:");
get_str(tel[i],12);
printf("请输入级别:");
scanf("%c",&level[i]);
printf("姓名:%s 电话:%s 级别:%c 修改联系人成功!\n",name[i],tel[i],level[i]);
sleep(1);
return;
}
}
printf("未找到联系人,无法修改!\n");
sleep(1);
}
void find(void)
{
char key[12];
printf("请输入要查询的关键字:");
get_str(key,12);
for(int i=0; i<100; i++)
{
if(level[i] && (strstr(name[i],key) || strstr(tel[i],key)))
{
printf("%s %s %c\n",name[i],tel[i],level[i]);
}
}
anykey_continue();
}
void list(void)
{
for(int i=0; i<100; i++)
{
if(level[i])
{
printf("%s %s %c\n",name[i],tel[i],level[i]);
}
}
anykey_continue();
}
int get_cmd(char start,char end)
{
puts("------------------");
printf("请输入指令:");
for(;;)
{
char cmd = getch();
if(start <= cmd && cmd <= end)
{
printf("%c\n",cmd);
return cmd;
}
}
}
void menu(void)
{
system("clear");
puts("*****欢迎使用通讯录*****");
puts("1、添加联系人");
puts("2、删除联系人");
puts("3、修改联系人");
puts("4、查询联系人");
puts("5、显示联系人");
puts("6、退出");
}
int main()
{
for(;;)
{
menu();
switch(get_cmd('1','6'))
{
case '1': add(); break;
case '2': del(); break;
case '3': mod(); break;
case '4': find(); break;
case '5': list(); break;
case '6': return 0;
}
}
}