通讯录
实现通讯录,是基于c语言的IO文件操作、数据结构里面的顺序表实现。
具体功能
实现了
- 信息的添加
- 信息的显示
- 信息的修改(修改单一属性)
- 将内存中的信息保存到文件中去
- 将文件中的信息加载到内存中(每次程序运行数据就会丢失)
- 信息的删除
- 信息的查找(按照各自的属性查找)
- 给每一条信息设置了唯一的标识id
- 通讯录的销毁
头文件中的声明
在c语言中我们采用结构体来记录每一个人的具体信息
用顺序表的数据结构来来对数据的操作
#ifndef __ADDRESSBOOK_H__
#define __ADDRESSBOOK_H__
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<windows.h>
#define NAME_MAX 200 //名字
#define GENDER_MAX 100 // 性别
#define ADDRESS_MAX 200 // 地址
#define NUMBER_MAX 200 // 电话
#define SEQLIST_MAX 1000 // 存储的最大信息数量
#define FILE_PATH "address_book.txt" // 写入文件的位置
typedef struct person_inf
{
char name[NAME_MAX];
char gender[GENDER_MAX];
char number[NUMBER_MAX];
char address[ADDRESS_MAX];
}person_inf;
typedef struct address_book
{
size_t size;
person_inf data[SEQLIST_MAX];
}address_book;
//初始化通讯录
void address_book_init(address_book *book);
//添加信息
void address_book_add(address_book *book);
//显示信息
void address_book_display(address_book *book);
//删除所有信息
void address_book_delete_all(address_book *book);
//保存信息
void address_book_save(address_book *book);
//加载信息
void address_book_load(address_book *book);
//修改信息
void address_book_update(address_book *book);
//删除信息
void address_book_delete(address_book *book);
//查找信息
void address_book_find(address_book *book);
//销毁通讯录
void adderss_book_destory(address_book *book);
#endif
函数的定义
在这里我们实现了,基本的增删查改,保存信息加载信息。
#define _CRT_SECURE_NO_WARNINGS
#include "AddressBook.h"
//初始化通讯录
void address_book_init(address_book *book)
{
if(book == NULL)
{
return ;
}
book->size = 0;
}
//添加信息
void address_book_add(address_book *book)
{
size_t cur = 0;
if(book == NULL)
{
printf("book is NULL\n");
return ;
}
cur = book->size;
++book->size;
printf("添加信息\n");
printf("请输入要添加的姓名\n");
scanf("%s",book->data[cur].name);
printf("请输入要添加的性别\n");
scanf("%s",book->data[cur].gender);