C项目开发—通讯录(三) 删除、修改、搜索功能、源码发放

来源:互联网 发布:广州有mac专柜吗 编辑:程序博客网 时间:2024/05/19 18:11

一、删除功能

删除联系人的函数:

思路:

 1> 让用户输入要删除的数据的编号

 2> 判断编号是否合法

 3> 让用户再次确定删除

 4> 开始删除数组元素

   1)删除的元素正好是数组最后一个元素,只需要让联系人-1

   2)如果删除的不是数组的最后一个元素,需要移动元素,联系人-1

 5> 删除文件内容

实现:

void doDelete(){printf("你选择的是删除联系人,请按提示操作 \n");// 显示出列表doList();int no;printf("请输入需要删除的联系人的编号 \n");scanf("%d", &no);// 判断是否符合 调用validateInput方法 // true表示validateInput返回值是1if (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];}// 总人数-1totalContactCount--;}}}

演示:

二、 修改联系人

修改联系人信息

思路:

 1> 让用户输入要修改的联系人的编号

 2> 判断编号是否合法

 3> 让用户输入新的姓名,电话

 4> 确定?

 5> 开始修改联系人信息

 6> 更新到文件中

实现:

void doAmend(){printf("你选择的是修改联系人,请按提示操作 \n");// 首先显示联系人doList();int no;printf("请输入需要修改的联系人的编号 \n");scanf("%d", &no);// 判断编号是否合法 1 - totalContactCountif (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.csdn.net/detail/haojie2014/9265145

0 0