欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

【C语言】 简易通讯录

来源:本站整理 作者:佚名 时间:2016-05-23 TAG: 我要投稿

我们使用多文件进行编写实现
 
"contact.h"
 
#ifndef __CONTACT_H__
#define __CONTACT_H__
 
#define MAX_NAME   20
#define MAX_SEX 3
#define MAX_TELE 12
#define MAX_ADDR 20
 
#define MAX 1000
 
#define INIT_SIZE 100
#define INC 100
 
#include
#include
#include
 
enum OP
{
    EXIT,
    ADD,
    DEL,
    SEARCH,
    MODIFY,
    SHOW,
    CLR,
    SORT
};
 
typedef struct Peo_Info
{
    char name[MAX_NAME];
    char sex[MAX_SEX];
    int age;
    char tele[MAX_TELE];
    char addr[MAX_ADDR];
}Peo_Info;
 
typedef struct Dhb
{
    Peo_Info *pinfo;
    int count;
    int size;
}Dhb,*pDhb;
 
void menu();
void init_dhb(pDhb pdhb);
void add_dhb(pDhb pdhb);
void del_dhb(pDhb pdhb);
void search_dhb(pDhb pdhb);
void modify_dhb(pDhb pdhb);
void show_dhb(pDhb pdhb);
void clear_dhb(pDhb pdhb);
void sort_dhb(pDhb pdhb);
void save(pDhb pdhb);
 
#endif //__CONTACT_H__
 
 
 
"contact.c"
 
#include "contact.h"
 
 
void menu()
{
    printf("*************************\n");
    printf("**** 1.add    2.del  ****\n");
    printf("**** 3.search 4.modify***\n");
    printf("**** 5.show   6.clear ***\n");
    printf("*****7.sort   0.exit  ***\n");
    printf("*************************\n");
}
 
static int find_entry(pDhb pdhb,const char* name)
{
    int i = 0;
    for (i = 0; i count; i++)
    {
        if (0 == strcmp(name, pdhb->pinfo[i].name))
        {
            return i;
        }
    }
    return -1;
}
 
static void init_add(pDhb pdhb, Peo_Info *peo)
{
    if ((pdhb->count >= pdhb->size) && ((pdhb->size
    {
        if (pdhb->size + INC > MAX)
        {
            pdhb->size = MAX - pdhb->size;
        }
        else if (pdhb->size + INC
        {
            pdhb->size = pdhb->size + INC;
        }
        pdhb->pinfo = realloc(pdhb->pinfo, pdhb->size*sizeof(Peo_Info));
        if (pdhb->pinfo == NULL)
        {
            printf("out of memory\n");
            exit(1);
        }
    }
    else if ((pdhb->size >= MAX))
    {
        printf("电话本已满\n");
        return;
    }
    pdhb->pinfo[pdhb->count] = *peo;
    pdhb->count++;
}
 
void init_dhb(pDhb pdhb)
{
    Peo_Info buf;
    FILE *pfread = fopen("contact.dat","r");
    if (pfread == NULL)
    {
        perror("open file for read");
        exit(EXIT_FAILURE);
    }
 
    pdhb->count = 0;
    pdhb->size = INIT_SIZE;
    pdhb->pinfo = (Peo_Info *)malloc((pdhb->size) *sizeof(Peo_Info));
    if (pdhb->pinfo == NULL)
    {
        printf("out of memory\n");
        exit(1);

[1] [2] [3] [4]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载