一、删除功能
删除联系人的函数:
思路:
1> 让用户输入要删除的数据的编号
2> 判断编号是否合法
3> 让用户再次确定删除
4> 开始删除数组元素
1)删除的元素正好是数组最后一个元素,只需要让联系人-1
2)如果删除的不是数组的最后一个元素,需要移动元素,联系人-1
5> 删除文件内容
实现:
void doDelete()
{
printf("你选择的是删除联系人,请按提示操作 \n");
// 显示出列表
doList();
int no;
printf("请输入需要删除的联系人的编号 \n");
scanf("%d", &no);
// 判断是否符合 调用validateInput方法
// true表示validateInput返回值是1
if (validateInput(no, 1, totalContactCount))
{
return ; // 不合法的话不往下执行率
}
// 确定删除
int flag;
printf("你确定要删除联系人么(删除之后无法恢复)?1.确定 0.取消 \n");
scanf("%d", &flag);
if (flag)
{
// 判断删除的元素是不是最后一个
if (no == totalContactCount)
{
totalContactCount--;
// 不过最后一个还是占用内存
} else
{
for (int i = no; i < totalContactCount; i++)
{
contacts[i-1] = contacts[i];
}
// 总人数-1
totalContactCount--;
}
}
}
演示:
修改联系人信息
思路:
1> 让用户输入要修改的联系人的编号
2> 判断编号是否合法
3> 让用户输入新的姓名,电话
4> 确定?
5> 开始修改联系人信息
6> 更新到文件中
实现:
void doAmend()
{
printf("你选择的是修改联系人,请按提示操作 \n");
// 首先显示联系人
doList();
int no;
printf("请输入需要修改的联系人的编号 \n");
scanf("%d", &no);
// 判断编号是否合法 1 - totalContactCount
if (validateInput(no, 1, totalContactCount))
{
return ;
}
// 编号正确的话
// 提示用户输入新用户名, 并接收
// 保存
char name1[NAMELEN];
char tel[NUMLEN];
printf("请输入联系人姓名(*注意联系人姓名中间不能有空格) \n");
scanf("%s", name1);
// 提示用户输入电话号码, 并接收
printf("请输入电话号码(*注意联系人姓名中间不能有空格)\n");
scanf("%s", tel);
// 确定修改
int flag;
printf("你确定要修改联系人么(确定后信息将修改)?1.确定 0.取消 \n");
scanf("%d", &flag);
if (flag)
{
// 确定修改,更新数组
strcpy(contacts[no - 1].name, name1);
strcpy(contacts[no - 1].telNum, tel);
}
// 写入到文件中, 同步更新到文件中
WriteFile();
}
演示:
三、搜索联系人
搜索联系人信息
思路:
1> 提示用户输入要查找的联系人的姓名
2> 遍历数组,查找是否有这个人
1)输入的姓名和contacts[i].name 比较
2)搜索不到 遍历一遍都没有这个联系人,提示查找不到;
3> 查找到了,显示电话号码
4> 没查找到,提示没有这个人
实现:
void doSearchByName()
{
printf("你选择的是搜索联系人,请按提示操作 \n");
// 输入联系人姓名
printf("请输入联系人姓名 \n");
char name2[NAMELEN]; // 暂时保存输入的联系人的名称
scanf("%s", name2);
int i;
for (i = 0; i < totalContactCount; i++)
{
// if (contacts[i].name = name2) 字符串比较不能这个
if (strcmp(name2, contacts[i].name) == 0)
{
// 打印出来联系人的电话号码
printf("你搜索的联系人 %s 的电话号码是:%s \n", name2, contacts[i].telNum);
break; // 循环停止
}
}
if (i == totalContactCount)
{
printf("对不起,找不到该联系人");
}
}
演示:
源码地址:http://download.youkuaiyun.com/detail/haojie2014/9265145