引言: 1.菜单 通讯录也如同游戏,需要菜单来供使用者选择,因此要用do...while... (第一次看我文章的小伙伴可以看看我这两篇文章啦:1.扫雷游戏(有讲解)-CSDN博客 2.猜数字游戏(C语言实现)-CSDN博客) 2.功能总结 通讯录有很多功能,因此我们在做出它之前总结一下他的功能 : 1.添加联系人 2.删除联系人 3.查看联系人 4.查找联系人 5.排序联系人 (根据自己的需要,可以是电话号码从小到大,也可以是名字从小到大) 6.修改联系人 0.退出 (退出是退出循环,所以设为 4.test.c函数的实现 #define _CRT_SECURE_NO_WARNINGS 1 #include "contact.h" /*静态通讯录*/ void menu() con->data[i].age); } } test.c: #define _CRT_SECURE_NO_WARNINGS 1 #include "contact.h" /*静态通讯录
//typedef struct Contact //{ // PeoInfo data[MAX];//存放数据 // int sz;//记录的是当前通讯录中存放的人的信息数 //}Contact; //动态通讯录版本 typedef struct Contact { PeoInfo* data;//存放数据 int sz;//记录的是当前通讯录中存放的人的信息数 int capacity ;//记录的是当前通讯录的容量 }Contact; //初始化通讯录 void InitContact(Contact* pc); //增加联系人 void AddContact(Contact* ********\n"); printf("***** 1.add 2.del ******\n"); printf("***** 3.search 4. Contact con;//通讯录 //初始化通讯录 InitContact(&con); do { menu(); printf("输入你的选择:"); scanf("%d"
【通讯录项目 (3 / 3)】基于顺序表的通讯录实现——通讯录项目实现 前言 前两章我们已经知道顺序表的功能并完成了功能实现,下面我们将实现通讯录的以下功能: 1 项目预备工作 1.1 多文件处理 2.4 展示通讯录 展示通讯录的功能是对顺序表展示的扩展。 "姓名", "性别", "年龄", "电话", "住址"); for (int i = 0; i < pcon->size; i++) { printf("%-4s %-4s %-4d %-11s %-4s %-4d %-4s %-4s\n", con->a[ret].name, con->a[ret].sex, con->a[ret].age, con->a[ret]. 下面我们开始完善界面内容,来把通讯录的功能进行整合。
制作一个通讯录,实现增添、删减、查找、打印、修改联系人的目的。 *********\n"); printf("***1.add************2.delete***\n"); printf("***3.search*********4.change*** printf("还未存放任何通讯录成员! 我们使用指针来接受通讯录结构体,使用地址传值。 3. 在后期,我们需要不断的改进函数,使得我们的通讯录更加直接美观。 break; case 2: ContactDelete(&con); break; case 3: ContactSearch(&con); break; case 4:
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/116942.html原文链接:https://javaforall.cn
##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融类应用 (金融理财#一、问题背景:在Android和IOS中,获取手机通讯录信息的方式,一般是申请通讯录权限后,获得手机所有的通讯录列表信息 在鸿蒙中通讯录的信息获取,也是需要先调用华为提供的通讯录选择组件,让用户主动从通讯录中选择需要传给APP的通讯录联系人,勾选确认之后传给APP。 let contactSelectionOptions: contact.ContactSelectionOptions = { isMultiSelect:false }; // 调用唤起通讯录选择组件 ,让用户去选择需要传入给APP的通讯录联系人 let promise = contact.selectContacts(contactSelectionOptions); // 异步获取 selectContacts fail: err->${JSON.stringify(err)}`); }); } build() { Row(){ Button('点击获取通讯录信息
’退出通讯录 2.menu函数声明 void menu() { printf("******************************************************\n") 删除联系人 ****\n"); printf("**** 3.查找联系人 4. printf("******************************************************\n"); } 3.运用switch对用户输入的数据进行分类并使用通讯录的不同功能 4. 删除联系人 ****\n"); printf("**** 3.查找联系人 4.
思路 思路:通讯录: 1、人的信息:姓名+年龄+性别+地址+电话 2、通讯录中可以存放100个人的信息 3:功能: 1》增加联系人 2》删除指定联系人 3》查找指定联系人的信息 4》修改指定联系人的信息 typedef struct Contact { PeoInfo data[MAX];//存放人的信息 int sz;//当前已经放的人的信息的个数 }Contact; 知识点:typedef:重命名 4、 *************"); printf("****** 1.add 2del *****");//2删除 printf("****** 3.search 4. Contact con; 6、初始化通讯录 //初始化通讯录 InitContact(&con); 初始化函数 void InitContact(Contact* pc)//初始化 { pc } 7、用do-while循环 main函数中代码 int main() { //创建通讯录 Contact con;//也可直接在这里等于0,就是不够灵活 //初始化通讯录 InitContact
1.通讯录 生活中我们肯定会用到通讯录的,通讯录中会存放了我们认识人的联系方式,姓名,家庭住址等等。 那么一个通讯录它最基础应该有那些功能呢? ************************\n"); printf("****1.ADD 2.DELE ****\n"); printf("****3.SEAR 4. input); switch(input) { case 1: break; case 2: break; case 3: break; case 4: ************************\n"); printf("****1.ADD 2.DELE ****\n"); printf("****3.SEAR 4. ************************\n"); printf("****1.ADD 2.DELE ****\n"); printf("****3.SEAR 4.
前言: 上篇我们通过结构体的构建来创造通讯录的联系人内容以及封装100个联系人,并实现了通讯录的增删查改等基本功能,这篇我们要进行改造的内容就是将固定的100个联系人容量改为不定长,有几个联系人就进行扩容 1.进阶通讯录特点: ①基本的增删查改功能; ②通讯录的空间是不固定的,大小是可以调整的 ③默认能放3个人的信息,如果不够就每次增加2个人的信息 2.实现步骤: (1)定义一个结构体来存储联系人的基本信息例如 data == NULL) { perror("InitContact"); return; } pc->capacity = DEFAULT_SZ; pc->sz = 0; } (4) Contact******\n"); printf("*** 1.ADD 2.DEL ***\n"); printf("***** 3.SEARCH *****\n"); printf("***** 4. case SORT://分类 break; default: printf("选择错误,请重新输入\n"); } printf("\n"); } return 0; } 4.
我知道你们懒,代码直接贴到下面了,附上流程图 #通讯录管理 #coding:utf-8 Mail={} print(''' ——————通讯录————— |1.添加联系人 | |2.删除联系人 | |3.查询联系人 | |4.更新联系人 | |5.退出通讯录 | ________________ ''') while True: bh=input(' Mail[name] print('删除成功') print(Mail) else: print('该联系人在通讯录中不存在 :') elif bh=='3': print(Mail) elif bh=='4': name=input('请输入需要更新的联系人姓名:')
如果你没有看过通讯录初级,请先移步到那。 在前面我们写了一个静态的通讯录,通讯录的大小都是固定的,同时每次启动通讯录都需要重新输入数据。这用起来肯定是不人性化的。 进阶通讯录与原版的不同点就在于,通讯录的大小是会随着数据的添加而增大的,也就是动态内存管理,以及会对通讯录的数据进行存储,一旦通讯录被关闭数据就会自动存放在相应的文件。 同时在下一次打开通讯录时,会自动将文件中的数据导入通讯录中。 4.利用文件保存通讯录数据 这里我们利用fwrite将数据转换为二进制存入文件。 然后这个函数需要放在退出程序的位置,当程序退出前就会自动保存数据。 ************************\n"); printf("****1.ADD 2.DELE ****\n"); printf("****3.SEAR 4.
("****** 1.Add 2.Del ***********\n"); printf("****** 3.Search 4.Modify void ShowContact(Contact* pc) { int i = 0; //打印标题 printf("%-10s %-4s %-5s %-12s %- 30s\n", "姓名", "年龄", "性别", "电话", "地址"); for (i = 0; i < pc->sz; i++) { printf("%-10s %-4d \n\n"); printf("%-10s %-4s %-5s %-12s %-30s\n", "姓名", "年龄", "性别", "电话", "地址"); //找到了打印数据 printf("%-10s %-4d %-5s %-12s %-30s\n", pc->data[pos].name, pc->data[pos].age, pc->data
今天我给大家介绍一个用网页来实现制作通讯录的方法。 这个通讯录适用于移动端(可拨打电话)。由于只做的是前端展示页面,只提供用户信息展示,通过手机号或姓名搜索相关联系人,分组管理。 来看一下这个通讯录的截图 ? 再来看一下代码 <! DOCTYPE html> <html> <head> <title>通讯录</title> <meta http-equiv="Content-Type" content="text/html; charset div> </div> </div> </body> </html> 这个代码为前端html页面代码,由于没有连接数据库,联系人数据暂时设置为固定的,此页面如果和后台程序联合起来就可以作为一套完整的<em>通讯录</em>程序 原文链接网页版<em>通讯录</em>
苹果手机通讯录怎么恢复?在存手机通讯录的时候发现手机里面有一些重复的通讯录号码,然后就想删除其中一个,删除后才发现原来两个号码是不一样的想要恢复删除的通讯录,可是想要恢复删除的通讯录不知道怎么办。 ,通讯录删除了怎么办?苹果手机通讯录怎么恢复? 进入iCloud之后从里面可以看到储存空间和使用iCloud的应用,在iCloud应用中找到通讯录,按钮是关闭的点击按钮打开使手机的通讯录和iCloud同步,这样通讯录就可以恢复了。 方法二:导入SIM卡通讯录 通过导入SIM卡通讯录将删除的手机通讯录恢复,在手机是设置中找到通讯录一栏,点击进入之后就可以在通讯录里面看到有个导入SIM卡通讯录了,点击之后即可导入SIM卡里面的通讯录了 苹果手机通讯录怎么恢复?根据上面的方法就可以将手机的通讯录恢复了,在手机上有很多的比较重要的数据,手机数据如果被覆盖了那么无法恢复了。
1 问题 通讯录具有输入信息,显示信息,查找以姓名作为关键字,删除信息。 2 方法 实现一个基于面向对象思想的,具有添加、查看、删除、修改、查找、保存数据功能的通讯录程序。
前言: 前面我们已经讲过了顺序表的内容,今天我们就要基于顺序表来实现通讯录的内容 我们需要用C语言模拟一个通讯录可以用来存储1000个人的信息 每个人的信息包括: 姓名、电话、性别、住址、年龄 ************************\n"); printf("**** 1.add 2.del *****\n"); printf("**** 3.search 4. 二、通讯录主函数 void test() { int input = 0; //首先忒有通讯录 Contact con; InitContact(&con); do { menu(); void ShowContact(const Contact* pc) { printf("%-10s\t%-4s\t%-5s\t%-12s\t%-30s\n", "名字", "年龄", "性别", \t%-5s\t%-12s\t%-30s\n", "名字", "年龄", "性别", "电话", "地址"); printf("%-10s\t%-4d\t%-5s\t%-12s\t%-30s\n",
前面我们学习了顺序表的实现,接下来我们一起来运用一下吧--用顺序表实现通讯录。 引入 思考:我们学习了静态顺序表和动态顺序表,我们该用哪一种来实现通讯录呢? 功能声明(头文件) 1)至少能够储存100个联系人的信息 2)能够保存用户信息:名字、性别、年龄、电话、地址等 3)增加联系⼈信息 4)删除指定联系人 5)查找制定联系人 6)修改指定联系人 7)显示联系人信息 //给顺序表改个名字,叫通讯录 typedef struct SeqList Contact; //通讯录相关的方法 //通讯录的初始化 void ContactInit(Contact* con ); //通讯录的销毁 void ContactDesTroy(Contact* con); //通讯录添加数据 void ContactAdd(Contact* con); //通讯录删除数据 void ContactDel(Contact* con); //通讯录的修改 void ContactModify(Contact* con); //通讯录的查找 void ContactFind(Contact
需求分析 在2年前就学过安卓开发,那时候安卓开发还是很火,但是感觉现在不怎么热潮了,这学期刚好有门c++课,实现通讯录备份,网络通信使用socket通信,服务器端用c++,客户端用c++,界面用 详细需求为: 使用android开发一款手机通讯录APP,界面用java编写,需要实现将通讯录备份到TF卡及服务器,通信处使用C++实现。 3.UML类图 该项目总共4个类,具体类描述如上注释所示! 4.UML时序图 用时序图来描述项目的生存周期动态状态! ♢ ♢ 核心代码 1.通讯录获取 使用ContentResolver来实现通讯录数据的获取! 2.存储TF卡 3.客户端 客户端通过jni发送数据 4.服务器端 服务器端接收数据 ♢ ♢ 让我们打开手机, 一起踏上手机通讯录备份吧! - - - End - - -
#define MAX 100 // 通讯录最大人数 #include <iostream> #include <stdlib.h> #include <string> using namespace string sex; // 性别 int age; // 年龄 string tel; // 电话 string address; // 住址 }; // 通讯录结构体 struct address_book{ struct Person_info person_array[MAX]; int len; // 通讯录人数 }; // 显示主菜单 void cout << "***** 2.显示联系人 *****" << endl; cout << "***** 3.删除联系人 *****" << endl; cout << "***** 4. break; case 3: delete_person(&list); break; case 4: