通讯录简单实现

通讯录简单实现


通讯录可以用来存个人的信息,每个人的信息包括:

姓名、性别、年龄、电话、住址

利用构建一个结构体来保存信息,结构体的大小根据所需来自行规定

typedef struct add
{
    char name[max_name];  
    char sex[max_sex];  
    int age;  
    char tele[max_tele];  
    char addr[max_addr]; 
}add;
typedef struct  addnode
{  
   add *_data;
   addnode *_next;
}addnode; 

关于信息存储的方法,最简单的两种办法就是链表跟顺序表的结构,简单说呢就是两种不同的对数据或者说结构体的应用方法,另外两种实行方法各有优点此处以链表为例。

每一个人的信息通过给指针分配相应大小的空间来进行操作,这个指针呢,称其为结点,一个通讯录中相当于有很多指针即结点构成,而结点可以看作是一个一个的联系人。而结点本身是一个指针,指针所指的区域保存两个指针一个指向数据,即结构体部分,另一个指向下一个结点,

问题:
1如何给指针分配空间?分配的空间用来干什么?
malloc函数 用来联系人储存信息 。
2对于指针的应用,创建哪种类型的指针,怎样利用指针访问联系人信息,能否对其修改,怎样输入信息;
创建addnode *类型指针 eg:访问姓名 p(假设p是创建的指针名) ->_data->name;访问下一个结点 p->_next;
可以修改,但须注意赋值时类型相同。字符串%s+scanf.

当这一步实现好之后内存中就会有许许多多这样的的指针存在

addnode * ——->add *_data———->add结构体
              ——–>_next———>下一个addnode 类型的结点。即 “联系人”

提供功能:

在信息的结构体创建好后,通过函数来根据用户需求对结构体结点创建、增加、删除、修改、排序等操作

  1. 添加联系人信息
  2. 删除指定联系人信息
  3. 查找指定联系人信息
  4. 修改指定联系人信息
  5. 显示所有联系人信息
  6. 清空所有联系人
  7. 以名字排序所有联系人
  8. 不限定联系人数(动态)

功能实现

add  *BuyNode ();//创建链表结点并返回为一个指针
void InitAdd(addnode *phead);//初始化
void InertAdd(addnode *phead);//添加联系人信息
void FindAdd(addnode *phead);//查找联系人信息
void ChangAdd(addnode *phead);//修改联系人信息
void PrintAdd(addnode *phead);//显示所有联系人信息
void DestroyAdd(addnode *phead);//清空所有联系人
void NameSortAdd(addnode *phead);//按姓名排序

知识部分

了解switch case、typedef、宏、malloc、scanf、sizeof等基本函数以及关键字的应用。
熟练理解结构体。
能对指针进行基础操作
了解函数的基础操作

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Python中实现通讯录功能,通常会使用类和对象的概念来模拟真实的联系人数据存储和管理。以下是一个简单的示例,展示如何创建一个通讯录应用,包含联系人类(Person)和一个管理这些联系人的主类(AddressBook): ```python class Person: def __init__(self, name, phone, email): self.name = name self.phone = phone self.email = email def display_info(self): print(f"Name: {self.name}, Phone: {self.phone}, Email: {self.email}") class AddressBook: def __init__(self): self.contacts = [] def add_contact(self, person): self.contacts.append(person) def search_by_name(self, name): for contact in self.contacts: if contact.name == name: return contact return None def display_contacts(self): for contact in self.contacts: contact.display_info() # 示例用法 address_book = AddressBook() address_book.add_contact(Person("Alice", "1234567890", "alice@example.com")) address_book.add_contact(Person("Bob", "9876543210", "bob@example.com")) contact = address_book.search_by_name("Alice") if contact: contact.display_info() address_book.display_contacts() ``` 在这个例子中,`Person`类代表一个联系人,有姓名、电话和邮箱属性。`AddressBook`类则用于存储和操作这些联系人,包括添加联系人、根据名字搜索和显示全部联系人信息。 相关问题--: 1. 如何在Python中删除通讯录中的某个联系人? 2. 如何实现一个查找联系人按邮箱的功能? 3. 如何扩展这个通讯录应用,使其支持存储更多联系人详细信息,如地址等?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值